1. 课程导入
大家好,我是你们这门课的老朋友。在正式开始调参之前,我觉得有必要先带大家看看ArduPilot的全貌。说白了,你得先知道手里拿的是什么工具,才能把它用好。我见过太多人一上来就调PID,结果连固件版本和硬件平台都没搞清楚,最后炸了机都不知道为什么。
这一节,我们不讲枯燥的编年史,而是从实战角度出发,看看ArduPilot到底能干什么、怎么选硬件、固件之间有什么区别、地面站又该怎么挑。嗯,这些都是我这些年踩坑踩出来的经验。
1.1 ArduPilot的前世今生
ArduPilot最早可以追溯到2007年,那时候还叫ArduPilot,基于Arduino开发板。说实话,那时候的代码和现在比起来,简直简陋得可怜。我记得我第一次接触ArduPilot是在2013年,当时用的还是APM 2.5板子,8位AVR单片机,跑个简单的四旋翼悬停都费劲。
后来,随着Pixhawk的出现,ArduPilot才真正走向成熟。2014年,3DR公司推出了Pixhawk,基于STM32F427,性能直接上了一个台阶。从那时起,ArduPilot开始支持Copter、Plane、Rover、Sub等多个固件类型,生态逐渐丰富起来。
核心要点:ArduPilot是目前全球最成熟的开源自动驾驶仪项目之一,支持超过20种飞行器/车辆类型,代码量超过100万行,社区活跃度极高。
1.2 硬件平台怎么选?
硬件选型是很多新手的第一道坎。我建议你根据项目需求来选,而不是盲目追求最新最贵。下面我列出几个主流平台,说说我的实际感受。
| 硬件平台 | 处理器 | 传感器 | 适用场景 | 我的评价 |
|---|---|---|---|---|
| Pixhawk 1 (FMUv2) | STM32F427 | MPU6000 + MS5611 + HMC5883 | 入门学习、小型无人机 | 经典但已停产,二手市场还能找到 |
| Pixhawk 4 (FMUv5) | STM32F765 | ICM20689 + MS5611 + IST8310 | 中型多旋翼、固定翼 | 性价比高,我目前的主力平台 |
| Cube Orange (FMUv5) | STM32F765 | ICM20948 + MS5611 + RM3100 | 工业级、高可靠性项目 | 带安全协处理器,冗余设计好 |
| Here+ RTK | STM32F303 (GPS模块) | u-blox F9P + HMC5983 | 高精度定位、测绘、农业 | RTK厘米级定位,但价格偏高 |
我的建议:如果你是初学者,先买一块Pixhawk 4或者Cube Orange。别一上来就上RTK,先把基础调通再说。我曾经见过一个学员,花了上万块买了一套Here+,结果连基本悬停都没调好,最后RTK模块吃灰了半年。
1.3 固件架构:APM:Copter / Plane / Rover / Sub
ArduPilot的固件架构很有意思。它不像PX4那样把所有东西揉在一起,而是按车辆类型分成了不同的固件。这样做的好处是,每个固件都针对特定平台做了深度优化。
我给大家画了一张图,可以直观地看到它们之间的关系:
你看,核心库是共享的,但上层的控制逻辑完全不同。举个例子,Copter的悬停控制依赖GPS和气压计,而Plane的巡航控制更依赖空速和地速。我见过有人把Copter的固件刷到固定翼上,结果起飞就翻——这可不是开玩笑。
避坑指南:刷固件前一定要确认你的硬件平台和固件类型。我曾经在项目里误把Copter固件刷到了Rover上,结果地面站死活连不上,折腾了两天才发现是固件刷错了。嗯,从那以后我每次刷固件都会先检查一遍BOARD_ID。
1.4 地面站对比:Mission Planner vs QGroundControl
地面站是飞控和用户之间的桥梁。目前最主流的两款是Mission Planner(MP)和QGroundControl(QGC)。很多人问我该用哪个,我的回答是:看场景。
| 对比项 | Mission Planner | QGroundControl |
|---|---|---|
| 开发语言 | C# (Windows only) | C++ (跨平台) |
| 主要用户 | ArduPilot老用户、测绘行业 | PX4用户、跨平台开发者 |
| 参数调优 | ★★★★★ 极其丰富 | ★★★★ 够用但不如MP细 |
| 航点规划 | ★★★★★ 功能强大 | ★★★★ 简洁易用 |
| 实时监控 | ★★★★ 图表多但界面老 | ★★★★★ 界面现代、流畅 |
| 日志分析 | ★★★★★ 自带强大工具 | ★★★ 需要外部工具 |
我个人习惯用Mission Planner做参数调优和日志分析。为什么?因为MP的参数搜索功能太强了——你可以直接搜索参数名,还能看到每个参数的详细说明。QGC虽然界面好看,但在参数调优这块确实不如MP细致。
不过,如果你在Mac或Linux上开发,QGC是唯一的选择。我记得有一次在客户现场,只有一台MacBook,我硬着头皮用QGC调了一下午参数,虽然也能搞定,但效率确实不如MP高。
我的建议:两台都装上。日常调参用MP,外出演示用QGC(因为它跨平台,手机平板都能跑)。另外,QGC的虚拟摇杆功能比MP好用,适合做地面测试。
1.5 本章小结
好了,这一节我们走马观花地看了ArduPilot的生态全景。从历史到硬件,从固件到地面站,我希望你能建立起一个整体的认知框架。记住一句话:选对硬件、刷对固件、用对地面站,你的调参之路就成功了一半。