2台のパソコンでROSを実行

目的

ROSでは、ノードとノードを分離させて別のパソコンで動作させることができます。 この方法を使えば、ロボット側のパソコンでroscoreや制御用ノードを実行して、ワークステーションでrvizを実行し指示を出すことができます。 同じwi-fiに接続すれば、自分は動くことなく制御やチェックが可能です。

準備

まずは下記のものを用意してください

  1. ROSがインストールされたマシン(ロボット側)
  2. 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