[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篇

[ROS-Beginner]8.使用 rqt_console 和 roslaunch

ros关闭launch