首页 > 其他分享 >【ROS教程】编写launch文件

【ROS教程】编写launch文件

时间:2024-08-30 14:53:42浏览次数:8  
标签:教程 必选 name launch 标签 参数 ROS 节点 属性

@

目录


1.launch文件有哪些标签

标签 含义
node 指定 ROS 节点,是最常见的标签
include 用于将另一个 xml 格式的 launch 文件导入到当前文件
remap 话题重命名
param 在参数服务器上设置参数
rosparam 从 YAML 文件导入参数,或将参数导出到 YAML 文件,也可以用来删除参数
group 可以对节点分组,具有 ns 属性,可以让节点归属某个命名空间
arg 用于动态设置参数,可以增强launch文件的灵活性
env 用于设置环境变量

2.node标签

2.1 必选属性

属性 含义
name="node-name" 节点名称(在 ROS 网络拓扑中节点的名称)
pkg="package-name" 节点所属的包
type="node-type" 节点类型(与之相同名称的可执行文件)

2.2 可选属性

属性 含义
args="arg1 arg2 arg3" 将参数传递给节点
machine="machine-name" 在指定机器上启动节点
respawn="true| false" 如果节点退出,是否自动重启
respawn_delay="n" 如果 respawn 为 true, 那么延迟 N 秒后启动节点
required="true| false" 该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch
ns="namespace" 在指定命名空间中启动节点
clear_params="true| false" 在启动前,删除节点的私有空间的所有参数
output="log| screen" 日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log

2.3 可选子级标签

  1. <env>
  2. <remap>
  3. <rosparam>
  4. <param>

3.include标签

3.1 必选属性

属性 含义
file="$(find pkg-name)/path/filename.launch" 要包含的文件路径

3.2 可选属性

属性 含义
ns="namespace" 在指定命名空间导入文件

3.3 可选子级标签

  1. <env>
  2. <arg>

4.remap标签

4.1 必选属性

属性 含义
from="original-name" 原始话题名称
to="new-name" 目标名称

5.param标签

  • 作为\<node>子级标签时,相当于私有命名空间。

5.1 必选属性

属性 含义
name="namespace/name" 参数名称,可以包含命名空间

5.2 可选属性

属性 含义
value="value" 定义参数值,如果此处省略,必须指定外部文件作为参数源
type="str|int|double|bool|yaml" 指定参数类型,如果未指定,roslaunch 会尝试确定参数类型

roslaunch 确定参数类型的规则如下:

  • 如果包含 '.' 的数字解析未浮点型,否则为整型
  • "true" 和 "false" 是 bool 值(不区分大小写)
  • 其他是字符串

6.rosparam标签

6.1 必选属性

属性 含义
file="$(find pkg-name)/path/foo.yaml" 加载或导出到的 yaml 文件
param="param-name" 参数名称

6.2 可选属性

属性 含义
command="load| dump | delete" 加载、导出或删除参数,默认为加载
ns="namespace" 将参数指定到命名空间

7.group标签

7.1 可选属性

属性 含义
ns="namespace" 将该组节点分配到指定的命名空间。命名空间可以是全局的,也可以是相对的,但不鼓励使用全局命名空间。
clear_params="true|false" 在启动前删除组的命名空间中的所有参数。这个功能非常危险,应该谨慎使用。

7.2 可选子级标签

  • 其他所有标签都是其子级标签

8.arg标签

8.1 必选属性

属性 含义
name="arg-name" 欲设置的参数名称

8.2 可选属性

属性 含义
default="default value" 设置参数的默认值。不能与value属性结合。
value="value" 设置参数的值。不能与default属性结合。
doc="description for this arg" 加载、导出或删除参数,默认为加载

8.3 示例

<launch>
  <!-- declare arg to be passed in -->
  <arg name="hoge" /> 

  <!-- read value of arg -->
  <param name="param" value="$(arg hoge)"/>
</launch>

9.env标签

9.1 必选属性

属性 含义
name="environment-variable-name" 所设置的环境变量的名字
value="environment-variable-value" 参数说明

10.全局示例

<launch>
  <!-- local machine already has a definition by default.
       This tag overrides the default definition with
       specific ROS_ROOT and ROS_PACKAGE_PATH values -->
  <machine name="local_alt" address="localhost" default="true" ros-root="/u/user/ros/ros/" ros-package-path="/u/user/ros/ros-pkg" />
  <!-- a basic listener node -->
  <node name="listener-1" pkg="rospy_tutorials" type="listener" />
  <!-- pass args to the listener node -->
  <node name="listener-2" pkg="rospy_tutorials" type="listener" args="-foo arg2" />
  <!-- a respawn-able listener node -->
  <node name="listener-3" pkg="rospy_tutorials" type="listener" respawn="true" />
  <!-- start listener node in the 'wg1' namespace -->
  <node ns="wg1" name="listener-wg1" pkg="rospy_tutorials" type="listener" respawn="true" />
  <!-- start a group of nodes in the 'wg2' namespace -->
  <group ns="wg2">
    <!-- remap applies to all future statements in this scope. -->
    <remap from="chatter" to="hello"/>
    <node pkg="rospy_tutorials" type="listener" name="listener" args="--test" respawn="true" />
    <node pkg="rospy_tutorials" type="talker" name="talker">
      <!-- set a private parameter for the node -->
      <param name="talker_1_param" value="a value" />
      <!-- nodes can have their own remap args -->
      <remap from="chatter" to="hello-1"/>
      <!-- you can set environment variables for a node -->
      <env name="ENV_EXAMPLE" value="some value" />
    </node>
  </group>
</launch>

本文由博客一文多发平台 OpenWrite 发布!

标签:教程,必选,name,launch,标签,参数,ROS,节点,属性
From: https://www.cnblogs.com/UnderTurrets/p/18388765

相关文章

  • 【开源分享】2024PHP在线客服系统源码 带搭建教程
    PHP在线客服系统主要功能:用户信息用户提交:新用户可以通过表单留言输入相关信息,如用户名、密码、邮箱等,完成后获得唯一的用户ID和密码。客服管理客服信息管理:管理客服人员的基本信息,如姓名、工号、权限等。客服工作状态:实时显示客服人员的在线/离线状态,方便客户选择合适的......
  • Civil 3D 2025新功能及安装教程和下载
    Civil3D2025版本引入了一些重要的新功能和改进,提升了基础设施设计和土木工程项目的工作流程:改进的道路设计工具:新增了更高级的道路设计功能,支持更加复杂的道路几何形状和交叉路口设计,提高了设计灵活性。增强的水力和水文分析:改进了对排水管道和河流流域的水力和水文分析工......
  • Project 2021图文安装教程及下载
    MicrosoftProject是一个国际上享有盛誉的通用的项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本的计划、控制。MicrosoftProject不仅可以快速、准确地创建项目计划,而且可以帮助项目经理实现项目进度、成本的控制、分析和预......
  • Typora 1.4.8 最新Typora破解激活教程!
    一、typora介绍Typora是一款Markdown编辑器和阅读器,风格极简/多种主题/支持macOS,Windows及Linux二、下载地址破解工具已经放到网盘了,需要的自取。网盘地址:Typora1.4.8最新Typora破解激活教程! 三、破解教程双击typora1.48-setup-x64.exe进行安装找到破解补丁中......
  • ROS 简单导航
        导航是现代机器人可以说是必备的功能,很多机器人都不可以缺少这个功能,本文仍然是通过ros的topic话题通讯机制,结合了map和导航相关的话题,通过手动设置目标点,完成了对于机器人导航的控制。    1.首先需要导包:importrospyimportactionlibfrommove_base_m......
  • 在Ubuntu系统上安装RELION的详细教程。
     从官网给出的安装说明(Download&install-Relion(cam.ac.uk))和Github上给的安装说明(GitHub-3dem/relion:Image-processingsoftwareforcryo-electronmicroscopy)都可以实现RELION的快速安装。但是官网的说明比较繁琐,会让新手感到混淆。虽然Github的教程比较清晰,但是......
  • 华为/荣耀指纹键盘CD32/AD32驱动安装教程
    华为CD32键盘以其金属质感和静音敲击体验而受到薄膜玩家青睐。它的打字手感舒适,质感上乘,并且配备了NFC和指纹识别功能,堪称百元价位中的性价比之王,五分之一的价格可以达到MxKeys九成体验,极具购买价值。值得一提的是,华为的兄弟品牌荣耀推出的AD32键盘,除了背后的LOGO不同外,与CD32......
  • 性能测试教程3:性能测试执行教程从数据准备到压测执行
    性能测试环境准备一、操作系统--生产环境常用Linux前置--学习《Linux计算机操作系统基础知识》Linux_测试媛小七的博客-CSDN博客没有合适资料的同学可以跟着我的linux专栏内容学习1、Centos72、非Linux-可以安装虚拟机二、性能测试环境:服务器配置1、硬件型号测试环境于......
  • 【Linux】Linux Bash Shell 教程
    LinuxBashShell入门教程Linuxbash(Bourne-AgainSHell)是一种为GNU操作系统编写的命令行解释器,它是大多数Linux发行版中最常用的shell。Bash提供了一种强大的方式来控制和管理操作系统,支持命令历史记录、别名、管道、重定向、变量、条件判断、循环以及自定......
  • 【ROS教程】用CLion编译和调试ROS包的全流程及可能遇到的问题
    @目录1.工作空间目录2.加载环境变量3.打开CLion4.配置CLion5.编译和调试软件包1.工作空间目录我们的一个工作空间目录应该是这样的2.加载环境变量先进入工作空间再加载source./devel/setup.bash3.打开CLion一定要在第二步的同一个终端下clion.sh如果打不开,......