launch文件:XML文件,同时启动多个节点
【基本元素】
1.<launch>
根元素采用<launch>标签,文件其他内容包含在此标签中:
<launch> .............. <launch>
2.<node>
启动ROS节点,基本语法:
<node name="node-name" pkg="package" type="excutable" />
- name:自定义节点名
- pkg: 启动的功能包名
- type:功能包中的执行文件
在<node>中还可以添加其他属性:
- output = "screen":将节点的标准输出打印到终端屏幕,默认输出为日志文档,即“log”;
- respawn = "true":复位属性,该节点停止时,会自动重启,默认为false;
- required = "true":必要节点,当该节点终止时,launch文件中的其他节点也被终止;
- ns = "namespace":命名空间,为节点内的相对名称添加命名空间前缀;
- args = "arguments":节点需要的输入参数。
【参数元素】
1.<param>
<param name="/use_gui" value="$(arg use_gui)"/>
将参数加载到参数服务器上, 对应名字与值。
<rosparamfile=“$(find 2dnav_pr2)/config/costmap_common_params.yaml” command="load" ns="local_costmap" />
<rosparam>将yaml格式文件中的参数全部加载到参数服务器中,设置command属性为“load”,还可以选择设置命名空间“ns”。
2.<arg>
类似于launch文件内部的局部变量,只在launch文件中使用
<arg name="use_gui" default="false" />
<param name="/use_gui" value="$(arg use_gui)"/>
【重映射】
<remap>
使用重映射以解决话题名称不同的问题,主要在发布者和订阅者上的不同,作了一个简单的笔记来方便记忆
【嵌套复用】
<include>
使用此标签来包含其他launch文件
<include file="$(find pro_moveit_config)/launch/moveit_rviz.launch"> </include>
【感谢】
《ROS机器人开发实践》胡春旭