🤖 ROS 核心通信机制
消息传递精讲 · 30章 从入门到实战
📘
完整目录 · 30 章节
01
ROS概述与核心概念
ROS是什么
为什么需要ROS
核心设计哲学
节点/话题/服务/参数
02
工作空间与功能包
工作空间结构
创建与编译
功能包依赖
package.xml / CMakeLists.txt
03
话题通信基础
发布/订阅模式
Publisher & Subscriber API
自定义消息类型
04
话题通信实战
编写发布者节点
编写订阅者节点
编译与运行
rostopic命令行
05
话题通信进阶
消息过滤器
时间同步器
单线程/多线程Spinning
06
服务通信基础
请求/响应模式
Service & Client API
自定义服务(.srv)
07
服务通信实战
服务端节点
客户端节点
rosservice命令行
阻塞/非阻塞调用
08
参数服务器
参数服务器概念
rosparam命令行
C++/Python读写参数
私有/全局参数
09
动作通信基础
Goal/Feedback/Result
actionlib库
自定义动作(.action)
10
动作通信实战
动作服务端
动作客户端
可视化反馈与结果
11
消息定义与序列化
ROS消息类型系统
标准消息包
消息序列化机制
12
自定义消息与跨包依赖
创建自定义msg
多功能包复用消息
默认值与常量
13
时间与时钟
Wall Time vs Sim Time
Time & Duration
定时器Timer
14
日志系统
rosout / rqt_console
日志级别
代码中输出日志
15
TF坐标变换基础
TF树概念
静态/动态坐标变换
tf2库发布与监听
16
TF坐标变换实战
TF广播器
TF监听器
tf2_echo / rviz可视化
17
NodeHandle与命名空间
NodeHandle作用
全局/相对/私有命名空间
节点名称重映射
18
启动文件 (Launch)
launch语法
node/param/remap/include/group
arg参数传递
19
ROS Bag数据记录与回放
rosbag命令行
录制与回放话题
C++ API读写bag
20
分布式通信
ROS_MASTER_URI / ROS_HOSTNAME
多机通信配置
跨网络延迟与可靠性
21
消息过滤与处理
话题统计(bw/hz)
消息去重
基于条件的消息过滤
22
回调机制与多线程
Spinning模型 (spinOnce vs spin)
AsyncSpinner / MultiThreadedSpinner
回调队列
23
零拷贝传输
Nodelet机制
零拷贝原理
Nodelet加载与使用场景
24
ROS 2通信机制对比
ROS1 vs ROS2 架构
DDS中间件
QoS策略 / 话题服务差异
25
消息传递性能优化
消息大小控制
序列化效率
频率控制 / 带宽优化
26
安全通信
ROS1安全局限性
ROS2安全机制(SROS2)
访问控制与加密
27
调试与可视化工具
rqt_graph / rqt_topic
rqt_plot / rviz
rqt_reconfigure
28
常见通信问题排查
话题收不到
服务超时
参数读取失败
时间不同步 / 网络不通
29
综合实战一
多传感器数据采集
激光雷达+摄像头+IMU
话题同步与时间戳对齐
30
综合实战二
机器人导航通信框架
集成话题/服务/动作/TF
完整数据流闭环