1.launch的概念
对于一个复杂的ros程序,如果通过命令来一条条启动,至少需要十几条以上。针对这个问题,引出了launch文件,该文件可以理解成启动ros的脚本文件,将上诉多条启动ros的命令写在launch文件中,简化了许多步骤。
launch,中文含义是启动,launch文件顾名思义就是启动文件,是一个 XML 格式的文件。通过XML文件实现多节点的配置和启动(可自动启动ROS Master)
2.launch文件常用标签介绍
2.1 < launch >标签
launch标签规定了一片区域,所有的launch文件都由开头,由结尾,所有的描述标签都要写在之间
<launch>
……
……
……
</launch>
2.2 < node >标签
在节点标签末尾的斜杠“/”是必须的,但很容易忘。
<node pkg=”package-name” type=”executable-name” name=”node-name”/>
你也可以这样显式地给出结束标签:
<node pkg=”…”type=”…” name=”…”></node>
2.3 < include >标签
include标签用于将另一个 xml 格式的 launch 文件导入到当前文件,这样的话,运行一个launch文件时,导入在该launch文件的其他launch文件也会同时运行。
<include file="$(dirname)/other.launch"/> //file:包含其他launch文件的路径
2.4 < param >和< rosparam >标签
param标签的作用相当于命令行中的rosparam set,比如现在在参数服务器中添加一个名为demo_param,值为666的参数
<param name="demo_param" type="int" value="666"/>
rosparam标签允许从YAML文件中一次性导入大量参数。
<rosparam command="load" file="$(find pkg-name)/path/name.yaml"/>
2.5 < arg >标签
arg标签用来在launch文件中定义参数,arg和param在ROS里有根本性的区别,就像局部变量和全局变量的区别一样。arg不储存在参数服务器中,不能提供给节点使用,只能在launch文件中使用。param则是储存在参数服务器中,可以被节点使用。
2.6 < remap >标签
重映射ROS计算图资源的命名
<remap from="/turtelbot/cmd_vel" to "cmd_vel"/>
3.launch的创建与运行
3.1 launch文件的创建步骤
第一步:在需要的功能包文件夹里,创建一个launch文件夹;
第二步:在该launch文件夹,创建后缀为.launch的文件;
第三步:编写launch文件。
3.2 launch文件的启动命令
roslaunch 功能包名 xxx.launch
参考链接
1.[ros基础] — roslaunch使用详解
2.ROS入门之——浅谈launch