news 2026/10/15 11:54:36

QGroundControl 中 ArduPilot 机型专属配置:直升机、潜艇与固定翼设置全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QGroundControl 中 ArduPilot 机型专属配置:直升机、潜艇与固定翼设置全指南
  • 无人机
  • 智能硬件

【免费下载链接】qgroundcontrol

Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)

项目地址:https://gitcode.com/gh_mirrors/qg/qgroundcontrol
点击查看免费下载

本文围绕 Vehicle-Specific Setup (ArduPilot) 展开,系统讲解 QGroundControl(以下简称 QGC)的 Vehicle Setup 界面中,针对传统直升机(Helicopter)、ArduSub 潜艇(Submarine)与固定翼(Fixed Wing)三种机型额外呈现的专属配置页。读完本文,你将掌握这些页面何时出现、每个配置项的底层参数含义(如H_SW_TYPE、H_RSC_MODE、FRAME_CONFIG、JS_LIGHTS_STEPS、ARSPD_TYPE等),并能结合源码理解其条件触发机制,从而正确完成对应机型的装机与调参。

一、这些专属页面是如何被“按机型”显示的?

QGC 的 Vehicle Setup 视图左侧会按机型动态渲染配置页列表,具体由 APMAutoPilotPlugin.cc 中的vehicleComponents()方法决定。该方法在参数全部就绪(parametersReady())后逐个实例化组件,其中与本文主题直接相关的三条关键逻辑为:

  • 直升机页(Heli):仅当_vehicle->vehicleType() == MAV_TYPE_HELICOPTER且固件版本不低于 4.0.0 时才创建APMHeliComponent(APMAutoPilotPlugin.cc#L133-L137);
  • 潜艇页:仅当_vehicle->sub()为真时创建APMLightsComponent(灯光)与APMSubFrameComponent(机架),且 Sub Frame 页还要求固件版本 ≥ 3.5.0(APMAutoPilotPlugin.cc#L155-L165);
  • 空速页(Airspeed):只要参数集中存在ARSPD_TYPE参数就创建APMAirspeedComponent(APMAutoPilotPlugin.cc#L86-L90),这是固定翼(Plane)机型的典型特征。

这也是官方文档所说“部分 ArduPilot 机型会显示仅与该机种相关的额外配置页”的源码本质。所有组件随后会按名称排序显示在侧栏中,setupComplete()始终返回true,即这些专属页不阻塞飞行,属于“辅助配置页”。

二、直升机(Helicopter,ArduPilot 4.0+)

传统直升机机架(带倾斜盘/十字盘结构)在 ArduPilot 4.0 及以上固件中会额外显示Heli配置页。其组件描述为 “Configure swashplate, governor, and rotor parameters.”(APMHeliComponent.h),页面由 APMHeliComponent.qml 实现,共分为五个区域。

2.1 Servo Setup(舵机设置)

页面顶部以表格形式列出Servo 1–8的输出配置,每行对应一组参数:SERVOn_FUNCTION(功能,下拉选择)、SERVOn_MIN(最小 PWM)、SERVOn_MAX(最大 PWM)、SERVOn_TRIM(中立点/微调)、SERVOn_REVERSED(是否反向)。这是直升机通道分配的基础,需先在此确认各舵机输出与H_*旋翼参数所期望的通道一致。

2.2 Swashplate Setup(倾斜盘设置)

对应参数与含义如下(均通过controller.getParameterFact(-1, "...")绑定,见 APMHeliComponent.qml#L28-L39):

参数页面显示含义说明
H_SV_MANServo manual mode舵机手动模式开关,决定舵机是否由飞控直接驱动
H_SW_TYPESwashplate type倾斜盘类型(如 120° CCPM 等),必须与机械结构匹配
H_SW_COL_DIRCollective direction总距(集体螺距)方向,错误会导致推油门反而减螺距
H_SW_LIN_SVOLinearize servo舵机线性化,用于补偿摇臂非线性
H_FLYBAR_MODEFlybar mode有/无平衡杆(flybar)模式选择
H_CYC_MAXCyclic max周期变距最大角度
H_COL_MAXCollective max总距最大角度(正值上限)
H_COL_ANG_MAXCollective angle max总距角度最大值
H_COL_MINCollective min总距最小角度(负值下限)
H_COL_ANG_MINCollective angle min总距角度最小值
H_COL_ZERO_THRSTZero-thrust collective零推力总距角,悬停调参的关键参考点
H_COL_LAND_MINLanding collective minimum着陆时允许的最小总距

配置时建议顺序:先设H_SW_TYPE→ 检查H_SW_COL_DIR方向 → 再按机械行程设置各角度限位,最后验证H_COL_ZERO_THRST。

2.3 Throttle Settings(油门/旋翼转速设置)

RSC(Rotor Speed Control,旋翼转速控制)相关参数(APMHeliComponent.qml#L41-L52):

参数页面显示含义说明
H_RSC_MODERSC mode旋翼转速控制模式(如直连油门/转速闭环等)
H_RSC_CRITICALCritical rotor speed临界转速,低于此值触发保护
H_RSC_RAMP_TIMERamp time转速斜坡建立时间
H_RSC_RUNUP_TIMERunup time启动加速(runup)时间
H_RSC_CLDWN_TIMECooldown time停车减速(cooldown)时间
H_RSC_SETPOINTSetpoint目标转速设定点
H_RSC_IDLEIdle percentage怠速百分比
H_RSC_THRCRV_0/25/50/75/100Throttle curve油门曲线,取 0/25/50/75/100% 五个插值点(与文档描述一致)

2.4 Governor Settings(转速调节器设置)

(APMHeliComponent.qml#L54-L59):

参数说明
H_RSC_GOV_COMP调节器补偿(compensation)
H_RSC_GOV_DROOP转速下垂(droop)系数
H_RSC_GOV_FF前馈(feed-forward)增益
H_RSC_GOV_RANGE调速范围
H_RSC_GOV_RPM调节器目标 RPM
H_RSC_GOV_TORQUE扭矩估算相关参数

2.5 Miscellaneous Settings(杂项设置)

包括 Stabilize 模式总距曲线IM_STB_COL_1~IM_STB_COL_4,以及尾桨与陀螺仪参数:H_TAIL_TYPE(尾桨类型)、H_TAIL_SPEED、H_GYR_GAIN(陀螺仪增益)、H_GYR_GAIN_ACRO(特技模式增益)、H_COLYAW(总距-偏航混控)。

注意:Heli 组件在 APMHeliComponent.h 中声明allowSetupWhileArmed()返回true,即允许在解锁(armed)状态下查看该页,但修改参数仍建议在解锁前完成。

三、潜艇(Submarine,ArduSub 3.5+)

ArduSub 机型(_vehicle->sub()为真)会显示Lights与Frame两个专属页。QGC 还内置了 ArduSub 的离线编辑参数文件 Sub.OfflineEditing.params(对应 Sub 4.7.0 固件),用于无飞控时的参数查看与编辑。

3.1 Sub Frame(机架选择)

组件描述为 “Configure the submarine motor layout and load default parameters.”(APMSubFrameComponent.h),页面由 APMSubFrameComponent.qml 实现,核心是一个可视化机架选择器:每种机架对应一张俯视图(BlueROV1、Vectored 等 PNG 资源,通过 CMake 的QT_RESOURCE_ALIAS注册为/qmlimages/Frames/*.png,见 CMakeLists.txt#L183-L208),点击卡片即设置FRAME_CONFIG参数。

内置机架清单(APMSubFrameComponent.qml#L82-L122):

显示名称FRAME_CONFIG值默认参数文件
BlueROV10(无,需手动确认)
BlueROV2/Vectored1Sub/bluerov2-<version>.params
Vectored-6DOF2Sub/bluerov2-heavy-<version>.params
SimpleROV-34(无)
SimpleROV-45(无)
SimpleROV-56(无)

版本相关行为(这是该页最有用的细节):

  • 选择有默认参数文件的机架后,会弹出确认对话框询问 “Would you like to load the default parameters for the frame?”,选Yes时 QGC 会调用loadFrameDefaultParameters(),按固件版本自动选择参数文件(APMSubFrameComponent.qml#L31-L43):版本 ≥ 4.0.0 用4_0_0,≥ 3.5.4 用3_5_4,≥ 3.5.2 用3_5_2,否则用3_5;
  • 固件版本 ≥ 4.1.0 时(_hasSensibledefaults),QGC 认为固件默认值已足够好,点击机架卡片直接写入FRAME_CONFIG,不再弹出加载默认参数的对话框(APMSubFrameComponent.qml#L167-L172)。

3.2 Lights(灯光设置)

灯光页由 APMLightsComponent.qml 实现,包含三部分:

Light Output Channels(灯光输出通道):通过SERVOn_FUNCTION参数分配灯光通道。代码约定RCIN9(值 59)→Lights 1,RCIN10(值 60)→Lights 2(APMLightsComponent.qml#L42-L45),可分配的通道范围为 Servo 5–16。设置新通道时会先清除其他通道上的同名功能(setRCFunction())。通道总数上限由BRD_PWM_COUNT决定:8 + (BRD_PWM_COUNT == 7 ? 3 : BRD_PWM_COUNT),最大 16 路。

Brightness Steps(亮度档位):这是文档提到的两个参数的分界点:

  • 固件3.5.1 及更早:使用JS_LIGHTS_STEP(单步增量值),页面按(1900-1100)/steps反算步进,且_stepSize低于 80 时强制回 80;
  • 固件3.5.2 及以上:改用JS_LIGHTS_STEPS(亮度步数),下拉框直接提供 1–10 档。

(对应代码见 APMLightsComponent.qml#L36-L37 与calcCurrentStep()/calcStepSize()。)灯光电平相关的事实元数据(lights1/lights2以 % 为单位等)可在 SubmarineFact.json 中查看。

小贴士:若旧固件上无法直接看到JS_LIGHTS_STEPS,说明你的飞控是 3.5.1 或更早版本,需改配JS_LIGHTS_STEP。

四、固定翼(Fixed Wing)的空速传感器校准

官方文档指出:当检测到空速传感器时,固定翼机型会额外显示空速校准页。从源码看,触发条件正是参数集中存在ARSPD_TYPE(APMAutoPilotPlugin.cc#L86-L90),组件描述为 “Configure airspeed sensor type and calibration.”(APMAirspeedComponent.h)。

页面(APMAirspeedComponent.qml)分为Basic与Advanced两个标签页:

4.1 Basic(基础)

  • Primary Airspeed Sensor / Second Airspeed Sensor:分别配置ARSPD_TYPE与ARSPD2_TYPE传感器类型。代码中定义了完整的类型枚举(APMAirspeedComponent.qml#L22-L36),包括:0=None、2=Analog、7=SDP3X、8=DroneCAN、9=DLVR、10=ASP5033、11/12=MS5525(两个地址)、13=NMEA、14=MSP、16=ExtAHRS、17/18/19=SDPx1/x2/x3。选择非 None 类型后还会显示:
    • ARSPD_USE/ARSPD2_USE:是否使用该空速(对应 “Use airspeed” 开关);
    • ARSPD_RATIO/ARSPD2_RATIO:空速比例因子(仅皮托管类传感器显示);
    • ARSPD_AUTOCAL:飞行中自动校准比例。
  • Multi-Sensor Options:当主、副传感器同时启用时出现,用ARSPD_PRIMARY选择主用传感器。
  • Airspeed Limits(空速限制):AIRSPEED_CRUISE(巡航空速)、AIRSPEED_MIN(最小空速)、AIRSPEED_MAX(最大空速)、AIRSPEED_STALL(失速空速)。

4.2 Advanced(高级)

  • Sensor Settings:ARSPD_OFFSET(空速偏移,校准结果)、ARSPD_SKIP_CAL(跳过校准)、ARSPD_TUBE_ORDR(皮托管安装顺序/朝向)、ARSPD_PIN(模拟传感器引脚)、ARSPD_BUS(I2C 总线)、ARSPD_PSI_RANGE(量程,仅 SDP3X/DLVR/ASP5033/MS5525/SDPx 系列显示);
  • Health Monitoring(健康监控):ARSPD_WIND_MAX(空速与地速最大允许差值)、ARSPD_WIND_WARN(告警阈值)、ARSPD_WIND_GATE(重新启用门限大小)、ARSPD_OFF_PCNT(偏移校准误差告警百分比);
  • Airspeed Options:以位掩码形式编辑ARSPD_OPTIONS。

校准流程与机型联动:固定翼在 Sensors 页做压力(Baro/Airspeed)校准时,QGC 会提示“遮蔽空速传感器、勿触碰或堵塞气孔”,对应校准动作类型为CalibrationAPMPressureAirspeed(见 APMSensorsComponentController.cc#L363),校准结果会回写到空速偏移量中。

五、使用前提与限制小结

配置页适用机型固件版本要求触发条件(源码依据)
Heli传统直升机ArduPilot 4.0+MAV_TYPE_HELICOPTER且版本 ≥ 4.0.0
Frame(Sub)ArduSub 潜艇ArduSub 3.5+(页面)sub()为真且版本 ≥ 3.5.0
LightsArduSub 潜艇ArduSub 3.5+sub()为真(参数名随版本差异:JS_LIGHTS_STEP/JS_LIGHTS_STEPS)
Airspeed固定翼(典型)无固定版本参数集中存在ARSPD_TYPE

所有这些页面都集中在 Vehicle Setup 视图 的 ArduPilot 专属页列表中(见 setup_view.md#L25)。需要强调的是:

  1. 本文所有参数名均以 QGC 源码中实际绑定的H_*、SERVOn_*、FRAME_CONFIG、JS_LIGHTS_*、ARSPD*、AIRSPEED_*为准,最终生效数值仍以你所用 ArduPilot 固件版本的参数定义为准;
  2. 若需离线查看潜艇默认参数,可参考仓库内置的 Sub.OfflineEditing.params;
  3. 修改任一专属页参数前,建议先通过Parameters页确认参数存在,避免因固件版本差异导致写入失败。

通过本文的“页面何时出现 + 每个参数做什么 + 源码如何绑定”三层视角,你可以快速定位 QGC 中 ArduPilot 机型专属配置的完整脉络,并在直升机倾斜盘调校、潜艇机架/灯光设置与固定翼空速校准三类任务中直接落地。

  • 无人机
  • 智能硬件

【免费下载链接】qgroundcontrol

Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)

项目地址:https://gitcode.com/gh_mirrors/qg/qgroundcontrol
点击查看免费下载

相关推荐

上一篇:Zabbix 官方 Apache 监控模板深度解析:基于 Zabbix agent 主动模式与 mod_status 的零脚本采集方案
下一篇:TDengine Linux 分析调试工具实战指南:gdb、valgrind、bpftrace、perf 与 core dump 定位崩溃

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 11:54:21

Docker部署DeepSeek Harness:搭建局域网私有AI Agent平台

先说结论&#xff1a;这个方案我实测跑通了&#xff0c;而且比我预想的轻松不少。如果你手头有一台配置还行的机器&#xff0c;想在公司或家里局域网内搞一个私有 AI Agent 平台&#xff0c;用 Docker 部署 DeepSeek Harness 确实是一条非常顺的路。它能让你用自己的算力跑大模…

作者头像 李华
网站建设 2026/10/15 11:53:51

AlphaControls 2019 v14.31 实战:Delphi VCL 程序皮肤引擎接入与避坑指南

简介&#xff1a;AlphaControls 2019 v14.31 是一套面向 Delphi/C Builder 开发者的专业皮肤控件集合&#xff0c;通过丰富的组件属性与行为扩展&#xff0c;帮助程序快速实现独创的皮肤化及无皮肤业务/媒体界面&#xff0c;适合中高级桌面应用开发者选用。资源包内含约 2000 个…

作者头像 李华
网站建设 2026/10/15 11:53:40

LQR一阶倒立摆完整实战:建模、仿真调参与实物部署闭环

简介&#xff1a;这是一份面向控制理论与自动化初学者的LQR一阶倒立摆MATLAB源码包&#xff0c;聚焦倒立摆系统建模、非线性线性化与LQR最优控制器设计问题。压缩包共5个文件&#xff0c;以4个.m脚本和1个.asv辅助脚本为主&#xff0c;整体仅3KB&#xff1b;其中演示脚本提供完…

作者头像 李华
网站建设 2026/10/15 11:52:58

数值分析上机题通关指南:从算法原理到代码实现

数值分析这门课&#xff0c;很多人是上课听得懂、作业不会写&#xff0c;到了上机题更是对着编辑器半天憋不出几行。原因是这类题目表面上考数学定理&#xff0c;实际上考的是“把数学变成能跑的程序”的能力&#xff0c;而这中间缺了不少过渡。这篇内容我按数值分析的几道上机…

作者头像 李华
网站建设 2026/10/15 11:52:28

兴业银行Java笔试题解析:JVM、InnoDB与对称数算法实战

简介&#xff1a;本资源为2020年兴业银行Java校招笔试真题及深度解析文档&#xff0c;面向备战金融行业技术岗的Java初/中级开发者与应届求职者&#xff0c;聚焦银行类企业对Java核心能力、数据库、JVM及系统基础的考察重点。文档以1个12KB的Word&#xff08;.docx&#xff09;…

作者头像 李华
网站建设 2026/10/15 11:52:15

LZW无损压缩算法原理与C++实现解析:从GIF到嵌入式场景

前阵子接了个老文件格式的兼容解析Demo&#xff0c;翻到格式文档&#xff0c;里面写着“数据段使用LZW编解码算法压缩”。LZW这个名字&#xff0c;现在一提压缩场景基本没人会主动选它&#xff0c;大家默认zlib或者zstd&#xff0c;但我偏偏躲不开——GIF、TIFF、Unix compress…

作者头像 李华