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那样把所有东西揉在一起,而是按车辆类型分成了不同的固件。这样做的好处是,每个固件都针对特定平台做了深度优化。

我给大家画了一张图,可以直观地看到它们之间的关系:

ArduPilot 固件架构全景 ArduPilot 核心库 APM:Copter APM:Plane APM:Rover APM:Sub 多旋翼/直升机 固定翼/VTOL 地面车辆/船 水下航行器 说明: • 所有固件共享同一套核心库(EKF、PID、MAVLink等) • 不同固件在姿态控制、导航逻辑上差异很大 • 选错固件是新手最常见的错误之一

你看,核心库是共享的,但上层的控制逻辑完全不同。举个例子,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的生态全景。从历史到硬件,从固件到地面站,我希望你能建立起一个整体的认知框架。记住一句话:选对硬件、刷对固件、用对地面站,你的调参之路就成功了一半。