Launch檔案編寫
阿新 • • 發佈:2018-11-15
roslaunch可以用來啟動定義在launch檔案中的多個節點,且不需要提前roscore。
roslaunch的使用方法為:
$ roslaunch pkg-name launch-file-name
建立turtlemimic.launch檔案
<launch> <group ns="turtlesim1"> <node pkg="turtlesim" name="sim" type="turtlesim_node"/> </group> <group ns="turtlesim2"> <node pkg="turtlesim" name="sim" type="turtlesim_node"/> </group> <node pkg="turtlesim" name="mimic" type="mimic"> <remap from="input" to="turtlesim1/turtle1"/> <remap from="output" to="turtlesim2/turtle1"/> </node> </launch>
<launch>
:以launch標籤開頭以表明這是一個launch檔案。<group ns="turtlesim1">
:標籤,就像C++中的namespace一樣,這樣可以讓我們同時啟動兩個turtlesim模擬器而不會產生命名衝突。<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
:節點的三個屬性分別是程式包名字,節點名字,可執行檔名字。- arg:啟動引數。args="$(find arg-name)"
- include:在launch 中複用其他launch檔案可以減少程式碼編寫工作量。
<include file="$(find pkg-name)/launch/launch-file-name">
Terminal 1:
roslaunch beginner_tutorials turtlemimic.launch
Terminal 2:
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
小練習
現在我們已經學會了,如何編寫一個簡單的 launch檔案,並且我們也知道了如何使用 roslaunch
命令來啟動一個啟動指令碼檔案。
下面我們來做一個小練習: 我們就將下面這一堆命令打包成一個啟動檔案:
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
在 beginner_tutorials
程式包中的launch 路徑裡新建一個 turlte_key_control.launch
檔案:
- 將下面的程式碼複製過去:
<launch>
<node pkg="turtlesim" name="turtle1" type="turtlesim_node"/>
<node pkg="turtlesim" name="turtle1_key" type="turtle_teleop_key"/>
</launch>
- OK,現在我們來執行一下這個啟動指令碼:
$ roslaunch beginner_tutorials turtle_key_control.launch
- 你可以在這個終端中,通過方向鍵來控制小海龜了。