リモートマシンのパッケージをroslaunchで起動
ROSさんお手やわらかに:ROS奮闘編
以前投稿した、2台のパソコンでroombaを動かすプロセスの起動を、roslaunchで自動化する。これをしないと、面倒でたまらない。
まず、ネットワークで使うための設定ファイルを作る。
T61のcatkin_ws/devel/setup.bashをコピーして、同じフォルダにネット用の設定ファイルrbsetup.bashを作る。環境変数をセットするコマンドを追加したものだ。
export ROS_MASTER_URI=http://T61:11311
export ROSLAUNCH_SSH_UNKNOWN=1
最初のはT61をローカルネットワークのマスター(roscoreを実行)にする設定、次のはroslaunchで他のマシンにアクセスする際、sshでリジェクトされないようにする設定。
リモートマシンを使用するには、T61で端末を開くたびに、setup.bashに代わり
$ source ~/catkin_ws/devel/rbsetup.bash
で環境を設定する。
次にlaunchファイル、rb.launchを作る。
これの2行めで相手のマシン、X61を定義する。このとき、相手のマシンにログインするuserとpasswordを設定しないとだめ。sshを設定して対応する方法もあるようだが、解らないのでこれでいく。passwordは、マニュアルで、使わないことを強く勧めているが、そういう次第なのでやむを得ない。
こうしておくと、nodeタグでmachineにX61を指定すると、そちら側のノードを起動できる。machineを指定しないとroslaunchを実行したマシンの指定になる。この場合はT61だ。
env-loader="/home/hanaokacyan/catkin_ws/devel/env.sh"はリモートマシン側の環境変数の設定スクリプトだが、何も考えずこれでいいみたい。マニュアルどおりだ。 ROS_MASTER_URIの設定は自動的にやってくれる。
こうして作ったrb.launchは、どれかのパッケージのlaunchフォルダに置くのが決まりだが、基本的にどこに置いてもOKだ。これで、これからの実験がやりやすくなる。
なお、電源が入れにくかったroombaだが、箱の中にリモコンを発見。こんなものがついていたのには気がつかなかった。これで、こちらの問題も解決だ。
« metapackagesのもやもや解消せず | トップページ | roombaにURG-04LXを搭載 »
「ROSさんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
コメント