ROS(3)launch启动文件

来源:互联网 发布:淘宝网海外版 编辑:程序博客网 时间:2024/06/05 02:31

ROS(3)启动文件

参考《机器人操作系统浅析》

启动文件Lanuch 主要作用:  同时启动roscore以及多个节点,实现一次性配置和运行多个节点。

 

1)Launch文件的编写 (.launch)

1根元素<launch>中间内容</launch>

2.launch文件中的内容主要是需要启动的各个节点。

    <node

   pkg=”” //包名

  type=”” //可执行文件名(节点名)

  name=”” //给节点指派了名称,它将覆盖任何通过调用ros::int来赋予节点的名称

  />

3.<node> 的内容除了2中必须要之外还有其他一些

required=“true”//必须,即该节点关闭所有都关闭

respawn=”true”//节点关闭会重启

launch-prefix=””//前缀,实现特定功能,如另起终端 “xterm -e“

output=”screen”//在控制台输出信息

ns=”namespace”//。对一个节点设置默认命名空间 ,通常叫做压入(pushing down)命名空间

2)launch

运行 roslaunch pkg_ name  launch_name

请求详细信息 roslaunch –vpackage-name launch-file-name

控制台显示所有节点输出roslaunch –screen package-name launch-file-name

3)名称重映射

作用:更改节点名称  可更改节点订阅的话题 其他用处?

<nodepkg=”turtlesim” type=”turtlesim_node”

name=”turtlesim_node”>

<remapfrom=”turtle1/pose” to=”tim”/>

</node>

4)launch文件包含其他启动文件,即想在启动文件中包含其他启动文件的内容

可<include file=”$(findpackage-name)/launch-file-name”>

包含元素同样支持命名空间属性,可以将内容压入一个指定的命名空间中去:

<includefile=”…” ns=”namespace”/>

应该说该设置是十分普遍的,尤其是当被包含进来的启动文件属于另一个功能包的时候,设置的操作应当独立于其他节点

5)启动参数arg

A.通过设置参数来描述节点在不同ROS会话中运行时可能需要改变的一小部分

声明参数 并赋值

<argname=”agr-name” default=”arg-value”/>//默认

<argname=”arg-name” value=”arg-value”/>//value

参数赋值亦可通过roslaunchpackage-name launch-file-name arg-name:=arg-value 来实现,会覆盖默认值,对于value值无法更改,并报错

 

B.获取参数值 一旦参数值被声明并且被赋值,可以使用该参数值了

$(arg arg-name)

C.arg参数相当于局部变量,不能被被包含的启动文件继承。可以将arg元素放到include中

<inclucefile=”path–to-launch-file”>

<argname=”arg-name” value=”arg-value”/>

</include>

在include标签之间的参数是属于被包含文件的,而不是它们出现的启动文件。因为目的是为被包括的启动文件设置响应的参数值,所以该处需要使用value属性。

一种常见的情况是两个启动文件(包含文件和被包含文件)有一些共同的参数,在这种情况下,希望参数在传递的时候不会改变。这样的元素在两个地方使用相同的参数名:

<argname=”arg-name” value=”$(arg arg-name)”>

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

6)group

作用

 组可以把若干个节点放入同一个命名空间内。

<groupns=”namespace”/>

</group>

组内的每个节点都从给定的默认命名空间启动。

 组可以有条件地使能或禁用一个节点。

<group if=”0 or1”/>

</group>

0 0
原创粉丝点击