qgc二次开发课程大纲.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

QGC二次开发课程大纲(三篇)

教案一:课题名称

QGC二次开发基础——环境搭建与核心API解析

一、教学目标

知识与技能

面向软件开发工程师,能独立完成QGC开发环境搭建(Windows/Linux双平台),环境配置准确率≥90%

学会调用QGC核心API实现基础功能(如地图加载、无人机状态获取),API调用正确率≥85%

理解QGC架构设计原理,能解析核心模块交互逻辑,架构分析完整率≥70%

过程与方法

通过环境搭建→API拆解→模块联动的路径,建立工具使用—接口调用—系统集成的开发思维链

运用环境配置手册API调试工具强化训练,通过功能模块开发实战提升实操能力

情感态度与价值观

建立底层架构决定上层应用的技术认知,主动探索开源代码的学员≥80%

培养严谨调试、逻辑溯源的开发习惯

二、教学重点与难点

重点

①解析QGC编译流程(CMake配置、依赖库管理)

②理解无人机状态数据接口(Mavlink协议封装、数据回调机制)

难点

①处理多平台环境差异(Windows下的路径配置vsLinux的权限管理)

②调试API调用中的数据同步问题(地图坐标与无人机位置的实时匹配)

三、教学方法

案例教学法、分步演示法、实战调试法

教学准备

QGC开源代码包、VisualStudio/CLion开发工具、Mavlink协议手册

四、教学过程

(一)开发之门导入(10分钟)

场景冲击

播放QGC二次开发成果视频:某企业通过定制化开发实现无人机编队表演,如何让通用平台变身行业专属工具?

即时测试:快速列举无人机开发中常见的二次开发需求(功能扩展/界面定制/数据对接)

理论初触

精读QGC官方文档《开发者入门指南》,标注关键词:插件机制API文档编译参数

(二)架构解构工坊(35分钟)

环境搭建显微镜(15分钟)

双平台对比:

环境要素

Windows配置步骤

Linux配置要点

常见问题

依赖安装

巧克力工具链安装

apt-get依赖包管理

版本冲突导致编译失败

工程导入

VS解决方案生成

CMakeLists.txt修改

路径包含中文报错

实战演示:现场演示Windows下QGC源码编译,重点讲解CMAKE_PREFIX_PATH配置技巧

**API解析站(12分钟)

核心接口拆解:

UAV状态接口:UavObjectManager::getInstance()-getObject(UAVState)

地图接口:MapSettings::instance()-setCenterCoordinate()

数据流向图:绘制无人机→飞控→QGC→UI界面的数据传递链路,标注Mavlink协议转换节点

模块联动实验(8分钟)

小组讨论:为什么QGC要将地图模块与飞控模块解耦?(引导理解插件化架构优势)

金句提炼:好的二次开发,是在巨人肩膀上跳自己的舞

(三)功能开发实战(20分钟)

环境配置赛

分组任务:在虚拟机中搭建Linux开发环境,完成QGC编译,要求30分钟内生成可执行文件

API调用秀

情景模拟:调用无人机位置接口,在控制台输出经纬度数据,处理坐标格式转换问题

调试工作坊

错误排查:故意设置编译错误(如缺少libmavlink库),学生分组诊断并修复

(四)互动交流:开发诊所(15分钟)

问题1:编译时提示缺少Qt模块怎么办?(预留8分钟)

引导话术:想想依赖管理的两种方式

参考答案:

生1:重新安装Qt

生2:检查Qt路径是否加入系统环境变量!在Windows下可通过QtMaintenanceTool修复组件,Linux用aptinstallqt5-default补充依赖,就像组装电脑少了内存条,要么插紧要么换新

问题2:API返回数据延迟怎么处理?(预留7分钟)

参考答案:

生1:不知道

生2:添加数据回调监听!用connect信号槽机制实时捕获更新,比如无人机位置变化时触发地图刷新,就像快递到了手机自动通知,别傻等快递员打电话

五、课本讲解(教材节选)

原文内容

QGC的插件机制允许开发者通过继承Plugin类实现功能扩展,核心API集中在src/lib/qgcwidgets和src/lib/qgcmavlink模块。环境搭建时需注意不同平台的编译器版本匹配,推荐使用Docker容器避免依赖冲突。

知识点分析

架构设计:插件化架构降低耦合度,便于功能定制

工程实践:Docker容器化解决跨平台依赖难题,提升开发效率

六、作业设计

基础作业

编写Windows环境搭建备忘

文档评论(0)

书海亦覆舟 + 关注
实名认证
文档贡献者

书海亦覆舟书海亦覆舟

1亿VIP精品文档

相关文档