引言
无人机自主飞行是机器人领域的热门方向,而 PX4 作为功能强大的开源飞控,配合 ROS(机器人操作系统)的灵活性与生态,成为实现高级自主飞行的黄金组合。然而,许多初学者对 PX4 的飞行模式理解不清,更不知道如何通过 ROS 编写可靠的 Offboard 控制程序。
本文将带你彻底搞懂 PX4 核心飞行模式,实现无人机的自动起飞、悬停、轨迹跟踪(圆形/方形/螺旋)与降落。
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 前的准备,或安全回退模式。AUTO.MISSION/AUTO.RTL/AUTO.LAND:启动自动任务、触发返航或降落。
服务调用示例:
rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'OFFBOARD'"


