.launch启动文件的使用方法[1]
Launch文件:通过XML文件实现多节点的配置和启动(可自启动ROS Master)
<launch>与<node>
<launch>
<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
<node pkg="turtlesim" name="sim2" type="turtlesim_node"/>
</launch>
<launch>launch文件中的根元素采用<launch>标签定义<node>启动节点
<node pkg="package-name" type="executable-name" name="node-name"/>
- pkg:节点所在的功能包名称
- type:节点的可执行文件名称
- name:节点运行时的名称
- output、respawn、required、ns、args等可选参数
通过name可实现重映射。
<param>与<rosparam>
- 设置ROS系统运行中的参数,存储在参数服务器中
<param name="output_frame" value="odom"/>
- name:参数名
- value:参数值
- 加载参数文件的多个参数
<rosparam file="params.yaml" command="load" ns="params"/>
<arg>
launch文件内部的局部变量,仅限于launch文件使用
<arg name="arg-name" default="arg-value"/>
1. name:参数名
2. value:参数值
- 调用
```bash
<param name="foo" value="$(arg arg-name)"/>
<node name="node" pkg="package" type="type" args="$(arg arg-name)"/>
<remap>与<include>
<remap>重映射ROS计算图资源的名称
<remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
- from:原命名
- to:映射之后的命名
<include>包含其它launch文件,类似C语言中的头文件包含
<include file="$(dirname)/other.launch"/>
- file:包含的其它launch文件路径
roslaunch命令行
- 新建功能包:learning_launch
- 新建文件夹:launch
- /launch下创建launch文件
如:
- 在learning_launch下新建config文件夹,在/config下新建param.xml,如下:
A: 123
B: "hello"
group:
C: 456
D: "hello"
- 在/launch下新建turtlesim_parameter_config.launch
<launch>
<param name="/turtle_number" value="2"/>
<node pkg="turtlesim" type="turtlesim_node" name="turtle_node1">
<param name="turtle_name1" value="Tom"/>
<param name="turtle_name2" value="Jerry"/>
<rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>
<remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
</node>
<node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen"/>
</launch>
参考资料
[1]古月居,ROS入门21讲: https://www.bilibili.com/video/BV1zt411G7Vn?p=19。