ROS入门:launch启动文件的使用方法

405 阅读1分钟

.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"/>

  1. pkg:节点所在的功能包名称
  2. type:节点的可执行文件名称
  3. name:节点运行时的名称
  4. output、respawn、required、ns、args等可选参数

通过name可实现重映射。

<param><rosparam>

  • 设置ROS系统运行中的参数,存储在参数服务器中
<param name="output_frame" value="odom"/>
  1. name:参数名
  2. 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"/>
  1. from:原命名
  2. to:映射之后的命名
  • <include>包含其它launch文件,类似C语言中的头文件包含
<include file="$(dirname)/other.launch"/>
  1. file:包含的其它launch文件路径

roslaunch命令行

  • 新建功能包:learning_launch
  • 新建文件夹:launch
  • /launch下创建launch文件

如:

  1. 在learning_launch下新建config文件夹,在/config下新建param.xml,如下:
A: 123
B: "hello"

group:
  C: 456
  D: "hello"
  1. 在/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。