ROS1学习笔记--launch文件

    Launch文件是通过.xml文件来实现多节点的配置与启动的文件,可以自动启动ROS master,不需要使用roscore命令启动ROS master。一个launch文件里也可以引用其他.launch文件。

   launch 文件中的根元素采用<launch>标签定义。一般包含以下几个部分:

(1)<node>标签

        功能:启动节点,取消节点(取消??)。所以启动的节点以任意顺序启动。

<node name="node-name" pkg="package-name" type="executable-name" />
  • pkg:节点所在的功能包的名称
  • type:节点的可执行文件
  • name:节点运行的名称

     其他可选的配置项:

  • output:如果'screen',stdout / stderr会从节点发送到屏幕。 如果'log',stdout / stderr输出将被发送到$ ROS_HOME / log中的日志文件,并且stderr将继续发送到屏幕。 缺省值是'log'。
  • respawn:为'true'的时候,退出后自动重新启动节点。
  • required:为'true’时,如果节点死亡,则杀死整个roslaunch.
  • ns:为'foo'时,在'foo'命名空间中启动节点。
  • args:将参数传递给节点。
  • machine:在指定机器上启动节点。
  • 参考:roslaunch/Tutorials/node

(2)<machine>标签

笔者很少用,具体可以参考:roslaunch/XML/machine

(3)<include>标签

         包含其他launch文件。

    <include file="$(dirname)/other.launch">
        <arg name="arg-name)" default="arg-value"/>
       ....
    </include>

dirname:launch文件路径

name:参数名

value:参数值

具体参考:标签详情

(4)<remap>标签

        重映射ROS计算图资源的命名。 <remap>标签适用于其范围(<launch>,<node>或<group>)中的所有后续声明。

<remap from="chatter" to="hello"/>

from:原命名

to:映射之后的命名

参考:remap详情

(5)<env>标签

        允许您在启动的节点上设置环境变量。

参考详情:env标签详情

(6)<param>标签

        设置ROS系统运行中的参数,存储在参数服务器中

<param name="publish_frequency" type="double" value="10.0" />

        name:参数名

        value:参数值

        type:指定参数类型,,有str|int|double|bool|yaml选项

 <param name="publish_frequency" type="double" value="50.0" />

        command:该命令的输出将被读取并存储为一个字符串(???)

 <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/gazebo/mbot_with_laser_gazebo.xacro'" /> 

参考:param详情

(7)<rosparam>标签

        加载参数文件中的多个参数。

<rosparam file=”params.yama" command="load" ns="params"/>

<rosparam>标签允许使用rosparam YAML文件从ROS参数服务器加载和转储参数。 它也可以用来删除参数。 <rosparam>标签可以放在<node>标签中,在这种情况下,参数被视为一个私有名称。

<rosparam command="load" file="$(find rosparam)/example.yaml" />
<rosparam command="delete" param="my/param" />
<rosparam param="a_list">[1, 2, 3, 4]</rosparam>
<rosparam>
  a: 1
  b: 2
</rosparam>

详情参考:rosparam详情

(8)<group>标签

        笔者很少用,详情参考:group详情

(9)<test>标签

        与<node>标签相似。 它们都指定要运行的ROS节点,但<test>标记指示该节点实际上是要运行的测试节点。

        详情参考:test详情

(10)<arg>标签

        Launch文件内部的局部变量,仅限于Launch文件使用

<arg name="arg-name" default="arg-value"/>

name:参数名

value:参数值

参考:arg详情

调用:

<param name="foo" value="$(arg arg-name)"/>
<node name="node" pkg="package" type="type" args="$(arg arg-name)"/>

参考网站:大型项目roslaunch

总结比较好:roslaunch语法整理

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值