2018年11月23日金曜日

【ROS】PCが分散している場合の設定

ROSを使っている時,例えば移動ロボットというのは機体にPCを詰んでることが多いと思います.そこで,今回は複数のPCでROSを実行する際のtipsを紹介します.公式にもあるのですが微妙な書き方だったので・・・

ロボットにはsshでログインするとします.私の場合,ロボット側のリソースが非常に貧相な環境ですのでROSをインストールするにあたり,ros-baseをインストールしています.つまりデスクトップフルバージョンではないんですね.ROSにまつわるGUI関連のパッケージはないし,rvizもないです.
今回紹介する方法は実行するPCとモニタリングするPCは通信させます.

1. 環境と事前準備


実行するロボット側のPCと,それをモニタリングする側のPCがあるとします.

OS : Ubuntu16.04LTS
ROS : kinetic
両方とも同じです.

実行するロボット側に入れます.サーバーが入られる方でクライアントが入る方ですね.
sudo apt-get install openssh-server

2. 実行するPCの準備


IPアドレスを入力するのがだるいのでファイルで管理します.emacsはインストールしてるよね?

cd 
sudo emacs /etc/hosts

なんか同じような様式のモノが書かれていたらその下にでも書いちゃいましょう.

192.168.100.101 execution_pc
192.168.100.102 monitoring_pc

ここでは,
実行PCのIPアドレスが192.168.100.101
モニタリングPCのIPアドレスが192.168.100.102
とします.
IPアドレスの横に名前を書くことでtabを押しても出てくるようになります.

次に

cd
emacs .bashrc

一番下に以下を追記します.

export ROS_MASTER_URI=http://execution_pc:11311
export ROS_HOSTNAME=execution_pc

上でマスター:roscoreするPCのIPアドレスを定義,
下で自分のIPアドレスをROSに教えています.

保存したら

source .bashrc

で変更完了です.

3. モニタリングするPCの準備

コマンドも書き込むのもほとんど同じです.

cd 
sudo emacs /etc/hosts

追記内容も同じです.IPアドレスはあらかじめどちらも固定されてるといいですね.

192.168.100.101 execution_pc
192.168.100.102 monitoring_pc

毎回使えるようにします.

cd
emacs .bashrc

一番下に以下を追記します.

export ROS_MASTER_URI=http://execution_pc:11311
export ROS_HOSTNAME=monitoring_pc

ここだけ違いますね.モニタリングPCに教える自分のIPアドレスです.

source .bashrc

4. 確認


モニタリングPCにて

ssh PCの名前@execution_pc

パスワードを入力したら

roscore

次にモニタリングPCで新しくターミナルを開きます.

rostopic list

として/rosout とか/rosout_aggとか出ていれば完了です.

0 件のコメント:

コメントを投稿

人気の投稿