1、QGC概述与环境搭建:QGC简介、源码获取、Qt与CMake环境配置、编译运行第一个QGC

1.1 什么是QGC?

QGroundControl,圈里人都叫它QGC。说白了,它就是一套开源的无人机地面站软件。你想想看,无人机在天上飞,总得有个东西在地面上看着它、指挥它吧?QGC就是干这个的。

我最早接触QGC是在2016年,那时候它还没现在这么完善。记得我第一次用它连接Pixhawk飞控,看到实时姿态数据在屏幕上翻滚,那种感觉——嗯,挺奇妙的。

QGC能做什么?我列几个核心功能:

  • 飞行控制:手动遥控、自主航线飞行
  • 实时监控:高度、速度、姿态、电池电量等遥测数据
  • 任务规划:在地图上点几个点,自动生成飞行航线
  • 参数调参:调整PID、滤波器等飞控参数
  • 日志分析:飞行结束后回放数据,排查问题

QGC支持MAVLink协议,这意味着它能和PX4、ArduPilot等主流飞控通信。而且它是跨平台的——Windows、macOS、Linux、iOS、Android,一套代码全搞定。

核心要点:QGC是使用Qt框架开发的C++桌面/移动应用。它的架构基于插件系统,这也是我们这门课要深入的内容。

1.2 源码获取

工欲善其事,必先利其器。第一步,先把源码搞到手。

QGC托管在GitHub上,地址是:https://github.com/mavlink/qgroundcontrol

我个人习惯用SSH方式克隆,省得每次输密码:

git clone git@github.com:mavlink/qgroundcontrol.git
cd qgroundcontrol

如果你没有配置SSH,用HTTPS也行:

git clone https://github.com/mavlink/qgroundcontrol.git

这里有个坑——QGC的代码量不小,完整克隆大概要花几分钟。我曾经在网速不好的地方等过十几分钟,那叫一个煎熬。建议找个网络好的时段操作。

克隆完成后,你会看到这样的目录结构:

目录/文件 说明
src/ 核心源码,包括UI、通信、飞行逻辑等
plugins/ 插件目录,我们后面主要在这里动手
resources/ 资源文件,图标、样式表、QML文件等
CMakeLists.txt 顶层CMake构建文件
qgroundcontrol.pro Qt项目文件(旧版使用,新版已迁移到CMake)

小技巧:建议在克隆后切换到稳定的发布版本,比如git checkout v4.2.0。开发分支(master/main)可能包含未稳定的新功能,编译时容易踩坑。

1.3 Qt与CMake环境配置

QGC依赖Qt框架。目前官方推荐使用Qt 5.15.x LTS版本。为什么不是Qt 6?因为QGC的很多插件和QML组件在Qt 6下还没完全适配。我试过用Qt 6编译,结果一堆兼容性问题,折腾了两天才搞定——后来发现官方文档明确写着推荐Qt 5.15。

安装Qt的步骤:

  1. 去Qt官网下载Qt Online Installer
  2. 安装时选择Qt 5.15.2版本
  3. 组件选择:至少勾选Desktop(桌面开发)和Qt Charts(图表组件)
  4. 编译器:Windows选MinGW或MSVC,macOS选Clang,Linux选GCC

CMake方面,QGC要求CMake 3.16以上版本。你可以用系统包管理器安装,也可以从CMake官网下载二进制包。

环境变量配置(以Linux为例):

export Qt5_DIR=/path/to/Qt/5.15.2/gcc_64/lib/cmake/Qt5
export PATH=$PATH:/path/to/cmake/bin

注意:Qt5_DIR必须指向包含Qt5Config.cmake的目录。如果路径不对,CMake会报错找不到Qt。我曾经因为路径写错了一个斜杠,排查了半小时——嗯,这种低级错误谁都会犯。

1.4 编译运行第一个QGC

环境配好了,开始编译。QGC使用CMake作为构建系统,编译命令如下:

mkdir build
cd build
cmake ..
make -j4

如果你用的是Windows,可以用CMake GUI或者VS Code的CMake插件。我个人更喜欢命令行,感觉更可控。

编译过程大概需要10-20分钟,取决于你的机器性能。第一次编译会下载一些依赖库,比如libcurl、libxml2等。如果网络不好,可能会卡在下载步骤——我遇到过,解决办法是手动下载依赖包放到指定目录。

编译成功后,在build目录下会生成可执行文件QGroundControl(或QGroundControl.exe)。直接运行:

./QGroundControl

如果一切顺利,你会看到QGC的启动界面。第一次启动时,它会提示选择语言和单位制。选中文,选公制,然后就能看到主界面了。

主界面长什么样?我简单描述一下:

  • 顶部是工具栏,有连接、设置、任务规划等按钮
  • 左侧是飞行数据面板,显示高度、速度、姿态等
  • 中间是地图区域,显示无人机位置和航线
  • 右侧是状态面板,显示GPS、电池、信号强度等

到这里,你的第一个QGC就跑起来了。

验证方法:在菜单栏选择模拟模式,QGC会启动一个虚拟飞控。你可以在不连接真实硬件的情况下,体验完整的飞行监控和任务规划功能。

1.5 本章知识体系

下面这张图帮你理清本章的核心脉络:

第1章:QGC概述与环境搭建 QGC地面站 QGC简介 源码获取 Qt + CMake 环境 编译运行 MAVLink协议 跨平台架构 GitHub克隆 目录结构 Qt 5.15.x CMake 3.16+ cmake & make 模拟模式验证 核心目标:搭建可编译的QGC开发环境 为后续插件开发打好基础

1.6 常见问题与避坑

环境搭建这一步,我见过太多人卡住。下面列几个高频问题:

问题 原因 解决办法
CMake找不到Qt Qt5_DIR路径不对 检查路径是否包含Qt5Config.cmake
编译报错缺少依赖 未安装libcurl、libxml2等 用包管理器安装:sudo apt install libcurl4-openssl-dev libxml2-dev
运行时报错"无法加载QML" Qt Quick组件未安装 重新运行Qt安装器,勾选Qt Quick模块
模拟模式无法启动 缺少模拟器插件 检查plugins目录下是否有SimulatorPlugin

重要提醒:如果你在Windows上使用MSVC编译器,记得安装Windows SDK和Visual Studio Build Tools。我曾经用MinGW编译成功,但运行时界面渲染有问题——后来换成MSVC就正常了。嗯,Windows上的Qt开发,MSVC是更稳妥的选择。