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的步骤:
- 去Qt官网下载Qt Online Installer
- 安装时选择Qt 5.15.2版本
- 组件选择:至少勾选Desktop(桌面开发)和Qt Charts(图表组件)
- 编译器: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.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是更稳妥的选择。