简介:这份文档面向无人机、航模飞控调试的初学者与进阶玩家,针对 Mission Planner 地面站参数树条目繁多、英文术语晦涩、新手难以快速定位关键项的痛点,对常用参数进行了系统翻译与归纳。内容覆盖 ACRO 特技模式的姿态锁定与角速度限制、ADSB 广播式监视系统开关、AFS 高级失效保护的高度限制与通讯/GPS 丢失阈值、AHRS 姿态解算的融合系数与安装朝向等核心模块,并逐条给出取值范围与作用说明,便于对照调参时快速查阅。资源包为单一 docx 文档,压缩后约 75KB,轻量易存,适合打印或置于副屏随时比对。目前已有 9978 人学习下载,说明其在飞控调参群体中具有较高的参考价值。读者可借此建立参数分类框架,理解各参数对飞行姿态、失效保护与导航行为的影响,减少盲目试错,提升调试效率与飞行安全性。
1. 参数树不是配置清单,是调参时的“因果地图”
很多人第一次打开 Mission Planner 的参数树,会把它当成一张配置清单:找到要改的项,改完写入,重启飞控,完事。真正飞过几轮之后才会发现,参数树更像一张因果地图——你动的每一个参数,都会沿着控制链路传导到别的参数上。改大ATC_RAT_RLL_P,横滚响应变快,但电机抖动和电流尖峰也跟着上来;把INS_ACCEL_FILTER调小,加速度计噪声干净了,可姿态估计的相位滞后又冒出来。参数树里没有孤立项,只有互相牵制的节点。
这份“全参数翻译、总结”要解决的,正是这个痛点:把 Mission Planner 参数树里那些缩写、单位、默认值和取值范围,翻译成能直接对照调参的语言。它适合已经能起飞、能悬停,但一遇到自稳发飘、定高掉高、返航画龙就不知道从哪下手的飞手和飞控调试工程师。接下来的内容按“先看懂参数树结构,再动手改单类参数,最后用日志验证”的顺序展开,所有命令和参数都以 ArduPilot 固件下的 Mission Planner 为准。
2. Mission Planner 参数树的组织逻辑与检索方法
2.1 参数命名前缀背后的功能分组
Mission Planner 参数树不是按界面菜单排的,而是按固件里的参数前缀分组。理解前缀,等于拿到了参数树的目录结构。常见前缀和它们管的事:
| 前缀 | 功能域 | 典型参数 |
|---|---|---|
ATC_ | 姿态控制器 | ATC_RAT_RLL_P、ATC_ANG_PIT_P |
INS_ | 惯性导航传感器 | INS_ACCEL_FILTER、INS_GYRO_FILTER |
PSC_ | 位置控制器 | PSC_POSXY_P、PSC_VELZ_P |
MOT_ | 电机输出 | MOT_THST_HOVER、MOT_SPIN_MIN |
BATT_ | 电池监测 | BATT_LOW_VOLT、BATT_CAPACITY |
WPNAV_ | 航点导航 | WPNAV_SPEED、WPNAV_ACCEL |
RTL_ | 返航 | RTL_ALT、RTL_SPEED |
FENCE_ | 地理围栏 | FENCE_ENABLE、FENCE_RADIUS` |
调参时先定位前缀,再在组内找具体项,比在几百行里翻找快得多。比如“悬停时高度上下晃”,问题大概率在PSC_和MOT_两组,而不是ATC_。
2.2 用搜索框和“刷新参数”定位目标项
Mission Planner 的配置/调参 → 完整参数树页面顶部有搜索框。输入前缀或关键词会实时过滤。实操步骤:
- 连接飞控,等参数树加载完成(右下角进度条走完)。
- 在搜索框输入
ATC_RAT_RLL,列表只剩横滚速率环相关项。 - 双击某行的“值”列可直接编辑,改完点右侧“写入参数”。
- 如果改完没生效,点“刷新参数”重新从飞控读取,确认写入成功。
提示:写入参数后不要立刻断电,等 Mission Planner 提示写入完成再操作,否则部分参数可能只写进内存没落盘。
2.3 参数元数据:单位、范围和默认值怎么读
参数树每行除了名称和值,还有单位、范围和默认值。这些元数据来自固件里的参数定义,是判断“这个值合不合理”的第一手依据。以ATC_RAT_RLL_P为例,范围通常标注为 0 到 0.5,默认值随机型不同。如果你把值改到范围外,Mission Planner 会拒绝写入或写入后被固件钳位。
常见做法是:改任何参数前,先记下默认值,再小步调整。比如INS_GYRO_FILTER默认 20Hz,想降噪就每次减 5Hz,飞一轮看日志,而不是一次从 20 跳到 10。
# 用 MAVProxy 批量导出当前参数,便于对照和回滚 mavproxy.py --master=/dev/ttyUSB0 --baud=57600 --cmd="param show" > params_backup.txt这段命令通过 MAVProxy 连接飞控并导出全部参数到文本文件。--master指定串口设备,--baud是波特率,--cmd里执行param show打印所有参数。导出后可以用 diff 对比调参前后的差异,出问题能快速定位改了哪些项。
3. 姿态与滤波参数的对照调参实战
3.1 姿态环 P/I/D 的物理含义与调整顺序
姿态控制分角度环和速率环。角度环(ATC_ANG_*)管“机身该转到什么角度”,速率环(ATC_RAT_*)管“转得多快”。调参顺序永远是先速率环、后角度环,因为速率环是内环,内环不稳外环怎么调都白搭。
速率环三个参数的作用:
- P:响应速度。太大机身高频抖动,太小反应迟钝。
- I:消除稳态误差。太大低频摆动,太小持续偏航。
- D:抑制超调。太大电机发热、噪声大,太小过冲明显。
实操时先把 I 和 D 设为零,只调 P 到机身开始轻微抖动,再回退 30% 左右。然后加 I 消除缓慢漂移,最后加 D 压住过冲。
3.2 用日志验证 P/I/D 是否匹配
改完参数必须飞一轮看日志。Mission Planner 的“日志分析”里看ATT(姿态)和RATE(速率)两条曲线。期望速率和实际速率贴合、没有明显相位差,说明 P 和 D 基本合适;如果实际值总追不上期望值,P 偏小;如果实际值反复越过期望值,D 偏小或 P 偏大。
# 解析 ArduPilot 日志中 RATE 消息,计算期望与实际速率的均方根误差 from pymavlink import mavutil import numpy as np log = mavutil.mavlink_connection('flight.bin') des, act = [], [] while True: msg = log.recv_match(type='RATE', blocking=False) if msg is None: break des.append(msg.RDes) # 期望横滚速率 act.append(msg.R) # 实际横滚速率 rmse = np.sqrt(np.mean((np.array(des) - np.array(act)) ** 2)) print(f'横滚速率跟踪 RMSE: {rmse:.4f}')这段脚本用 pymavlink 读取.bin日志里的RATE消息,提取期望横滚速率RDes和实际横滚速率R,算两者的均方根误差。RMSE 越小跟踪越好,一般 0.05 以内算不错。blocking=False让读取到文件末尾时返回 None 而不是卡住。
3.3 滤波参数:INS_GYRO_FILTER 与 INS_ACCEL_FILTER 的取舍
滤波是降噪和相位滞后的权衡。INS_GYRO_FILTER默认 20Hz,降低它噪声更干净但姿态响应变慢;升高它响应快但电机振动容易串进控制环。INS_ACCEL_FILTER同理,默认 10Hz。
判断方法:看日志里IMU消息的加速度和陀螺原始数据,如果高频毛刺明显,先降滤波;如果降完姿态开始发飘、跟不上,说明降过头了。常见做法是每次调 5Hz,配合一次悬停测试。
| 参数 | 默认值 | 调整方向 | 副作用 |
|---|---|---|---|
INS_GYRO_FILTER | 20 | 降噪调小 | 响应变慢 |
INS_ACCEL_FILTER | 10 | 降噪调小 | 高度估计滞后 |
ATC_RAT_RLL_P | 随机型 | 响应强调大 | 高频抖动 |
ATC_RAT_RLL_D | 随机型 | 抑超调调大 | 电机发热 |
4. 位置、高度与导航参数的联动调整
4.1 PSC 位置环参数与悬停稳定性
位置环管的是“机身该待在哪个位置”。PSC_POSXY_P控制水平位置响应,PSC_VELXY_P控制水平速度响应。悬停画圈或漂移,通常是这两个偏小;悬停高频来回抖,是偏大。
调整顺序:先调速度环PSC_VELXY_*,再调位置环PSC_POSXY_*。因为速度环是内环。每次调整幅度不超过 20%,飞一轮定点悬停看漂移量。
4.2 定高与降落:PSC_VELZ_P 和 MOT_THST_HOVER 的配合
定高不稳,一半问题在PSC_VELZ_P,一半在MOT_THST_HOVER。后者是悬停油门基准,如果设得和实际悬停油门差太多,高度控制会一直在大幅修正。
获取实际悬停油门的办法:悬停稳定后看 Mission Planner 的“状态”页Thr值,或日志里CTUN消息的ThO字段。把它填进MOT_THST_HOVER,定高会立刻稳很多。
# 从日志提取悬停时的平均油门值 mavlogdump.py --types CTUN --format csv flight.bin | \ awk -F',' 'NR>1 {sum+=$5; n++} END {print "平均悬停油门:", sum/n}'mavlogdump.py把日志转成 CSV,--types CTUN只取 CTUN 消息,awk累加第 5 列(油门字段)求平均。得到的值直接填MOT_THST_HOVER。注意不同日志列顺序可能不同,先看一眼 CSV 表头再定列号。
4.3 航点导航与返航参数:WPNAV 和 RTL 组
WPNAV_SPEED管自动航点飞行速度,WPNAV_ACCEL管加减速。设太快转弯会过冲,设太慢任务效率低。RTL_ALT是返航高度,RTL_SPEED是返航速度。返航画龙通常是WPNAV_ACCEL偏大或PSC_VELXY_P偏小。
注意:
RTL_ALT单位是厘米,不是米。填 5000 才是 50 米。这是新手最常踩的坑之一。
5. 参数树调参的进阶技巧与回滚策略
5.1 用参数文件做版本管理
调参最怕改乱了回不去。每次大改前导出参数文件,命名带上日期和改动内容,比如params_20240115_roll_p_tune.param。Mission Planner 的“保存参数”和“加载参数”按钮就是干这个的。加载参数后记得点“写入参数”才生效。
5.2 批量修改与条件写入
有些参数要成组改,比如换电机后MOT_组多个值都要动。用 MAVProxy 可以批量写:
# 批量写入电机相关参数 mavproxy.py --master=/dev/ttyUSB0 --baud=57600 \ --cmd="param set MOT_THST_HOVER 0.35; param set MOT_SPIN_MIN 0.15; param set MOT_SPIN_ARM 0.1"param set后面跟参数名和值,分号隔开多条。写入后建议再param show MOT_确认一遍。批量改的风险是中间某条写失败不容易发现,所以改完必须刷新核对。
5.3 调参无效时的排查顺序
改了参数没效果,按这个顺序查:先确认写入成功(刷新参数看值变没变);再看参数是否被固件钳位(值超出范围会被改回);然后确认改的参数在当前飞行模式下是否生效(比如ATC_参数在手动模式下作用有限);最后看日志确认实际飞行中该参数对应的量有没有变化。多数“调参无效”其实是没写入或写错了组。
5.4 一份可复用的调参检查表
| 阶段 | 检查项 | 工具 |
|---|---|---|
| 调参前 | 导出参数备份 | Mission Planner 保存参数 |
| 调参中 | 单次只改一类参数 | 参数树搜索框 |
| 调参后 | 写入并刷新核对 | 刷新参数按钮 |
| 飞行后 | 看日志验证 | 日志分析 / pymavlink |
| 出问题 | 加载备份回滚 | 加载参数按钮 |
把这张表贴在调参流程里,能挡掉大部分“改完不知道哪错了”的情况。参数树的全参数翻译只是起点,真正让调参可控的是备份、单变量调整和日志验证这三件事。
本文还有配套的精品资源,点击获取