引言
无人机自主飞行是机器人领域的热门方向,PX4 作为功能强大的开源飞控,配合 ROS(机器人操作系统)的灵活性与生态,成为实现高级自主飞行的黄金组合。然而,许多开发者对 PX4 的飞行模式理解不够深入,编写可靠的 Offboard 控制程序时也容易踩坑。
本文重点解析 PX4 的 6 大核心飞行模式,并基于 ROS 实现无人机的自动起飞、悬停、轨迹跟踪(圆形/方形/螺旋)与降落。我们将深入探讨状态机设计、安全机制配置以及具体的代码实现细节。
第一部分:PX4 飞行模式深度剖析
PX4 的飞行模式可以看作一个控制权逐级递增的层级结构。理解这些模式是编写控制程序的前提。
1. 稳定模式(STABILIZED / MANUAL / ACRO)
- 核心特点:纯手动姿态控制。飞控仅保证机体自身姿态稳定,但不进行位置或高度锁定。
- 操控方式:摇杆控制俯仰/横滚角;油门直接控制升力。松开摇杆,飞机会回正到水平,但会随风漂移。
- 应用场景:起飞、降落、特技飞行、紧急手动接管。
2. 定高模式(ALTCTL)
- 核心特点:高度保持 + 姿态稳定。飞控将油门通道重映射为爬升率指令。
- 操控方式:俯仰/横滚摇杆控制姿态和水平速度;油门摇杆中位时维持高度,上下推动控制爬升/下降速率。
- 应用场景:低空侦察、无 GPS 或光流情况下的高度稳定飞行。
3. 位置模式(POSCTL)
- 核心特点:全自主位置与高度锁定。飞控使用 GPS/视觉定位将飞机稳定在固定的三维坐标点。
- 操控方式:俯仰/横滚摇杆控制水平速度;油门摇杆控制垂直速率。松开摇杆,飞机立即刹车并悬停。
- 应用场景:最常用、最安全的辅助模式,是进入 Offboard 模式前的理想过渡。
4. 自动模式(AUTO)
包括任务模式 (MISSION)、返航模式 (RTL)、降落模式 (LAND)、**起飞模式 (TAKEOFF)**等。由飞控内部逻辑执行预设任务,无需外部持续指令。
5. Offboard 模式
- 核心特点:外部控制模式。飞控的位置/姿态/速度期望值完全由通过 MAVLink 接收的外部指令设定。这是 ROS/PX4 集成的核心接口。
- 工作方式:外部计算机(如机载电脑)以>10Hz 频率持续发送设定点指令。一旦指令流中断,飞控触发失效保护,自动切换到预设安全模式(如 RTL 或 LAND)。
- 应用场景:SLAM 建图、视觉伺服、集群编队、复杂轨迹跟踪等所有需要高级算法的场景。
第二部分:ROS 可控制的模式分析
通过 ROS(通常借助 MAVROS)控制 PX4,主要有两种方式:模式切换和直接指令发送。
1. 可切换的模式
MAVROS 理论上可以切换到任何已配置的飞行模式,最常用于:
OFFBOARD:最关键的模式,切换到此模式才能发送流式控制指令。POSCTL:作为 Offboard 前的准备,或安全回退模式。- :启动自动任务、触发返航或降落。


