目录
[二、QGroundControl 是什么](#二、QGroundControl 是什么)
[2.1 QGC关键功能](#2.1 QGC关键功能)
[(2)刷写 ArduSub 固件。](#(2)刷写 ArduSub 固件。)
[三、为什么 ArduSub 常用 QGroundControl](#三、为什么 ArduSub 常用 QGroundControl)
[四、安装 QGroundControl 之前需要知道什么](#四、安装 QGroundControl 之前需要知道什么)
[五、QGroundControl 的安装](#五、QGroundControl 的安装)
[5.1 Windows 安装](#5.1 Windows 安装)
[5.2 Ubuntu 安装](#5.2 Ubuntu 安装)
[七、ArduSub 固件刷写的基本流程](#七、ArduSub 固件刷写的基本流程)
[7.1 刷写前的准备](#7.1 刷写前的准备)
[(1)确保飞控能够通过 USB 正常连接电脑。](#(1)确保飞控能够通过 USB 正常连接电脑。)
[7.2 在 QGC 中进入固件页面](#7.2 在 QGC 中进入固件页面)
[7.3 选择 ArduPilot,并定位到 Sub 类型](#7.3 选择 ArduPilot,并定位到 Sub 类型)
[7.4 断开并重新连接飞控的原因](#7.4 断开并重新连接飞控的原因)
[7.5 刷写成功后会发生什么](#7.5 刷写成功后会发生什么)
一、前言
在前面的几篇内容中,已经介绍了 ArduSub 的基本定位、系统组成、车架类型以及开发者如何从源码层面理解和定制这一套水下机器人开源控制方案。对于初学者而言,在真正进入参数配置、手柄映射、传感器校准与下水调试之前,还有一个必须完成的基础步骤,即地面站软件安装与飞控固件刷写。
在 ArduSub 体系中,QGroundControl是最常用的地面站软件之一。它承担了设备连接、参数配置、状态监控、固件加载、模式切换、手柄映射、视频显示与任务交互等功能,是用户与飞控之间最直接的操作界面。对于第一次接触 ArduSub 的使用者来说,很多"系统能不能跑起来"的问题,实际上都要先通过 QGroundControl 完成第一步。
因此,本篇将围绕 ArduSub 的快速上手过程,重点介绍 QGroundControl 的作用、安装方法以及 ArduSub 固件刷写的基本流程,为后续的框架选择、初始设置和手柄控制做好准备。
二、QGroundControl 是什么
QGroundControl,通常简称 QGC,可以理解为一套面向 MAVLink 生态的通用地面站软件。它能够用于 PX4 和 ArduPilot 系列飞控的配置与监控,也支持多类 MAVLink 设备的连接与管理。官方文档将其定位为面向初学者和开发者都较为友好的地面站工具,既提供基础配置能力,也支持更完整的飞行与任务控制功能。
2.1 QGC关键功能
对于 ArduSub 而言,QGC 的意义并不只是"看界面参数",而是承担了整个入门阶段最关键的几个功能:
(1)与飞控建立连接。
用户需要通过USB 或遥测链路让电脑与 Pixhawk 类飞控通信,只有连接建立后,后续参数读取、固件加载、校准和模式管理才有基础。
(2)刷写 ArduSub 固件。
QGroundControl 桌面版支持向 Pixhawk 家族控制板写入 PX4 或 ArduPilot 固件,也支持选择稳定版、测试版、日构建版本或自定义固件文件。对于使用 ArduSub 的 ROV 平台来说,这一步决定了飞控内部运行的控制栈到底是什么。
(3)完成后续的基础调试入口。
包括框架选择、推进器测试、手柄校准、传感器校准、模式配置、电源参数检查和视频流查看等,后续几乎都要在 QGC 内部完成。QGC 本身也明确支持 ArduPilot 设备的完整配置与状态查看。
因此,从使用角度看,QGroundControl 可以视作 ArduSub 系统的"可视化操作窗口"。飞控负责执行控制逻辑,而 QGC 负责把这些能力以图形界面的方式呈现给使用者。
三、为什么 ArduSub 常用 QGroundControl
很多初学者第一次接触开源飞控时,容易把"飞控固件"和"地面站软件"混在一起。实际上,两者分工并不相同。
ArduSub 是运行在飞控板上的控制程序,它负责姿态解算、模式管理、输入解析、推进器混控、故障保护以及与外设进行底层交互。它更像是设备内部真正工作的"大脑"。
而 QGroundControl 并不直接替代飞控控制逻辑,它更多是人与飞控交互的桥梁。QGC 可以帮助用户完成以下操作:
- 查看飞控当前状态
- 刷写或更新固件
- 修改参数
- 进行校准
- 接入手柄
- 监控遥测和视频
- 执行任务与模式切换
换句话说,ArduSub 决定"设备怎么控制",QGroundControl 决定"人怎么把指令和配置送进去,并看到系统反馈"。
对于 BlueROV、Pixhawk + 树莓派这类典型方案而言,QGroundControl 之所以几乎成为标配,一个重要原因就在于它把大量本来需要命令行或底层工具完成的工作,整合成了统一图形界面。这大大降低了新手的入门门槛。
四、安装 QGroundControl 之前需要知道什么
在开始安装之前,需要先明确一点:固件刷写功能主要依赖桌面版 QGroundControl。官方说明中明确提到,固件加载功能并不提供在手机或平板版本上,因此如果要完成 ArduSub 的首次刷写,通常应优先使用 Windows、macOS 或 Ubuntu 桌面环境。
另外,QGroundControl 是跨平台软件,官方文档给出了多个系统的安装支持。当前文档中可见,Windows 10/11、Ubuntu 22.04/24.04 等桌面系统均可作为安装平台。
对于做水下机器人开发的用户来说,常见选择一般有两种:
一种是 Windows 笔记本 。
优点是安装简单、驱动兼容性普遍较好,适合大多数刚开始接触 ArduSub 的用户。
另一种是 Ubuntu 开发环境 。
如果后续还要做树莓派、ROS、MAVLink 通信、视频流和伴随计算机开发,那么在 Ubuntu 下安装 QGC 会更贴近整体开发环境。但相应地,系统串口权限、依赖库和视频插件等问题也需要提前处理。
五、QGroundControl 的安装
5.1 Windows 安装
如果使用 Windows,官方提供了安装程序,下载后直接运行即可。当前文档给出的支持范围包括 Windows 10 和 Windows 11。安装完成后,系统通常会创建多个启动入口,其中标准模式适合大多数用户,只有在显卡渲染或视频显示异常时,才需要尝试兼容模式或安全模式。
对于初学者来说,Windows 平台最大的优势是"上手快"。如果你的目标是尽快完成 ArduSub 的刷写和连通性测试,Windows 往往是最省事的入口。
5.2 Ubuntu 安装
如果使用 Ubuntu,安装前需要额外注意串口访问与视频依赖问题。QGroundControl 官方文档指出,Ubuntu 默认的 modemmanager 可能会干扰串口类设备的正常连接,因此通常需要先移除它,并把当前用户加入 dialout 组,以获得串口访问权限。同时,为支持视频显示,还需要安装 GStreamer 相关组件。
在较新的文档中,QGC 对 Ubuntu 22.04 和 24.04 提供支持;而在 4.3 系列文档中,也明确给出了 Ubuntu 下常见的准备命令,包括串口权限、卸载 modemmanager、安装 GStreamer 和运行 AppImage 的基本方式。
从工程实践角度看,这一步的本质并不复杂,可以简单理解为三件事:
- 让系统不要把飞控误识别成普通调制解调器设备
- 让当前用户有权限读写串口
- 让 QGC 具备视频解码和显示能力
如果只做最基础的刷机与参数设置,即使暂时不处理视频插件,通常也不影响完成固件刷写本身;但如果后续还要接入水下摄像头或视频流,就最好在安装阶段一起处理好。
六、固件刷写前,先理解"刷的到底是什么"
很多新手容易把"QGroundControl 安装成功"和"ArduSub 已经写进飞控"混为一谈。实际上,这是两个完全不同的步骤。
- 安装 QGC:只是把地面站软件装到电脑里。
- 刷写 ArduSub 固件:才是把控制程序真正写进飞控板。
也就是说,QGroundControl 只是工具,而不是最终跑在飞控里的程序。真正控制 ROV 的,是刷入飞控内部的 ArduSub 固件。
从系统结构上看,刷写的对象通常是 Pixhawk 系列或兼容的飞控板。QGC 官方文档说明,桌面版 QGroundControl 可以把 PX4 或 ArduPilot 固件写入 Pixhawk-family flight controller boards。
这一步一旦完成,飞控内部就不再是"空板"或者原有默认程序,而是已经具备了 ArduSub 的基本控制能力。后续你在 QGC 里看到的框架选择、模式切换、参数页、校准页,才真正有意义。
七、ArduSub 固件刷写的基本流程
7.1 刷写前的准备
在正式刷写之前,建议先完成以下几项检查。
(1)确保飞控能够通过 USB 正常连接电脑。
这里建议直接连接电脑主机上的 USB 口,尽量不要先接 USB Hub。QGC 文档中也建议在固件加载时直接连接到电脑的有供电能力的 USB 端口。
(2)刷写时不要让整机由电池同时供电。
官方说明中明确提醒,在安装固件之前,应断开其他 USB 连接,且设备不应由电池供电。这样做主要是为了降低刷写过程中的干扰和风险。
(3)尽量保持外设简化。
首次刷写时,优先保证"电脑---USB---飞控"这条链路稳定即可,暂时不必急着把所有摄像头、遥测数传、树莓派和其他外设全部接上。因为在最开始阶段,最重要的是确认飞控本身能够被识别并成功进入固件写入流程。
7.2 在 QGC 中进入固件页面
QGroundControl 中有专门的Firmware页面用于固件加载。一般流程是进入 设置页面,然后找到Firmware入口。官方文档对这一点写得很清楚:先进入 Vehicle Setup,再在侧边栏进入 Firmware。
当飞控通过 USB 被识别后,QGC 会根据硬件类型给出可用的固件加载选项。
7.3 选择 ArduPilot,并定位到 Sub 类型
对于使用 ArduSub 的水下机器人平台,核心不是简单选择"ArduPilot"就结束,而是要进一步选择具体的车辆类型。
Blue Robotics 旧版 ArduSub 文档中给出的操作逻辑是:
- 连接 Pixhawk 到电脑 USB 口
- 等待识别并读取参数
- 进入 Firmware 页面
- 按提示断开并重新连接飞控
- 在出现的固件选择框中,选择 ArduPilot Flight Stack
- 再从下拉项中选择对应的系统与车辆类型,例如 Sub
- 然后确认刷写
这一步背后的含义非常重要。因为 ArduPilot 不是只服务于水下机器人,它还覆盖 Copter、Plane、Rover 等不同平台。只有选择到Sub,飞控才会写入适用于水下推进器混控、深度控制、ROV 模式体系的那一套程序。
7.4 断开并重新连接飞控的原因
不少初学者会在这一步感到疑惑:为什么明明已经识别了飞控,QGC 还要提示断开再重新接入?
这是因为飞控在正常连接状态下与固件加载状态并不完全相同。QGC 在固件页面中往往会引导用户让设备进入特定的刷写识别过程,从而完成 bootloader 阶段的固件传输。旧版 ArduSub 文档中也明确写到,QGC 会在约 30 秒内查找设备,用户需要在这个时间窗口内重新连接飞控。
因此,这一步不是"多余操作",而是正常刷写流程的一部分。第一次遇到时不用紧张,按界面提示操作即可。
7.5 刷写成功后会发生什么
固件开始写入后,QGroundControl 会显示进度信息。写入完成后,飞控一般会自动重启,并重新与 QGC 建立连接。旧版 ArduSub 文档也提到,上传完成后 Pixhawk 会 reboot,然后自动重新连接到 QGroundControl。
从实际使用体验上看,刷写成功后通常会出现以下几个明显变化:
- QGC 能正常识别到飞控,并显示车辆连接状态
- 参数页中能够读取到 ArduSub 对应的参数集合
- 后续可进入 Frame、Joystick、Sensors 等设置页面
- 模式、校准和推进器相关设置开始可用
也就是说,刷写成功不仅意味着"程序写进去了",还意味着整套 ArduSub 的后续配置入口被真正打开了。
八、首次刷写时,建议优先选择稳定版
QGroundControl 文档说明,固件加载时可以选择稳定版、Beta、Daily Build 甚至自定义固件文件。
但对于初学者或第一次点亮平台的用户而言,通常更建议优先使用稳定版,原因很简单:
第一,稳定版更适合作为基础联调起点。
你当前最需要验证的是:飞控能不能连上、参数能不能读、框架能不能选、推进器能不能测,而不是第一时间验证最新实验功能。
第二,很多后续问题排查都需要一个"稳定基线"。
如果一开始就刷 Beta 或 Daily Build,一旦出现连接、参数、外设兼容或模式异常,就不容易判断到底是环境问题、硬件问题,还是版本本身带来的变化。
第三,自定义固件更适合已经进入开发阶段的用户。
比如你在前一篇中已经开始研究源码、编译或自定义 frame,那后面确实可能会用到 custom firmware file 的方式。但对于单纯"快速上手",稳定版通常是更合理的起点。
九、刷写完成后,不代表已经可以直接下水
这一点非常关键。
很多新手在完成 QGC 安装和 ArduSub 固件刷写后,会误以为系统已经可以直接接手柄下水。实际上,刷写只是"系统启动"的第一步,离真正运行还差不少基础配置。
通常在刷写完成后,至少还要继续完成以下内容:
- 选择正确的 Frame 类型
- 检查推进器方向与混控是否合理
- 完成手柄校准
- 完成加速度计、指南针等传感器校准
- 检查电源设置与失效保护
- 确认摄像头、视频链路、遥测链路是否正常
- 做上电前和下水前检查
也正因为如此,本篇更适合看作 ArduSub "从无到有"的第一步,而不是"整机调试结束"的最后一步。
十、从"刷进去"到"真正能用",中间还差什么
如果把 ArduSub 的入门过程分成几个阶段,那么本篇所在的位置其实非常清楚:
- 第一阶段,是把地面站工具装好;
- 第二阶段,是把正确的 ArduSub 固件刷进飞控;
- 第三阶段,才是针对水下平台本体完成各项初始化设置。
也就是说,QGC 安装 + 固件刷写 解决的是"系统有没有启动起来"的问题;
而后续的 框架、校准、手柄、传感器、推进器测试,解决的则是"系统能不能正确控制这台 ROV"的问题。
前者偏向软件接入,后者偏向整机调试。两者缺一不可。
十一、总结
QGroundControl 是 ArduSub 快速上手过程中最重要的入口工具之一。它既是用户连接飞控、读取状态和修改参数的界面,也是完成固件刷写、后续校准和系统配置的核心平台。对于第一次接触 ArduSub 的用户而言,真正的起点并不是直接研究复杂的参数或源码,而是先把 QGC 安装好、把 ArduSub 正确写入飞控,并确认整个系统已经具备后续调试的基础。
从流程上看,快速上手可以概括为:先选择合适的桌面平台安装 QGroundControl,再通过 USB 连接 Pixhawk 类飞控,在 Firmware 页面选择 ArduPilot 中的 Sub 类型完成固件刷写。刷写成功后,飞控才真正进入 ArduSub 的工作体系,后续的框架设定、手柄映射、传感器校准与推进器测试才有展开的基础。
本篇的核心目的不是教用户"把软件装上就结束",而是帮助读者建立一个正确认知:
QGroundControl 是入口,ArduSub 固件是核心,刷写成功只是开始,真正的整机调试还在后面。