roslaunch可以用来启动定义在launch文件中的多个节点。
具体用法:
roslaunch [package] [filename.launch]
可以先切换到你的程序目录下:
roscd 你的程序目录
如果roscd执行失败了,记得设置你当前终端下的ROS_PACKAGE_PATH环境变量。
再次执行roscd命令:
roscd 你的程序目录
如果你仍然无法找到程序包,说明该程序包还没有创建,那么就创建一个程序包。
然后创建一个launch文件夹:
mkdir launch
cd launch
Launch 文件
现在我们来创建一个名为 test.launch 的 launch 文件并复制粘贴以下内容到该文件里面:
<launch>
<group ns="test1">
<node pkg="test" name="sim" type="test_node"/>
</group>
<group ns="test2">
<node pkg="test" name="sim" type="test_node"/>
</group>
<node pkg="test" name="mimic" type="mimic">
<remap from="input" to="test1/turtle1"/>
<remap from="output" to="test2/turtle1"/>
</node>
</launch>
对 Launch 文件进行说明:
<launch>
在这里我们用launch标签开头以表明这是一个launch文件。
<group ns="test1">
<node pkg="test" name="sim" type="test_node"/>
</group>
<group ns="test2">
<node pkg="test" name="sim" type="test_node"/>
</group>
在这里我们创建了两个节点分组并以'命名空间(namespace)'标签来区分,其中一个名为test1,另一个名为test2,两个组里面都使用相同的test节点并命名为'sim'。这样可以让我们同时启动两个turtlesim模拟器而不会产生命名冲突。
<node pkg="test" name="mimic" type="mimic">
<remap from="input" to="test1/turtle1"/>
<remap from="output" to="test2/turtle1"/>
</node>
在这里我们启动模仿节点,并将所有话题的输入和输出分别重命名为turtlesim1和turtlesim2,这样就会使turtlesim2模仿turtlesim1。
</launch>
这个是launch文件的结束标签。