4、ArduPilot参数系统:参数分类、参数读写、参数文件导入导出、关键参数详解
飞控参数,说白了就是 ArduPilot 的「灵魂配置文件」。你硬件焊得再好,算法写得再牛,参数不对,飞机照样乱飘。我见过太多新手,上来就急着调 PID,结果连最基本的参数分类都没搞明白——嗯,今天咱们就把这事彻底捋清楚。
4.1 参数分类:别在茫茫参数海里迷路
ArduPilot 的参数有上千个,但别慌。它们按功能分成了几个大族,每个族都有固定的前缀。你只要记住前缀,就能快速定位。
| 前缀 | 分类 | 典型参数举例 |
|---|---|---|
| BATT_ | 电池与电源 | BATT_MONITOR, BATT_CAPACITY |
| BRD_ | 板载硬件 | BRD_TYPE, BRD_SAFETYENABLE |
| COMPASS_ | 磁罗盘 | COMPASS_ENABLE, COMPASS_OFS_X |
| INS_ | 惯性导航(IMU) | INS_ACCEL_FILTER, INS_GYRO_FILTER |
| GPS_ | GPS 定位 | GPS_TYPE, GPS_GNSS_MODE |
| AHRS_ | 姿态航向参考系统 | AHRS_ORIENTATION, AHRS_GPS_GAIN |
| ATC_ | 姿态控制器(角度/角速率) | ATC_ANG_RLL_P, ATC_RAT_RLL_P |
| MOT_ | 电机与舵机 | MOT_SPIN_ARM, MOT_PWM_MIN |
| WPNAV_ | 航点导航 | WPNAV_SPEED, WPNAV_ACCEL |
| RTL_ | 返航 | RTL_ALT, RTL_LOIT_TIME |
| FENCE_ | 地理围栏 | FENCE_ENABLE, FENCE_ALT_MAX |
| LOG_ | 数据记录 | LOG_BITMASK, LOG_DISARMED |
我的习惯: 在 QGC 的参数界面里,直接按前缀过滤。比如想调航点速度,直接搜
WPNAV_,比翻列表快得多。
4.2 参数读写:QGC 里怎么改?
QGC 的参数界面非常直观。你连上飞控后,点左上角「齿轮」图标,再选「参数」标签页,就能看到完整的参数列表。
基本操作流程:
- 搜索参数: 在搜索框输入关键字,比如
WPNAV,列表会自动过滤。 - 修改参数: 点击参数值,输入新数值,按回车。
- 写入飞控: 改完后,点右下角的「写入参数」按钮。注意,有些参数需要重启飞控才能生效。
- 从飞控读取: 点「读取参数」,把飞控当前值拉到 QGC 界面。
我曾经踩过的坑: 有一次我在 QGC 里改了
MOT_SPIN_ARM(解锁后电机怠速),没点「写入」就直接拔线了。结果飞场试飞时电机不转,排查了半天才发现参数根本没存进去。记住:改完参数,一定要点「写入参数」!
4.3 参数文件导入导出:批量操作与备份
手动一个一个改参数太慢了。尤其是当你有多架同型号飞机,或者想保存一套「黄金参数」时,参数文件就是你的救星。
导出参数(备份):
- 在 QGC 参数界面,点右上角的「工具」图标(三个点)。
- 选择「保存参数文件到电脑」。
- QGC 会从飞控读取所有参数,并保存为一个
.param文件。
导入参数(恢复/批量设置):
- 同样点「工具」图标,选择「从文件加载参数」。
- 选择你之前保存的
.param文件。 - QGC 会对比文件中的参数和飞控当前值,列出差异项。
- 确认无误后,点「写入」即可。
参数文件格式(.param)长什么样?
# 这是注释行,以 # 开头
# 格式:参数名,值
BATT_MONITOR,4
BATT_CAPACITY,5200
COMPASS_ENABLE,1
WPNAV_SPEED,1000
WPNAV_ACCEL,500
RTL_ALT,1500
你可以用记事本打开编辑,但千万注意:参数名不能写错,值必须在有效范围内。我习惯用 Excel 打开,按列排序,改起来一目了然。
4.4 关键参数详解:航点飞行的命门
要实现精准航点飞行,下面这几个参数你必须吃透。它们直接决定了飞机能不能「指哪打哪」。
4.4.1 航点导航参数(WPNAV_)
| 参数名 | 默认值 | 说明 | 我的建议 |
|---|---|---|---|
| WPNAV_SPEED | 500 cm/s | 航点间的水平巡航速度 | 室内或小范围用 300-500,室外空旷可到 1000-1500 |
| WPNAV_SPEED_UP | 250 cm/s | 上升时的垂直速度 | 不要超过 300,否则高度容易超调 |
| WPNAV_SPEED_DN | 200 cm/s | 下降时的垂直速度 | 建议比上升慢一点,防止掉高过快 |
| WPNAV_ACCEL | 100 cm/s² | 水平方向的最大加速度 | 越大响应越快,但容易过冲。我一般设 150-200 |
| WPNAV_ACCEL_Z | 100 cm/s² | 垂直方向的最大加速度 | 设太大飞控会「点头」,建议 60-80 |
避坑指南: 我曾经把
WPNAV_SPEED 设到 2000(20m/s),结果飞机在转弯时直接侧滑出去,差点撞树。航点速度不是越快越好,要结合你的转弯半径和飞机机动性来设。
4.4.2 返航参数(RTL_)
| 参数名 | 默认值 | 说明 | 我的建议 |
|---|---|---|---|
| RTL_ALT | 1500 cm | 返航时的飞行高度 | 至少比周围最高障碍物高 20 米 |
| RTL_LOIT_TIME | 3000 ms | 到达返航点后悬停的时间 | 3000 够用,想让它快速降落可以改小 |
| RTL_ALT_FINAL | 0 cm | 返航最终高度(0 表示降落) | 设为 0 就是自动降落,设为非 0 则悬停 |
4.4.3 地理围栏参数(FENCE_)
这是你的最后一道保险。我每次试飞新航线,必开围栏。
| 参数名 | 默认值 | 说明 | 我的建议 |
|---|---|---|---|
| FENCE_ENABLE | 0 (禁用) | 是否启用围栏 | 试飞时设为 1,飞熟了再关 |
| FENCE_ALT_MAX | 10000 cm | 最大飞行高度 | 根据当地法规设,一般 120 米(12000 cm) |
| FENCE_RADIUS | 300 m | 以家点为圆心的最大水平半径 | 视场地大小而定,我一般设 200-500 |
| FENCE_ACTION | 0 | 触发围栏后的动作(0=仅报告,1=悬停,2=返航,3=降落) | 强烈建议设为 2(返航),别用 0 |
血的教训: 有一次我忘了开围栏,飞机在航点任务中 GPS 漂移,直接飞出视野。还好最后切了 Stabilize 模式手动救回来。从那以后,我每次起飞前必检查
FENCE_ENABLE 是不是 1。
4.5 参数系统知识结构图
下面这张图帮你把整个参数系统的脉络理清楚。从分类到读写,再到关键参数,一条线串起来。
4.6 总结一下
参数系统其实不复杂。你只要记住三点:
- 按前缀找参数,别瞎翻。
- 改完必须写入,别偷懒。
- 关键参数先调好,尤其是
WPNAV_和FENCE_,这是精准飞行和安全的基础。
我个人习惯是,每架新飞机到手,先导出一份默认参数文件存着。然后按自己的飞行风格,把 WPNAV_ 和 RTL_ 调一遍,再开围栏。这样即使后面调乱了,也能一秒恢复。
嗯,参数这块就聊到这儿。你只要按这个思路走,航点飞行的底子就算打牢了。