1. ArduPilot 系统概述:从零到一,先搞清楚你手里拿的是什么

各位工程师朋友,大家好。我是你们这门课的老朋友。在咱们正式开始动手修飞机、调参数之前,我觉得有必要先花点时间,把 ArduPilot 这个大家伙的来龙去脉捋清楚。你想想看,一个你连它爹妈是谁、家里有几口人都不知道的系统,出了问题你怎么可能快速定位?

我个人习惯,拿到一个新平台,第一件事不是急着烧固件,而是先看它的“族谱”。ArduPilot 发展到现在,已经快二十年了。最早它叫 ArduPilot,是 DIY Drones 社区里一帮极客搞出来的,那时候硬件还很简陋,用的是 Arduino 板子。后来随着 Pixhawk 项目的诞生,它才真正走向了专业级飞控的道路。

核心认知: ArduPilot 不是一个固件,而是一整套自动驾驶软件生态。它支持从四轴飞行器到固定翼飞机,从无人车到潜水艇,甚至还有无人船。你用的每一个分支,背后都是成千上万小时的实飞验证。

1.1 主要分支:你修的是飞机、车,还是船?

ArduPilot 目前有四个主力分支,我分别说说它们的定位和常见坑点。

分支名称 适用平台 典型机型 我遇到过的典型问题
ArduCopter 多旋翼、直升机 四轴、六轴、共轴直升机 震动导致 EKF 发散,炸机重灾区
ArduPlane 固定翼、VTOL 飞翼、常规布局、垂直起降 空速管堵塞导致失速,我摔过一架
ArduRover 无人车、履带车 阿克曼转向、差速转向 转向 PID 调不好,原地画圈
ArduSub 水下机器人 ROV、AUV 压力传感器漂移,深度控制不稳

嗯,这里要注意。很多人以为 ArduPilot 只有 Copter,其实 Plane 和 Rover 的用户量也很大。我去年帮一个客户修过一台农业无人车,用的就是 Rover 固件,问题出在转向角度限幅没设对,车子一直走 S 形。

1.2 硬件平台:别让板子拖了后腿

硬件是飞控的骨架。ArduPilot 支持的硬件平台非常多,但咱们实战中最常碰到的就那几款。我按从入门到进阶的顺序给你排个序。

  • Pixhawk 系列(Pixhawk 1, Pixhawk 4):最经典的板子,STM32F4 主控,接口齐全。但要注意,Pixhawk 1 的 SD 卡槽容易接触不良,我建议你飞之前用胶带固定一下。
  • Cube 系列(Cube Black, Cube Orange):Pixhawk 的升级版,用了 STM32F7/H7,算力更强,带减震设计。我个人比较喜欢 Cube Orange,双处理器冗余,跑高级算法不卡顿。
  • Here+ / Here3 GPS:这是配套的 RTK GPS 模块。Here+ 用的是 u-blox M8P,Here3 升级到了 F9P。我踩过一个坑:Here+ 的罗盘容易受大电流干扰,安装时一定要远离电源线。

避坑指南: 我曾经在项目里用过一块山寨的 Pixhawk 2.4.8,结果飞了 3 分钟就失控了。后来发现是板子上的电压调节器虚焊,导致传感器供电不稳。所以,买板子尽量走官方渠道,或者至少用 Cube 这种有质量背书的。

1.3 固件烧录基础:把灵魂装进硬件

固件烧录,说白了就是把编译好的 .px4 或 .apj 文件写进飞控的 Flash 里。这一步看似简单,但很多人第一步就卡住了。我总结了一套标准流程,你照着做基本不会翻车。

  1. 下载固件:去 ArduPilot 官网的 Firmware 页面,选对你的板子型号和分支。别下错了,Copter 的固件不能刷进 Plane 里。
  2. 安装驱动:Windows 用户需要装一个 Zadig 工具,把飞控的 DFU 驱动换成 WinUSB。Mac 和 Linux 用户一般不用操心。
  3. 连接飞控:用 Micro USB 线连电脑。注意,有些板子(比如 Cube)需要先按住安全按钮再上电,才能进入 DFU 模式。
  4. 使用 Mission Planner 烧录:打开 MP,点“初始设置” -> “安装固件”,选好固件后点“上传”。等进度条走完,飞控会自动重启。
// 如果你喜欢命令行,也可以用 ardupilot 的 Tools 脚本:
// 以 Cube Orange 刷 Copter 4.5.1 为例
cd ardupilot
./Tools/scripts/uploader.py --port /dev/ttyACM0 --board CubeOrange ../build/CubeOrange/bin/arducopter.apj

警告: 烧录过程中绝对不能断电!我见过有人因为 USB 线接触不良,烧到一半断了,结果飞控变砖。后来只能用 SWD 接口重新刷 bootloader 才救回来。所以,请用质量好的数据线,并且确保电脑电量充足。

1.4 知识体系总览:一张图看懂 ArduPilot

为了让你对本章内容有个整体印象,我画了一张结构图。它把 ArduPilot 的软件架构、硬件平台和固件流程串在了一起。你以后遇到问题,可以顺着这张图去排查。

ArduPilot 系统知识体系总览 ArduPilot 系统知识体系总览 ArduCopter ArduPlane ArduRover ArduSub Pixhawk 系列 Cube 系列 Here+ / Here3 GPS ① 下载固件 ② 安装驱动 ③ 连接飞控 ④ 烧录固件 💡 核心要点 • 选对分支:Copter/Plane/Rover/Sub 固件不通用 • 选对板子:Pixhawk 适合入门,Cube 适合进阶 • 烧录规范:先装驱动,再进 DFU,最后上传,全程不断电

这张图把咱们这一章的核心内容都串起来了。从上到下看:你先选好你要飞什么(Copter/Plane/Rover/Sub),然后挑一块合适的硬件板子,最后按步骤把固件烧进去。任何一个环节出问题,都可能导致后续的调试失败。

我的建议: 如果你是第一次接触 ArduPilot,别急着上手飞。先拿一块 Pixhawk 1 板子,刷一个 Copter 4.5 的固件,接上 GPS 和接收机,在 Mission Planner 里看看传感器数据是否正常。这一步走通了,后面的事就好办了。