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

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

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

bash 复制代码
ros2 pkg create --build-type ament_cmake test_msg

可以看见创建了一个名为test_msg的功能包

cd到功能包内,创建msg文件夹

bash 复制代码
cd test_msg
mkdir msg

在msg内创建对应的msg文件

需要注意的是:

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

创建名为TestMsg.msg的文件

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

python 复制代码
int64 x
TestSubMsg test_sub

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

python 复制代码
float32 test

修改CmakeList.txt

添加如下内容

注意!

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

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

修改package.xml文件

添加如下内容

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环境

bash 复制代码
conda deactivate
conda deactivate
conda deactivate

直接编译整个包

bash 复制代码
colcon build
相关推荐
aqi0018 小时前
15天学会AI应用开发(五)使用AI摘要来压缩上下文消息
人工智能·python·大模型·ai编程·ai应用
Agent手记18 小时前
如何利用大模型让RPA具备“阅读理解”能力?端到端智能体演进的技术架构全解析
人工智能·ai·架构·rpa
叶梓翎18 小时前
AI语义搜索本地素材一键整合包官方下载
人工智能·python·图搜索
网络与设备以及操作系统学习使用者18 小时前
豆包情感化,DeepSeek理性化,OpenMAIC系统化
人工智能·学习
枫叶林FYL18 小时前
【强化学习】8 AssistMimic:基于多智能体强化学习的物理 grounded 人际协助控制
人工智能·机器学习·架构
2601_9583529018 小时前
AR-1106 量产落地白皮书:中小厂商如何用 1/10 成本实现语音交互功能
人工智能·ar·语音识别·智能机器人·音频处理模块
啦啦啦_999918 小时前
1. NLP课程大纲
人工智能·自然语言处理
子榆.18 小时前
CANN TensorFlow适配器:当tf.matmul跑在昇腾NPU上时在底层发生了什么
人工智能·neo4j·llama
Black蜡笔小新19 小时前
企业级AI模型工作站DLTM深度学习推理工作站助力制造业迈入智能质检新时代
人工智能·深度学习
风落无尘19 小时前
《智能重生:从垃圾堆到AI工程师》——第十章 多模态与具身
人工智能·transformer·视频编解码