3、参数管理基础:参数树结构、搜索与修改参数、保存与恢复参数、参数文件导入导出
调参这件事,说白了就是跟参数打交道。你想想看,飞控里几百上千个参数,要是没有一套好用的管理方法,光靠翻手册找,那得找到猴年马月去?
我个人习惯,拿到一架新飞机,第一件事不是急着改参数,而是先把参数树的结构摸清楚。就像你搬进新家,总得先知道厨房在哪、卧室在哪,对吧?
3.1 参数树结构:飞控的“神经脉络”
PX4 的参数不是平铺的,而是按功能分组的树状结构。我刚开始接触时也觉得这玩意儿有点抽象,后来发现,理解了这棵树,你就能快速定位任何参数。
核心概念:参数树以 group 为根节点,每个组下挂具体的参数。参数名通常遵循 组名_参数名 的格式,比如 MC_ROLL_RATE_P 就表示多旋翼(MC)的横滚(ROLL)速率(RATE)P 增益。
嗯,这里要注意,地面站(QGroundControl)里看到的参数列表,其实就是把这棵树展开给你看。常见的顶级组有这些:
| 组名 | 含义 | 典型参数举例 |
|---|---|---|
MC_ |
多旋翼相关 | MC_ROLLRATE_P, MC_PITCHRATE_D |
FW_ |
固定翼相关 | FW_AIRSPD_TRIM, FW_THR_CRUISE |
EKF2_ |
扩展卡尔曼滤波器 | EKF2_ENABLE, EKF2_GPS_CHECK |
COM_ |
通信与系统 | COM_RC_IN_MODE, COM_ARM_EK2_GB |
BAT_ |
电池管理 | BAT_V_EMPTY, BAT_CAPACITY |
SENS_ |
传感器校准 | SENS_DPRES_OFF, SENS_FLOW_ROT |
我在项目中遇到过,有同事把固定翼的参数改到了多旋翼的组里,结果飞机一解锁就翻。所以,改参数前,先确认它属于哪个组,这是基本功。
3.2 搜索与修改参数:别再用眼睛硬找了
QGC 的搜索框是个好东西。我见过太多人,在几百个参数列表里一行一行地翻,眼睛都快看花了。其实你只需要在搜索框里输入关键词,比如 rate,所有跟速率相关的参数就都出来了。
搜索技巧:
- 支持模糊搜索:输入
roll能搜到MC_ROLLRATE_P、MC_ROLL_P等。 - 支持通配符?不,PX4 参数搜索不支持通配符,但你可以用空格分隔多个关键词,比如
mc rate会缩小范围。 - 我建议你记住常用参数的完整名称,比如
MC_ROLLRATE_P,这样搜索最快。
修改参数时,双击参数值那一列,输入新值,按回车。就这么简单。但这里有个坑——有些参数修改后需要重启飞控才能生效。QGC 会在参数旁边显示一个“需要重启”的图标,千万别忽略它。
我曾经在调试一架六轴时,改了 MC_PITCHRATE_P 后没重启,结果飞起来感觉完全不对,还以为是电机坏了。折腾了半天,才发现是参数没生效。从那以后,我改完参数都会习惯性地看一眼右上角有没有“需要重启”的提示。
3.3 保存与恢复参数:你的“后悔药”
调参是个反复试错的过程。你可能会把一组参数改得乱七八糟,然后想回到之前的状态。这时候,保存和恢复功能就派上用场了。
QGC 里有个“工具”菜单,里面藏着“保存当前参数”和“恢复默认参数”两个选项。我个人习惯,在每次重大调整前,都会先保存一份当前参数。你想想看,万一改坏了,一键恢复,多省心。
| 操作 | 位置 | 说明 |
|---|---|---|
| 保存当前参数 | 工具 → 保存参数 | 将当前飞控上的所有参数保存为一个 .params 文件 |
| 恢复默认参数 | 工具 → 恢复默认参数 | 将飞控参数全部重置为固件默认值(慎用!) |
| 从文件加载参数 | 工具 → 加载参数 | 从之前保存的 .params 文件恢复参数 |
我的工作流:
- 拿到新飞机,先保存一份“出厂参数”作为备份。
- 每次调参前,再保存一份“调参前参数”。
- 如果调乱了,先尝试“加载参数”恢复到最后一次保存的状态。
- 如果还不行,就恢复出厂参数,从头再来。
3.4 参数文件导入导出:团队协作的利器
做项目时,你不可能永远一个人调参。团队里可能有多个飞手、多个工程师,大家需要共享同一套参数。这时候,参数文件的导入导出就特别重要了。
.params 文件其实是个纯文本文件,你可以用记事本打开它。里面每一行都是一个参数,格式是:
# 这是注释行,以 # 开头
param_name value
MC_ROLLRATE_P 0.150000
MC_PITCHRATE_D 0.003000
EKF2_ENABLE 1
嗯,这里要注意,导出的参数文件只包含非默认值的参数。也就是说,如果你只改了 10 个参数,文件里就只有这 10 行。这样文件很小,也方便别人快速知道你改了哪些地方。
导入导出的最佳实践:
- 给参数文件起个好名字,比如
2024-10-15_六轴_悬停调参.params,包含日期、机型、用途。 - 团队协作时,把参数文件放在共享文件夹里,用版本号管理,比如 v1.0、v1.1。
- 我建议你在文件开头加几行注释,说明这套参数适用于什么场景、谁调的、有什么注意事项。
导入参数时,QGC 会先校验文件格式。如果文件里有不存在的参数名,它会报错并跳过那一行。所以,不同固件版本的参数文件不要混用,否则可能会导入失败。
我曾经在升级固件后,直接导入了旧版本的参数文件,结果飞控报了一堆“参数不存在”的错误。后来我才知道,新固件里有些参数被改名或删除了。所以,升级固件后,最好重新手动调参,或者至少仔细检查一遍导入的参数。
好了,参数管理的基础就这些。说白了,就是记住树结构、用好搜索、勤保存、规范导入导出。这些习惯养成了,后面调姿态参数时,你会觉得顺手很多。