■
2台のパソコンでROSを実行
目的
ROSでは、ノードとノードを分離させて別のパソコンで動作させることができます。 この方法を使えば、ロボット側のパソコンでroscoreや制御用ノードを実行して、ワークステーションでrvizを実行し指示を出すことができます。 同じwi-fiに接続すれば、自分は動くことなく制御やチェックが可能です。
準備
まずは下記のものを用意してください
- ROSがインストールされたマシン(ロボット側)
- ROSがインストールされたワークステーション
2台とも同じネットワークに接続してください。
設定
まずは、ロボット側のマシンでROSを起動します。
$ roscore
次に、ROS_MASTER_URI(ゆーあーるあい エルじゃなくてアイ)をroscoreを起動したマシンに設定します。
ロボット側のマシンでは環境変数をチェックすると、すでにlocalhostになっています。
$ export | grep ROS_MASTER_URI ROS_MASTER_URI=http://localhost:11311
ROSは11311番ポートを使って通信してるようですね。
$ nmap -p11311 localhost 11311/tcp open unknown
開いていますね。
ワークステーションでも、roscoreを起動したマシン(今回はロボット側)のIPをROS_MASTER_URIに設定します。
roscoreを起動したマシンのIPアドレスはこちらを参考に固定しておいてください。
# この場合は192.168.1.6 $ export ROS_MASTER_URI=http://192.168.1.6:11311
ROS_MASTER_URIの値を確認して正しく設定されていれば完了です。
$ export | grep ROS_MASTER_URI ROS_MASTER_URI=http://192.168.1.6:11311
ワークステーション側で実行されるノードはロボット側のroscoreを通じてノードと通信することができます。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/8/11