rxconsole と roslaunch を使う
Contents
rxtools と turtlesim パッケージのビルド
このチュートリアルでは, rxtools と turtlesim パッケージの両方を使用します.このチュートリアルのために,両方のパッケージをビルドしてください.
$ rosdep install rxtools turtlesim $ rosmake rxtools turtlesim
注意:前のチュートリアルで rxtools と turtlesim を既にビルドしているかもしれません.もし分からなければ,もう一度ビルドしても何も問題ありません.
rxconsole と rxloggerlevel の使い方
rxconsole はノードからの出力を表示する ROS のログの仕組みを付け加えます.rxloggerlevel は起動しているノードの詳細レベル (DEBUG, WARN, INFO, and ERROR) を変更することができます.
rxconsole で turtlesim の出力を見て, rxloggerlevel でロガーのレベルを切り替えましょう.turtlesim を起動する前に,2つの新しいターミナルで rxconsole と rxloggerlevel を起動しましょう:
$ rxloggerlevel
$ rxconsole
2つのウィンドウがポップアップします:
さて, turtlesim を新しいターミナルで起動しましょう:
$ rosrun turtlesim turtlesim_node
初期のロガー レベルは INFO のため,turtlesim が起動してから発行されたものがこのように表示されます:
ロガー レベルを Warn に変更しましょう.rxloggerlevel ウィンドウのノードを再読み込みして,以下のように Warn を選択します.
亀が壁にあたり,rxconsole には以下のように表示されます:
rostopic pub turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 0.0
ロガー レベルについての簡単な説明
ログ レベルは優先順位がつけられています.Fatal が最高の優先度で Debug が最低です.ロガー レベルの設定することで,設定した優先順位から上のメッセージを全て受け取ることができます.例えば,レベルを Warn に設定すると, Warn, Error, Fatal のログ メッセージを受け取ることができます.
turtlesim を Ctrl-C して,複数の turtlesim ノードを起動して,片方のノードが片方のノードを真似するようにしましょう:
roslaunch の使い方
roslaunch はラウンチ ファイルで宣言されたノードを起動します.
使い方:
$ roslaunch [package] [filename.launch]
始めに,ラウンチ ファイルを作らなければなりません.あなたの beginner tutorials パッケージ内に,ラウンチ ディレクトリとラウンチ ファイルを作成しましょう:
$ roscd beginner_tutorials $ mkdir launch $ cd launch
ラウンチ ファイル
turtlemimic で呼び出されるラウンチ ファイルを作成します.以下をコピーして貼り付けてください:
1 <launch>
2
3 <group ns="turtlesim1">
4 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
5 </group>
6
7 <group ns="turtlesim2">
8 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
9 </group>
10
11 <node pkg="turtlesim" name="mimic" type="mimic">
12 <remap from="input" to="turtlesim1/turtle1"/>
13 <remap from="output" to="turtlesim2/turtle1"/>
14 </node>
15
16 </launch>
ラウンチ ファイルの説明
ラウンチ xml を分解してみましょう.
1 <launch>
ラウンチ ファイルはラウンチ タグから始まります.これは,ラウンチ ファイルの宣言になります.
sim という名前の turtlesim ノードで,tuetlesim1 と turtlesim2 という2つのネームスペースのグループを起動します.こうすることで,2つのシミュレータがお互いに干渉することなく起動できます.
トピックの入出力を使って,turtlesim1 と turtlesim2 の名前を変えた擬似ノードを起動してみましょう.この名前変更で turtlesim2 が turtlesim1 を真似するように動作します.
16 </launch>
これでラウンチ ファイルの xml タグを閉じます.
roslaunching
ラウンチ ファイルを roslaunch してみましょう:
$ roslaunch beginner_tutorials turtlemimic.launch
2つの turtlesim を起動させ,新しいターミナルで rostopic コマンドを発行します:
$ rostopic pub turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8
turtlesim1 にしかコマンドを送らなくても,2つの tuetlesim が動作するでしょう.
ラウンチ ファイルがどのように動作しているかは,rxgraph を使用することで,より理解できるでしょう:
$ rxgraph
rxconsole と roslaunch を使えるようになりました.次はROS のオプションを編集してみましょう.次のチュートリアルでは使わないので,全ての turtlesim は Ctrl-C してかまいません.






