PX4 v1.16 源码解读总目录
一、系列说明
本系列基于 PX4 Autopilot v1.16.0 源码展开,围绕多旋翼飞控的核心执行链路,分五大模块逐层剖析。
覆盖模块:
- 平台层(Board/SOC/BSP/uORB/WorkQueue)
- Commander 决策层(飞行模式状态机)
- EKF2 状态估计(延迟时间融合卡尔曼滤波)
- Navigator 导航(自动任务/RTL/围栏)
- mc_pos_control 位置控制(串级 PID + 推力映射)
文档约定:
- 代码块以 PX4 v1.16.0 为准,不同版本细节可能存在差异
- 数学公式以 LaTeX 形式展示
- Mermaid 流程图用于替代丢失的原始截图
- 文中链接均为本系列内部交叉引用
二、各模块文档索引
01-平台层(8 篇)
| 序号 | 标题 | 关键概念 |
|---|---|---|
| 01 | Board 层硬件配置 | GPIO/ADC/PWM/HRT/PX4IO |
| 02 | SOC 与 BSP 层平台抽象 | STM32F7/NUTTX/HAL |
| 03 | 固件编译与烧写流程 | make/CMake/Bootloader |
| 04 | 交叉编译顺序详解 | Kconfig/CMake/Ninja/链接 |
| 05 | 模块入口与运行模式 | ModuleBase/WorkQueue/线程 |
| 06 | uORB 通信机制(上) | Topic/DeviceNode/Manager |
| 07 | uORB 通信机制(下) | WorkQueue集成/dt/HRT |
| 08 | DShot 电机转向修改 | DShot/MAVLink/NSH |
02-Commander 决策层(7 篇)
| 序号 | 标题 | 关键概念 |
|---|---|---|
| 01 | Commander 模块框架 | 主循环/状态机/健康监控 |
| 02 | 参数系统与 Kconfig | PARAM_DEFINE/Kconfig |
| 03 | 飞行模式编码与映射 | nav_state/MAVLink custom_mode |
| 04 | 控制模式生成逻辑 | vehicle_control_mode flags |
| 05 | 模式需求位图 | mode_req_bitmask/传感器依赖 |
| 06 | Commander 核心调度 | arm/disarm/failsafe/mode切换 |
| 07 | HomePosition 管理 | Home设定/RTL基准/Failsafe |
03-状态估计-EKF2(10 篇)
| 序号 | 标题 | 关键概念 |
|---|---|---|
| 01 | EKF2 目录与层级架构 | 延迟融合架构/目录结构 |
| 02 | common.h 数据结构 | imuSample/gnssSample/parameters |
| 03 | RingBuffer 环形缓冲区 | 延迟对齐/pop_first_older_than |
| 04 | State.h 状态向量 | 24维状态/ESKF/协方差P |
| 05 | EKF2 应用管理层 | EKF2.cpp/多实例/Selector |
| 06 | ekf.cpp 核心主循环 | update/predictState/初始化 |
| 07 | 协方差矩阵预测 | P=FPF’+Q/初始化/约束 |
| 08 | 融合调度 control.cpp | controlFusionModes/新息门 |
| 09 | 高度融合与多源仲裁 | 多高度源/参考切换/航向融合 |
| 10 | 辅助函数与卡尔曼更新 | measurementUpdate/精度报告 |
04-Navigator 导航(4 篇)
| 序号 | 标题 | 关键概念 |
|---|---|---|
| 01 | Navigator 模块架构总览 | 7 层架构/输入输出/与上下游接口 |
| 02 | navigation.h 与数据协议 | NAV_CMD/mission_item_s |
| 03 | Navigator 主循环与模式调度 | run()/MissionBase/RTL策略树 |
| 04 | 围栏安全与精确降落 | Geofence/PrecLand状态机 |
05-位置控制(3 篇)
| 序号 | 标题 | 关键概念 |
|---|---|---|
| 01 | mc_pos_control 总览 | 全局控制链路/模块架构 |
| 02 | MulticopterPositionControl 主循环 | 多级滤波/EKF重置保护/起飞状态机 |
| 03 | PositionControl 串级控制算法 | 位置P+速度PID+推力映射+抗饱和 |
本系列持续更新中,内容以 PX4 v1.16.0 为基准。
如有错误或遗漏,欢迎私信联系交流。