无人机技术栈拆解 ,要拆解的是:怎么才能做一台能飞的出来。不是下个固件、买四颗电机就算。一台四轴至少要机架和动力、飞控(板 + 软件)、遥控或数传、电池和电源采样,想定点还要 GPS。开源飞控这边,常用 PX4 刷在 Pixhawk 上,地面站用 QGroundControl 。仓库 github.com/PX4/PX4-Autopilot,文档 docs.px4.io。协议 BSD-3-Clause。
做不出来的常见原因,不是「C 语言不够」。机架和电机不匹配、飞控机型选错、没遥控却以为航点能救、室内没卫星就开定点------每一层都像「飞机出问题了」。先按技术栈把零件和软件对齐,再看怎么飞的问题。
做一台出来要怎么搞

图1:从零件到能飞
text
机架 + 电机 + 电调 + 桨 + 电池
→ 飞控板(Pixhawk 一类)刷 PX4
→ 接 IMU 已在板上;外接 GPS / 罗盘
→ 接接收机或数传;电脑装 QGroundControl
→ 选机架、校准、卸桨看转向
→ 室外锁星、低高度先飞姿态
想少焊接,开源圈子常拿 Holybro X500 这类套件:碳板、电机、电调预装,飞控出厂往往已是 PX4。套件只是把机架和动力摆好,校准和试飞仍要做,不是开箱航拍机。自己淘零件也行,路径一样,只是电调协议、桨距、重心更容易踩坑。动力要留余量:四轴悬停大概只用掉推力的一半,电池、GPS、相机一加上去,余量不够就表现为「能解锁、一离地就掉」。桨比电机晚选,直径和螺距对不上,电流会先打满电调,飞控日志里却像估计器在抖。动力要留余量:四轴悬停大概只用掉推力的一半,电池、GPS、相机一加上去,余量不够就表现为「能解锁、一离地就掉」。桨比电机晚选,直径和螺距对不上,电流会先打满电调,飞控日志里却像估计器在抖。
飞控软件干的是中间那一截:传感器进来,估计姿态和位置,再混控到四路电调。遥控器给的是人想怎么飞,不是油门直通电机。电脑上的 SITL 能先把「假传感器 → 假电机」跑通,那是软件闭环,不是天上那台已经做出来了。
固定翼、穿越机也能「做一台」,栈不一样:固定翼要舵机供电和空速;穿越机常刷 Betaflight,主场是手感不是航点。这篇按 能定点的开源四轴 把栈写完。ArduPilot 也能做同一类机,板子能刷,参数表不要和 PX4 混用。
技术栈每一部分都是什么

图2:机架、飞控、链路、地面站
| 层 | 你要备什么 | 缺了会怎样 |
|---|---|---|
| 机架与动力 | 碳管/塑料架、电机、电调、桨、电池 | 飞控再好也没升力,或桨打碳管 |
| 飞控硬件 | Pixhawk 一类,减震、朝向装对 | IMU 抖、磁干扰,定点乱飘 |
| 飞控软件 | PX4:驱动、估计、控制、混控 | 机型选错,一推油门就翻 |
| 位置传感器 | 外置 GPS / 罗盘,远离电源线 | 能姿态、不能航点回家 |
| 遥控与数传 | 接收机进飞控;数传走 MAVLink | 没杆就没法救;没数传地上看不到 |
| 地面站 | QGroundControl:刷机、校准、任务 | 电脑不转桨,只配置和监视 |
| 可选 | 图传、伴飞电脑(ROS2/视觉) | 没有仍能飞;有了也不该代替混控 |
PX4 在板上跑 NuttX ,模块之间用 uORB 传传感器和姿态。对外是 MAVLink 。伴飞电脑(树莓派一类)可以算视觉、发位置设定,每秒转桨仍是飞控的事。图传是给人看的,不是技术栈里让飞机悬停的那一层。
供电要拆开:飞控要干净 5V;电机电流很大,走电源模块采样。四轴电调一般电池直供。舵机若以后上固定翼,PWM 排针还要单独 BEC。遥控生态常是 EdgeTX 手台加 ExpressLRS 射频,和 PX4 是配套关系,不是 PX4 仓库里长出来的遥控器。接收机协议要和飞控口对上(CRSF 一类),插错口在地面站里像「永远校不准杆」。GPS 座要架高、朝向和飞控约定一致,贴着电调线焊,后面定点转圈会先怪 PX4。
选栈时记住边界:PX4 / ArduPilot 适合「要导航的机」;Betaflight 适合「要手感的穿越机」。板子外形都像飞控,刷错栈,校准界面都对不上。
怎样才算无人机做出来了

图3:整机完成了,还要校准才能飞
零件摆齐不等于做出来。按层过一遍,才算一台能飞的机。
1. 仿真先证明软件栈能闭环。 按文档跑 PX4 SITL,QGC 连上,切姿态、切定点。过不了,先别拧真机螺丝。过了,只说明固件逻辑通,不说明你的减震和接线通。
2. 真机对机架,传感器校准。 USB 刷稳定版,机架必须是四轴布局。加速度计、罗盘、遥控、电调按当前文档做。罗盘离电机线和充电器。飞控箭头朝机头,装不正要在软件里改朝向,不要靠「飞着再看」。
3. 卸桨,看动力层。 通电看四颗电机转向是不是文档里的布局,桨正反有没有拿错。反了在地面站改。解锁条件不满足(传感器不健康、安全开关),电机不转是保险,不是砖了。
4. 室外把位置层接进栈。 装桨,GPS 锁星后再试定点、返航。室内没光流就不要开位置模式。第一次低高度对姿态和杆是否一致,再试高度。风大、电压低、罗盘告警先降。
| 现象 | 更可能缺哪一层 |
|---|---|
| 电机不转 | 动力接线、电调协议、未解锁 |
| 一推油门翻 | 机架类型、电机转向、桨正反 |
| 能飞但不稳、定点转圈 | GPS/罗盘、飞控朝向、减震 |
| QGC 没数据 | 数传/USB,不是电机坏了 |
| 仿真能飞真机不能 | 校准和安装,不是「再下一份 PX4」 |
日志在飞控 SD 卡里。对着视频只拧 PID,等于跳过机架几何和传感器。抄别人满页参数,是把别人的碳管长度套到你的架子上。
边界
- 做一台开源四轴:套件能缩短接线,不能省略校准和空域规则。
- PX4 是飞控软件,不是整机。X500 是硬件清单的一种,不是唯一做法。
- 图传、避障、伴飞电脑都是加层,先把动力和飞控飞稳。
- 室外飞行要空域和实名,技术栈跳不过。
- 不要把 PX4、ArduPilot、Betaflight 的参数表刷进同一套「通用教程」。
参考
https://github.com/PX4/PX4-Autopilot
https://docs.px4.io/main/en/getting_started/px4_basic_concepts.html
https://docs.px4.io/main/en/assembly/
https://docs.px4.io/main/en/config/
https://docs.px4.io/main/en/simulation/
https://github.com/mavlink/qgroundcontrol
https://docs.holybro.com/drone-development-kit/px4-development-kit-x500v2
