ROS学习(七):ROS launch 文件

来源:互联网 发布:李术才 知乎 编辑:程序博客网 时间:2024/05/17 02:15

ROS launch 文件:
为了方便、高效地操作多个节点,可以编写 .launch 文件,然后用 roslaunch 命令运行。

launch文件的格式是:

<launch>...<\launch>

文件一般包含以下几部分:

1)< node >
要启动的节点,包含以下参数:

pkg="mypackage"type="nodetype"name="nodeneme"args="arg1 arg2 arg3"respawn="true"ns="foo"output="log | screen"

2) < rosparam>
可以使用 .yaml 文件 load/dump/delete 参数。dump/delete 命令运行的 load 之前,load 命令可以覆盖以前设置的参数。 也可以添加到 中使用。 包含以下参数:

command="load | dump | delete"file="$(find pkg-name)/path/foo.yaml"param="param-name"

3)< param>
用来定义一个设置在“参数服务器”的参数,可以添加到 中。 包含以下参数:

name="namespace/name"value="value"type="str|int|double|boot"textfile="$(find pkg-name)/path/file"binflie="$(find pkg-name)/path/file"command="(find pkg-name)/exe' $(find pkg-name)/arg.txt"

4)< include>
在当前 launch 文件中调用另一个 launch 文件,方便代码的复用

5)< env>
设置节点的环境变量。可以用在 等。参数如下:

name="environment-variable-name"value="environment-variable-value"

6)< remap>
将一个参数名映射为另一个参数名。参数如下:

from="original-name'to="nem=neme"

7)< arg>
定义局部参数。

<arg neme="name" /><arg neme="name" default="1" /><arg neme="name" value="value" />

8)< machine>、< test>、< group>

属性:if、unless

if=value (optional)
如果value值为真,包含标签及其内容
unless=value (optional)
除非value为假,包含标签及其内容

<group if="$(arg foo)">  <!-- stuff that will only be evaluated if foo is true --></group><param name="foo" value="bar" unless="$(arg foo)" />  <!-- This param won't be set when "unless" condition is met -->

unless = if not

参考:

1、陈金宝、韩冬、聂宏、陈萌,ROS开源机器人控制基础,上海交通大学出版社,2016.01

2、(西班牙) Aaron Martinez, Enrique Fern A Ndez著 刘品杰译,ROS机器人程序设计,机械工业出版社,2014.09

3、http://wiki.ros.org/roslaunch/XML

0 0
原创粉丝点击