ROSチュートリアルの流れ
はじめに
では、作成したプログラムを起動するときにroscore
を立ち上げて、rosrun ros_tutorial time_pub2.py
、rosrun ros_tutorial timesub2.py
とそれぞれ起動していました。
しかし毎回これらのプログラムを立ち上げるのは手間です。 そこでROSにはまとめて起動することができるroslaunch
というコマンドがあります。
この章では、roslaunch
コマンドを使用して、まとめて複数のプログラムを起動するやり方について説明します。
詳しい説明や、他のROSコマンドについては を御覧ください。
launchファイルを書く
まずroslaunch
コマンドで使用するlaunchファイルを書きましょう。 このlaunchファイルで起動するプログラムを指定することが出来ます。今回はtime_pub2.py
とtime_sub2.pyを
指定します。
launchファイルはlaunch
ディレクトリの中に置きます。ない場合は作成しましょう。
Copy roscd ros_tutorial
mkdir launch
ファイル名はdate.launch
とします。
Copy vim launch/date.launch
Copy <launch>
<node pkg="ros_tutorial" name="time_pub" type="time_pub2.py" />
<node pkg="ros_tutorial" name="time_sub" type="time_sub2.py" />
</launch>
コード解説
起動するnodeはこの間に書きます。
Copy <node pkg="ros_tutorial" name="time_pub" type="time_pub2.py" />
<node pkg="ros_tutorial" name="time_sub" type="time_sub2.py" />
pkg
は起動するパッケージ名、name
はノード名、type
はプログラム名を書きます。
実行
roslaunch
コマンドで実行しましょう。
Copy roslaunch ros_tutorial date.launch
何もエラーを吐かなければ正常に立ち上がっています。
実行結果
roslaunch
コマンドで立ち上げた場合、プログラム内のprint
は表示されません。 そのためrostopic
コマンドでトピックが動いているか確認しましょう。
Copy /Date_and_Time
/rosout
/rosout_agg
Copy rostopic echo /Date_and_Time
Copy date: 20181120
time: 172953.60466
---
date: 20181120
time: 172953.7045
---
︙
またプログラム内のprint
で表示できる--screen
という引数があります。
Copy roslaunch ros_tutorial date.launch --screen
Copy date : 20181120 , time : 173715.503780
date : 20181120 , time : 173715.603760
date : 20181120 , time : 173715.701480
date : 20181120 , time : 173715.803500
date : 20181120 , time : 173715.902740
date : 20181120 , time : 173716.001930
date : 20181120 , time : 173716.101760
date : 20181120 , time : 173716.204750
︙