QGC二次开发---框选多机执行解锁任务1

apm软件仿真+QGC地面站 环境搭建 本教程使用场景:apm软件仿真运行于虚拟机 ubuntu环境。qgc地面站位于windows 系统。两个环境在同一台电脑上。 一.apm仿真环境搭建 1.安装vm虚拟机及ubuntu 18。 2.ubuntu下 下载Ardupilot 飞控源码 并配置环境。 下载源码: git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive 配置所需运行的环境: 阅读详情

在多架无人机同时在一台地面站上操作时,我们通常希望能够通过鼠标框选其中部分无人机,对选中的无人机执行相同的操作,例如解锁指令,如上图所示效果。此篇文章先对实现思路进行讲解,具体的实现代码机过程,在后续文章中。

实现思路

1、获取鼠标框选时按压和释放的鼠标坐标值,通过Qt Map组件的函数toCoordinate(),转换为地图上的经纬度值。

 

2、在MultiVehicleManager类中增填函数,用于判断所有连接的无人机的经纬度是否在鼠标框选的经纬度内,将在框选内的无人机ID号存入一个自定义的数组中。

 

3、在FlightDisplayView.qml(飞行地图页面)增加一个Rectangle矩形框,以列分布的方式放置Button按钮,软件开启时将矩形框隐藏,当鼠标右键释放,将矩形框显示,并修改坐标为鼠标释放点的坐标。当矩形框内按钮触发点击信号时,在将矩形框隐藏掉。

 

4、在MultiVehicleManager类中增加一个解锁函数,可根据选中无人机的ID数组,根据ID获取无人机Vehicle对象,并调用Vehicle对象的相应指令,例如解锁指令:setArmed(true)

5、在第3步骤中矩形框内相应按钮例如:解锁按钮触发点击事件,即可调用步骤4中的函数,从而实现对选中多架无人机进行解锁操作。

QGroundControl实现多机控制 前言 作为西安电子科技大学的本科生一名,目前在研究关于无人机导航规划与轨迹控制方面。 目前在跟导师做关于雷达无人机的一个项目,在这里记录一下关于QGC地面站实现多机控制的一些方法。 某些地方写的可能不是很完善,欢迎大家补充。 目前该文章还未写完,后期本人会继续编写 多机控制原理 多机地面站支持TCP,UDP和串口等三种连接方式,首先我们需要对这两种连接方式抽象出一个基类LinkInterface,提供两个虚函数分别对应于数据接受和发送处理,针对于不同的连接方式实现TCP,UDP和串口连接相对应的子类TCPL 阅读详情

相关推荐

QGC二次开发---多机协同任务解锁的框选交互设计

本文深入探讨了在QGC地面站二次开发中,如何设计并实现高效的多机协同任务框选交互功能。通过从鼠标事件捕获、坐标转换到无人机位置判断与批量指令下发的完整链路拆解,详细说明了如何将传统的“点选”升级为“框选”,以支持对多架无人机进行批量解锁等操作,从而显著提升集群控制场景下的操作效率与用户体验。

weixin_29051149的博客 435

关于多机控制中的消息独立

​ 说明:上面这个xxx.launch文件需要放置到你的ROS工作空间下launch文件夹中,也就是你首先需要在机载计算机上创建workspace和package。多机控制中区分每个无人机,获取其信息并发送控制指令,可以在.launch文件中使用标签来定义个命名空间,这样在每个命名空间下运行的mavros节点就可以相互独立。

z1872385的博客 273

无人机集群控制:QGC二次开发之框选多机任务执行避坑指南

本文深入探讨了无人机集群控制中,基于QGroundControl进行二次开发实现框选多机任务执行的关键技术与避坑指南。文章聚焦于提升集群操作效率,详细解析了从屏幕坐标到地理坐标的精准转换、多机状态管理的线程安全、以及通过指令队列确保批量解锁等任务执行的可靠性等核心挑战,为开发者提供了经过验证的工程实践与解决方案。

weixin_29067143的博客 234

QGC最多只能连15架载具Bug解决

最近地面站遇到一个多机连接的Bug,当载具连接超出15架后,地面站就无法创建连接,且无法断开连接。通过QGroundControl DeBUG版测试后发现,提示出错是:Ran out of mavlink channels。 于是开始分析代码!首先是连接函数触发的前端代码:LinkSettings.qml QGCButton { text: qsTr("Connect") enabled: _currentSelection &

hellocode_7812的博客 996

QGC二次开发进阶---多机协同任务中的智能框选与指令批量下发

本文深入探讨了QGC二次开发中多机协同任务的智能框选与指令批量下发技术。通过坐标转换和算法优化,实现了高效的多机选择与并行指令下发,显著提升操作效率。文章结合实战案例,详细解析了界面交互设计、性能优化及异常处理方案,为无人机编队控制开发提供实用指导。

weixin_29054195的博客 345

QGC二次开发---多机协同任务中的智能框选与指令批量下发

本文深入探讨了QGC二次开发中多机协同任务的智能框选与指令批量下发技术。通过分析农业植保、物流配送等场景的核心痛点,详细介绍了智能框选的实现原理、交互设计优化及指令批量下发的工程实践,显著提升了多无人机协同作业的效率与精准度。

weixin_29080843的博客 188

QGC二次开发---框选多机执行解锁任务2

上一篇中,已经展示了实现以后的效果动图以及实现思路。此篇着重开始编写前端QML界面代码,包括获取鼠标按压/释放点的坐标、绘制矩形线框的代码。 阻拦地图插件的鼠标事件 在FlightDisplayView.qml中,直接在Map视图添加鼠标事件,将会拖动地图,所以需要在地图窗口添加一个遮罩层(Rectangle) 然后添加鼠标事件 最后添加一个Canvas画布,在鼠标位置改变时绘制,代码如下: //定义变量 //记录按压、释放时的坐标 property var pressedPonit; pro

hellocode_7812的博客 762

Qt实战:QGC地面站如何实现框选多机批量解锁(附完整代码解析)

本文深入解析了在QGC地面站中利用Qt框架实现框选多机并执行批量解锁等指令的完整方案。通过剖析坐标转换、核心数据逻辑封装、QML前端交互设计及批量指令的可靠性处理,为无人机集群作业的二次开发提供了高效、可扩展的实战代码与架构思路。

weixin_29063979的博客 164

基于开源飞控pix的无人机装调与测试

适用人群:希望进一步掌握无人机装调的飞手从零搭建无人机硬件平台的学生/教师无人机爱好者,开发者其他尚未入门开源PX4固件调试的学习者直播回放无人机装调与测试(一):无人机基本常识/预备知识固件是是烧录在飞控硬件中的软件,pixhawk飞控支持PX4和ArduPilot两种版本的固件。本次课程重点以PX4固件为基础进行讲解PX4 1.10以上固件QGC固件版本1.11一、将要观察的数据声明成uORB消息,并发布。我这里随便添加了一个。

超维空间科技的博客 2万+

Qt实战:QGC地面站如何实现多无人机框选解锁(附完整代码解析)

本文深入解析了基于Qt框架的QGC地面站如何实现多无人机框选解锁功能,涵盖从地图坐标转换、多机筛选算法到动态UI交互设计的完整实现流程。通过Qt的信号槽机制与MAVLink协议结合,开发者可以高效构建专业级无人机集群控制系统,特别适合需要二次开发的无人机应用场景。

weixin_29031161的博客 391

Pixhawk飞行测试流程:从Stabilize到Loiter的四步安全闭环

Pixhawk飞控并非即插即用的黑盒设备,其可靠飞行依赖于严谨的嵌入式控制闭环与多传感器协同机制。理解姿态稳定(Stabilize)、定高(Alt Hold)、定点悬停(Loiter)等模式的层级依赖关系,是构建飞行安全的前提;而GPS锁星验证、气压计热漂移补偿、Safety硬件熔断机制等底层原理,直接决定失控风险边界。该流程不仅支撑农业植保、物流无人机等工程落地,更成为适航预审与故障归因的核心依据。掌握‘测、判、调、记’四步法,实质是建立人机信任、保障日志可追溯、实现参数精调与风险前置拦截的技术实践路径。

weixin_33924312的博客 371

新品发布 | P600准行业无人机研发平台,室外视觉识别跟踪、激光雷达避障、多机组网!

P600吊舱跟踪宣传视频

AMOVLAB(阿木实验室) 2479

保姆级教程:用PlotJuggler分析PX4日志,从FFT到姿态数据一网打尽

本文提供了一份详细的保姆级教程,教你如何使用PlotJuggler分析PX4日志数据,从FFT振动分析到姿态数据解算一网打尽。通过实战案例和高级技巧,帮助开发者快速掌握无人机日志分析的核心方法,提升故障诊断效率。

weixin_42653691的博客 235

鲁班猫4机载电脑+px4飞控切换动捕定位源

需要在地面站QGC中设置相关参数:具体参数设置由于版本变化,V1.14版本后采用EKF2_EV_CTRL来代替EKF2_AID_MASK,而EKF2_EV_CTRL默认的参数15实际可以直接使用,因此无需修改。另外,确保EKF2_HGT_MODE设置为vision模式即可。还有一些涉及到时延以及坐标微调的参数可以暂时不管。

hotlrng的博客 301

QGC添加显示多架无人机飞行轨迹

在FlightDisplayViewMap.qml文件中找到如下部分:(上面是显示单架无人机轨迹,已注释,下面是显示多架轨迹) /* // Add trajectory lines to the map 增加轨迹线 MapPolyline { id: trajectoryPolyline line.width: 3 line.color: "red" //by gyg1030 z: QGro

早起的鸟儿有虫吃 3201

QGC地面站二次开发(三)Qt 简洁地面站

QGC地面站二次开发(三)Qt 简洁地面站

Neil_Chris的博客 1万+

QGC 指令发送解析

QGC在发送指令时运用了一个定时器,一个队列,和一个最大发送次数来确保指令最大可能的发送成功,此种方法可应用于其他发送命令的场景。 流程图如下: 源码: //发送指令线程 void sendMavCommand() { //1,指令entry 加入队列 queue _mavCommandQueue.append(entry);...

qthello 2386

QGC二次开发-框选多机进行解锁实现

实现在飞行页面通过鼠标框选中多架载具点击按钮进行加锁或者解锁。实现参考链接https://blog.youkuaiyun.com/hellocode_7812/article/details/124589462#comments_23821602。不是完整项目资源,只截取了修改过的几页代码,酌情下载。

上一篇: QML使用FileDialog时QML Settings报错
下一篇: QGC二次开发---框选多机执行解锁任务2
hellocode_7812
博客等级 码龄5年 32粉丝 14原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值