ROS学习记录之launch文件

Launch文件 中的根元素采用<launch>标签定义

<launch> <node> <machine> <include>

<remap>

<env> <param> <rosparam>
<group> <test> <arg>  

<node>

启动节点

<node pkg="package-name" type="executable-name" name="node-name" />

  pkg:节点所在的功能包名称

  type:节点的可执行文件名称

  name:节点运行时的名称

  output="screen/log" 用于将话题信息打印到屏幕/日志文件

  respawn="true" 如果此节点退出,则自动重新启动

  required="ture" 此节点为必要节点,这个节点出错,整个launch结束;不可与respawn="true"同时描述一个节点。

  ns="foo" 在"foo"名称空间中启动节点

 

<machine>

声明了可以运行ROS节点的计算机。本地计算用不到此标记

 

<include>

导入其他XML文件,类似C语言中的头文件包含

<include file="$(dirname)/other.launch" />

#引入即可直接运行

 

<remap>

重映射:用于改变节点订阅或发布的话题

把此标签放到 node标签的前面,这样后面所有使用这个话题的节点都可以更新

<remap from="/different_topic" to="/needed_topic"/>

将different_topic变为needed_topic

也可以将<remap>作为节点的子类包含在节点中,只更新该节点的订阅消息。

<node pkg="package-name" type="executable-name" name="node-name" />

  <remap from="/different_topic" to="/needed_topic"/>  </node>

 

<env>

该标签允许你启动的节点上设置环境变量

属性有

    name="environment-variable-name" 设置环境变量的名称

       value="environment-variable-value" 设置环境变量的值

 

<param>

该标签定义要在参数服务器上设置的参数。

标签属性有

  name="namespace/name" 参数名称,命名空间可以包含在参数名称中,但应避免使用全局指定的名称。

  value="value"(可选),定义参数的值,如果忽略此属性,则必须指定binfile,textfille或command。

  type="str|int|double|bool|yaml"(可选),指定参数类型,如果未指定,roslaunch将尝试自动确定类型

  textfile="$(find pkg-name)/path/file.txt"。文件的内容将被读取并存储为字符串。

  binfile="$(find pkg-name)/path/file"。文件的内容将作为一个base64编码的XML-RPC二进制对象读取和存储。

  command="$(find pkg-name)/exe '$(find pkg-name)/arg.txt'"命令的输出将被读取并存储为字符串。

 

<rosparam>

用来加载配置文件.yaml,可以用来修改成千上万的参数。

属性有

  command="load|dump|delete",默认为load

  file="$(find pkg-name)/path/foo.yaml" 文件名称

 

eg:<rosparam command="load" file="$(find ros_tutorials_service)/config/service.yaml">

 

<group>

具有ns属性 可以将节点放入单独的名称空间

 

<test>

该标签运行要测试的节点

 

<arg>

该标签允许在命令行、多个文件中传递参数

用法

  <arg name="foo"/> 声明foo变量。foo必须作为命令行参数

  <arg name="foo" default="1" /> 用默认值声明foo,可以通过命令行参数覆盖foo

  <arg name="foo" value="bar" /> 声明具有恒定值的foo,foo的值不能被覆盖

 

posted @ 2022-11-07 11:23  一天day  阅读(276)  评论(0)    收藏  举报