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