1、QGC入门:QGC是什么、QGC发展史、QGC应用场景、QGC开发环境搭建
大家好,我是你们这门课的老朋友。今天咱们正式开篇,聊聊QGC。
很多同学第一次接触QGC,可能会觉得它就是个“地面站软件”,能看地图、能发指令。嗯,这么说也没错,但太浅了。我做了这么多年无人机项目,可以负责任地告诉你:QGC是PX4生态里最核心的“人机交互窗口”。没有它,你的飞控再牛,也像个黑盒子——你没法调试、没法监控、没法给用户一个像样的操作界面。
1.1 QGC到底是什么?
QGC,全称QGroundControl。说白了,它就是一套开源的、跨平台的地面控制软件。
它能跑在Windows、macOS、Linux上,也能跑在Android和iOS上。你想想看,一套代码,覆盖了桌面端和移动端,这在无人机行业里是非常少见的。
它的核心功能,我归纳为三点:
- 飞控通信:通过MAVLink协议,跟PX4或ArduPilot飞控“对话”。
- 任务规划:在地图上点几个点,生成航线,上传给飞机。
- 实时监控:飞行过程中,看姿态、看电量、看GPS状态。
核心认知:QGC不是“一个”软件,它是一个“框架”。你二次开发,本质上是在这个框架上做定制化改造。
1.2 QGC发展史:从玩具到工业级
QGC的历史,我简单捋一下。了解历史,能帮你理解它为什么长成今天这样。
| 阶段 | 时间 | 关键变化 |
|---|---|---|
| 萌芽期 | 2010-2013 | 早期版本,功能简陋,主要给开发者自用。 |
| 成长期 | 2014-2017 | 加入Qt Quick界面,支持移动端,开始被广泛使用。 |
| 成熟期 | 2018-2021 | 架构重构,引入插件系统,支持多品牌飞控。 |
| 工业化期 | 2022-至今 | 性能优化,支持复杂任务,成为行业标准地面站。 |
我记得2016年那会儿,我还在用QGC 2.x版本,界面还是传统的Qt Widgets。那时候改个界面,得写一堆C++代码,特别痛苦。后来3.0版本全面转向Qt Quick,界面开发效率直接翻倍。嗯,这个转折点很重要,咱们后面讲UI开发时会重点聊。
1.3 QGC应用场景:你能拿它做什么?
很多同学会问:“我学了QGC二次开发,到底能用在哪些地方?”
我直接给你列几个真实场景:
- 农业植保:定制喷洒参数界面,集成变量喷洒算法。
- 电力巡检:开发自动航线生成工具,对接激光雷达数据。
- 物流配送:简化操作流程,一键起飞、一键降落。
- 测绘建模:集成正射影像采集功能,实时显示覆盖范围。
- 安防监控:对接视频流,实现目标跟踪与电子围栏。
我的建议:刚开始学,别想着“我要做一个全能地面站”。先找一个具体场景,比如“农业植保”,然后只改跟这个场景相关的几个页面。这样上手最快。
1.4 开发环境搭建:Qt、VS、CMake
好,到了动手环节。环境搭建这块,我踩过不少坑,今天把最稳的路径告诉你。
1.4.1 你需要准备什么?
| 工具 | 版本建议 | 备注 |
|---|---|---|
| Qt | 5.15.2 或 6.2.x | 推荐5.15.2,社区支持最成熟。 |
| Visual Studio | 2019 或 2022 | Windows下必须,用于编译C++代码。 |
| CMake | 3.16+ | 构建工具,QGC用它管理整个项目。 |
| Git | 最新版 | 拉取源码、管理版本。 |
1.4.2 安装步骤(Windows为例)
- 安装Qt:去Qt官网下载在线安装器。安装时勾选“MSVC 2019 64-bit”和“Qt Quick”组件。
- 安装VS:安装时勾选“使用C++的桌面开发”工作负载。
- 安装CMake:直接下载安装包,记得勾选“Add CMake to system PATH”。
- 克隆QGC源码:
git clone --recursive https://github.com/mavlink/qgroundcontrol.git - 编译:用CMake配置源码目录,选择VS作为生成器,然后点击“Generate”和“Open Project”。在VS里按F5编译运行。
我曾经踩过的坑:Qt版本不匹配。有一次我用了Qt 6.0,结果QGC里有些旧API不兼容,编译报了几十个错误。后来老老实实换回5.15.2,一次通过。所以,别追新,稳定第一。
1.4.3 验证环境
编译成功后,你会看到QGC的启动界面。能正常加载地图、连接模拟飞控,就算环境搭建成功了。
我个人习惯,第一次跑起来后,先打开“设置”页面,看看版本号是不是你编译的那个。这一步能确认你用的是自己的代码,而不是下载的预编译包。
1.5 本章知识体系
下面这张图,帮你把本章的核心逻辑串起来。你可以把它当成一张“地图”,后面每学一个新知识点,都能在这张图上找到位置。
这张图里,四个分支分别对应咱们今天讲的四个知识点。你注意看“环境搭建”那个分支,它下面又分了四个子节点。这就是咱们后面几章要一步步攻克的内容。
好了,第一章就到这里。环境搭好了,咱们下章就开始真正动手改代码了。