当前位置: 首页 > news >正文

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

【从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

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 树莓派pico上手
  • 著名建筑物检测与识别系统源码分享
  • 基于densenet模型在RML201610a数据集上的调制识别【代码+数据集+python环境+GUI系统】
  • 【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第四篇-着色器投影-接收阴影部分】
  • 实时湖仓架构演变
  • Llama 3.2:利用开放、可定制的模型实现边缘人工智能和视觉革命
  • OpenCV
  • Focalboard开源项目管理系统本地Windows部署与远程访问协同办公
  • 住宅ip有什么特殊点
  • 工作安排 - 华为OD统一考试(E卷)
  • wx小程序中,商城订单详情显示还有多少分钟关闭
  • 深度学习500问——Chapter15:异构计算,GPU和框架选型(1)
  • React Native、Uni-app、Flutter优缺点对比
  • Mac 电脑配置yolov8运行环境实现目标追踪、计数、画出轨迹、多线程
  • 借用连接2-得到主库或从库池子连接
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Android框架之Volley
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • express.js的介绍及使用
  • Java 23种设计模式 之单例模式 7种实现方式
  • Just for fun——迅速写完快速排序
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Redux 中间件分析
  • Spring声明式事务管理之一:五大属性分析
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端学习笔记之观察者模式
  • -- 数据结构 顺序表 --Java
  • 一道面试题引发的“血案”
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • PostgreSQL之连接数修改
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #{} 和 ${}区别
  • #控制台大学课堂点名问题_课堂随机点名
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (06)金属布线——为半导体注入生命的连接
  • (1) caustics\
  • (2020)Java后端开发----(面试题和笔试题)
  • (30)数组元素和与数字和的绝对差
  • (6)添加vue-cookie
  • (C语言)二分查找 超详细
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (多级缓存)多级缓存
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (简单) HDU 2612 Find a way,BFS。
  • (六)激光线扫描-三维重建
  • (强烈推荐)移动端音视频从零到上手(上)
  • (算法设计与分析)第一章算法概述-习题
  • (一一四)第九章编程练习
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m