分享

ros luanch 基本语法

 海漩涡 2016-08-26


================================================================



1、roslaunch –v package-name launch-file-name

显示的是该选项生成的除基本状态信息之外的额外信息。
该信息可以用来观察roslaunch如何解释你的启动文件,有时在调试的时候会有所帮助。


2、<node
pkg=”package-name”
type=”executable-name”
name=”node-name”
/>

(1)pkg     功能包名
(2)type    可执行文件名
(3)name  节点名称,它将覆盖任何通过调用ros::int来赋予节点的名称。



3、output=”screen”

在控制台中输出信息 对于某个单独的节点,只需在节点元素中配置output属性就可以达到该目的。


4、roslaunch –screen package-name launch-file-name

使用--screen命令行选项来令roslaunch在控制台中显示所有节点的输出:



5、respawn=”true”

respawn属性为真,这样当节点停止的时候, roslaunch会重新启动该节点。



6、required=”true”

必要节点(requiring node) 复位之外的另一种策略是将一个节点声明为必要节点。
当一个必要节点终止的时候,roslaunch会终止所有其他活跃节点并退出。



7、roslaunch 与rosrun的区别:

为节点维护独立的窗口 使用roslaunch的一个缺点是所有的节点共享一个终端,而使用rosrun的时候,每个节点都有一个独立的终端。这对于不接收控制台输入,只生成日志消息的节点是可行的(通常也是有帮助的),但是对于依赖控制台输入的节点来说,例如turtle_teleop_key,更倾向于为节点保留独立的终端。

幸运的是,roslaunch提供了一个实现该目的的简洁方法——对节点元素使用启动前缀(launch-prefix)属性:
Launch-prefix=“command-prefix”
事实上,roslaunch在启动节点时的内部工作原理是调用相应的命令行工具,即rosrun。启动前缀的主要思想是在其命令行前面添加给出的命令行前缀。在我们的例子中,遥操作节点使用了这个功能:
launch-prefix=”xetrm-e”
在这个属性的作用下,节点元素和在命令行中输入下面的命令基本上是等价的:
xterm –e rosrun turtlesim turtle_teleop_key
正如你所知,xterm命令将打开一个简单终端窗口。参数-e告诉xterm在新打开的终端中执行该命令行的剩余部分(这里是rosrun turtle_teleop_key),运行的结果是基于纯文本的程序turtle_teleop_key出现在一个图形窗口中。



8、并对其节点元素配置命名空间(ns)属性:
ns=”namespace”

/sim1和/sim2



9、名称重映射(Remapping names)
每个重映射包含一个原始名称和一个新名称。每当节点使用重映射中的原始名称时,ROS客户端库就会将它默默地替换成其对应的新名称。


10、通过启动文件的方式,只需在启动文件内使用重映射(remap)元素即可7:
<remap from=”original-name”to ”new-name”/>



11、<include file=”path-to-launch-file”>  包含其他文件

(find)命令搜索功能包的位置来替代直接输入路径:
<include file=”$(find package-name)/launch-file-name”>



12、启动参数(launch arguments)

声明一个参数,可以使用arg元素。<arg name=”agr-name”>

参数赋值:
(1) roslaunch package-name launch-file-name arg-name:=arg-value
(2)<arg name=”arg-name” default=”arg-value”/>
(3)<arg name=”arg-name” value=”arg-value”/>      value值是不能修改的

获取参数值:
(1)$(arg arg-name)
(2)向包括的启动文件中发送参数值
<incluce file=”path–to-launch-file”>
<arg name=”arg-name” value=”arg-value”/>
</include>

在该例子中,第一个参数名字通常是指被包含文件中的参数,第二个参数名是指当前文件中的参数。这样做之后,给定参数在两个启动文件中有相同的值。



13、创建组(Creating groups)
(1) 把若干个节点放入同一个命名空间内
<group ns=”namespace”/>
</group>

(2)组可以有条件地使能或禁用一个节点。
<group if=”0 or 1”/>
</group>
如果 if属性的值为1,则组元素标签内的元素被正常包含。反之,如果if属性的值为0,则标签内元素被忽略。还有一个unless属性的用法是相似的,只是意思相反。
<group unless=”1 or 0”/>
</group>
















    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多