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

我在项目中遇到过,有同事把固定翼的参数改到了多旋翼的组里,结果飞机一解锁就翻。所以,改参数前,先确认它属于哪个组,这是基本功。

PX4 参数树结构示意图 参数根 MC_ 多旋翼 FW_ 固定翼 EKF2_ 滤波器 COM_ 通信 MC_ROLLRATE_P MC_PITCHRATE_D MC_YAW_FF 参数名 = 组名 + 下划线 + 参数名 例如:MC_ROLLRATE_P

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 文件恢复参数

我的工作流:

  1. 拿到新飞机,先保存一份“出厂参数”作为备份。
  2. 每次调参前,再保存一份“调参前参数”。
  3. 如果调乱了,先尝试“加载参数”恢复到最后一次保存的状态。
  4. 如果还不行,就恢复出厂参数,从头再来。

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 会先校验文件格式。如果文件里有不存在的参数名,它会报错并跳过那一行。所以,不同固件版本的参数文件不要混用,否则可能会导入失败。

我曾经在升级固件后,直接导入了旧版本的参数文件,结果飞控报了一堆“参数不存在”的错误。后来我才知道,新固件里有些参数被改名或删除了。所以,升级固件后,最好重新手动调参,或者至少仔细检查一遍导入的参数。

好了,参数管理的基础就这些。说白了,就是记住树结构、用好搜索、勤保存、规范导入导出。这些习惯养成了,后面调姿态参数时,你会觉得顺手很多。