ROS 2边学边练(28)-- 将launch文件集合到ROS 2包中

前言

        上一篇我们单独创建了文件夹(可以任何路径),并在其中创建编写了一份launch文件,调用了小海龟例程,但通常情况下这并非是launch文件的典型应用场景,更多的是在ROS 2功能包中创建使用launch文件。

动动手

        今天的内容也是比较轻松的,但一定要动手实践。

创建一个功能包

        我们重新创建一个工作空间launch_ws及其子文件夹src:

$mkdir -p launch_ws/src

        进入src,添加一个功能包:

$ros2 pkg create --build-type ament_cmake --license Apache-2.0 cpp_launch_example

新建launch文件夹

        在功能包的根路径下新建launch文件夹用来放置我们的launch文件,并在CMakeLists.txt文件里添加以下内容指明launch文件安装信息:

# Install launch files.
install(DIRECTORYlaunchDESTINATION share/${PROJECT_NAME}/
)

编写launch文件

        在launch文件里面新建名叫my_script_launch.py的launch文件,将下面内容复制其上:

import launch
import launch_ros.actionsdef generate_launch_description():return launch.LaunchDescription([launch_ros.actions.Node(package='demo_nodes_cpp',executable='talker',name='talker'),])

        或者是xml格式的my_script_launch.xml(最简明的launch格式,但有的书籍推荐我们使用python格式的,因为其灵活性和扩展性都要优于xml,见仁见智吧):

<launch><node pkg="demo_nodes_cpp" exec="talker" name="talker"/>
</launch>

        或者yaml格式的my_script_launch.yaml:

launch:- node:pkg: "demo_nodes_cpp"exec: "talker"name: "talker"

构建运行launch

        返回到launch_ws工作空间根路径下,开始构建我们的包(目前只有一个包,简单点就全构建了):

$colcon build

        构建完成后我们再source下环境(source install/setup.bash),运行launch文件,几种格式的launch文件调用方式一样,均为ros2 launch <package_name> <launch_file_name>,我们只以python版本为例(其他版本的只需将launch文件的后缀改为对应的格式即可):

$ros2 launch cpp_launch_example my_script_launch.py

文档资料

         launch文档里提供了对launch文件更多更详细的描述,大家可前往一观,另外官方还提供了两份源码工程项目,更多的文档/例子即将补充上:

GitHub - ros2/launch: Tools for launching multiple processes and for writing tests involving multiple processes.

https://github.com/ros2/launch_ros 

本篇完。

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

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

相关文章

Java将List平均分成多少份或者按照指定大小进行分割

目录 1. 将List平均分成多少份2. 将List按照每份指定的大小进行分割3. 完整代码示例以及测试 前言&#xff1a;此方法其实就是将一个列表按照指定份数或者指定大小对数据列表进行分割&#xff0c;如果不能整除则会将剩余的放到最后一个数组 1. 将List平均分成多少份 /*** 将Li…

算法训练营第44天|完全背包 LeetCode 518.零钱兑换Ⅱ 337.组合总和Ⅱ

完全背包 题目链接&#xff1a; 完全背包 代码&#xff1a; #include<iostream> #include<vector> using namespace std;void test(vector<int>weight,vector<int>value,int bagweight){vector<int>dp(bagweight1,0);for(int i0;i<weight.…

从AdTech转战Martech,驰骛科技的PaaS之路

中国最早的Adtech公司之一&#xff0c;在被全资收购后&#xff0c;其创始团队又创立了一家Martech公司。赛道的变更也从侧面反映出中国营销技术市场的发展轨迹。 驰骛科技创始团队来自易传媒核心团队&#xff0c;驰骛科技创始人程华奕是易传媒创始人兼CTO&#xff0c;是中国最早…

现在给政府机关医院学校部队供货的方式有哪些?

给政府机关、医院、学校和部队供货的方式主要包括以下几种&#xff1a; 直接采购&#xff1a;政府机关、医院、学校和部队通过招标或直接与供应商进行谈判&#xff0c;确定采购的产品和价格。这种方式常见于大宗或重要物资的采购&#xff0c;能够确保采购过程的透明度和公正性…

使用 Citavi 和 NVivo 简化您的文献综述和研究分析

NVivo 是一款支持定性研究方法和混合研究方法的软件。它可以帮助您收集、整理和分析访谈、焦点小组讨论、问卷调查、音频等内容。NVivo&#xff08;1.0版&#xff09;是Windows和Mac的主要版本。遵循最新的主要版本NVivo 12&#xff08;Windows和Mac&#xff09;。 NVivo 强大…

Linux服务器硬件及RAID配置

一、服务器硬件 塔式服务器&#xff1a;最初的服务器形态之一&#xff0c;类似于传统的台式电脑&#xff0c;但具有更强的处理能力和稳定性&#xff0c;适合小型企业或部门使用。 机架式服务器&#xff1a;设计为可安装在标准化机架内的模块化单元&#xff0c;可以有效地节省空…

致敬我过去的30年

曾几何时&#xff0c;30岁是一个遥不可及年纪&#xff0c;可是&#xff0c;今年我30了。 用雷总的话来说&#xff0c;就是现在的我&#xff0c;一事无成。 的确&#xff0c;好像真是一事无成 曾几何时&#xff0c;我想办一个伟大的企业&#xff0c;像马斯克那样&#xff0c;立一…

jetson nx 外接按钮,实现开机功能

本文参考自https://blog.csdn.net/m0_59584375/article/details/128050175 首先第一步&#xff0c;要短接jetson nx背面的AUTO ON 和DISABLE引脚 可以用跳帽短接&#xff0c;也可以直接用一根杜邦线连接这两个针脚 AUTO ON 和DISABLE引如下图红色圈 跳帽的样子如下图 我是直…

Mabtech:与结核病相关的肽库

Mabtech 新研发出了三个涵盖结核蛋白&#xff08;EspC、ESAT-6、CFP-10&#xff09;的肽库&#xff0c;可以区分潜伏性结核病和活动性结核病的区别。所有肽库都经过验证&#xff0c;都可用于ELISpot、FluoroSpot实验。 1. EspC scanning pool ● EspC scanning pool包含来自结…

42-软件部署实战(下):IAM系统安全加固、水平扩缩容实战

IAM应用安全性加固 iam-apiserver、iam-authz-server、MariaDB、Redis和MongoDB这些服务&#xff0c;都提供了绑定监听网卡的功能。将服务绑定到内网网卡上。 我们也可以通过iptables来实现类似的功能&#xff0c;通过将安全问题统一收敛到iptables规则&#xff0c;可以使我…

速看!2024中国(厦门)国际康复医疗展览会

2024中国&#xff08;厦门&#xff09;国际康复医疗展览会 2024 China (Xiamen) International Rehabilitation Medical Exhibition 时 间&#xff1a;2024年8月13-15日 August 13-15, 2024 地 点&#xff1a;厦门国际会展中心 Xiamen International Conference & Exh…

Java工具类:批量发送邮件(带附件)

​ 不好用请移至评论区揍我 原创代码,请勿转载,谢谢! 一、介绍 用于给用户发送特定的邮件内容,支持附件、批量发送邮箱账号必须要开启 SMTP 服务(具体见下文教程)本文邮箱设置示例以”网易邮箱“为例,其他如qq邮箱或企业邮箱均可,只要在设置中对应开启SMTP及授权码等操…

Unity URP 2022 Release-Notes

&#x1f308;Unity URP 2022 Release-Notes 本文信息收集来自自动搜集工具&#x1f448; 版本更新内容2022.3.15URP: Building 3D Sample Scenes (URP) Project fails(UUM-57781)2022.3.14URP: Fixed partially corrupted Android screen when Vulkan display rotation durin…

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day11】 —— MyBatis1

市面上主流ORM框架: EJB&#xff1a;重量级、高花费的ORM技术&#xff0c;支持JPA&#xff0c;尤其是EJB3低侵入式 的设计&#xff0c;增加了Annotation Hibernate&#xff1a;开源&#xff0c;支持JPA &#xff0c;被选作JBoss的持久层解决方案 iBatis&#xff1a;”SQL Mappi…

SpringBoot多数据源配置之事务管理

SpringBoot多数据源配置之事务管理 1.Spring编程式事务1.1 简单案例 2.mybatis多数据源事务2.1 简单mybatis项目结构2.2 application.yml配置2.3 读写数据源配置 3.测试 1.Spring编程式事务 Spring编程式事务是一种通过编写具体代码来实现事务管理的方式。 在编程式事务中, 开…

如何用ChatGPT进行论文撰写?

原文链接&#xff1a;如何用ChatGPT进行论文撰写&#xff1f;https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601619&idx1&snb686fbe87dedfac2df3a6afe780b2ffe&chksmfa820c34cdf5852251dca64597024ea62ddbde280086535ec251f4b62b848d9f9234688384e6…

vim使用指南:指令、配置、插件、异常

文章目录 vi / vim命令模式插入模式光标定位复制粘贴删除撤销替换删除查找 底行模式保存退出行号查找多开其他 视图模式注释 异常vim配置vim插件 vi / vim vim的本质是一个编辑器&#xff0c;是一种多模式的编辑器&#xff0c;只能进行读写操作&#xff0c;不能进行编译编辑器…

Windows系统下安装paddle

开始使用_飞桨-源于产业实践的开源深度学习平台 (paddlepaddle.org.cn) 命令行下&#xff1a; python -m pip install --upgrade pip --user python -m pip install paddlepaddle2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple 报异常 ERROR: Could not install packa…

rlwrap工具包安装与配置

linux系统中disql模式下不可以上翻 很不方便 我找到了很好用的rlwrap工具 可以实现disql模式下的上翻等一些操作。 同理dmrman模式下也可以按此操作实现上翻命令 安装包下载&#xff1a;https://fossies.org/linux/privat/rlwrap-0.46.1.tar.gz/ 先进行yum源配置 [rootstudy…

java:反射和注解

反射 在运行时动态地获取一个类的信息并操作该类的属性和方法的技术 可以解决一些常规编程中难以预知类的情况下的问题 eg: 实例化一个类:通过反射可以根据类名动态实例化一个对象 调用类的方法:通过反射可以根据方法名动态地调用一个类的方法 获取和设置类的字段:通过反…