带你读懂ROS中大型项目的launch文件代码含义

2023-05-16

目录

  • 1.roslaunch的作用
  • 2.launch标签介绍
    • 2.1 launch标签
    • 2.2 node标签
    • 2.3 include标签
    • 2.4 remap标签
    • 2.5 param标签
    • 2.6 rosparam标签
    • 2.7 arg标签
    • 2.8 group标签
  • 3.launch的使用方法
  • 特别说明:由于roslaunch命令会自动启动roscore,所以执行roslaunch指令前不需要roscore一下。

1.roslaunch的作用

在一个大型的机器人项目中,经常涉及到多个node协同工作,并且每个node都有很多可设置的parameter。比如我们的机器人miiboo_nav导航项目,涉及到地图服务节点、定位算法节点、运动控制节点、底盘控制节点、激光雷达数据获取节点等众多节点,和几百个影响着这些node行为模式的parameter。如果全部手动rosrun逐个启动node并传入parameter,工程的复杂程度将难以想象。所以这个时候就需要用roslaunch来解决问题,将需要启动的节点和需要设置的parameter全部写入一个*.launch文件,然后用roslaunch一次性的启动*.launch文件,这样所有的节点就轻而易举的启动了。miiboo_nav导航项目的miiboo_nav.launch文件内容如图所示
在这里插入图片描述

2.launch标签介绍

launch文件采用xml文本标记语言进行编写,对比较常用的标签进行介绍。

2.1 launch标签

这个是顶层标签,所有的描述标签都要写在之间。

<launch>
...
</launch>

2.2 node标签

这个是最常见的标签,每个node标签里包含了ROS图中节点的名称属性name、该节点所在的包名pkg、节点的类型type(type为可执行文件名称,如果节点用c++编写;type为*.py,如果节点用python编写)、调试属性output(如果output=“screen”,终端输出信息将被打印到当前控制台,而不是存入ROS日志文件)。

<node name=”xx” pkg=”xx” type=”xx” output=”xx”>
...
</node> 

2.3 include标签

这个标签是用于导入另一个*.launch文件到当前文件。也就是说高层级的launch文件可以通过include的方法调用其它launch文件,这样可以使launch文件的组织方式更加模块化,便于移植与复用。

<include file=”$(find pkg_name)/launch/xx.launch”/>

2.4 remap标签

这个标签是用于将topic的名称进行重映射, from中填入原来的topic名称,to中填入新的topic名称。标签根据放置在launch文件的层级不同,在相应的层级起作用。

<remap from=”orig_topic_name” to=”new_topic_name”/>

2.5 param标签

这个标签用于在参数服务器中创建或设置一个指定名称的参数值。

// An highlighted block
var foo = 'bar';

2.6 rosparam标签

这个标签用于从yaml文件中一次性导入大量参数到参数服务器中。

<rosparam command=”load” file=”$(find pkg_name)/path_to_file.yaml”/>

2.7 arg标签

这个标签用于在launch文件中定义用于存储的临时变量,该标签定义的变量只在当前launch文件中使用。推荐使用第一种方式赋值,这样可以方便从命令行中传入参数。

<arg name=”xx” default=”xx”/>
或者
<arg name=”xx” value=”xx”/>

2.8 group标签

这个标签用于将node批量划分到某个命名空间。便于大项目中节点的批量管理。

<group ns=”group_one”>
< node ... />
< node ... />
</group>

<group ns=”group_two”>
< node ... />
< node ... />
</group>

3.launch的使用方法

首先在相应功能包目录下新建一个launch文件夹。

然后在launch文件夹中新建*.launch文件,并按照上面的launch标签规则编写好launch文件的内容。

最后在终端中用roslaunch命令启动launch文件,命令如下:

cd ~/catkin_ws/
source devel/setup.bash
roslaunch <pkg_name> <file_name.launch> 

特别说明:由于roslaunch命令会自动启动roscore,所以执行roslaunch指令前不需要roscore一下。

以上内容参考博客.如有侵权请联系我.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带你读懂ROS中大型项目的launch文件代码含义 的相关文章

  • 深度强化学习-DQN算法原理与代码

    DQN算法是DeepMind团队提出的一种深度强化学习算法 xff0c 在许多电动游戏中达到人类玩家甚至超越人类玩家的水准 xff0c 本文就带领大家了解一下这个算法 xff0c 论文和代码的链接见下方 论文 xff1a Human lev
  • 一文整理简单的Ajax请求知识,看了你还会不懂? -JavaWeb终篇

    写在前面 xff1a 我是一名大一专科生 xff0c 热爱Java xff0c 刚自学完JavaWeb阶段 xff0c 这篇文章是对Ajax的总结 xff0c 写作不易 xff0c 转载请声明 本文若有些内容出错请大佬指点 这篇文章需要有一
  • 【Jetson Nano学习笔记】Ubuntu18.04 上安装Nodejs、Hexo、nginx、配置到github(ARM版本)

    Nodejs有很多版本 xff0c 按照不同的操作系统 不同的处理器 xff0c 下载安装对应版本 一 去官网下载ARMv8版本的压缩包 xff08 Jetson Nano的处理器是ARM57 xff0c 基于ARMv8的核 xff09 英
  • 制作一个简单HTML个人网页网页(HTML+CSS)

    一个简单的HTML网页 xff0c 这是我大学的一个期末作业 xff0c 照片都是网上找的 看一下成品图 主页代码 xff0c 这里的 lt link href 61 34 images css css 34 rel 61 34 style
  • 吃透Java IO:字节流、字符流、缓冲流

    文章目录 1 Java IO流有什么特点 xff1f 2 Java IO流分为几种类型 xff1f 3 字节流和字符流的关系与区别 xff1f 4 字符流是否使用了缓冲 xff1f 5 缓冲流的效率一定高吗 xff1f 为什么 xff1f
  • 2020年最新主板型号排行榜

    主板篇 2020主板型号天梯图2020主板选购指南一 Intel AMD电脑主板的辨别二 主板芯片组级别三 板型 四 主板对电脑性能有什么影响 xff1f 在使用电脑的时候 xff0c 我们有时候会需要更换电脑硬件 xff0c 那么对于比较
  • 3.HTML5_常用标签_居中和空格

    1 居中center 显示使用center标签 这里用标题来演示 默认不使用居中会在居左显示 span class token doctype lt DOCTYPE html gt span span class token tag spa
  • arduino和stm32和51和TSM32的区别,树莓派和jetson nano的区别

    本科时段接触过很多嵌入式的微处理器和微控制器 xff0c 但对其使用场景和区别一直没有一个总结 xff0c 这次收集了一些信息在这总结一下 Arduino STM32 51 TMS320和树莓派和jetson nano都是不同的嵌入式系统
  • rosdep init 错误解决方法

    遇到的错误如下 mo 64 mo span class token operator span ThundeRobot span class token operator span span class token operator spa
  • 刚启动IDEA 就报这个错---> Error:(4, 1) java: 程序包org.apache.ibatis.annotations不存在

    刚启动IDEA 就报这个错 gt Error 4 1 java 程序包org apache ibatis annotations不存在 很简单 xff0c 那是因为jar包没导入 xff0c 或者jar包没下载下来 所以看清楚报什么错 xf
  • 免费节点2:使用捷径添加_盒子:找到性能瓶颈的捷径

    免费节点2 使用捷径添加 经常会通过一些非常古怪的注释来报告性能问题 xff0c 这些注释并没有帮助您了解从何处着手 面对这种困境 xff0c 团队开始猜测根本原因并不少见 现在输入 盒子 xff0c 这是一个完整系统的抽象小图 该框提醒了
  • Android Studio3.5.2使用@BindView代替findViewById

    使用findViewById太繁琐了 xff0c 64 BindView能够很好的减少一些不必要的工作 1 在build grable Moudle app 中加入 implementation 39 com jakewharton but
  • 基于springboot+vue的医院信息管理系统

    基于springboot 43 vue的医院信息管理系统 全网粉丝20W 43 csdn特邀作者 博客专家 CSDN新星计划导师 java领域优质创作者 博客之星 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业
  • 程序员真的是我们喜欢的工作吗?是生活?还是理想?

    有人说程序员年薪近百万 xff01 程序员 成实现阶级跨越的好职业 xff1f 在大多数人的印象里 xff0c 程序员是非常具有 钱途 的职业 xff0c 年薪至少几十万 半年赚一套房 要嫁就嫁程序员 等类似的消息满天飞 xff0c 足见程
  • Gephi安装教程

    以下附上Gephi安装详细过程 xff1a 软件获取地址 xff1a 链接 xff1a https pan baidu com s 1cgFy8J5M3j1u2Xt2QBWCEw pwd 61 ss20 提取码 xff1a ss20
  • 爬虫实战练习

    肝了一个星期 xff0c 从HTML gt CSS gt python 现在终于成功了 以这篇博文来铭记这个时刻 以下就是数据的采集 xff0c 整理 xff0c 分析以及存储的全过程 新手刚刚接触 xff0c 望不吝赐教 import u
  • python的Excel操作

    1 表单的图片如下 xff1a 2 下边时相关的代码操作 import xlrd 1 读取文件的地址以及工作簿和里边所有的表单信息 workbook 61 xlrd open workbook r 34 C python Python Pr
  • scoop学习笔记

    目录 1 前言 2 安装scoop 设置安装路径 开始安装 编辑 3 导入软件库 重要 一 xff1a 二 xff1a 四 xff1a 点击进去 xff0c 复制框里边的库链接 五 xff1a 进入命令行窗口 xff0c 运行scoop命令
  • LaTeX入门操作

    coding UTF 8 gougu tex 勾股定理 使用 xelatex 编译文档时 xff0c ctexart 文档类会调用 xeCJK 宏包 documentclass UTF8 article 这个就不会在页眉显示目录的内容 do
  • Conda常用操作

    之后遇到了新的东西会慢慢的补充 以下均假设 xff1a myenv是一个名为 myenv 的虚拟环境 一 最重要 xff1a 寻求conda的帮助 conda h conda list h conda remove h 二 查看你的虚拟环境

随机推荐

  • ArchLinux初次进入系统时触摸板可以移动鼠标但是无法点击的问题

    1 问题 正如标题所言 xff0c 进入桌面环境后发现触摸板可以控制鼠标的移动 xff0c 键盘的输入也有效 但是就是没法用触摸板的单指单击 确定 功能 最开始我遇到这个问题的时候以为又是一个bug 去WIKI查了半天 xff0c 有说是触
  • 使用arch linux_什么是Arch Linux? 为什么要使用它?

    使用arch linux Arch Linux is a Linux distribution that is created for simplicity optimization modernity pragmatism user ce
  • 利用生产者与消费者模型实现线程池Java

    实际编码中经常遇到处理并发的场景 xff0c 下面是一种用生产者 消费者模型实现的线程池 xff0c 可以实现并发处理功能 也可以不使用wait xff0c notify xff0c 而是直接用BlockingQueue来实现 span c
  • 解决:docker下安装了RabbitMQ,无法访问web管理页面

    问题 xff1a 在docker下安装了RabbitMQ xff0c 然后运行 xff1a docker run d p 5672 5672 p 15672 15672 name myrabbitmq b57e7dd9d72b 访问http
  • TFT-LCD LVGL与硬件交互

    TFT LCD LVGL与硬件交互 屏幕能正常显示LVGL官方例程 xff0c 说明LVGL移植成功了 xff0c 本次实验使用屏幕通过LVGL控制开发板硬件 实现效果 用LVGL画两个按钮和一个标签 xff0c 一个按钮控制蜂鸣器 xff
  • 功能强大的浏览器插件,解决chrome安装插件失败问题

    维软推出edge浏览器后好多爱好者喜欢使用它的扩展功能 xff0c 但是还是喜欢用chrome浏览器朋友们就烦恼如何安装插件 xff0c 那么我一起看看edge浏览器的插件如何给chrome浏览器安装 如果想安装新的插件按这样操作 在这儿输
  • win10主机无法ping通虚拟机

    问题描述 xff1a 虚拟机可以ping通主机 xff0c win10主机无法ping通虚拟机 显示网络超时 xff0c 下图为解决之后 问题原因 xff1a 本机的网络没有VMware Network 和Adapter VMnet8 我本
  • 使用 closest 和 matches 方法来检测元素是否存在某选择器

    假如我们有一下 HTML 结构 xff1a lt article class 61 34 post cat 5 34 gt lt header gt lt h2 gt Title lt h2 gt lt header gt lt div c
  • python批量删除txt文件指定行

    64 python批量删除txt文件指定行 python批量删除txt文件指定行 只需用到os模块即可 在这段代码里 xff0c 只需要输入你的文件目录和要删除的行数即可 此操作会直接覆盖原txt文件 xff0c 请做好备份 xff01 s
  • Blazor中C#与Javascript的互操作

    做Web开发肯定离不开Javascript xff0c Blazor虽然一定程度上可以用c 来替换Javascript的功能 xff0c 但是完全抛弃Javascript肯定是不可能的 xff0c 因此必然需要一种机制让C 可以和Javas
  • 解决jupyter notebook无法正常导入tensorflow的问题

    导入tensorflow报错 xff0c 经过多次搜索验证 需要创建一个tensorflow环境 xff0c 但是我创建新的环境一直失败 xff0c 对于此次遇到的问题 xff0c 我做了以下总结 分为两个大的步骤去解决这个问题 第一步要解
  • ancanda的重装,python环境切换和CondaHTTPError: HTTP 000 CONNECTION FAILED for url

    因为我系统里先后安装了3个python版本 xff0c 而且之前的ancanda安装之后还改了文件名导致环境出现问题 所以我进行了ancanda重装 gt python环境切换 ancanda的卸载和重装 python环境切换 conda
  • 什么是CMS(内容管理系统)?

    Content Management System or CMS is a software that is used to create edit update web content easily In the old days web
  • char型强制转换为unsigned int型

    char型强制转换为unsigned int型 今天有同学说要问我一个问题 xff0c 我说发生甚麽事了 他说char型转unsigned 型后是怎么拓展的 我说年轻人不讲武德 xff0c 这不是上个代码就行了 xff0c 还来偷袭我一个2
  • MySql8.0 安全卸载

    1 停止MySQL服务 win 43 R 打开运行 xff0c 输入 services msc 点击 确定 调出系统服务 2 卸载MySQL相关组件 打开控制面板 gt 卸载程序 gt 卸载MySQL相关所有组件 3 删除MySQL安装目录
  • Keil的工程文件迁移(适用于想copy一份旧工程并改一个新的名字)

    在开发单片机系统的时候 xff0c 有时会存在代码可以大量复用的情况 比如要做单片机系统的更新迭代 xff0c 添加功能时 这种情况下新工程文件可以从旧工程copy一份再改一个新名字使用 这个过程有几个需要注意的点 xff0c 在此记录一下
  • 编写HTML页面的思路和心得

    编写HTML页面的思路和心得 布局 制作HTML页面 xff0c 首先需要确定布局 xff0c 确定每个内容区域的位置 最基本的网页布局可分为header menu content nav footer五个区域 xff0c 不同区域的位置会
  • matlab画图(针对新手):将txt、excel中的数据转换成关系图

    对没有接触过MATLAB的新手极其友好 xff0c 保姆级教程 xff0c 简单实用 xff0c 话不多说 xff0c 直接上操作步骤 第一步 xff1a 打开MATLAB读取txt中的数据 1 读取数据 2 选择要读取数据的文件夹 第二步
  • ROS中launch文件添加注释

    由于launch文件采用xml文本标记语言进行编写的 xff0c 所以对于代码的注释不同于C C 43 43 那样 C C 43 43 注释添加方式 xff1a span class token comment 定义主函数 span int
  • 带你读懂ROS中大型项目的launch文件代码含义

    目录 1 roslaunch的作用2 launch标签介绍2 1 launch标签2 2 node标签2 3 include标签2 4 remap标签2 5 param标签2 6 rosparam标签2 7 arg标签2 8 group标签