ROS1学习笔记:launch启动文件的使用方法

news2024/11/29 0:53:05

参考B站古月居ROS入门21讲:launch启动文件的使用方法
基于VMware Ubuntu 20.04 Noetic版本的环境

文章目录

  • 一、launch的文件结构
  • 二、launch的文件语法
    • 2.1 根元素
    • 2.2 参数设置
    • 2.3 重映射和嵌套
  • 三、相关示例
    • simple.launch
    • turtlesim_parameter_config.launch
    • start_tf_demo_c++.launch
    • start_tf_demo_py.launch
    • turtlesim_remap.launch

在前面我们的学习中,我们看到启动TF的坐标广播和监听,启动程序非常麻烦,要同时运行很多个终端,并且涉及到终端向ROS的参数传递。

本节我们可以通过launch启动文件来解决上述的麻烦问题,帮助我们快速部署、整合并启动相关例程。

一、launch的文件结构

  • 由XML语言写的,可实现多个节点的配置和启动。
  • 不再需要打开多个终端用多个rosrun命令来启动不同的节点了
  • 可自动启动ROS Master
    在这里插入图片描述

二、launch的文件语法

2.1 根元素

在这里插入图片描述
name为节点名称,会取代程序中初始化节点 init 时赋予的名字
其他:

  • output:控制某个节点node把日志信息打印到终端
  • respawn:节点奔溃后是否重启
  • required:节点是否为必须节点,即改节点奔溃后须终止其他节点
  • ns:自定义的命名空间,在自定义的命名空间中运行节点
  • args:输入参数用

2.2 参数设置

在这里插入图片描述

  • param:【在ROS参数服务器中】处理一个参数
  • rosparam:【在ROS参数服务器中】处理多个参数
  • arg:【不存在于ROS的参数服务器中】仅在launch文件中出现,可作为- node运行时传的参数,如之前在终端输入指令时传的参数。

2.3 重映射和嵌套

在这里插入图片描述
注意嵌套include之后,调用另一个launch文件,便会启动该文件内的所有内容。
更多标签参见:http://wiki.ros.org/roslaunch/XML

三、相关示例

在演示相关示例之前,我们先创建一个新的功能包:learning_launch,这个包不需要添加其他依赖,只是用来存放launch文件。

cd ~/catkin_ws/src
catkin_create_pkg learning_launch

将相关的文件和代码分别放置对应的文件夹下:
在这里插入图片描述
在这里插入图片描述
编译环境:

cd ~/catkin_ws
catkin_make

打开拷贝进的launch文件,在文本编辑器选择高亮模式,选择XML代码方便查看代码:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

simple.launch

在这里插入图片描述
该代码对之前的learning_topic功能包下的发布和订阅节点的程序进行了整合,设定了node的name,并选择将日志信息打印到终端。

运行该launch文件:
格式为:roslaunch 包名 文件名

roslaunch learning_launch simple.launch

我们可以看到启动launch后,发布和订阅的日志都打印到了终端。
在这里插入图片描述

turtlesim_parameter_config.launch

在这里插入图片描述

启动:

roslaunch learning_launch turtlesim_parameter_config.launch

start_tf_demo_c++.launch

在这里插入图片描述
启动:

roslaunch learning_launch start_tf_demo_c++.launch

start_tf_demo_py.launch

在这里插入图片描述
启动:

roslaunch learning_launch turtlesim_remap.launch

turtlesim_remap.launch

在这里插入图片描述
启动:

roslaunch learning_launch turtlesim_remap.launch

参考文章:https://blog.csdn.net/takedachia/article/details/122623247

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 整合 JSP和MyBatis

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【满血Buff】ChatGPT科普篇,三段式介绍,内含各种高效率插件

【满血Buff】ChatGPT科普篇,三段式介绍,内含各种高效率插件1、ChatGPT是什么2、为什么要掌握ChatGPT效能工具3、ChatGPT能做什么4、和ChatGPT相关的谷歌插件4.1 WebChatGPT4.2 OpenAI Ttanslator 翻译4.3 ChatGPT for Google本篇博客采用三段论的叙事方式…

Redis Cluster详解

文章目录集群设计目标Redis 集群协议中的客户端和服务器角色写入安全可用性(Availability)性能(Performance)避免合并(merge)操作主要模块介绍哈希槽(Hash Slot)Keys hash tagsCluster nodes属性Cluster总线集群拓扑节点握手请求重定向Moved 重定向ASK 重定向smart客户端状态检…

基于Tensorflow搭建卷积神经网络CNN(新冠肺炎医学图像识别)保姆及级教程

项目介绍 TensorFlow2.X 搭建卷积神经网络(CNN),实现人脸识别(可以识别自己的人脸哦!)。搭建的卷积神经网络是类似VGG的结构(卷积层与池化层反复堆叠,然后经过全连接层,最后用softm…

物理世界的互动之旅:Matter.js入门指南

theme: smartblue 本文简介 戴尬猴,我是德育处主任 欢迎来到《物理世界的互动之旅:Matter.js入门指南》。 本文将带您探索 Matter.js,一个强大而易于使用的 JavaScript 物理引擎库。 我将介绍 Matter.js 的基本概念,包括引擎、世界…

【Jetpack】DataBinding 架构组件 ③ ( 使用 include 导入二级界面布局 | 二级页面绑定数据模型 )

文章目录一、使用 include 导入二级界面布局二、二级页面绑定数据模型1、将二级界面布局转为 DataBinding 布局2、在主布局中为二级界面布局传递数据模型三、核心代码示例1、主布局2、子布局3、Java 代码4、执行结果一、使用 include 导入二级界面布局 如果在 DataBinding 布局…

C++之深入解析虚函数表的实现及其内存布局

一、虚函数表概述 C 中的虚函数的作用主要是实现了多态的机制,关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数: Derive d; Base1 *b1 &d; Base2 *b2 &d; Base3 *b…

使用自己修改的特制舵机,支持关节角度回传的桌面级小机器工具人

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。

c++小知识

1、一般头文件&#xff1a; #include<iostream> using namespace std; 2、ios::sync_with_stdio(false); 其含义是取消cin与stdin的同步&#xff0c;cout和stdout的同步 cin.tie(0); tie是将两个stream绑定的函数&#xff0c;空参数的话返回当前的输出流指针。 3、…

从零开始搭建性能完备的网站-思路过程(1)

之前前端的一揽子技术基本都学完了&#xff0c;除了react和uniapp这些想做大前端需要学的东西&#xff0c;基本vue相关的东西都学过了&#xff0c;本来想做尚硅谷的后台项目&#xff0c;可是它使用的工具库实在是太老了&#xff0c;所以直接跳到自己搭建网站这一步来&#xff0…

尚硅谷大数据技术Zookeeper教程-笔记04【源码解析-源码详解】

视频地址&#xff1a;【尚硅谷】大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】尚硅谷大数据技术Zookeeper教程-笔记02【服务器动态上下线监听案例、ZooKeeper分布式锁案例、企业面试真…

C语言标准CRC-32校验函数

C语言标准CRC-32校验函数 CRC-32校验产生4个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。获得的校验码是随数据绑定获得。 CRC校验原理及标准CRC-8校验函数可参考&#xff1a;C语言标准CRC-8校验函数。…

HTML5 <ol> 标签、HTML5 <object> 标签

HTML5 <ol> 标签 实例 HTML5 <ol>标签用于定义文档中的有序列表。请参考下述示例&#xff1a; 2 个不同的有序列表实例&#xff1a; <ol><li>Coffee</li><li>Tea</li><li>Milk</li> </ol><ol start"50…

低代码平台是否会取代程序员?答案在这里

上图是一张机器人或者自动化系统取代人工的图片&#xff0c;您看了有哪些感想呢&#xff1f; 故事 程序员小张&#xff1a; 刚毕业&#xff0c;参加工作1年左右&#xff0c;日常工作是CRUD 架构师老李&#xff1a; 多个大型项目经验&#xff0c;精通各种屠龙宝术&#xff1b; …

Java 在线编程编译工具上线,直接运行Java代码

前言 大家好&#xff0c;我是小哈~ 周末没出去浪&#xff0c;花了点时间&#xff0c;在我的个人网站上线了一款小工具。啥工具呢&#xff1f;一款可以在线编译 Java 代码并运行输出结果的小工具。 大家都知道&#xff0c;甲骨文刷 Java 版本号非常积极&#xff0c;这不上个月…

【大唐杯学习超快速入门】5G技术原理仿真教学——通信网络认知

这里写目录标题智能通信业务对讲机固定电话电视机wifiPAD扫地机器人手机电信业务号码办理基础业务办理业务选择通信流程模拟增值业务办理工程实践信号塔基站机房传输&核心机房智能通信业务 按照顺序来进行&#xff0c;对讲机&#xff0c;固定电话&#xff0c;电视机&#…

HTTP协议 | 一文详解HTTP报文结构

目录 &#x1f333; HTTP/HTTPS简介 &#x1f333; HTTP工作原理 HTTP三点注意事项 1. HTTP是无连接的 2. HTTP是媒体独立的 3. HTTP是无状态的 HTTPS 作用 &#x1f333; HTTP消息结构 HTTP请求消息 1. 请求行 2. 请求头 3. 空行 4. 请求数据 HTTP请求实例 HTT…

中电金信:数字化转型|银行业数据中心数字化转型之驱动篇

导语&#xff1a; 在新基建和国产化创新的推动下&#xff0c;银行业掀起了数字化转型的浪潮。但在众多银行中&#xff0c;数字化转型仍旧停留在业务层面&#xff0c;数据中心的数字化转型一直处于配合和被动应对。数据中心层面的数字化转型如何开展&#xff0c;数据中心数字化…

springboot的rest服务配置服务的根路径

如果不配置默认为空&#xff0c;如下是application.yml文件只配置了端口号 server:port: 6868 那么访问时直接访问服务即可 如果配置了rest服务 RestController RequestMapping("/netLicense") public class NetLicenseController {RequestMapping("/getLice…

BP神经网络和RBF神经网络的区别

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》 bp.bbbdata.com 有些同学只学过BP神经网络&#xff0c;想了解RBF神经网络 或者只学过RBF神经网络&#xff0c;想了解BP神经网络 那么本文就非常适合这些同学阅读&#xff0c;帮助大家快速将相关知识迁移到BP/RB…