第二章:飞控固件与地面站

做飞控调试,说白了就是跟两样东西打交道:固件地面站

固件是飞控的大脑,地面站是你跟大脑对话的窗口。这两样选不对、装不好,后面所有调试都是空中楼阁。今天我就把这两块掰开了讲清楚。

2.1 两大主流固件:ArduPilot 与 PX4

目前开源飞控圈子里,能打的就两个:ArduPilot 和 PX4。我两个都用过,各有各的脾气。

2.1.1 ArduPilot

ArduPilot 是老牌劲旅,2007年就诞生了。它的代码用 C++ 写的,支持载具类型极多——四轴、固定翼、无人船、潜水器,甚至地面车辆都能跑。

我个人习惯用 ArduPilot 做测绘和农业无人机。为什么?因为它的任务规划器(Mission Planner)太成熟了,航线规划、地理围栏、日志分析,一套下来行云流水。

核心特点:
  • 支持载具类型:多旋翼、固定翼、直升机、无人车、无人船、潜水器
  • 代码语言:C++(ArduPilot 库)
  • 地面站:Mission Planner(Windows)、QGroundControl(跨平台)
  • 参数数量:约 2000+ 个可调参数
  • 社区活跃度:极高,文档齐全
我的经验:ArduPilot 的 EKF(扩展卡尔曼滤波器)调起来比较费劲,但一旦调好,定位精度非常稳。我在一次山区测绘项目中,靠它飞了 45 分钟没出任何偏差。

2.1.2 PX4

PX4 是后起之秀,2012年从苏黎世联邦理工学院孵化出来。它的架构更现代,代码用 C++ 和 Python 混合,模块化做得很好。

我建议做科研或者需要深度定制飞控的朋友优先考虑 PX4。为什么?因为它的内部状态估计器(如 LPE、EKF2)设计得更清晰,方便你改算法。

核心特点:
  • 支持载具类型:多旋翼、固定翼、VTOL、无人车
  • 代码语言:C++(PX4 Firmware)、Python(辅助工具)
  • 地面站:QGroundControl(官方推荐)
  • 参数数量:约 1500+ 个可调参数
  • 社区活跃度:高,学术圈用得较多
注意:PX4 的 VTOL(垂直起降固定翼)支持比 ArduPilot 更成熟。我有个朋友做 VTOL 项目,一开始用 ArduPilot 折腾了两周没搞定,换 PX4 后三天就飞起来了。

2.1.3 两者对比

对比项 ArduPilot PX4
诞生时间 2007年 2012年
代码架构 整体式(Monolithic) 模块化(Modular)
地面站首选 Mission Planner QGroundControl
参数数量 约 2000+ 约 1500+
VTOL 支持 一般 优秀
学术圈使用 较少 较多
日志分析工具 Mission Planner 内置 Flight Review(网页)

嗯,这里要注意:选固件不是选美,得看你的硬件平台。比如 Pixhawk 1 跑 ArduPilot 很稳,但跑 PX4 就有点吃力。反过来,Pixhawk 4 跑 PX4 是绝配。

2.2 地面站安装与基本使用

地面站就是你的遥控器升级版。没有它,你连飞控参数都看不到。

2.2.1 Mission Planner 安装

Mission Planner 是 ArduPilot 的官方地面站,只支持 Windows。安装很简单:

  1. 去 ArduPilot 官网下载最新版安装包(约 200MB)
  2. 双击安装,一路 Next 就行
  3. 安装完成后,打开软件会自动检测固件版本
避坑指南:我曾经遇到过安装后无法连接飞控的情况。后来发现是 Windows 的驱动问题。解决办法:用 Zadig 工具把飞控的 USB 驱动换成 WinUSB 或 libusb。这一步很多人会忘。

基本使用流程:

  • 连接飞控:用 USB 线连接飞控和电脑,在 Mission Planner 右上角选择 COM 口,波特率选 115200(大部分飞控默认)
  • 刷写固件:点击「初始设置」→「安装固件」,选择你的飞控型号和固件版本
  • 查看参数:点击「配置/调试」→「全部参数表」,这里能看到所有可调参数
  • 日志下载:飞行结束后,点击「飞行数据」→「下载日志」,分析飞行数据

2.2.2 QGroundControl 安装

QGroundControl(简称 QGC)是 PX4 的官方地面站,跨平台支持 Windows、macOS、Linux、iOS、Android。

安装方式:

  • Windows/macOS/Linux:去官网下载对应版本,解压即用(绿色软件)
  • iOS/Android:App Store 或 Google Play 搜索 QGroundControl 安装
QGC 的亮点:
  • 界面比 Mission Planner 更现代,触屏友好
  • 内置飞行地图(支持离线地图)
  • 参数搜索功能很强大,输入关键词就能找到
  • 支持多语言(包括中文)

基本使用流程:

  • 连接飞控:同样用 USB 连接,QGC 会自动识别飞控(不需要手动选 COM 口)
  • 刷写固件:点击左上角齿轮图标 →「固件」,选择飞控型号和固件版本
  • 查看参数:点击「参数」→ 搜索或浏览参数列表
  • 日志分析:飞行结束后,点击「分析」→ 选择日志文件,QGC 会生成飞行轨迹和传感器数据图表
注意:QGC 的日志分析功能不如 Mission Planner 强大。如果你需要深度分析(比如 EKF 状态、电机输出等),我建议还是用 Mission Planner 的日志分析工具,或者用 PX4 官方的 Flight Review 网页工具。

2.3 知识体系结构图

下面这张图帮你理清固件和地面站的关系:

飞控固件与地面站知识体系 飞控固件 地面站 ArduPilot PX4 Mission Planner QGroundControl 通信协议 核心功能 • 参数调优 • 固件刷写 • 日志分析 • 传感器校准 • 航线规划 • 实时监控 • 故障诊断 • 数据回放 • 参数导出/导入

这张图你看懂了吗?固件和地面站通过 MAVLink 协议通信。你在地面站上改一个参数,飞控就会立刻响应。说白了,地面站就是飞控的「仪表盘」和「方向盘」。

2.4 我的选择建议

如果你问我怎么选,我的建议是:

  • 新手入门:选 ArduPilot + Mission Planner。文档多、社区大、遇到问题容易搜到答案
  • 科研/深度定制:选 PX4 + QGroundControl。模块化架构方便你改代码、加算法
  • VTOL 项目:优先 PX4,它的 VTOL 支持更成熟
  • 测绘/农业:ArduPilot 更合适,任务规划功能更强大
我的习惯:我电脑上两个地面站都装了。调试 ArduPilot 用 Mission Planner,调试 PX4 用 QGC。有时候为了对比日志,我会把 PX4 的日志导入 Mission Planner 分析——虽然麻烦点,但 Mission Planner 的图表确实更直观。

好了,固件和地面站就讲到这里。记住一句话:选对工具,调试就成功了一半。下一章我们开始实战——连接飞控、刷固件、做校准。到时候我会手把手带你走一遍。


专注资料整理