launch文件的作用:同时打开多个节点,但是这些节点会在一个终端里面显示,所以像一些不同的监听节点什么的不适合放在一起。其基本内容包括:
1、
启动节点
<node pkg="package-name" type="executable-name" name="node-name"/>
pkg:节点所在的功能包名称
type:节点的可执行文件名称
name:节点运行时的名称
其他:output(日志输出)、respawn(当节点启动失败会重新启动)、required(代表必须节点,该节点不启动整个程序启动不了)、ns(节点命名空间属性)、args(该节点具体有哪些输入参数)
2、、
基本一致,设置ROS系统运行中的参数,存储在参数服务器中
<param name="output_frame" value=odom"/>
name:参数名
value:参数值
加载参数文件中的多个参数:
<rosparam file=params.yaml"command="load" ns="params"/>
3、
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)"/>
4、
重映射ROS计算图资源的命名
<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>
from:原命名
to:映射之后的命名
注:如果系统中有其他功能包依赖于原命名的功能包,映射之后这些依赖可能会出问题,慎用。
5、include
包含其他launch文件,类似于C语言中头文件的包含。
<include file="$(dirname)/other.launch"/>
file:包含的其他launch文件路径。