【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套

news2024/9/28 15:31:24

【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套

  • 在工作空间内新建一个功能包
  • 在msg内创建对应的msg文件
  • 创建名为TestMsg.msg的文件
  • 创建名为TestSubMsg.msg的文件(在前一个msg文件中引用)
  • 修改CmakeList.txt
  • 修改package.xml文件
  • 编译

在工作空间内新建一个功能包

ros2 pkg create --build-type ament_cmake test_msg

可以看见创建了一个名为test_msg的功能包
cd到功能包内,创建msg文件夹

cd test_msg
mkdir msg

在msg内创建对应的msg文件

需要注意的是:

  • ROS2中的msg文件应大写字母开头
  • msg文件中的header,在ros2中需写成std_msgs/Header
  • msg文件名不支持下划线
  • msg文件中的变量定义不支持大写字母
  • msg文件名首字母应大写 msg文件中不应有=的赋值操作

创建名为TestMsg.msg的文件

- 此次创建的msg文件存在自定义msg的引用,即文件中的TestSubMsg

int64 x
TestSubMsg test_sub

创建名为TestSubMsg.msg的文件(在前一个msg文件中引用)

float32 test

在这里插入图片描述

修改CmakeList.txt

添加如下内容
注意!

  • 若msg文件内使用了自定义的msg格式,则编译时应先加入自定义msg格式
find_package(ament_cmake REQUIRED)
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
  "msg/TestSubMsg.msg"
  "msg/TestMsg.msg"
 )

在这里插入图片描述

修改package.xml文件

添加如下内容

<build_depend>rosidl_default_generators</build_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>

编译

注意!!!
一定要停用conda环境

conda deactivate
conda deactivate
conda deactivate

直接编译整个包

colcon build

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

获取交易软件【热度排行数据】2024年9月26日,一股淡淡的牛味

2024年9月26日&#xff0c;一股淡淡的牛味 概念热度的排行榜和行业热度排行榜。 像是这种类型的数据&#xff0c;能不能加到我们的量化模型里面&#xff0c;作为选股和下单指令的判断条件之一呢&#xff1f; 下面图片&#xff0c;有很多数据接口&#xff0c;可以1对1帮助您解…

水面巡检船垃圾漂浮物检测系统源码分享

水面巡检船垃圾漂浮物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …

由于找不到vcruntime140.dll的原因分析及6种解决方法分享

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是找不到vcruntime140.dll文件。那么&#xff0c;究竟vcruntime140.dll是什么&#xff1f;为什么会出现找不到的情况呢&#xff1f;本文将详细解析vcruntime140.dll的作用以及丢失的原因&#…

MySql Explain优化命令使用

MySql Explain优化命令使用 truncate table student // 自增id 从 0 开始 delete from student // 自增id 会保留 &#xff0c; 108 区别&#xff1a; 1&#xff1a;自增id 2&#xff1a;delete 可以恢复 truncate 无法恢复 前言 EXPLAIN 是一个用于获取 SQL 语句执行计划的…

从碳基到硅基,个人记忆留存方兴未艾!

关注我们 - 数字罗塞塔计划 - 说到记忆&#xff0c;我们可能会想到海马体&#xff0c;海马体是人类大脑中负责将短时记忆向长期存储转换的部分。科学家指出&#xff0c;海马体能够帮助大脑建立信息归档系统&#xff0c;并在需要的时候&#xff0c;快速将有用的信息检索出来。因…

HarmonyOS鸿蒙开发实战( Beta5.0)图片压缩实践方案

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

JavaJUnit包 JUnit5断言assert用法

慢慢来&#xff0c;一切都会解决的 —— 24.9.26 在Java中使用JUnit包下断言assert&#xff0c;要区分JUnit4和JUnit5的区别 JUnit4不支持一些断言句 需要引入JUnit5的支持 引入步骤&#xff1a; ① ② 在settings中点击plugins插件&#xff0c;搜索JUnit&#xff0c;选择…

89个H5小游戏源码

下载地址&#xff1a;https://download.csdn.net/download/w2sft/89791650 亲测可用&#xff0c;代码完整&#xff0c;都是htmljs&#xff0c;保存到本地即可。 游戏截图&#xff1a;

uniapp出现 下拉框等组件被遮挡 的分析

目录 1. 问题所示2. 代码复现3. 解决方法3.1 下拉框被遮挡3.2 uni-collapse-item 无法下拉的问题 1. 问题所示 下拉框被遮挡的问题&#xff1a; uni-collapse-item组件无法下拉的问题&#xff1a; 2. 代码复现 博主的代码精简如下&#xff1a; <template><view>…

基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

Transcipher:从对称加密到同态加密

摘要 本文介绍了Transcipher的概念。在Transcipher的框架下&#xff0c;用户使用高效的对称加密&#xff0c;对自己的数据进行加密&#xff0c;然后将密文和私钥的同态加密密文传输给服务器。服务器进行同态解密&#xff0c;得到用户数据同态加密的密文。Transcipher通过将计算…

研控伺服驱动器通过EtherCAT转profinet网关与西门子PLC1200连接

本案例涉及西门子1200PLC与研控总线型混合伺服驱动器的连接&#xff0c;其在正常工作时需支持EtherCAT协议并作为EtherCAT从站&#xff0c;而监控系统中的PLC支持PROFINET协议。在本案例中采用EtherCat转ProfiNet网关&#xff0c;以实现PLC和伺服驱动器的整体交互。下图呈现了自…

andon安灯系统让生产异常快速高效解决

在现代化工厂的生产过程中&#xff0c;设备故障、物料短缺、工艺异常等突发事件屡见不鲜。这些异常情况不仅会直接影响生产效率&#xff0c;还会造成生产线停滞、产品质量下降&#xff0c;甚至引发安全事故。如何快速有效地解决这些异常&#xff0c;是提升生产效率和产品质量的…

java 解析excel

在Java中解析Excel文件&#xff0c;可以使用Apache POI库。以下是一个简单的例子&#xff0c;展示如何使用Apache POI读取一个Excel文件&#xff08;假设为.xlsx格式&#xff09;的内容。 首先&#xff0c;确保你的项目中包含了Apache POI的依赖。如果你使用Maven&#xff0c;…

CSRF高级防御绕过

1&#xff09;回顾low级别做过csrf页面的密码重置&#xff0c;重复之前的操作&#xff0c;我们发现级别调整中级之后&#xff0c;报错如下 2&#xff09;检查源码 进入dvwa源码&#xff0c;查找到checktoken&#xff1a; 3&#xff09;在dvwa-csrf页面上&#xff0c;抓包 http…

无人机之虚拟云台技术篇

一、概念解释 虚拟云台技术&#xff0c;并非直接安装在无人机上的机械装置&#xff0c;而是通过软件算法和传感器技术&#xff0c;模拟出物理云台的功能&#xff0c;实现对相机或传感器的稳定控制。这种技术通过高精度的算法和实时数据处理&#xff0c;能够在无人机飞行过程中&…

73 矩阵置零

解题思路&#xff1a; \qquad 原地算法&#xff0c;指除原有输入资料所占空间外&#xff0c;使用额外空间尽可能少(常数空间)的算法。本题容易想到的一种解法是&#xff0c;对于m x n的矩阵&#xff0c;一次遍历把含有0元素的行号、列号记录下来&#xff0c;然后再一次遍历把对…

uniapp 使用Vue3 setup引入 uniapp 的onReachBottom

在page.json中加入**“onReachBottonDistance”: 50**&#xff0c;这是距离底部多少开始触发 然后再对应的页面通过import将uniapp的api引入进去 dcloudio/uni-app是不用单独下载的&#xff0c;直接用就行 import {onReachBottom,} from dcloudio/uni-app;然后直接使用就好

centos7 更新 yum源 为 阿里云 LTS

centos7 更新 yum源 为 阿里云 按照下面的 步骤 1,2&#xff0c;3,4 来一遍 参考文档 CentOS yum源设置为国内aliyun yum源 https://developer.aliyun.com/article/1523301?spm5176.26934562.main.2.16c938e4ys9prQ CentOS 镜像 https://developer.aliyun.com/mirror/cent…

【【通信协议之ICMP协议的FPGA实现】】

通信协议之ICMP协议的FPGA实现 整体的实现框图如下所示 arp_rx.v module arp_rx#(//开发板MAC地址 00-11-22-33-44-55parameter BOARD_MAC 48h00_11_22_33_44_55, //开发板IP地址 192.168.1.10 parameter BOARD_IP {8d192,8d168,8d1,8d10} )(input …