ros中的launch文件使用说明
启动文件(Launch File)便是ROS中一种同时启动多个节点的途径,还可以自动启动ROSMaster节点管理器,而且可以实现每个节点的各种配置,为多个节点的操作提供了很大便利。
一、基本元素
<launch>
<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
<node pkg="turtlesim" name="sim2" type="turtlesim_node"/>
</launch>
采用XML的形式进行描述,包含一个根元素<launch>
和两个节点元素<node>
。
-
pkg
:节点所在的功能包名称 -
name
:节点运行的名称,将覆盖节点中init()
赋予节点的名称 -
type
:节点的可执行文件名称
可能还有其他属性:
output = “screen”
:将节点的标准输出打印到终端屏幕,默认输出为日志文档;respawn = "true"
:复位属性,该节点停止时,会自动重启,默认为false;required = "true"
:必要节点,当该节点终止时,launch文件中的其他节点也被终止;ns = "namespace"
:命名空间,为节点内的相对名称添加命名空间前缀;args = "arguments"
:节点需要的输入参数。
二、 参数设置
1、<param>
<param name="output_frame" value="odom"/>
通过元素加载 parameter,launch文件执行后,parameter就加载到了ROS的参数服务器。
运行launch文件后,output_frame 这个 parameter 的值就设置为odom,并且加载到ROS参数服务器
可以通过 ros::param::get()
接口来获取parameter的值,用户也可以在终端中通过rosparam命令获得parameter的值
<rosparam file ="$(find 2dnav_pr2)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam>
可以帮助我们将一个yaml格式文件中的参数全部加载到ROS参数服务器中,需要设置 command 属性为“load
”,还可以选择设置命名空间“ns”.
2、<arg>
argument 类似于launch文件内部的局部变量,仅限于launch文件使用,便于launch文件的重构
<arg name=”arg_name” default=”arg_value”/>
<param name="foo" value="$(argarg_name)" />
<node name="node" pkg="package" type="type "args="$(arg arg_name)" />
三、重映射机制
1、<remap>
<remap from="/turtlebot/cmd_vel"to="/cmd_vel"/>
将/turtlebot/cmd_vel
消息重映射为/cmd_vel
消息
四、嵌套调用
1、<include>
<include file="$(dirname)/other.launch" />
使用标签包含其他launch文件