[ros基础] --- roslaunch使用详解
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ros基础] --- roslaunch使用详解相关的知识,希望对你有一定的参考价值。
1 为什么需要launch文件
在节点少,程序小的情况下可以一个一个节点来启动,测试运行效果;但是当工程规模大,需要的节点多时就显得比较费劲,用.launch文件来启动可以将需要的节点同时启动,不用再一个一个进行。为工程搭建提高了效率,里面还有很多参数灵活使用会带来非常高效的调试。
roslaunch的概念:
launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。
NOTE:
roslaunch 命令执行launch文件时,首先会判断是否启动了 roscore,如果启动了,则不再启动,否则,会自动调用 roscore
2 launch文件常用标签介绍
在节点标签末尾的斜杠“/”是必须的,但很容易忘。
<node pkg=”package-name” type=”executable-name” name=”node-name”/>
你也可以这样显式地给出结束标签:
<node pkg=”…”type=”…” name=”…”></node>
2.1 launch标签
launch文件中的根元素采用launch标签定义
2.2 include标签
include标签用于将另一个 xml 格式的 launch 文件导入到当前文件。类似C语言头文件包含。
<include file="$(dirname)/other.launch"/> //file:包含其他launch文件的路径
2.3 node标签
node标签用于指定 ROS 节点,是最常见的标签,需要注意的是: roslaunch 命令不能保证按照 node 的声明顺序来启动节点(节点的启动是多进程的)
node节点包含很多属性:
<node pkg="package-name" type="executable-name" name="node-name" />
- pkg: 节点所在的功能包名称
- type: 节点的可执行文件名称
- name: 节点运行时的名称
- output=“log | screen” (可选),日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log
- respawn=“true | false” (可选),如果节点退出,是否自动重启
- required=“true | false” (可选),该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch
- ns=“xxx” (可选),在指定命名空间 xxx 中启动节点
- machine=“机器名”,在指定机器上启动节点
- args=“xxx xxx xxx” (可选),将参数传递给节点
2.4 arg标签
launch内部的局部变量,仅限于launch文件使用
2.5 param 与 rosparam标签
param和rosparam标签主要用于在参数服务器上设置参数
2.6 group标签
标签可以对节点分组,具有 ns 属性,可以让节点归属某个命名空间
2.7 remap标签
重映射ROS计算图资源的命名
<remap from="/turtelbot/cmd_vel" to "cmd_vel"/>
- from:源命名
- to: 映射之后的名字
3 roslaunch 运行
roslaunch 包名 xxx.launch
以上是关于[ros基础] --- roslaunch使用详解的主要内容,如果未能解决你的问题,请参考以下文章
ROS从入门到精通系列rqt_console & roslaunch (下)
ROS从入门到精通系列rqt_console & roslaunch (下)
使用rqt_console和roslaunch---ROS学习第7篇
使用rqt_console和roslaunch---ROS学习第7篇