飞控中间件uORB通信机制与自定义消息实战
📚 共计 30 章节
第01章
uORB初探
什么是uORB?为什么飞控需要它?uORB在PX4中的位置。
概念
背景
第02章
发布-订阅模型
理解核心设计模式,主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。
模式
架构
第03章
uORB核心数据结构
uORB::Publication、uORB::Subscription、orb_id_t。
结构体
API
第04章
消息定义文件(.msg)
.msg文件语法、基本类型、数组、嵌套消息。
语法
定义
第05章
实战:定义第一个自定义消息
创建一个包含IMU数据的自定义消息。
实战
IMU
第06章
消息生成器
理解uORB消息自动代码生成流程(msg → uORB结构体)。
代码生成
工具链
第07章
发布消息API
orb_advertise、orb_publish的用法与参数详解。
API
发布
第08章
订阅消息API
orb_subscribe、orb_copy、orb_check的用法与参数详解。
API
订阅
第09章
同步与异步通信
轮询 vs 中断回调,uORB如何实现实时性。
实时性
机制
第10章
多订阅者场景
多个模块订阅同一个Topic,数据竞争与一致性。
并发
一致性
第11章
多发布者场景
多个模块发布同一个Topic,数据覆盖与优先级。
覆盖
优先级
第12章
Topic的实例化
多实例Topic(instance)的概念与使用场景。
实例
多路
第13章
实战:多实例消息
发布多个GPS数据流。
实战
GPS
第14章
uORB设备文件
/dev/uorb与文件系统交互,调试利器。
调试
文件系统
第15章
uORB与DDS桥接
uORB如何与ROS2/DDS互通(uXRCE-DDS)。
桥接
ROS2
第16章
性能分析
uORB的延迟、吞吐量测试方法。
性能
测试
第17章
内存管理
uORB内部缓存机制,如何避免内存泄漏。
内存
缓存
第18章
实战:uORB监控模块
打印所有活跃Topic。
实战
监控
第19章
uORB与多线程
线程安全、锁机制、原子操作。
多线程
安全
第20章
自定义消息命名规范
命名空间、消息命名最佳实践。
规范
最佳实践
第21章
实战:飞控状态机消息
自定义Arm/Disarm/模式切换消息。
实战
状态机
第22章
序列化与反序列化
跨平台传输的基石。
序列化
跨平台
第23章
NuttX vs Linux差异
POSIX接口适配。
系统
适配
第24章
实战:Linux standalone
脱离飞控硬件运行uORB。
实战
Linux
第25章
uORB消息日志记录
ulog与uORB的集成。
日志
ulog
第26章
实战:自定义传感器驱动
通过uORB实现传感器驱动。
实战
驱动
第27章
启动与初始化
模块启动顺序与依赖管理。
启动
依赖
第28章
常见错误与调试
orb_publish失败、订阅不到数据、数据陈旧。
调试
错误
第29章
实战:完整通信Demo
发布-订阅-处理全流程。
实战
Demo
第30章
课程总结与展望
uORB的未来、在eVTOL/无人机集群中的应用。
总结
展望