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 里。这一步看似简单,但很多人第一步就卡住了。我总结了一套标准流程,你照着做基本不会翻车。
- 下载固件:去 ArduPilot 官网的 Firmware 页面,选对你的板子型号和分支。别下错了,Copter 的固件不能刷进 Plane 里。
- 安装驱动:Windows 用户需要装一个 Zadig 工具,把飞控的 DFU 驱动换成 WinUSB。Mac 和 Linux 用户一般不用操心。
- 连接飞控:用 Micro USB 线连电脑。注意,有些板子(比如 Cube)需要先按住安全按钮再上电,才能进入 DFU 模式。
- 使用 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 的软件架构、硬件平台和固件流程串在了一起。你以后遇到问题,可以顺着这张图去排查。
这张图把咱们这一章的核心内容都串起来了。从上到下看:你先选好你要飞什么(Copter/Plane/Rover/Sub),然后挑一块合适的硬件板子,最后按步骤把固件烧进去。任何一个环节出问题,都可能导致后续的调试失败。
我的建议: 如果你是第一次接触 ArduPilot,别急着上手飞。先拿一块 Pixhawk 1 板子,刷一个 Copter 4.5 的固件,接上 GPS 和接收机,在 Mission Planner 里看看传感器数据是否正常。这一步走通了,后面的事就好办了。