ROS2 自定义消息 · 服务实战
📚 30 章完整目录
🎯 友好
01
ROS2与自定义消息概述
为什么需要自定义消息?ROS2消息系统架构简介。
02
开发环境准备
安装ROS2 Humble、创建ROS2工作空间、配置环境变量。
03
创建功能包
使用ros2 pkg create创建功能包,理解功能包结构。
04
定义.msg文件
msg文件语法规则、基本数据类型、数组与嵌套消息。
05
编译自定义消息
修改CMakeLists.txt和package.xml,编译并验证消息。
06
使用自定义消息发布
编写Publisher节点,发布自定义消息类型。
07
使用自定义消息订阅
编写Subscriber节点,接收并处理自定义消息。
08
消息中的常量定义
在.msg文件中定义常量,使用场景与示例。
09
消息中的默认值
为消息字段设置默认值,避免空指针问题。
10
消息嵌套实战
在一个消息中引用另一个自定义消息类型。
11
数组与序列化
定义固定长度数组与可变长度数组,理解序列化机制。
12
时间戳与头文件
使用std_msgs/Header,为消息添加时间戳和坐标系信息。
13
服务通信基础
ROS2服务通信模型,与话题通信的区别。
14
定义.srv文件
srv文件语法规则,请求与响应结构。
15
编译自定义服务
修改CMakeLists.txt和package.xml,编译并验证服务。
16
编写服务端节点
实现服务回调函数,处理请求并返回响应。
17
编写客户端节点
创建客户端,发送请求并等待响应。
18
同步与异步客户端
理解同步调用与异步调用的区别,适用场景。
19
服务超时处理
设置客户端超时,处理服务不可用的情况。
20
复杂服务类型
在服务中使用嵌套消息和数组作为请求/响应。
21
多请求处理
服务端如何并发处理多个客户端请求。
22
自定义消息与服务的调试
使用ros2 interface、ros2 topic echo等工具。
23
launch文件集成
在launch文件中启动自定义消息的发布订阅节点。
24
参数服务器与自定义消息
在节点参数中使用自定义消息类型。
25
跨功能包引用消息
一个功能包的消息如何在另一个功能包中使用。
26
消息兼容性与版本管理
消息字段变更时的兼容性策略。
27
性能优化
减少消息拷贝,使用零拷贝传输(Zero Copy)。
28
实战项目一:传感器数据采集
构建一个自定义传感器数据采集系统。
29
实战项目二:机器人监控与命令服务
构建机器人状态监控与命令服务系统。
30
课程总结与进阶方向
ROS2生态展望,推荐学习资源。