1. ArduPilot概述:项目历史、硬件平台与软件架构
大家好,我是你们的讲师。今天咱们正式进入ArduPilot的世界。说实话,我第一次接触这个项目是在2012年,那时候它还不叫ArduPilot,叫APM。嗯,一晃十多年过去了,它已经成了开源飞控领域当之无愧的“老大哥”。
这一章,我不打算讲太多枯燥的理论。咱们就聊聊ArduPilot是怎么来的,它能跑在哪些板子上,以及它的软件骨架长什么样。你把这些搞清楚了,后面编译烧录的时候心里就有底了。
1.1 项目历史:从DIY到行业标准
ArduPilot的故事,得从2007年说起。当时有个叫Chris Anderson的哥们儿,他搞了个DIY无人机项目,用Arduino做飞控。说白了,就是拿8位单片机硬扛飞行控制算法。我那时候还在玩航模,觉得这玩意儿挺酷,但说实话,稳定性堪忧。
后来项目分成了两条线:
- APM(ArduPilot Mega):基于Arduino Mega 2560,8位AVR单片机。我早期做四轴就是用的APM 2.5,那板子现在看简直是“石器时代”的产品。
- Pixhawk:2013年,3DR公司推出了Pixhawk,基于STM32F4,32位ARM Cortex-M4。这玩意儿一出来,直接把飞控性能拉高了一个档次。
2015年之后,ArduPilot项目正式独立,不再依赖3DR。现在由ArduPilot基金会维护,社区非常活跃。我个人觉得,这个项目能活这么久,核心原因就是它“不挑食”——什么硬件都能跑。
关键里程碑:
- 2007年:APM项目启动(基于Arduino)
- 2013年:Pixhawk发布(STM32F4时代)
- 2016年:ChibiOS引入(替代传统APM调度器)
- 2020年:支持STM32H7、SITL(软件在环仿真)成熟
1.2 支持的硬件平台:不只是Pixhawk
很多人以为ArduPilot只能跑在Pixhawk上。其实不然。我见过有人把它跑在树莓派上,甚至有人用STM32最小系统板飞固定翼。你想想看,一个飞控能兼容几十种硬件,这本身就是一种工程奇迹。
常见的硬件平台分这么几类:
| 平台系列 | 典型型号 | 处理器 | 我的评价 |
|---|---|---|---|
| Pixhawk系列 | Pixhawk 1/2/4, Pixhawk 6X | STM32F4/F7/H7 | 最成熟,资料最多,新手首选 |
| Cube系列 | Cube Orange, Cube Black | STM32F4/F7 | 工业级,带安全协处理器,我项目里常用 |
| Here系列 | Here 4, Here 5 | STM32H7 | 性能强,但价格偏高 |
| 其他 | Navio2, BeagleBone Blue | ARM Cortex-A系列 | 适合Linux环境下的高级开发 |
避坑指南:我曾经遇到过新手买了Pixhawk 6X,结果发现自己的电调不支持DShot协议。嗯,这里要注意:硬件选型时,一定要确认外设兼容性。飞控板再强,外设不匹配也是白搭。
1.3 软件架构概览:APM调度器 vs ChibiOS
ArduPilot的软件架构,说白了就是“一个主循环 + 一堆任务”。但这里有个历史包袱——早期用的是APM调度器,后来换成了ChibiOS。为什么要换?我跟你讲讲。
APM调度器(传统方式):
- 基于
loop()函数,所有任务都在一个无限循环里跑 - 任务优先级靠“轮询”实现,说白了就是谁先被检查到谁先执行
- 缺点:实时性差,高优先级任务可能被低优先级任务阻塞
ChibiOS(现代方式):
- 基于实时操作系统(RTOS),任务有独立线程
- 支持抢占式调度,高优先级任务可以打断低优先级任务
- 优点:实时性好,适合多传感器融合、复杂控制算法
我个人习惯用ChibiOS版本。为什么?因为它的任务管理更清晰。比如你同时跑GPS、IMU、气压计,ChibiOS能保证每个传感器都按时读取,不会出现“IMU等GPS”这种尴尬情况。
注意:如果你用的是老版本ArduPilot(比如3.x系列),那还是APM调度器。从4.0开始,官方全面转向ChibiOS。所以你现在下载源码,默认就是ChibiOS版本。别搞混了。
1.4 核心知识结构图
下面这张图,是我自己画的ArduPilot知识体系。你把它存下来,后面学编译、学烧录、学调参,都能用得上。
这张图里,我把ArduPilot分成了五个维度:历史、硬件、软件、应用、工具。你注意看,最下面那行“编译→烧录→调参→飞行”,就是我们这门课的主线。后面的章节,我会带着你一步步走完这个流程。
1.5 本章小结
好了,这一章的内容就这么多。我帮你捋一下重点:
- ArduPilot从2007年走到现在,经历了APM→Pixhawk→ChibiOS三个重要阶段
- 硬件平台很丰富,但Pixhawk和Cube系列是主流
- 软件架构从APM调度器升级到了ChibiOS,实时性更好
- 整个知识体系可以用“历史-硬件-软件-应用-工具”来概括
下一章,咱们就开始动手了。我会教你搭建编译环境,把源码下载下来,然后编译一个固件出来。嗯,到时候你就能看到自己的飞控板“活”过来了。