视频链接:bilibili 搜 古月居
源代码:关注古月居公众号,回复ROS入门21讲
launch文集:通过XML文件实现多个节点的配置和启动,可自动启动ROS Master(不需要再打开roscore)
1 launch文件语法
- < launch>
launch文件中的根元素采用< launch >标签定义,以< launch>开始,< /launch>结束 - 节点< node>
如<node pkg="package-name" type="executable-name" name="node-name"/>
启动节点
pkg:节点所在功能包名称
type:节点的可执行文件名称
name:节点运行时的名称,可以取代程序中节点初始化时的名称 - 参数< param>/< rosparam>存在ROS参数服务器中
设置ROS系统运行中的参数,存储在参数服务器中
如param name="output_frame" value="odom"
name:参数名
value:参数值
加载参数文件中多个参数
如<rosparam file="params.yaml" command="load" ns="params"/>
- 参数< arg>存在launch内部
launch文件内部的局部变量,进行与launch文件使用
如<arg name="arg-name" default="arg-value"/>
name:参数名
value:参数值
调用:
<param name ="foo" value="$(arg arg-name)"/>
<node name ="node" pkg="package" type="type" args="$(arg arg-name)"/>
- 重映射< remap>
重新映射ROS计算图资源的命名,原来的名字则不存在了
如<remap from="/turtlebot/cmd_vel" to "/cmd_vel"/>
from:原命名
to:映射之后的命名 - 嵌套< include>
包含其他launch文件,类似C 语言中的头文件包含
如<include file="$(dirname)/other.launch"/>
file:其他launch文件路径
2 launch 示例
1 新建功能包
catkin_create_pkg learning_launch
2 功能包下新建launch文件夹,用于存放launch文件
3 新建launch文件
<launch>
<node pkg="learning_topic" type="person_subscriber" name="talker" output="screen" />
<node pkg="learning_topic" type="person_publisher" name="listener" output="screen" />
</launch>
4 运行
catkin_make
roslaunch learning_launch simple.launch