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 项目历史 2007 APM起步 2013 Pixhawk发布 2016 ChibiOS引入 硬件平台 Pixhawk系列 Cube系列 Here系列 软件架构 APM调度器 ChibiOS RTOS 抢占式调度 应用场景 多旋翼 固定翼 无人车/船 开发工具 WSL/Linux Make/CMake Mission Planner 编译 → 烧录 → 调参 → 飞行

这张图里,我把ArduPilot分成了五个维度:历史、硬件、软件、应用、工具。你注意看,最下面那行“编译→烧录→调参→飞行”,就是我们这门课的主线。后面的章节,我会带着你一步步走完这个流程。

1.5 本章小结

好了,这一章的内容就这么多。我帮你捋一下重点:

  • ArduPilot从2007年走到现在,经历了APM→Pixhawk→ChibiOS三个重要阶段
  • 硬件平台很丰富,但Pixhawk和Cube系列是主流
  • 软件架构从APM调度器升级到了ChibiOS,实时性更好
  • 整个知识体系可以用“历史-硬件-软件-应用-工具”来概括

下一章,咱们就开始动手了。我会教你搭建编译环境,把源码下载下来,然后编译一个固件出来。嗯,到时候你就能看到自己的飞控板“活”过来了。


专注资料整理