【无标题】

文章详细介绍了QGroundControl(QGC)的二次开发方法,包括使用Qt5.15.2进行QGC源码编译、代码修改和问题解决的过程。QGC是一个开源的无人机飞行控制和任务规划工具,其用户界面基于QtQML。在编译过程中,文章强调了使用特定Qt版本的重要性,并提到了可能出现的问题及解决策略,如源码缺失、编译错误等。此外,还概述了搭建编译环境所需的工具,如VS2019、Git、NSIS和WindowsSDK。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一级标题1、QGC二次开发方法、手段(包括基本介绍)

一级标题2、QGC编译过程步骤以及中遇到的问题和相应的解决办法

1、QGC二次开发方法、手段(包括基本介绍QGC和QT)
QGC二次开发工具:Qt5.15.2、git、NSIS、windowSDK、vs2019社区版、准备好qgc源码(从github上下载)
二次开发主要过程:QGC源码编译→根据要求进行代码修改→再次编译,对比效果→根据效果进行修改→直至最终版本
1.1 QGC简介
QGroundControl为任何启用MAVLink的无人机提供完整的飞行控制和任务规划。它的主要目标是为专业用户和开发人员提供易用性。所有代码都是开源源代码,因此您可以根据需要贡献和发展它。QGC 旨在提供可跨多个操作系统平台以及多种设备尺寸和样式运行的单个代码库。QGC用户界面是使用Qt QML实现的。QML提供硬件加速,这是平板电脑或手机等低功耗设备的关键功能。QML还提供了一些功能,使我们能够更轻松地创建单个用户界面,该界面可以适应不同的屏幕尺寸和分辨率。QGC UI 更面向平板电脑+触摸风格的 UI,而不是基于桌面鼠标的 UI。这使得单个 UI 更容易创建,因为平板电脑样式的 UI 在台式机/笔记本电脑上也往往工作正常。
QGroundControl版本支持macOS,Linux,Windows,iOS和Android。QGroundControl使用Qt作为其跨平台支持库,并使用QtCreator作为其默认构建环境。
QGC 对与其版本关联的版本号使用语义版本控制。 语义版本控制是一个 3 分量的数字,格式为 ,其中:vX.Y.Z,X是主要版本、Y是次要版本、Z是修补程序版本。

1.2 Qt 版本:5.15.2(仅限)
不要使用任何其他版本的Qt!QGC已经用指定的Qt版本(5.15.2)进行了全面测试。 存在其他Qt版本注入影响稳定性和安全性的错误(即使QGC编译)的风险很大。(建议安装完使用过程中不要进行后续的版本更新)
QT的下载安装比较缓慢,纯粹使用国内的网络虽然下载慢一点(大约24个小时)但下载过程不会出错,使用VPN虽然你下载速度快了一点,但时不时的会出现地址报错,需要守在电脑前面不停的点击重试。
QGC源码的下载,两种方式:
①直接去github下载压缩包,但有些组件模块下载不完全,需要自己去指定的文件下补全源码,否则会导致QGC源码不完整,影响后续的开发(需要下载对应路径下的src/GPS/GpsDrivers 和 libs/mavlink/include/mavlink,然后移入源码对应路径即可)
②使用git下载,需提前配置git环境,直接去git官网下载即可,具体命令:
git clone https://github.com/mavlink/qgroundcontrol.git -b Stable_V4.2 //从github上克隆源码
cd qgroundcontrol //进入到qgroundcontrol文件夹目录下
git submodule init //对子模块进行初始化
git submodule update //对子模块进行更新
Qt是一个跨平台的C++图形用户界面库,目前包括QtCreator、QtDesigner等开发工具。Qt支持所有Linux/Unix系统,还支持吃windows平台。Qt易扩展,允许组件编程。Qt与GTK、MFC、OWL、ATL是一样的图形界面库。优势:优良的跨平台性、面向对象、丰富的API(Qt包括250个以上的C++类,还提供基于模板的collections、file、serializationI/O、device等。支持2D/3D图形渲染,支持OpenGL,XML支持大量的文档开发。
QT:QT支持跨平台构建、非常好的可移植性、开源软件,使用QT开源软件库相关市场软件产品如下:Emergent(神经网络模拟器)、eav(linux版QQ聊天软件)、Google地址(三维虚拟地图软件)、VLC多媒体播放器(体积小、功能强大的开源媒体播放器)、极品飞车(EA出品赛车类游戏)、WPS office(金山软件公司推出的办公软件)等等。
2、QGC编译中遇到的问题
2.1编译工具的搭建
首先下载vs2019社区版,官网可以下载,组件按默认即可,也可在下图Microsoft Store里面安装
在这里插入图片描述VS组件按默认即可,也可自己修改,后期缺少可以修改,vs提供了组件加装工具,可根据自己使用情况进行配置
在这里插入图片描述

其次下载安装QT,QT版本5.15.2。在安装过程中,顺序图如下,组件按图所示,不然安装异常慢
没有帐户要注册账户,现在是在线安装
没什么好选择,同意就行了,开源使用
主要是同不同意发送使用信息供软件公司使用,随便选
在这里插入图片描述
安装目录,最后大概使用4G空间左右,下面默认
在这里插入图片描述
主要是以下几个组件
然后等着安装即可
在这里插入图片描述
在这里插入图片描述

安装完要设置环境变量,右键此电脑,选择属性

右上角,高级系统设置

在这里插入图片描述

环境变量

双击path

在这里插入图片描述

主要是vs2019、qt变量设置一下,新增,添加位置,如下图所示,D:\VSCODE\VC\Tools\MSVC\14.29.30133\bin这是对应的vs20019的环境变量位置在这里插入图片描述

git、NSIS、windowSDK直接官网安装就行,后两个其实类似于软件程序打包的组件功能库一样的程序
nsis. NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作 程序 。. 它提供了 安装 、 卸载 、 系统设置 、文件 解压缩 等功能。. 这如其名字所指出的那样,NSIS 是通过它的 脚本语言 来描述安装程序的行为和逻辑的。.
SDK即Software Develope Kit(软件开发工具包),它包含了进行Windows软件开发的文档和API函数的输入库、头文件(因为API在动态链接库中,这些动态链接库是系统的组成部分,因此不用再提供,而输入库和头文件则必须,这样才能在你的程序中使用API函数)。

QGC源码编译qt上手过程
打开qt,点击欢迎,打开项目
在这里插入图片描述

找到自己下载的qgc源码的位置,选择pro文件
在这里插入图片描述

选中之后可以看到,自己的项目下已经有了对应的文件
在这里插入图片描述

选择项目,进行构建目录以及编译器的设置,点击管理构建套件
在这里插入图片描述

按如图配置
在这里插入图片描述

接下来回到主界面,选择要构建的源码项目以及使用的编译器,而后点击左下角的三角标志开始即可在这里插入图片描述

我在编译过程中主要出现了如下的问题
①源码缺少文件,去自己下载的源码位置查看对应的源码位置,去GitHub补全相应的文件放在相应的缺失位置,同时代码里面加上相应的路径
②出现类似没有生成“object”文件,参考(78条消息) QT QGC 中 QGCTileCacheWorker.cpp:728: error: C2220: 警告被视为错误 - 没有生成“object”文件_火山上的企鹅的博客-CSDN博客_d:\qgc\qgroundcontrol\src\qtlocationplugin\qgctile
改变编码格式
最重要的问题一般是编译前设置出现问题,哪里有问题去相应的代码位置或者相应文件夹看一下,代码错误或者和文件缺失,方法都是一样的
编译完毕会自动打开QGC地面站
会生成在相应的软件文件在这里插入图片描述

可以里面找到生成的软件在这里插入图片描述

编译环境搭建完毕

<think>好的,我现在需要帮助用户找到关于QGC(QGroundControl)进行二次开发的教程和资料。用户已经提供了一些相关的引用内容,我需要结合这些信息,并补充其他可能的资源,给出详细的步骤和建议。 首先,我需要确认用户提到的引用内容是否正确和相关。引用[1]提到了QGC的GitHub仓库,这是官方源代码的主要位置,用户需要从这里获取代码。引用[2]和[3]涉及编译QGC的步骤,特别是使用Qt Creator打开项目文件,并指定编译工具。这些步骤是二次开发的基础,用户需要先搭建开发环境。 接下来,我应该考虑用户可能的实际需求。二次开发可能包括界面定制、功能扩展或与无人机系统的集成。因此,除了编译和运行代码,用户可能需要了解QGC的架构、模块划分以及API的使用方式。 然后,我需要检查是否有官方文档或其他社区资源。QGC的官方文档应该是最权威的,用户可能没有提到,但需要引导他们去查看。此外,开发者论坛、示例代码、以及已有的教程或博客文章都是有用的资源。 考虑到用户可能需要逐步指导,我应该分步骤说明如何进行二次开发的环境搭建,包括下载源码、安装依赖、配置Qt Creator、编译和调试。同时,还需要指出如何查找文档和社区支持,以便用户能自主解决问题。 可能还需要提醒用户注意版本兼容性,比如Qt版本和编译器工具链的选择,避免因为版本不匹配导致编译失败。此外,插件开发可能是扩展QGC功能的重要方式,需要单独说明如何创建和集成插件。 最后,生成相关问题,帮助用户深入可能遇到的后续问题,比如环境配置问题、调试方法、插件开发或与MAVLink的集成等。</think>关于QGC(QGroundControl)的二次开发教程与资料,以下是详细的步骤和资源整理: --- ### **1. 获取源码与官方文档** - **源码仓库**:QGC的代码托管在GitHub,使用CMake构建系统。建议克隆仓库时指定最新稳定分支(如`Stable_V4.2`)[^1]: ```bash git clone https://github.com/mavlink/qgroundcontrol.git --branch Stable_V4.2 ``` - **官方文档**:访问[QGC Developer Guide](https://dev.qgroundcontrol.com/master/en/)了解架构、模块划分、插件机制和API接口。 --- ### **2. 环境配置与编译** #### **依赖项安装** - **Qt版本**:需使用Qt 5.15或更高版本(推荐Qt 6.7,需注意OpenGL兼容性)[^3]。 - **编译工具链**: - Windows:MinGW或MSVC - Linux/macOS:GCC或Clang - **额外依赖**:如MAVLink库、Google Maps API密钥(地图功能需自行申请)。 #### **Qt Creator配置步骤** 1. 打开Qt Creator,选择`File > Open File or Project`,加载项目顶层的`CMakeLists.txt`。 2. 指定Qt Kit时,确保选择已安装的Qt版本及对应编译器(如MinGW)。 3. 配置CMake参数,例如地图API密钥: ```cmake -DCMAKE_PREFIX_PATH=/path/to/qt6 -DQGC_ENABLE_GOOGLE_MAPS=ON -DQGC_GOOGLE_API_KEY=your_key_here ``` --- ### **3. 二次开发核心方向** #### **功能扩展** - **自定义插件**:QGC支持插件机制,可在`src/Plugins`目录下新增模块。示例插件代码可参考官方示例。 - **界面修改**:UI文件使用Qt Designer设计(`.ui`文件路径:`src/UI`),逻辑代码通过C++/QML绑定实现。 #### **通信协议集成** - **MAVLink扩展**:修改`src/Vehicle`目录下的MAVLink消息处理逻辑,或添加自定义消息ID。 --- ### **4. 调试与测试** - **日志输出**:通过`qDebug() << "Log Message";`输出调试信息,日志文件默认存储在系统临时目录。 - **模拟测试**:使用[MAVLink SITL工具](https://dev.qgroundcontrol.com/master/en/getting_started/sitl.html)模拟无人机连接。 --- ### **5. 社区资源** - **论坛**:[QGC Discussions](https://github.com/mavlink/qgroundcontrol/discussions) 提供开发者交流与问题解答。 - **示例项目**:GitHub搜索关键词`qgroundcontrol plugin example`可找到第三方插件案例。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值