4. 飞控系统核心:PX4/ArduPilot等开源飞控的配置、校准与基本参数调优

开源飞控是无人机自主巡航系统的“大脑”,它负责融合传感器数据、执行姿态解算、运行控制律并输出PWM/MAVLink指令。在自主巡航场景中,飞控的配置与校准质量直接决定了任务能否安全执行。本章将围绕PX4与ArduPilot两大主流固件,从固件选型、传感器校准、参数调优到实际巡航前的检查闭环,构建一套可复用的工程化配置流程。

PX4/ArduPilot 飞控配置与校准工程链路 固件选型 PX4 / ArduPilot 任务模式匹配 传感器校准 加速度计/陀螺仪 罗盘/气压计/水平 参数调优 PID/滤波/限幅 EKF/位置控制 巡航验证 QGC/MP地面站 试飞/日志分析 日志反馈与参数迭代 校准操作流程 1. 水平放置→加速度计校准 2. 旋转各轴→陀螺仪偏置校准 3. 罗盘旋转8字→磁场补偿 4. 气压计静止采样→基准高度 5. 水平校准→传感器坐标系对齐 6. 遥控器行程/模式开关设置 7. 电机怠速与方向测试 关键参数清单 • MC_RATE_P/I/D (角速率环) • MC_ATT_P (姿态环) • IMU_GYRO_CUTOFF (滤波) • EKF2_* (估计器) • NAV_ACC_RAD (巡航半径) • WP_* (航点行为) • RTL_* (返航参数) 巡航前检查闭环 ① 传感器健康值 (mag/acc/gyro) ② EKF 状态 (GPS/气压/IMU) ③ 遥控器模式开关映射 ④ 电机解锁与怠速测试 ⑤ 小范围悬停→姿态响应 ⑥ 航点上传→自主巡航 ⑦ 日志分析→参数迭代

4.1 开源飞控固件选型与系统架构

PX4和ArduPilot是当前最主流的开源自动驾驶仪固件。PX4采用NuttX实时操作系统,模块化程度高,适合科研与二次开发,其多旋翼姿态控制基于级联PID结构,支持VTOL、固定翼与无人车。ArduPilot则拥有更长的历史积累,在固定翼和直升机模式上表现成熟,其参数体系(如ArduCopter)对传统航模用户更友好。在自主巡航场景下,两者均支持MAVLink协议,可无缝对接QGroundControl(QGC)或Mission Planner(MP)地面站。

选型时需考虑以下维度:

  • 任务复杂度:若需深度定制(如视觉避障融合),PX4的模块化架构更易扩展;若以稳定航点飞行为主,ArduPilot的默认参数更省心。
  • 硬件兼容性:检查飞控板(如Pixhawk 6C、Cube Orange)的固件支持列表,确保外设驱动(如RTK GPS、激光雷达)有对应驱动。
  • 社区与日志:PX4的ULog日志解析工具丰富,ArduPilot的DataFlash日志在故障分析时更直观。
经验提醒:对于首次搭建自主巡航系统的团队,建议优先选择PX4 + QGC组合,因为其默认的EKF2估计器在多传感器融合方面更稳健,且官方文档对“Offboard模式”支持更完善,便于后续接入ROS进行高级任务规划。

4.2 传感器校准:从原始数据到可信状态

传感器校准是飞控配置中最关键的一步。未校准的加速度计会导致姿态解算偏差,罗盘误差会引发航向漂移,气压计噪声则直接影响高度控制。校准的本质是建立传感器原始输出与物理量(加速度、角速度、磁场强度、气压)之间的映射关系。

4.2.1 加速度计与陀螺仪校准

加速度计校准通常采用六面法:将飞行器分别水平、左侧、右侧、机头向下、机头向上、倒置放置,每个姿态保持静止数秒。PX4通过采集六个面的重力矢量,计算零偏与比例因子。陀螺仪校准则需在静止状态下采集数秒数据,确定零偏(bias)。在QGC中,进入“传感器校准”向导,按提示操作即可。

# PX4 命令行校准示例(通过MAVLink Shell)
accel cal
gyro cal
# 校准完成后,检查传感器健康状态
list_sensors

4.2.2 罗盘校准与磁场干扰排查

罗盘校准需在无大型金属物体的开阔场地进行。PX4采用“旋转校准”法:将飞行器绕各轴旋转,采集空间各方向的磁场样本。校准后应检查磁场的模长(约400-600mGauss)和倾角(与当地地磁倾角一致)。若机架存在大电流线路或动力电池靠近罗盘,会产生硬磁干扰,需通过安装位置调整或罗盘外置解决。

4.2.3 水平校准与传感器对齐

水平校准(Level Horizon)用于确定飞控板安装平面与机架平面的对齐关系。若飞控安装有倾斜,需在机架水平状态下执行此校准,否则巡航时飞机会向一侧漂移。PX4中通过“水平校准”向导,保持飞行器水平并点击确认即可。

校准项目 操作要点 验证指标 常见错误
加速度计 六面静止,每面保持2秒 各轴比例因子≈1,零偏<0.05g 放置不平或震动导致样本无效
陀螺仪 静止采样,机架无震动 零偏<0.5°/s 校准时机架未完全静止
罗盘 远离金属,旋转覆盖全方向 模长400-600mG,倾角与当地一致 附近有高压线或铁质桌面
水平 机架水平,飞控安装牢固 俯仰/横滚角≈0° 飞控安装倾斜未修正
风险提示:罗盘校准后若移动了GPS/罗盘模块位置,必须重新校准。否则EKF在融合磁力计数据时会产生航向偏差,导致巡航路径呈螺旋状发散。

4.3 基本参数调优:从默认值到巡航品质

参数调优的目标是让飞控在“稳定性”与“响应性”之间取得平衡。对于自主巡航,我们更关注姿态跟踪精度和位置保持能力,而非极限机动性能。PX4多旋翼的姿态控制分为角度环(外环)和角速率环(内环),典型参数为MC_ROLL_P、MC_ROLL_RATE_P/I/D。

4.3.1 滤波与估计器参数

IMU数据滤波直接影响控制品质。PX4中IMU_GYRO_CUTOFF(默认80Hz)和IMU_ACCEL_CUTOFF(默认100Hz)用于低通滤波。若机架震动较大,可适当降低截止频率(如40Hz),但会引入延迟。EKF2参数(如EKF2_ACC_NOISE、EKF2_GYRO_NOISE)需根据传感器数据手册和实际噪声水平调整,过大则估计滞后,过小则噪声放大。

4.3.2 位置与速度环调参

在自主巡航中,位置环(POS_XY_P)和速度环(VEL_XY_P/I)决定了航点跟踪的精度。默认参数通常偏保守,可先保持默认,通过试飞观察水平位置误差。若发现航点间过度超调,可降低VEL_XY_P;若跟踪滞后,则适当增大。

# 常用调参命令(通过QGC参数界面或MAVLink)
# 查看当前参数
param show MC_ROLL_RATE_P
# 修改参数(例如将横滚速率环P值从0.15改为0.18)
param set MC_ROLL_RATE_P 0.18
# 保存参数
param save

4.3.3 巡航相关参数

  • NAV_ACC_RAD:航点到达判定半径(默认0.5m),巡航时可放宽至1-2m,减少频繁修正。
  • WP_*:航点行为参数,如WP_YAW_BEHAVIOR(航向行为),可设为“沿轨迹方向”或“固定朝向”。
  • RTL_*:返航高度与速度,需确保高于周边障碍物。

4.4 案例拆解:多旋翼自主巡航前的飞控调优实战

某农业植保团队使用PX4 + Pixhawk 6C飞控,搭载RTK GPS和毫米波雷达,执行果园巡检任务。初始试飞时,无人机在航点间出现明显的“S形”轨迹,且高度波动超过±1.5m。

分析过程:首先检查传感器健康状态,发现加速度计Z轴噪声偏大(标准差0.08g),且罗盘模长在机头朝南时异常(从450mG降至380mG)。进一步排查发现,动力电池的XT90接头距离罗盘模块仅8cm,大电流放电时产生磁场干扰。

操作步骤:

  1. 将罗盘模块外移至机臂前端,远离电池和电源线,重新执行罗盘校准,模长恢复至420-460mG。
  2. 在QGC中降低IMU_ACCEL_CUTOFF至60Hz,观察加速度计噪声标准差降至0.03g。
  3. 将NAV_ACC_RAD从0.5m调整为1.2m,减少航点附近的反复修正。
  4. 将VEL_XY_P从默认1.8调至2.2,VEL_XY_I从0.2调至0.3,提高速度环响应。
  5. 进行小范围悬停测试,确认姿态波动小于±2°,然后执行3个航点的低速巡航(5m/s)。

结果对比:调整后,航点轨迹平滑,无S形摆动;高度波动控制在±0.4m以内;RTK定位下水平误差小于0.15m。代价是速度环P值增大后,在阵风条件下出现轻微抖动,但通过将IMU_GYRO_CUTOFF从80Hz降至50Hz,抖动被有效抑制。

复盘经验:调参前必须排除传感器物理层面的问题(如干扰、安装松动),否则参数调整只会掩盖症状。此外,每次只修改一个参数,并记录修改前后的飞行日志,便于回溯。

4.5 常见误区与总结复盘

误区一:跳过校准直接调PID。传感器未校准,姿态解算本身就有偏差,PID调优无从谈起。务必按顺序完成加速度计、陀螺仪、罗盘、水平校准。

误区二:盲目照搬他人参数。不同机架、电机、螺旋桨的振动特性差异巨大,滤波参数和PID增益必须基于本机试飞数据调整。

误区三:忽略EKF健康状态。即使传感器校准合格,EKF仍可能因GPS丢星、气压计受气流干扰而报错。巡航前必须检查EKF状态(QGC中显示为“健康”或“不健康”)。

误区四:参数修改后不保存。PX4参数在重启后若未执行param save,会恢复默认值,导致试飞结果不一致。