4. 地面站软件架构:QGroundControl 与 Mission Planner

说到地面站软件,圈子里最常用的就是两套:QGroundControl(简称 QGC)和 Mission Planner(简称 MP)。

我入行那会儿,MP 还是绝对的主流。后来 QGC 慢慢起来了,尤其是配合 PX4 飞控,体验确实不错。到现在,我电脑里两个都装着。为什么?因为各有各的脾气,也各有各的绝活。

这一节,我就带你把这两款软件的界面布局和功能模块拆开看看。你搞清楚它们的架构,以后用起来心里才有底。

4.1 两大主流地面站:定位与差异

先给个总体的印象。MP 和 QGC 虽然都是地面站,但设计哲学不太一样。

对比维度 Mission Planner (MP) QGroundControl (QGC)
主要支持飞控 ArduPilot 系列(APM、Pixhawk) PX4、ArduPilot
开发语言 C# (.NET Framework) C++ (Qt / QML)
跨平台 仅 Windows Windows / macOS / iOS / Android
界面风格 传统桌面软件,功能密集 现代扁平化,触屏友好
核心优势 参数调参极细,日志分析强大 跨平台,UI 清爽,上手快
我的建议:如果你主要飞 ArduPilot,而且喜欢把所有参数都攥在手里,MP 是首选。如果你飞 PX4,或者需要在平板/手机上用,那 QGC 更合适。我个人是两台电脑,一台跑 MP 做深度调参,一台跑 QGC 做外场快速部署。

4.2 软件界面布局:从外到内看门道

不管哪款软件,地面站的界面布局都有共通之处。说白了,就是 数据仪表盘 + 地图 + 控制面板 这三块。

4.2.1 Mission Planner 界面布局

MP 的界面,第一眼看上去会觉得有点「满」。但用久了你会发现,这种布局效率很高。

  • 顶部菜单栏:飞行数据、飞行计划、初始设置、配置/调参、模拟、终端。这是 MP 的功能总入口。
  • 左侧仪表板:姿态指示器、高度、空速、地速、GPS 状态、电池电压电流。这是飞行时的核心数据区。
  • 中央地图区:显示飞机位置、航点、飞行轨迹。支持 Google 地图、Bing 地图等。
  • 右侧动作面板:连接/断开、解锁/上锁、飞行模式切换、ARM 状态、遥控器信号强度。
  • 底部状态栏:串口/网络连接状态、心跳包计数、GPS 锁定颗数、系统时间。
避坑指南:我曾经在野外调试时,MP 突然卡死。后来发现是左侧仪表板的某个插件崩溃了。从那以后,我养成了一个习惯——外场飞行时,把不用的仪表插件关掉,只保留核心数据。这能大大降低软件崩溃的概率。

4.2.2 QGroundControl 界面布局

QGC 的界面就清爽多了。它采用 侧边栏 + 堆叠视图 的设计,很适合触屏操作。

  • 左侧工具栏:从上到下依次是:软件设置、飞机设置、计划、飞行、分析。每个图标对应一个主视图。
  • 中央主视图:根据左侧选择的模式切换。飞行模式下是地图 + HUD 叠加;计划模式下是航点编辑器。
  • 顶部状态栏:GPS 状态、电池电量、飞行模式、ARM 状态、遥测信号 RSSI。非常精简。
  • 底部/浮动面板:根据上下文弹出,比如点击地图上的飞机,会弹出详细的遥测数据卡片。

嗯,这里要注意。QGC 的 HUD(平视显示器)是直接叠加在地图上的,不像 MP 是独立的仪表板。这种设计在手机或平板上很舒服,但在大屏显示器上,我个人觉得信息密度有点低。

4.3 主要功能模块划分

我把两个软件的功能模块做了个对照。你理解了这些模块,就知道遇到问题该去哪个界面找答案了。

4.3.1 通信与连接模块

这是地面站的「血管」。没有它,飞机就是聋子瞎子。

  • MP:通过「连接」按钮选择串口、波特率、TCP/UDP 端口。支持 MAVLink 1 和 2 协议。
  • QGC:自动扫描串口和网络设备。支持 USB、WiFi(UDP)、蓝牙、串口转 Ethernet。
重要提醒:连接不上时,先检查波特率。MP 默认 115200,QGC 默认 57600。我遇到过好几次,飞控参数没改,地面站波特率没对上,折腾了半天。先看波特率,再看串口号,最后看驱动。

4.3.2 飞行数据监控模块

这是地面站的「眼睛」。

  • MP:提供「飞行数据」界面,包含姿态表、垂直速度表、GPS 信息、电池状态、传感器原始值。支持自定义仪表板布局。
  • QGC:提供「飞行」界面,HUD 叠加在地图上,显示空速、高度、垂直速度、航向。点击飞机图标可查看详细遥测。

4.3.3 任务规划模块

这是地面站的「大脑」。

  • MP:「飞行计划」界面。支持航点、区域测绘、兴趣点环绕。可以导入 KML 文件生成航线。支持多任务文件保存。
  • QGC:「计划」界面。支持航点、测绘模式(栅格、多边形)。操作更直观,拖拽即可调整航点。支持离线地图缓存。

4.3.4 参数调参与配置模块

这是地面站的「手术刀」。

  • MP:「配置/调参」界面。这是 MP 的杀手锏。你可以搜索、修改、保存/加载全部参数。支持 PID 调参、扩展卡尔曼滤波配置、传感器校准。
  • QGC:「飞机设置」界面。参数以分类形式展示,比如「安全」、「电池」、「电机」。支持参数搜索,但不如 MP 那么细。
我的经验:做深度调参时,我必用 MP。它的参数搜索功能太强了。比如你想找所有跟「罗盘」相关的参数,输入 "compass",瞬间列出几十个。QGC 虽然也有搜索,但分类逻辑有时候让我找不到北。

4.3.5 日志与数据分析模块

这是地面站的「记忆」。

  • MP:「飞行数据」界面内置日志回放功能。可以加载 .bin 或 .log 文件,回放飞行过程,查看任意参数曲线。支持导出为 CSV。
  • QGC:「分析」界面。支持加载 .ulog 文件(PX4 格式)。可以查看日志中的消息列表、参数变化、传感器数据。但曲线分析功能不如 MP 强大。

4.3.6 模拟与仿真模块

这是地面站的「训练场」。

  • MP:内置 SITL(软件在环)模拟器。可以模拟 ArduPilot 飞控,配合 Mission Planner 进行完整的飞行测试。
  • QGC:支持与 Gazebo、AirSim 等外部仿真器连接。本身不内置模拟器,但通过 MAVLink 协议与外部仿真器通信。

4.4 知识体系总览:地面站软件架构图

下面这张图,是我自己梳理的。它把 MP 和 QGC 的共性架构抽象了出来。你把这个图记在脑子里,以后不管用哪款地面站,都能快速定位功能。

地面站软件架构总览图 地面站软件架构总览 用户交互层(UI) 通信与连接 数据监控 任务规划 参数调参 核心引擎层 MAVLink 协议解析 / 数据缓存 / 线程管理 数据持久化层 日志文件(.bin / .ulog / .log) / 参数文件 / 航点文件 硬件接口层 串口(UART) / USB / UDP / TCP / 蓝牙 飞控硬件(Pixhawk / Cube / 雷迅) 说明:MP 和 QGC 都遵循此分层架构,区别在于各层的实现细节和 UI 交互方式。

4.5 如何选择与切换

最后,说说我的实际选择策略。

  • 外场快速作业:用 QGC。启动快,界面干净,触屏操作方便。配合平板电脑,站在飞机旁边就能改航点。
  • 内场深度调参:用 MP。参数搜索、日志分析、PID 调参,MP 的深度是 QGC 比不了的。
  • 故障排查:两个都用。先用 QGC 快速查看当前状态和错误消息。如果问题复杂,再用 MP 下载完整日志,做逐帧分析。
核心观点:不要纠结于「哪个更好」。工具是拿来用的,不是拿来比的。MP 和 QGC 是互补关系,不是替代关系。我建议你两个都装,都学会。遇到不同场景,用不同的刀。