站点图标 AI技术聚合

【笔记】.launch文件语法记录

【笔记】.launch文件语法记录

系列文章目录

【笔记】Linux 命令行
【笔记】.launch 文件语法记录
【笔记】CMakeLists.txt 文件语法记录
【笔记】Package.xml 文件语法记录
【笔记】ROS_c++ 语法记录

前言

最全面的教程还是得看这个:http://wiki.ros.org/roslaunch/XML

1、.launch 文件是什么?

通过 xml 标签语言实现 ROS 多节点的配置和启动,可自动启动 ROS Master 节点。最简单的文件举例 : simple.launch

<launch>
	<node  pkg="learning_communication"  type="person_subscriber_node"  name="talker" />
	<node  pkg="learning_communication"  type="person_publisher_node"  name="listener" />
</launch>

2、 标签   根标签

.launch 文件的<根元素标签,其他所有的标签都必须包含在根标签的范围内。表示标签作用域的结尾。

3、 标签   启动节点

用于启动节点。标签中各个参数的含义:

4、 标签   设置参数1/3

设置ROS系统运行中的参数,存储在参数服务器中,相当于全局变量。(可嵌入标签中成为其作用域下的变量)。标签内各参数的含义:

<param  name="output_frame"  value="odom" />

5、 标签   设置参数2/3

加载 .yaml 文件中的多个参数,存储在参数服务器中,相当于全局变量。(可嵌入标签中成为其作用域下的变量)。标签内各参数的含义:

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

6、 标签   设置参数3/3

.launch 文件内部的局部变量,仅限于 .launch 文件使用。标签内各参数的含义:

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

调用标签定义的参数:

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

7、 标签   重映射

重映射 ROS 计算图资源的命名,这是一种覆盖操作,一旦重映射之后,原来的名字就没有了。标签内各参数的含义:

<remap  from="/turtlebot/cmd_vel"  to="/cmd_vel" />

8、 标签   嵌套

包含其他 .launch 文件,类似 C 语言的头文件包含。标签内各参数的含义:

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

9、案例 一   turtlesim_parameter_config.launch

此 .launch 文件定义如下:

<launch>

    <param name="/turtle_number" value="2" />
    <arg name="TurtleName1" defualt="Tom"/>
    <arg name="TurtleName2" defualt="Danney"/>

    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" >
        <param name="turtle_name1" value="$(arg TurtleName1)"/>
        <param name="turtle_name2" value="$(arg TurtleName2)"/>

        <rosparam file="(find learning_launch)/config/param.ymal" commond="load" />
    </node>

    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen" />

</launch>
A : 123
B : "hello"

group :
  C : 456
  D : "world"
roslaunch   learning_launch   turtlesim_parameter_config.launch 

9.1 学习这个 .launch 文件

正确的代码在这里:

<launch>

    <param name="/turtle_number" value="2" />
    <arg name="TurtleName1" default="Tom" />
    <arg name="TurtleName2" default="Danney" />

    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" >
        <param name="turtle_name1" value="$(arg TurtleName1)"/>
        <param name="turtle_name2" value="$(arg TurtleName2)"/>

        <rosparam file="$(find learning_launch)/config/param.yaml" command="load" />
    </node>

    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen" />

</launch>

10、案例 二   turtlesim_remap.launch

此 .launch 文件定义如下 :

<launch>
    <include file="$(find learning_launch)/launch/simple.launch" />

    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
         <remap from="/turtle1/cmd_vel"  to="/cmd_vel"/> 
    </node>
</launch>

总结

Markdown使用的空格:
表示半角空格(英文)
表示全角空格(中文)
将字体颜色更改为红色
左右尖括号:< >
定义锚点:跳到这里
跳转到锚点:点击跳转

文章出处登录后可见!

已经登录?立即刷新
退出移动版