- 无人机
- 智能硬件
【免费下载链接】qgroundcontrol
Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
本篇技术指南聚焦 QGroundControl(QGC)地面站中 ArduPilot 飞行器的ESC(电子调速器,Electronic Speed Controller)配置与校准功能。文章将以官方用户指南中 ESC 章节为核心骨架,结合仓库中
src/AutoPilotPlugins/APM/APMESCComponent.qml等源码实现,系统讲解输出协议类型、PWM 限值、电机怠速与 DShot 参数的含义,并给出完整的电调校准操作步骤。读完本文,你将能独立完成一架 ArduPilot 多旋翼、固定翼或 VTOL(含 QuadPlane)的 ESC 配置与油门行程校准。
一、功能概览:ESC 页面能做什么
QGroundControl 的ESC 页面(位于 Setup 设置流程中,对应 ArduPilot 固件的ESC组件)负责两类工作:
- 配置电调输出参数:包括 PWM 输出协议类型、输出脉宽上下限、电机怠速/转速范围等;
- 执行 ESC 校准:通过一键触发 ArduPilot 固件内置的油门行程校准流程,让电调学习遥控器/飞控输出信号的完整范围。
从源码结构看,该页面由 APMESCComponent.qml 实现,其 C++ 侧组件 APMESCComponent.h 对它的描述是:
"Configure and calibrate Electronic Speed Controllers."(配置并校准电子调速器)
该组件的allowSetupWhileArmed()返回true,意味着页面在电机已解锁(armed)状态下仍允许打开,但这不代表校准可以在带桨状态下安全执行(详见第三节的安全警告)。在 APMAutoPilotPlugin.cc 中,ESC 组件与飞行模式、遥控器、电源、飞行安全等组件一样,被标记为requiresAirframeCheck = true,即只有在机架(Airframe)配置完成后才允许访问——这与实际逻辑一致:必须先选对机架类型,ESC 页面才会出现并可用。
二、Configuration:ESC 输出参数详解
页面顶部 "Configuration"(配置)分组框内的参数直接映射到 ArduPilot 固件参数。QGC 通过FactPanelController读取飞控参数并动态生成输入控件。
2.1 输出协议类型(Output type)
- 对应参数:
MOT_PWM_TYPE(Copter / Rover / Sub)或Q_M_PWM_TYPE(QuadPlane VTOL 机型的垂直电机) - 可选值:Normal / OneShot / OneShot125 / DShot150 / DShot300 / DShot600 / DShot1200
该参数决定飞控以何种协议向电调发送转速指令。Normal(普通 PWM,默认值 0)是最常见的模式;OneShot与OneShot125为缩短信号周期、降低响应延迟的传统高速协议;DShot系列则为数字信号协议,兼具更高的刷新率与遥测回传能力(取决于电调是否支持)。
QuadPlane 特判逻辑:在 APMESCComponent.qml 中,QGC 通过探测参数是否存在来判断机型:
property bool _isQuadPlane: !controller.parameterExists(-1, "MOT_PWM_TYPE") && controller.parameterExists(-1, "Q_M_PWM_TYPE") property string _escPrefix: _isQuadPlane ? "Q_M_" : "MOT_"即:若飞控上不存在MOT_PWM_TYPE而存在Q_M_PWM_TYPE,则判定为 QuadPlane,后续所有电机参数统一改用Q_M_前缀读写。
从默认参数文件看,Copter/Rover/Sub 的
MOT_PWM_TYPE默认值均为0(Normal),见 Copter.OfflineEditing.params、Rover.OfflineEditing.params 与 Sub.OfflineEditing.params。
重启提示:修改输出协议后,QGC 会在该参数下方显示 "Requires vehicle reboot"(需要重启飞行器)提示,因为协议切换需在飞控下次启动时生效。
2.2 输出脉宽范围:PWM min / max
- Output PWM min→
MOT_PWM_MIN:发送给电调的最小 PWM 值(对应油门杆位 0%,即电机最低转速指令) - Output PWM max→
MOT_PWM_MAX:发送给电调的最大 PWM 值(对应油门杆位 100%)
这两个数值定义了飞控输出信号的脉宽边界。仓库默认参数中:
| 机型 | MOT_PWM_MIN | MOT_PWM_MAX |
|---|---|---|
| Copter | 1000 µs | 2000 µs |
| Sub | 1100 µs | 1900 µs |
分别见 Copter.OfflineEditing.params 与 Sub.OfflineEditing.params。绝大多数 PWM 电调的标准输入范围即为 1000–2000 µs;Sub(水下机器人)因电机/电调特性差异采用更窄的 1100–1900 µs。如果你使用的电调需要不同的信号范围,可在页面直接修改。
2.3 电机转速(spin)参数
- Spin when armed→
MOT_SPIN_ARM:解锁(armed)但未起飞时电机的怠速电平(比例值) - Spin minimum→
MOT_SPIN_MIN:飞行过程中的最低转速指令电平,用于防止电机完全停转导致响应迟钝或失控 - Spin maximum→
MOT_SPIN_MAX:允许的最大转速电平(比例值)
Copter 默认值分别为0.1、0.15、0.95(见 Copter.OfflineEditing.params)。合理设置MOT_SPIN_ARM可避免解锁时电机堵转;MOT_SPIN_MIN建议略高于电调能稳定维持的最低转速,保证飞行中油门响应的线性度。
2.4 DShot 专属设置
当输出协议类型选为 DShot 系列(源码中判定条件为_motPwmType.rawValue >= 4,即枚举值从 DShot150 起)时,页面上会额外显示两个下拉框:
- DShot ESC type→
SERVO_DSHOT_ESC:DShot 电调协议变体(如 DShot150/300/600/1200 对应的标准或双向模式等,具体选项由飞控固件参数元数据决定) - DShot output rate→
SERVO_DSHOT_RATE:DShot 帧率(Hz),决定数字信号的刷新频率
这两个参数在仓库各机型的默认参数文件中均存在且默认值为0,例如 Copter.OfflineEditing.params。它们由 QGC 页面动态显示(visible: _isDshot && ...),非 DShot 协议下不会出现。
三、Calibration:电调校准操作
::: warning校准时必须拆除所有螺旋桨(propellers)!:::
这是整个 ESC 校准流程中最关键的安全红线。校准过程中电调会输出最大/最小油门指令,电机可能全速旋转,带桨操作极度危险。
3.1 校准原理
校准的本质是让电调学习油门信号的完整范围(即最小与最大 PWM 对应关系)。QGC 的校准按钮并不会直接驱动电机,而是修改飞控参数触发固件自身的校准逻辑:
- 点击Calibrate按钮,QGC 将
ESC_CALIBRATION参数(QuadPlane 机型为Q_ESC_CAL)设为3; - 参数值在下一次飞控重启时生效,电调随即进入油门行程学习模式。
从 APMESCComponent.qml 源码可以看到参数名同样区分机型前缀:
property string _escCalParam: _isQuadPlane ? "Q_ESC_CAL" : "ESC_CALIBRATION" property bool _escCalibrationAvailable: controller.parameterExists(-1, _escCalParam)Copter 默认参数中ESC_CALIBRATION默认值为0(表示未启用校准,见 Copter.OfflineEditing.params)。按钮的启用条件也与该值联动:只有当ESC_CALIBRATION当前为0时按钮才可点击;点击后值变为3,按钮随之置灰,页面切换为校准步骤指引模式。
3.2 完整校准步骤
点击 Calibrate 后,QGC 页面会按顺序显示以下引导步骤(文本定义在 APMESCComponent.qml):
- 断开 USB 与电池,使飞控完全断电;
- 重新连接电池上电;
- 若飞控带有蜂鸣器,会播放arming tone(解锁提示音);
- 若飞控配有安全开关(safety button),按住安全开关直到其 LED 显示常亮红色;
- 随后会听到一段音乐音调后接两声短蜂鸣;
- 几秒后听到若干声蜂鸣,每声对应一个电池电芯(如 6S 电池响 6 声);
- 最后听到一声长蜂鸣,表示油门端点已写入、电调校准完成;
- 断开电池并重新正常上电,完成整个流程。
这里的蜂鸣序列是电调完成学习的标准反馈信号:多声短响表示电芯数自检,单声长响表示端点记录成功。若最终没有听到预期声音,应检查接线、重复上电步骤或确认ESC_CALIBRATION已正确置为3。
3.3 注意事项
- 校准是针对当前连接的全部电调执行的,多旋翼应保证所有电调均正确连接电源与信号线;
- 校准完成后
ESC_CALIBRATION会回到0(固件侧处理),如需再次校准可重复上述流程; - QuadPlane 机型请留意参数前缀差异(
Q_ESC_CAL),其校准入口与步骤与普通多旋翼一致。
四、源码实现脉络速览
为便于深入理解,这里给出 ESC 功能相关的仓库实现文件索引:
| 文件 | 作用 |
|---|---|
| APMESCComponent.qml | ESC 设置页面 UI,含参数读写、QuadPlane 前缀切换、DShot 动态显示与校准按钮逻辑 |
| APMESCComponent.h | 组件 C++ 定义(名称、图标、描述、允许 armed 状态下访问等) |
| APMAutoPilotPlugin.cc | ESC 组件在 APM 自动导航插件中的注册位置 |
| Copter.OfflineEditing.params | Copter 机型相关参数的离线默认值(PWM、spin、ESC_CALIBRATION 等) |
| Sub.OfflineEditing.params | Sub 机型默认值(注意 PWM 范围为 1100–1900) |
| Rover.OfflineEditing.params / Plane.OfflineEditing.params | Rover 与 Plane 机型参数默认值 |
以上.params文件同时用于 QGC 的离线参数编辑与元数据校验,因此其中记录的默认值可作为参数语义的可靠参考。
五、总结
QGroundControl 的 ESC 页面把 ArduPilot 底层参数(MOT_PWM_TYPE、MOT_PWM_MIN/MAX、MOT_SPIN_ARM/MIN/MAX、SERVO_DSHOT_ESC/RATE、ESC_CALIBRATION)封装为直观的图形化界面,并针对 QuadPlane 机型自动切换Q_M_/Q_ESC_CAL前缀。理解这些参数与校准流程的关系,是安全完成首次装机调试的前提——配置协议前先确认电调支持能力,校准时务必拆桨,并按页面引导的蜂鸣序列确认结果。若需了解相邻模块(如伺服输出映射、飞行安全开关),可继续阅读仓库用户指南中的 servo_outputs.md 与 flight_safety.md。
- 无人机
- 智能硬件
【免费下载链接】qgroundcontrol
Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
相关推荐
QGroundControl Power Setup 完整指南:电池校准、电压/电流标定与 ESC 校准
QGroundControl Power Setup 完整指南:电池校准、电压/电流标定与 ESC 校准 导读 本文围绕 QGroundControl(QGC)
无人机智能硬件PX4 电调与电机(ESC & Motors)完全指南:协议选型、接线配置与校准实战
PX4 电调与电机(ESC & Motors)完全指南:协议选型、接线配置与校准实战 PX4 无人机普遍使用由飞控通过电子调速器(Electronic Spee
嵌入式物联网机器人自动驾驶智能硬件QGroundControl 摇杆(Joystick/Gamepad)配置完全指南:从校准到高级调参
QGroundControl 摇杆(Joystick/Gamepad)配置完全指南:从校准到高级调参 本文是 QGroundControl 用户指南中 Joys
无人机智能硬件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考