ROS学习笔记十四
本节讲介绍快速启动节点的方法,launch启动文件的使用方法
Launch文件
Launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROS Master)
Launch文件语法
Launch文件中的所有内容都是通过XML标签来描述的,所有Launch文件中的内容都必须包含在根标签下
< launch >
launch文件中的根元素采用< launch >标签定义,里面包含所有节点的启动配置内容
<launch>
<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
<node pkg="turtlesim" name="sim2" type="turtlesim_node"/>
</launch>
< node >
<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
- pkg:节点所在的功能包名称
- type:节点的可执行文件名称
- name:节点运行时的名称
- output, respawn, required, ns, args
< 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" />
- name:参数名
- value:参数值
param设置的参数是存储在ROS参数服务器中的,而arg设置的参数仅限于launch文件中
< remap > 重映射
重映射ROS计算图资源的命名。
<remap from="/turtlebot/cmd_vel"to="/cmd_vel"/>
- from:原命名
- to:映射之后的命名
< include > 嵌套
包含其他launch文件,类似C语言中的头文件包含。
<include file="$(dirname)/other.launch" />
- file:包含的其他launch文件路径
launch示例
这里我们讲上一节中复杂的启动,用launch文件来完成
start_tf_demo_c++.launch
<launch>
<!-- Turtlesim Node-->
<node pkg="turtlesim" type="turtlesim_node" name="sim"/>
<node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
<node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" />
<node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" />
<node pkg="learning_tf" type="turtle_tf_listener" name="listener" />
</launch>
使用指令:
$ roslaunch learning_launch start_tf_demo_c++.launch
结果如下:
可以直接进行控制。
本文的部分代码和图片来源于古月《ROS入门21讲》
往期链接
ROS学习笔记十三(TF坐标系广播与监听的编程实现)
ROS学习笔记十二(ROS中的坐标系管理系统)
ROS学习笔记十一(参数的使用与编程方法)
ROS学习笔记十(服务数据的定义与使用)
ROS学习笔记九(服务端Server的编程实现)
ROS学习笔记八(客户端Client的编程实现)
ROS学习笔记七(话题消息的定义与使用)
ROS学习笔记六(订阅者Subscriber的编程实现)
ROS学习笔记五(发布者Publisher的编程实现)
ROS学习笔记四(创建工作空间与功能包)
ROS学习笔记三(ROS命令行工具的使用)
ROS学习笔记二(ROS的核心概念)
ROS学习笔记一(Linux系统基础操作)