关闭

ROS学习(七):ROS launch 文件

标签: ROSlaunch
1502人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人简介

    本人机器人系统控制工程师。

    专注机器人学、机器人系统设计、控制算法研究、系统仿真等。

    个人资料
    • 访问:162733次
    • 积分:2763
    • 等级:
    • 排名:第14537名
    • 原创:107篇
    • 转载:2篇
    • 译文:3篇
    • 评论:167条
    联系方式

    Email: siaxzf@sina.com

    QQ    : 3387331925

    博客专栏
    最新评论