在上两期文章,我们学会了如何使用c++在ROS中编写发布者节点和订阅者节点。但是,每次使用节点,需要运行大量的终端命令,本篇文章,讲解如何将这些命令转换成.launch文件,实现在.launch文件中一键启用。
.launch文件理论上可以放在工作包内的任何位置,且不影响其使用,但为了规范,在catkin_ws工作空间的src文件夹下,新建一个名为launch的文件夹,然后在其下新建jian_lai.launch文件。
在jian_lai.launch文件下,写入如下代码:
<launch>
<!-- 添加output以便查看日志 -->
<!-- 保持原有配置 -->
<node name="use_node" type="use_node" pkg="your_package" output="screen"/>
<!-- 添加output并检查包名拼写 -->
<node name="test1_node" type="test1_node" pkg="ssr_pkg" output="screen"/>
<node name="test_node" type="test_node" pkg="my_package" output="screen"/>
</launch>
保存,即可运用roslaunch my_package jian_lai.launch一件启动两个发布者节点和一个订阅者节点。
这里拓展一下.launch文件的编写规则:
一.基本结构
1.XML格式
.launch文件是XML格式,根元素是<launch>
<launch>
<!--配置内容 -->
<launch>
2.启动节点
<node pkg="package_name" type="executable_name" name="node_name" output="screen"/>
二.参数配置
1.全局参数
<param name="param_name" type="type" value="value"/>
2.私有参数
在<node>内定义,作用域为当前节点
<node pkg="..." type="..." name="...">
<param name="private_param" value="123"/>
</node>