1. Launch文件简要介绍
通过XML文件实现多节点配置启动(可自动启动ROS Master),启动顺序从上到下。
调用方法:roslaunch package_name file.launch
一个示例:
<launch>
<!-- local machine already has a definition by default. This tag overrides the default definition with specific ROS_RO0T and ROS_PACKAGE_PATH values -->
<machine name="local_alt" address="localhost" default="true" ros-root="/u/user/ros/ros/" ros-package-path="/u/user/ros/ros-pkg"/>
<!-- a basic listener node -->
<node name="listener-1" pkg="rospy_tutorials" type="listener"/>
<!-- pass args to the listener node -->
<node name="listener-2" pkg="rospy_tutorials" type="listener" args="-foo arg2"/>
<!-- a respawn-able listener node -->
<node name="listener-3" pkg="rospy tutorials" types"listener"respawn="true"/>
<!-- start listener node in the 'wg1' namespace -->
<node ns="wg1" name="listener-wgl" pkg="rospy_tutorials" type="listener" respawn="true"/>
<!-- start a group of nodes in the 'wg2' namespace -->
<group ns="wg2">
<!-- remap applies to all future statements in this scope.-->
<remap from="chatter" to="hello"/>
<node pkg="rospy_tutorials" type="listener" name="listener" args="--test" respawn="true" />
<node pkg="rospy_tutorials" type="talker" name="talker">
<!-- set a private parameter for the node -->param name="talker_1_param" value="a value"/>
<!-- nodes can have their own remap args -->
<remap from="chatter" to="hello-1"/>
<!-- you can set environment variables for a node -->
<env name="ENV EXAMPLE" value="some value"/>
</node>
</group>
</launch>
标签与元素:
<launch>
是所有roslaunch文件的根元素.它的唯一目的是作为其他元素的容器
<node>
启动一个节点
<
param>
设置参数服务器上的参数
<remap>
声明一个名称的映射
<machine>
声明启动要使用的机器.
<rosparam>
使用 rosparam文件设置启动要用的ROS 参数
<include>
包含 roslaunch文件
<env>
制定启动节点的环境变量
<test>
启动一个测试节点 .
<arg>
声明参数
<group>
共享一个命名空间或映射的封闭的元素组
2. 常用标签说明
2.1 <node>
标签
调用格式:
<node pkg"package-name"type="executable-name" name="node-name"/>
属性:
pkg="mypackage"
:节点所在的功能包名.
type="nodetype"
:节点类型。必须有相应的同名的可执行文件
(即节点可执行文件的名称)
name="nodename"
:节点运行时的名称(覆盖在代码中定义的名称).注∶名字不能包含命名空间,使用ns属性代替.
args="argl arg2 arg3"(optional)
:传递到节点的参数.
machine="machine-name"(optional
:启动节点的指定机器.
respawn="true"(optional)
:如果节点退出,自动重启
respawn_delay="30"(optional,default O)
:ROS indigo的新特性如果重启是true,在检测到节点失败之后,试图重启之前,等待respawn delay秒。
required="true"(optional)
:ROS 0.10∶如果节点死掉了,杀死掉全部的 roslaunch.
ns="foo"(optional)
:在foo’命名空间开启节点。
clear_params="truefalse"(optional
:在启动之前,删除节点私有命名空间的所有参数
output="log | screen"(optional)
:如果是screen’,节点中的stdout’stder发送到屏幕;如果是log,将发送 stdout/stder到SROS HOME/log中的log 文件。默认的是log。
cwd="ROS_HOMEInode"(optional)
:如果是node,节点的工作目录将发送到和可执行的节点相同的目录。在CTurtde中,默认的是ROS_HOME。在 Box Turtle(ROS1.0.x),默认的是ros-roo
。ros-rot
在CTrte中不能使用。
launch-prefix="prefix arguments"(optional)
:Command/arguments预先放在节点的launch参数的前端。这是一个强大的功能,使您能够使能gdb,valgrind,xterm,nice,或其他方便的工具。