4. 飞行模式详解与配置:Stabilize、AltHold、Loiter、Auto、RTL 等核心模式原理与参数设置

飞行模式,说白了就是飞控的“大脑工作状态”。同一个硬件,切到不同模式,飞控对遥控器指令的处理方式完全不同。我见过不少新手,一上来就切 Loiter,结果飞机乱飘,最后炸机。嗯,这其实不是飞机不行,是你没搞懂每个模式到底在干什么。

这一章,咱们把 ArduPilot 里最常用的几个核心模式掰开揉碎讲清楚。我会结合自己调参踩过的坑,告诉你每个模式怎么配参数才稳。

核心观点:飞行模式不是越多越好,而是要把常用的 3-5 个模式调透。一个调好的 Stabilize,比十个半吊子的 Auto 模式更可靠。

ArduPilot 核心飞行模式知识体系 飞行模式选择 手动模式 Stabilize Acro 增稳模式 AltHold Loiter 全自动模式 Auto RTL 关键参数分组 • 手动模式:ROLL/PITCH/YAW 角速度 PID(ATC_RAT_*) • 增稳模式:位置/高度控制器(POS_*、ALT_*)+ 前馈参数 • 全自动模式:导航参数(WP_*、RTL_*)+ 避障参数 • 模式切换:CH7/CH8 辅助通道 + FLTMODE* 通道映射

4.1 Stabilize(自稳模式)—— 飞控的“基本功”

Stabilize 是所有模式的基础。说白了,它只做一件事:帮你把飞机姿态稳住。你松杆,飞机就自动回平。但它不关心位置,也不关心高度。

原理:飞控读取陀螺仪和加速度计数据,通过 PID 控制器输出油门和舵量,让飞机保持水平。你打杆,它跟随;你松杆,它回中。

我的习惯:首飞永远用 Stabilize。我会先把 Roll 和 Pitch 的 P 值调高到飞机出现轻微抖动,然后回退 20%。这样手感最跟手,又不至于太贼。

关键参数:

参数名 作用 推荐初始值
ATC_RAT_RLL_P 横滚角速度 P 增益 0.15(四轴 250mm)
ATC_RAT_PIT_P 俯仰角速度 P 增益 0.15
ATC_RAT_YAW_P 偏航角速度 P 增益 0.20
H_STABILIZE_KP 高度保持(Stabilize 下无效) 1.0

注意:Stabilize 模式下油门直接控制电机转速。如果你油门曲线没设好,飞机可能突然蹿高或掉高。我建议把油门中点设为悬停油门值(HOVER_THR_DEFAULT)。

4.2 AltHold(定高模式)—— 解放你的左手

AltHold 是我个人最喜欢的模式。它让飞控帮你管油门,你只管前后左右飞。飞控通过气压计和加速度计融合出高度,然后自动调节油门保持高度。

原理:内环是垂直速度 PID,外环是高度 PID。你推油门杆,飞控理解为“我要以这个速度上升”;松杆回中,飞控就保持当前高度。

我曾经在海拔 4000 米的高原飞过,气压计受温度影响很大,高度漂了十几米。后来我加了 GPS 高度辅助(GPS_HDOP 小于 1.5 时启用),问题才解决。

关键参数:

参数名 作用 推荐值
ALT_HOLD_P 高度 P 增益 1.0
ALT_HOLD_I 高度 I 增益 0.5
ALT_HOLD_D 高度 D 增益 0.0(通常不用)
PILOT_VELZ_MAX 最大垂直速度 (cm/s) 250
HOVER_THR_DEFAULT 悬停油门百分比 0.5(需实测)

调参技巧:先设 HOVER_THR_DEFAULT 为 0.5,起飞后看悬停油门实际值,然后回写。如果 AltHold 模式下高度上下波动超过 1 米,减小 ALT_HOLD_P,增大 ALT_HOLD_I。

4.3 Loiter(悬停模式)—— 定点定高,稳如磐石

Loiter 是 AltHold 的升级版。它不光定高,还通过 GPS 和光流传感器把飞机“钉”在一个点上。你松杆,飞机就停在原地,风吹都不太动。

原理:在 AltHold 的基础上,增加了水平位置 PID 环。飞控根据 GPS 位置误差,输出水平速度指令,再通过姿态控制实现位置保持。

我记得有一次在桥洞下飞,GPS 信号被遮挡,Loiter 模式直接飘走了。嗯,从那以后我养成了习惯:在 GPS 星数少于 10 颗时,绝不切 Loiter。

关键参数:

参数名 作用 推荐值
LOIT_ANG_MAX 最大倾斜角度(度) 30
LOIT_SPEED 最大水平速度 (cm/s) 500
LOIT_ACC_MAX 最大加速度 (cm/s²) 250
POS_XY_P 水平位置 P 增益 1.0
GPS_HDOP GPS 水平精度因子 小于 1.5 为佳

避坑指南:我曾经把 LOIT_ANG_MAX 设到 45 度,结果风大时飞机倾斜太猛,直接侧翻。建议最大不超过 35 度。另外,Loiter 模式下不要猛打杆,飞控反应不过来。

4.4 Auto(自动模式)—— 让飞机自己飞

Auto 模式是任务飞行的核心。你提前规划好航点,飞机按顺序一个一个飞过去。常用于测绘、巡检、植保等场景。

原理:飞控读取任务列表(Mission),每个航点包含经纬度、高度、航向、动作(如拍照)。飞控通过导航控制器,从一个航点飞到下一个航点。

关键参数:

参数名 作用 推荐值
WP_SPEED 航点间巡航速度 (cm/s) 500
WP_ACCEL 航点间加速度 (cm/s²) 100
WP_RADIUS 到达航点的判定半径 (cm) 200
MIS_OPTIONS 任务选项(位掩码) 0(默认)

我的经验:Auto 模式下,航点转弯半径不要设太小。我一般设 WP_RADIUS 为 200cm,这样飞机过弯平滑,不会来回震荡。如果任务中有拍照动作,记得在航点属性里加上 DO_SET_CAM_TRIGG_DIST。

4.5 RTL(返航模式)—— 最后的救命稻草

RTL 是每个飞手最信任的模式。一键返航,飞机自动飞回起飞点并降落。但前提是——你得把它调好。

原理:飞控记录解锁时的经纬高作为“家点”。RTL 模式下,飞机先爬升到 RTL_ALT 高度,然后水平飞回家点,最后降落到地面。

我曾经遇到过 RTL 模式下飞机不降落,一直在头顶盘旋。查了半天,发现是 RTL_ALT_FINAL 设成了 0,飞控以为不需要降落。嗯,这种低级错误,犯一次就够了。

关键参数:

参数名 作用 推荐值
RTL_ALT 返航高度 (cm) 1500(15米)
RTL_ALT_FINAL 最终降落高度 (cm) 0(表示降落)
RTL_SPEED 返航速度 (cm/s) 500
RTL_LOIT_TIME 返航后悬停时间 (s) 3
LAND_SPEED 降落速度 (cm/s) 50

注意:RTL 高度一定要高于周围最高障碍物。我习惯设 20 米以上。另外,RTL_ALT_FINAL 如果设成非 0 值,飞机会在那个高度悬停,不会降落。只有设为 0 才会触发自动降落。

4.6 模式切换配置实战

讲完原理,咱们说说怎么把模式映射到遥控器上。你想想看,总不能每次切模式都连电脑吧?

步骤:

  1. 遥控器上设一个 3 段开关,映射到 CH5 或 CH6。
  2. 打开 Mission Planner,进入“配置/调参” > “飞行模式”。
  3. 在对应的通道位置选择模式。比如 CH5 上段选 Stabilize,中段选 AltHold,下段选 Loiter。
  4. 点击“保存模式”,然后拨动开关测试。

参数设置:

// 通道映射示例
FLTMODE1 = 0    // Stabilize
FLTMODE2 = 2    // AltHold
FLTMODE3 = 4    // Loiter
FLTMODE4 = 10   // Auto
FLTMODE5 = 11   // RTL
FLTMODE6 = 5    // 留待备用

// 通道选择
FLTMODE_CH = 5  // 使用 CH5 作为模式切换通道

我的习惯:我会把最常用的 3 个模式放在一个 3 段开关上:上段 Stabilize(起飞/降落),中段 AltHold(巡航),下段 Loiter(定点作业)。另外单独用一个 2 段开关切 RTL,作为紧急备用。

4.7 模式切换的“潜规则”

最后说几个容易忽略的点。这些是我用炸机换来的教训。

  • 不要在空中从 Stabilize 直接切 Auto:如果飞机姿态不稳,切 Auto 后飞控会猛推油门修正,容易炸机。先切 AltHold 稳住,再切 Auto。
  • RTL 不是万能的:如果 GPS 信号丢失,RTL 会失效。我遇到过 GPS 飘移,RTL 把飞机带到了河对岸。所以,时刻准备切回 Stabilize 手动救机。
  • Loiter 模式下不要关 GPS:一旦 GPS 丢失,Loiter 会自动降级为 AltHold,飞机可能飘走。我习惯在 Loiter 时盯着 GPS 星数。
  • 每个模式都要单独调参:Stabilize 调好了,不代表 Loiter 也稳。位置环和姿态环是两套参数,需要分别优化。

总结一句话:飞行模式是工具,不是保险。理解每个模式的原理和局限,比记住参数更重要。参数可以抄作业,但手感只能自己试出来。