一、ArduPilot 概览与调参哲学

各位同学,欢迎来到这门课。我是你们的老朋友,一个在无人机飞控领域摸爬滚打了十来年的工程师。

今天咱们聊点实在的。ArduPilot 这个开源项目,说实话,刚接触的时候我也觉得头大。代码量巨大,参数上千个,飞行模式一大堆。但你别怕,这东西有章可循。我刚开始带团队的时候,有个新人上来就改参数,结果飞机在天上翻了几个跟头……嗯,从那以后,我要求所有人必须先理解架构,再动手调参。

1.1 ArduPilot 架构:三层结构

ArduPilot 的代码,说白了就三层。你把它想成一个公司就明白了。

  • 硬件抽象层(HAL):这是底层,负责跟传感器、电机、遥控器打交道。换飞控板,只需要改这一层。
  • 核心库(AP_*):中间层,数学运算、姿态解算、导航算法都在这里。这是公司的“技术中台”。
  • 飞行模式(Mode):最上层,每个模式就是一个“业务部门”。Stabilize 是新手保护部门,Loiter 是定点悬停部门,Auto 是自动驾驶部门。

我个人习惯,看代码先看 Mode 层。因为飞行模式是用户直接感知的东西,调参也主要在这里。

核心观点:调参不是瞎调,你得知道这个参数属于哪一层。改 HAL 层的参数会影响所有模式,改 Mode 层的参数只影响当前模式。这个区分很重要。

ArduPilot 三层架构图 ArduPilot 三层架构 飞行模式层(Mode) Stabilize | Loiter | Auto | RTL | Guided | 等等 核心库层(AP_*) 姿态解算 | EKF | 导航 | 控制律 | 参数系统 硬件抽象层(HAL) 传感器驱动 | PWM 输出 | 通信接口 越往上越接近用户

1.2 飞行模式分类

ArduPilot 有几十种飞行模式,但你别慌。我把它分成四大类,你记住这个分类,调参就有方向了。

类别 代表模式 核心特点 调参重点
手动模式 Stabilize, Acro, Manual 飞手直接控制,飞控只做姿态稳定 PID 速率环、角速度限幅
辅助模式 AltHold, Loiter, PosHold 飞控接管部分控制(高度/位置) 位置环 PID、加速度限幅
自动模式 Auto, Guided, RTL 飞控完全自主飞行 航点跟踪、速度规划、避障
特殊模式 Drift, Sport, Flip 特定场景专用 按场景单独调参

我的经验:新手调参,先从 Stabilize 模式开始。这个模式最基础,也最安全。我见过太多人一上来就调 Loiter,结果飞机在天上画圈圈……先把 Stabilize 调稳了,再谈别的。

1.3 调参的核心原则

调参这件事,说白了就是“找平衡”。我总结了三条铁律,你记好了。

  1. 一次只改一个参数:改完试飞,观察效果,再改下一个。同时改三个参数,出了问题你都不知道是哪个引起的。
  2. 从内环到外环:先调速率环(Rate),再调姿态环(Angle),最后调位置环(Position)。内环不稳,外环调得再好也没用。
  3. 小步快跑:每次参数变化不要超过 20%。我刚开始做调参的时候,有一次把 P 值翻了一倍,飞机直接翻了个跟头……嗯,从那以后我再也不敢大改了。

警告:调参前一定要做好安全准备。我曾经在测试场看到有人没装桨保护罩就起飞,结果参数调崩了,飞机直接撞墙。安全第一,别嫌麻烦。

1.4 安全准则

安全不是口号,是习惯。我列几条硬性规定,你照着做。

  • 调参前:检查电池电压、GPS 搜星数、遥控器信号强度。这三项缺一不可。
  • 调参中:手放在遥控器切回自稳模式的开关上。一旦不对劲,立刻切模式。
  • 调参后:记录修改的参数和试飞结果。我有个本子,专门记每次调参的“病历”。

避坑指南:我曾经在户外调参,没注意风速。结果参数在无风环境下调得挺好,一刮风飞机就开始抖。后来我养成了习惯:调参时至少飞三个方向(顺风、逆风、侧风),确保参数在各种条件下都稳定。

调参安全流程 调参安全流程 1. 安全检查 2. 单参数调整 3. 试飞验证 4. 记录结果 不满意则返回步骤2

好了,这一章的内容就这些。记住:架构是骨架,分类是地图,原则是工具,安全是底线。把这四点吃透了,后面的调参之路你会走得很顺。