- 嵌入式
- 物联网
- 机器人
- 自动驾驶
- 智能硬件
【免费下载链接】PX4-Autopilot
PX4 Autopilot Software
Pixhawk 系列是 PX4 飞控软件所依托的参考硬件平台,本文以 docs/en/flight_controller/pixhawk_series.md 为骨架,结合仓库内 autopilot_pixhawk_standard.md、pixhawk_autopilot_bus.md、silicon_errata.md 等文档及boards/px4下的板级源码,系统讲解 FMUv2 至 FMUv6X-RT 的硬件代际差异、Pixhawk 标准与授权规则、板卡支持等级划分、LED 状态灯判读方法,并给出面向用户与开发者的完整选型和构建建议。读完本文,你将能够根据任务形态准确选择 PX4 参考飞控、理解 FMU 版本背后的硬件差异,并为特定板卡正确构建 PX4 固件。
Pixhawk 系列是什么
Pixhawk 是一个独立的开放硬件(open-hardware)项目,以原理图(schematics)的形式向学术界、爱好者和工业界提供价格亲民且高性能的自动驾驶仪硬件设计。PX4 团队将其作为参考硬件平台,Pixhawk 系列飞控运行 PX4,底层操作系统为 NuttX。
基于这些开放设计,厂商已经衍生出大量形态各异的板卡:从适用于大载重货运任务的宽大板型,到专为 FPV(第一人称视角)穿越竞速优化的紧凑板型,一应俱全。需要留意的是,PX4 项目自身不生产任何飞控硬件,硬件支持与合规问题须联系对应厂商(见各板卡文档开头的 warning,例如 pixhawk6x.md 中"PX4 does not manufacture this autopilot"的声明)。
::: tip 如果任务包含计算密集型负载(例如机载计算机视觉),单独的飞控并不足够,你需要一个伴机电脑(companion computer)(如 Raspberry Pi 2/3 Navio2),或选用集成伴机方案的平台(例如 Holybro Pixhawk RPi CM4 Baseboard)。 :::
选用 Pixhawk 系列的核心收益
原文档明确列出了 Pixhawk 系列控制器相对其他平台的关键优势:
- 软件支持——作为 PX4 参考硬件,Pixhawk 系列是维护最完善的板卡;
- 外设扩展灵活——可挂接丰富多样的硬件外设;
- 高品质——硬件设计与制造质量有保障;
- 形态高度可定制——板型可按应用场景裁剪;
- 广泛使用、久经测试——用户基数大,稳定性与成熟度高;
- 固件自动更新——可通过QGroundControl(QGC)自动刷写最新固件,对终端用户极其友好。
其中"固件自动更新"背后的机制正是下文 FMU 版本一节提到的:QGC 会在后台根据飞控的 FMU 版本自动下载匹配的固件镜像,用户无需手工辨识硬件代号。
支持的板卡与支持等级
PX4 项目使用 Pixhawk 标准自动驾驶仪(Pixhawk Standard Autopilots)作为参考硬件。这些控制器完全兼容 Pixhawk 标准(包括商标使用授权),并且仍在量产,由 PX4 维护与测试团队持续维护和支持。
不完全符合规范但仍在生产的"类 Pixhawk"板卡则按以下等级归类:
- 厂商支持(manufacturer-supported)——由板卡厂商负责维护,使其在 PX4 各版本中持续可用;
- 实验性/已停产(experimental/discontinued);
- 或完全不受支持。
从仓库文档看,当前属于 Pixhawk 标准自动驾驶仪类别的板卡包括(节选):
- FMUv6X-RT:NXP MR-VMU-RT1176、Holybro Pixhawk 6X-RT
- FMUv6X:Holybro Pixhawk 6X Pro、CUAV Pixhawk V6X、Holybro Pixhawk 6X、RaccoonLab FMUv6X
- FMUv6C:Holybro Pixhawk 6C、Holybro Pixhawk 6C Mini、Holybro Pix32 v6
- FMUv5X:Holybro Pixhawk 5X
- FMUv5:Holybro Pixhawk 4(Mini 版已由 Holybro 停产但 PX4 仍支持)
- 以及 FMUv4pro / FMUv4 / FMUv3 的若干在产与停产板卡
完整的板卡清单见 autopilot_pixhawk_standard.md,厂商支持板卡清单见 autopilot_manufacturer_supported.md。
Pixhawk Autopilot Bus(PAB)模块化总线
新一代 Pixhawk 标准引入了 Pixhawk Autopilot Bus(PAB)标准:任何符合标准的飞控都可以与任何符合标准的底板"即插即用"。这种模块化设计让同一块飞控模块可以灵活接入不同形态的载板——例如更紧凑、输出更少的底板,或集成了伴机电脑的底板。目前仓库中列出的 PAB 兼容飞控包括 Holybro Pixhawk 5X/6X、CUAV Pixhawk V6X、ARK V6X/V6X-RT/V6S 等,兼容载板包括 ARK PAB 载板、Holybro 标准/迷你底板及 RPi CM4 底板。
FMU 版本:Pixhawk 开放设计的代际密码
Pixhawk 项目以原理图形式发布了多套开放设计,基于同一设计的板卡应当二进制兼容(可运行同一份固件)。每套设计以FMUvX命名(如 FMUv1、FMUv2、FMUv3、FMUv4……)。FMU 编号越大表示板卡越新,但并不必然代表能力更强——相邻版本可能几乎相同,仅连接器接线不同。
用户视角:通常无需关注 FMU 版本
对普通 PX4用户而言,FMU 版本一般无需深究:
- QGroundControl会自动为连接的飞控下载正确固件(基于其"幕后"的 FMU 版本);
- 选板通常取决于物理约束/形态,而不是 FMU 版本。
唯一的例外是 FMUv2:由于硅片勘误(详见 silicon_errata.md),FMUv2 固件被限制为1MB flash。为了把 PX4 塞进这一受限空间,许多模块默认被禁用。因此你可能会发现部分 参数缺失(文档称这些参数为"missing"),以及部分硬件无法"开箱即用"。
其根源在于 STM32F427VIT6 硅片的勘误:在修订版本 rev 2 及更早的硅片上,当 PA12(USB 数据线之一)有活动时访问第二个 flash bank 会产生错误/数据损坏,且无软件绕过方案,只能不使用 2 号 flash bank。由于烧录固件需要 USB,采用 rev 3 之前硅片的 Pixhawk 板只能使用 2MB flash 中的 1MB。该勘误在后续硅片版本中已修复,但如果使用旧 bootloader 可能无法被检测到,相关更新见 固件与 Bootloader 更新。
开发者视角:必须知道板卡的 FMU 版本
PX4开发者需要明确自己板卡的 FMU 版本,这是构建自定义硬件的前提。从高层面看,各代的主要差异如下:
| FMU 版本 | 核心硬件差异 | 代表性板卡 |
|---|---|---|
| FMUv2 | 单板,STM32F427VI 处理器(flash 实际可用 1MB) | Pixhawk 1(停产)、Holybro pix32(停产)、Pixfalcon(停产)、Drotek DroPix(停产) |
| FMUv3 | 与 FMUv2 相同,但可用 flash 翻倍至 2MB | Hex Cube Black、CUAV Pixhack v3、mRo Pixhawk、Pixhawk Mini(停产) |
| FMUv4 | RAM 增加、CPU 更快、串口更多、无 IO 协处理器 | Pixracer |
| FMUv4-PRO | RAM 略增、串口更多、带 IO 协处理器 | Pixhawk 3 Pro |
| FMUv5 | 全新 F7 处理器,速度更快、RAM 更多、CAN 总线更多、可配置性更强 | Pixhawk 4(停产)、CUAV v5(停产)、CUAV V5+(停产)、CUAV V5 nano(停产) |
| FMUv5X | F7 处理器,模块化设计、可靠性/冗余性更高、RAM 1MB、CAN 更多、高度可配置可定制 | Pixhawk 5X、Skynode |
| FMUv6C | STM32H743V,成本优化设计 | Holybro Pixhawk 6C Mini、Holybro Pixhawk 6C |
| FMUv6X | STM32H753,模块化 + 三重冗余 + 隔离传感器域 | CUAV Pixhawk V6X、Holybro Pixhawk 6X |
| FMUv6X-RT | MCU 核心更快(1GHz,6X 为 480MHz)、RAM 2MB、flash 64MB(v6X/v5X 为 2MB) | Holybro Pixhawk 6X-RT |
FMUv6 三款主流设计的横向对比
原文档以表格给出了 FMUv6X-RT、FMUv6X、FMUv6C 三者的硬件规格对比,这是当前选型最直接的依据:
| 特性 | FMUv6X-RT | FMUv6X | FMUv6C |
|---|---|---|---|
| FMU MCU | NXP i.MX RT1176 | STM32H753 | STM32H743V |
| RAM | 2 MB | 1 MB | 1 MB |
| Flash | 64 MB Octal SPI | 2 MB 内部 | 2 MB 内部 |
| IO MCU | STM32F103 | STM32F103 | STM32F103 |
| 安全元件 | NXP SE051 | NXP SE051 | 不支持 |
| PAB 标准 | 支持 | 支持 | 不支持 |
| 以太网 | 支持 | 支持 | 不支持 |
| IMU | 3× | 3× | 2× |
| 气压计 | 2× | 2× | 1× |
| 磁力计 | 1× | 1× | 1× |
| FMU PWM | 12× | 8× | 8× |
| IO PWM | 8× | 8× | 8× |
| CAN 总线 | 3× | 2× | 2× |
可以看出:6X-RT 定位于极致性能与冗余(1GHz 双核、64MB 外部 flash、3 路 CAN、硬件安全元件、以太网);6X 是主力旗舰(H753、三重 IMU 冗余、PAB 模块化);6C 是成本优化走量款(双 IMU、单气压计、无安全元件/以太网/PAB)。
结合板级源码可以进一步印证:仓库中 boards/px4/fmu-v6x/default.px4board 定义了 6X 的板级配置,例如CONFIG_BOARD_ETHERNET=y(启用板载以太网)、CONFIG_BOARD_ARCHITECTURE="cortex-m7"、CONFIG_ARCH_CHIP_STM32H7=y,以及串口映射CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"、CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6"等;该配置与 pixhawk6x.md 中的串口映射表完全对应。而 6X-RT 的对应配置位于 boards/px4/fmu-v6xrt,6C 位于 boards/px4/fmu-v6c,二者同属 STM32H7 架构(cortex-m7),在 PX4 构建系统中以不同的 target 区分。
从板级源码看 FMU 版本的实现位置
在 PX4 仓库中,每个 FMU 版本都有独立的板级支持目录,位于 boards/px4 下:fmu-v2、fmu-v3、fmu-v4、fmu-v4pro、fmu-v5、fmu-v5x、fmu-v6c、fmu-v6u、fmu-v6x、fmu-v6xrt等。以 6X 为例,目录内包含:
default.px4board——默认构建配置(工具链、架构、以太网开关、串口映射等);secureboot.px4board——安全启动配置(配合 6X/6X-RT 上的 NXP SE051 安全元件);src/hw_config.h——硬件外设配置头文件;nuttx-config/——NuttX 系统配置(含include/board.h、scripts/secureboot-script.ld等)。
这也解释了 pixhawk6x.md 中给出的固件构建命令make px4_fmu-v6x_default:target 名px4_fmu-v6x_default直接对应boards/px4/fmu-v6x/default.px4board。
如何为 Pixhawk 板卡构建 PX4 固件
绝大多数用户不需要自己构建固件——固件是预编译的,连接硬件时由QGroundControl自动安装。只有开发者或需要定制功能时才需要本地构建。构建方法与板卡对应:
# 以 Pixhawk 6X(FMUv6X)为例 make px4_fmu-v6x_default # 其他常见 target make px4_fmu-v6xrt_default # Pixhawk 6X-RT(FMUv6X-RT) make px4_fmu-v5x_default # Pixhawk 5X(FMUv5X)完整的构建环境搭建与流程参见 构建 PX4 软件。其中 6X 的串口映射(来自 pixhawk6x.md)如下,可用于核对串口设备与功能端口的对应关系:
| UART | 设备 | 端口 |
|---|---|---|
| USART1 | /dev/ttyS0 | GPS |
| USART2 | /dev/ttyS1 | TELEM3 |
| USART3 | /dev/ttyS2 | 调试控制台 |
| UART4 | /dev/ttyS3 | UART4 & I2C |
| UART5 | /dev/ttyS4 | TELEM2 |
| USART6 | /dev/ttyS5 | PX4IO/RC |
| UART7 | /dev/ttyS6 | TELEM1 |
| UART8 | /dev/ttyS7 | GPS2 |
6X-RT 的映射则不同(UART1→Debug、UART3→GPS、UART4→TELEM1、UART11→External 等),详见 pixhawk6x-rt.md。
授权与商标:开放硬件如何保持开放
Pixhawk 项目的原理图与参考设计采用 CC BY-SA 3.0 许可:
- 许可允许你几乎以任何方式使用、出售、分享、修改和基于这些文件构建,前提是注明出处,且你对修改内容以相同开源许可共享;
- 直接衍生自 Pixhawk 原理图(或参考板)的板卡必须开源,不能作为专有产品进行商业授权;
- 厂商也可以先自行生成全新原理图(但保持与 FMU 设计相同的引脚映射/组件),这样产出的"完全独立产品"被视为原创作品,可按需授权;
- 产品名称/品牌可以注册商标;Pixhawk 本身是商标,未经许可不得用于产品命名。
板载 LED 的含义判读
所有 Pixhawk 系列飞控都支持两类 LED(详见 LED 含义说明):
- 用户朝向的 RGB UI LED:用于指示飞行器当前的"可飞行就绪"状态,通常是超亮 I2C 外设,可能焊在板上也可能不在板上(例如 FMUv4 板载没有,通常用 GPS 上的 LED);
- 三颗状态 LED:提供更低层的电源状态、bootloader 模式与活动、错误信息。
UI LED:就绪状态速查
| LED 状态 | 含义 |
|---|---|
| 蓝色常亮 | 已解锁(Armed)、无 GPS 定位 |
| 蓝色脉冲 | 未解锁(Disarmed)、无 GPS 定位 |
| 绿色常亮 | 已解锁、GPS 定位有效(可执行引导任务) |
| 绿色脉冲 | 未解锁、GPS 定位有效 |
| 紫色常亮 | 故障保护(Failsafe)模式:失控、电量过低或内部错误,飞机会尝试返航或就地降落 |
| 琥珀色常亮 | 低电量警告 |
| 红色闪烁 | 错误/需要设置:飞控需要配置或校准后才能飞行,请连接地面站检查 |
::: warning 可能出现"GPS 已锁定(绿灯)但依然无法解锁"的情况,因为 PX4 尚未通过 预飞行检查。起飞必须有有效的全局位置估计! :::
状态 LED:电源、Bootloader 与错误
三颗状态 LED 为 FMU SoC 提供状态(若存在 PX4IO,另有三颗为 PX4IO 提供状态)。上电后,FMU 与 PX4IO 的 CPU 先运行 bootloader(BL)再运行应用程序(APP):
| 颜色 | 标签 | Bootloader 用法 | APP 用法 |
|---|---|---|---|
| 蓝 | ACT(活动) | 收到数据时闪烁 | 指示 ARM 解锁状态 |
| 红/琥珀 | B/E(Bootloader/错误) | 处于 bootloader 时闪烁 | 指示错误 |
| 绿 | PWR(电源) | bootloader 不使用 | 指示 ARM 解锁状态 |
更详细的判读规则("x"表示任意状态):
| 红/琥珀 | 蓝 | 绿 | 含义 |
|---|---|---|---|
| 10Hz | x | x | CPU 负载 > 80% 或 RAM 使用 > 98%(过载) |
| OFF | x | x | CPU 负载 ≤ 80% 且 RAM 使用 ≤ 98% |
| — | OFF | 4Hz | actuator_armed->armed且触发 failsafe |
| — | ON | 4Hz | actuator_armed->armed且无 failsafe |
| — | OFF | 1Hz | 未解锁但ready_to_arm为真 |
| — | OFF | 10Hz | 未解锁且ready_to_arm为假 |
需要说明的是,上述标签为常见标注,个别板卡可能不同;状态 LED 的实拍示意可见 Pixhawk 4 状态 LED 图。
选型与使用建议(实战总结)
综合原文档与仓库资料,可按以下思路选型与使用:
- 按任务形态选板:
- 追求极致性能、需要大算力与高冗余(研究实验室、重载货运、复杂算法):优先FMUv6X-RT(1GHz、64MB flash、3×CAN、安全元件);
- 主流开发与商业应用、需要模块化与以太网:FMUv6X;
- 成本敏感、形态紧凑的消费级/教育应用:FMUv6C(双 IMU 冗余已足够);
- FPV 竞速等紧凑场景:可考虑FMUv4/Pixracer等小尺寸板型。
- 优先选择"Pixhawk 标准"类别的板卡,它们由 PX4 维护团队直接支持,固件更新最及时;非标板卡请确认其支持等级(厂商支持/实验/停产)。
- 普通用户直接使用 QGroundControl 自动刷写固件即可,无需关心 FMU 细节;开发者根据板卡目录 boards/px4 确认 FMU 版本与 target 名,再用
make px4_fmu-<版本>_default构建。 - 警惕 FMUv2 的 1MB flash 限制:若使用 FMUv2 固件,部分参数缺失属正常现象,建议优先更新 bootloader 或升级硬件。
- 接线与调试:串口映射以各板卡文档(如 pixhawk6x.md)为准;调试可通过 FMU Debug 口的 SWD 接口与系统控制台进行(参见 SWD 调试 与 PX4 系统控制台)。
进一步阅读
- Pixhawk 标准自动驾驶仪清单
- Pixhawk Autopilot Bus 与载板
- 厂商支持的自动驾驶仪清单
- 硅片勘误(FMUv2 限制)
- LED 含义详解
- 构建 PX4 软件
- 固件与 Bootloader 更新
- 机架参考(Airframes Reference)
- 嵌入式
- 物联网
- 机器人
- 自动驾驶
- 智能硬件
【免费下载链接】PX4-Autopilot
PX4 Autopilot Software
相关推荐
PX4 Pixhawk Standard Autopilots:Pixhawk 标准飞控板卡全解析与选型指南
PX4 Pixhawk Standard Autopilots:Pixhawk 标准飞控板卡全解析与选型指南 本文围绕 PX4 Autopilot 仓库中「Pi
嵌入式物联网机器人自动驾驶智能硬件PX4 参考飞控设计指南:Pixhawk FMU 世代演进、二进制兼容性与主/I/O 板职责划分
PX4 参考飞控设计指南:Pixhawk FMU 世代演进、二进制兼容性与主/I/O 板职责划分 本篇基于 PX4 Autopilot 官方文档 docs/en
嵌入式物联网机器人自动驾驶智能硬件PX4 Pixhawk Autopilot Bus (PAB) 标准与兼容载板/飞控选型指南
PX4 Pixhawk Autopilot Bus PAB 标准与兼容载板/飞控选型指南 本文基于 PX4 Autopilot https://link.git
嵌入式物联网机器人自动驾驶智能硬件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考