
关键词:无人机、飞控、PX4、ArduPilot、uORB、MAVLink、ROS 2、EKF、串级 PID、实时系统前言"无人机的软件架构"这个话题,很多资料一上来就画一张分层图,然后逐层贴名词。但实际做过项目就知道:无人机的软件分层不是设计出来的,是被硬件和实时性约束逼出来的。一个陀螺仪 8 kHz 出数据、电调需要 1 kHz 的指令刷新、视觉 SLAM 单帧要跑 30 ms、地面站链路延迟 100 ms 抖动 50 ms——这四个数量级的时间尺度不可能塞进同一个执行体里。于是就自然分裂成了"硬实时飞控 + 软实时机载计算机"的双平台结构,以及飞控内部的多频率任务分层。这篇文章按这个逻辑展开:先讲硬件约束,再讲软件如何分层应对,最后落到具体框架和代码。一、硬件基础:软件架构的边界条件1.1 典型系统组成┌──────────────── 无人机机体 ────────────────┐ │ │ ┌──────────┐ │ ┌───────────────┐ ┌───────────────┐ │ │ 遥控器 │───┼─→│ 接收机 RC │ │ 伴飞计算机