![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
无人机
无人机
土拨鼠不是老鼠
这个作者很懒,什么都没留下…
展开
-
Web端地面站
(1),UAV上挂在一个机载控制端,以树莓派为例,部署一个机载控制程序,负责将mavlink与web端进行数据和指令的转发。两个 线程,分别为mavlink数据收发,web端数据收发,主要工作就是在这两种数据之间进行格式的转换。(2),更新页面时,本项目没有使用vue框架,用了一个定时器 进行定时更新UI数据,这样更流畅一些。(1),高德地图 上在绘制飞机位置时 需要进行坐标系转换,84转火星。(4),web端 采用高德地图进行飞机位置和航点显示,和航线任务的创建。纯html css 开发。原创 2022-09-29 10:15:49 · 603 阅读 · 3 评论 -
PX4 jmavsim软件仿真环境搭建
终端会有提升,直接pip3 安装即可。我的电脑需要安装jdk 环境(sudo apt-get install openjdk-11-jdk)1,源码子模块 更新失败。可以直接用这个,或者用vpn.原创 2022-09-05 10:27:39 · 772 阅读 · 0 评论 -
qgc 开发环境搭建(windows and android)
拷贝代码:git clone --branch v4.1.4 --recursive -j8 https://github.com.cnpmjs.org/mavlink/qgroundcontrol.git原创 2022-02-17 00:42:10 · 3109 阅读 · 0 评论 -
GStreamer 截取RTSP 视频帧
需求:无人机配套的某些低成本摄像机没有拍照功能,只有RTSP视频流的推送,因此可以利用GStreamer框架将视频帧进行保存,来达到拍照的效果。思路:在需要拍照的航点,触发信号。在GstVideoReciver.cpp 绑定此信号并进行视频帧的保存。视频帧保存代码(某大神写的,非原创):void GstVideoReceiver::takeMyScreenshot(const QString &imageFile){ // gpointer widget原创 2022-02-14 00:57:50 · 12024 阅读 · 0 评论 -
QGC 转发RTSP流 到RTMP服务器
需求:QGC安卓版在接收摄像机RTSP视频流的时候,需要将视频推送到指定的RTMP服务器。分析:QGC在处理音视频的时候使用了GStreamer这套框架,本身这套框架是跨平台的,所以无需关系环境,只要想到相应位置,添加对应功能代码,然后配置好安卓端的依赖库即可。添加位置:GstVideoReceiver.cpp -》start函数负责音视频的流的播放,只需在此处添加上封装好的推流函数即可。同理在stop中添加停止推流功能。方便起见,可在界面上配置rtmp的推流地.原创 2022-02-07 23:04:36 · 1474 阅读 · 9 评论 -
apm软件仿真+QGC地面站 环境搭建
本教程使用场景:apm软件仿真运行于虚拟机 ubuntu环境。qgc地面站位于windows 系统。两个环境在同一台电脑上。一.apm仿真环境搭建1.安装vm虚拟机及ubuntu 18。2.ubuntu下 下载Ardupilot 飞控源码 并配置环境。下载源码:git clone https://github.com/ArduPilot/ardupilotcd ardupilotgit submodule update --init --recursive配置所需运行的环境:原创 2021-12-30 00:35:41 · 4098 阅读 · 0 评论 -
QGC 上传任务
基于QGC版本 V3.1.3一,点击上传任务时,通过 qml调用 MissionController sendToVehicle 函数。void MissionController::sendToVehicle(QmlObjectListModel *listObstacle){ if (_activeVehicle) { // Co...原创 2018-06-21 09:37:22 · 1834 阅读 · 1 评论 -
QGC SettingsView(设置功能) 界面加载顺序
1,MainWindowInner.qmlMainToolBar{ id: toolBarheight: ScreenTools.toolbarHeightanchors.left: parent.leftanchors.right: pa...原创 2018-03-05 17:33:24 · 803 阅读 · 0 评论 -
QGC 增加航线距离显示功能
增加 航点与航点间 距离显示功能增加 可选按钮1,新建 MissionLineInfoView.qml 文件 用于显示航线长度import QtQuick 2.4import QtLocation 5.3import QtPositioning 5.3import QGroundControl 1.0...原创 2018-04-24 16:42:17 · 2439 阅读 · 9 评论 -
QGC 连接功能 底层执行逻辑
从点击这个 【Connect】按钮开始。1,main.cc 函数 调用了 自定义的 QGCApplication类->这个类的构造函数中 定义了 QGCToolBox类 _toolbox = new QGCToolbox(this);QGCToolBox类的 构造函数中 定义了 所需要的所有模块类 LinkManager* ...原创 2018-03-08 15:20:55 · 3229 阅读 · 2 评论 -
QGC增加 google中国地图
效果:1,设置 选择框,增加 googleChina 选项2,添加 类型3,增加 google 瓦片 获取地址注意事项:(1),QGC 的地图采用 瓦片拼接的形式,原理如下:http://www.voidcn.com/article/p-afxojstp-bnx.html(2),由于 手中的无人机 采用GPS/CORS/...原创 2018-04-25 15:20:15 · 4999 阅读 · 9 评论 -
仿 遥控器 摇杆控件
1,项目中 需要对遥控器的 控制进行PC端展示,因此 自己封装了一个 widget。用于摇杆数值的实时展示,效果如下2,思路利用 paintEvent(QPaintEvent *) 事件,进行实时绘制,具体实现 如下头文件#ifndef JOYSTICK_H#define JOYSTICK_H#include <QWidget>...原创 2018-02-10 11:47:50 · 1790 阅读 · 0 评论 -
基于工厂模式的 无人机连接方式( tcp、串口)
1,当前 与无人机的通信无外乎两种:tcp:涉及到参数为ip与端口。用于正式的数据交互。串口:涉及到的参数为端口号与波特率,因为串口其他参数相对固定,并且端口号可以与VID绑定,所以串口可固定参数为VID与波特率。串口一般用于调试使用。而真正的使用过程中,通用的函数大致分为四种。连接、断开、收数据、发数据。因此可将此两种方式利用工厂模式进行封装,用户设置好参数,即可随时切换两种使用方式...原创 2018-02-10 11:11:29 · 1642 阅读 · 0 评论 -
基于 QSimpleUpdater 和github的在线升级功能
在没有钱搭建后台服务器的情况下,可以利用github 和QSimpleUpdater 对客户端应用程序进行在线升级,思路如下:将最新的安装包存放到github服务器上-》本地客户端程序点击升级按钮后利用QSimpleUpdater 将github上的最新安装包下载到本地,并进行安装。1,下载 QSimpleUpdaterhttps://github.com/alex-spataru/...原创 2019-01-25 09:59:41 · 3821 阅读 · 4 评论 -
QGC 画中画功能解析
版本:V3.1.3一,根据代码 可知QGC使用了开源的GStreamer框架进行音频和视频的处理。而官方下载的地面站没有安装GStreamer,所以需要自己手动安装这套框架。二,安装GStreamer根据官方文档并结合代码。windows下 这里选择32位,并且两个软件都需要安装,而且需要安装在c盘。https://github.com/mavlink/qgroundcon...原创 2019-03-18 14:55:51 · 1494 阅读 · 1 评论 -
航测无人机-任务规划模块 竞品分析
1.项目背景任务规划是航空摄影测量当中最重要的一步操作,其操作的难易程度、专业性、以及交互的友好性对任务的完成有着重要的影响。因此此次主要针对三款无人机地面站软件的任务规划功能进行对比分析。2.竞品概述在竞品选择上我们选择大疆智图V2.0、飞马无人机专家专业版、以及致导科技的AheadXSpace3.0作为竞品进行对比。 产品名称 所属公司...原创 2019-06-05 14:25:00 · 2721 阅读 · 0 评论 -
QGC 添加电机测试功能
组装过程中为了测试电机的连接以及转向,现将电机测试功能单独制作一个页面,以便使用。一,效果原型实际效果总是差那么一丢丢.二,实现思路MavlinkConsole 功能,可以在地面站上直接发送nash指令,利用此可以测试一些传感器的基本功能。比如陀螺,磁力计等。 由于我的地面站是基于QGC3.1.3修改的 ,但是此版本的地面站没有MavlinkConsole 功能,所以...原创 2019-06-11 13:59:37 · 2162 阅读 · 2 评论 -
QGC 语音播报功能
一,TTS QGC的语音提示,调用的是各平台自己的TTS引擎接口(TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话)。代码如下:void QGCAudioWorker::say(QString inText){#ifdef __android__ Q_UNUSED(inText);...原创 2019-06-27 09:45:13 · 1178 阅读 · 0 评论 -
无人机 地面站
滑动确认定位整体效果原创 2018-07-31 16:22:05 · 5693 阅读 · 0 评论 -
Windows 下,px4 硬件仿真环境
此环境的目的是为了对Windows 版本的地面站进行功能测试1,下载jMAVSim 源码地址:https://github.com/DrTon/jMAVSim2,配置环境安装 java 并配置环境变量。安装 git3,插入px4飞控,更改为仿真模式,点击应用并重启,然后关掉地面站。4,先运行模拟器。出现 Init MAVLink 即表示成功。...原创 2019-03-22 11:57:52 · 1283 阅读 · 0 评论 -
QGC 整体架构图
基于QGC2.8.01,main.cc ->QGCApplication* app = new QGCApplication(argc, argv, runUnitTests); 自定义QGCApplication2,QGCApplication.cc ->_toolbox = new QGCToolbox(this);管理所有顶级服务工具3,...原创 2017-04-21 17:41:55 · 3473 阅读 · 2 评论 -
QGC 增加测距功能
一,参照百度地图,在QGC上实现测距功能,效果如下:二,实现思路三,主要代码实现(1),C++ 控制类#ifndef GFMEASURECONTROLLERNEW_H#define GFMEASURECONTROLLERNEW_H#include "PlanElementController.h"#include "QmlObjectListMode...原创 2019-04-10 09:25:40 · 1263 阅读 · 5 评论 -
植保 地面站竞品分析
现针对植保场景将我方地面站与极翼和拓攻的农业地面站进行简单对比,分别从界面交互和功能了两个维度进行了分析。三款飞控产品分别为极翼K3-A、拓攻T1-A、富地F2-P。地面站版本为拓攻V1.83、极翼V2.4.5、富地V1.2.8。界面交互主界面 极翼...原创 2019-03-20 17:25:01 · 783 阅读 · 0 评论 -
QGC 增加禁飞区显示功能
效果:本功能客只实现地面站上禁飞区静态展示,具体限制需飞控端实现。步骤:下载禁飞区数据-》处理禁飞区数据-》禁飞区数据 导入sqlite数据库-》初始化读取禁飞区数据-》绘制-》打包1,下载禁飞区数据,网络上可自行下载。下载后的禁飞区数据如下图所示,是一个纺锤形的多边形区域。https://download.csdn.net/download/weixin_3841...原创 2019-01-17 16:38:05 · 1562 阅读 · 15 评论 -
QGC 功能框架
原创 2018-07-19 10:39:55 · 2313 阅读 · 0 评论 -
QML仿 大疆ipad地面站 底部仪表盘
主要 利用QML 自带Dial类型 和Canvas 实现1,主文件 BottomInfo.qmlimport QtQuick 2.0import QtQuick.Layouts 1.3import QGroundControl 1.0import QGroundControl.FlightDisplay 1.0import QGroundC...原创 2018-07-18 15:19:08 · 2479 阅读 · 1 评论 -
QGC 自动调整 航区角度
V3.1.31,规划任务时,目前QGC 是将所有航线的方向默认设置为正北方向,但是实际使用的时候需要需要根据前两个航点自动调整。效果如下。2,方法(1),求得 多边形 前两个点 与正北方向的夹角(2),生成多边形时 设置航线角度为 第一步计算的夹角3,static double Rc=6378137;static double Rj...原创 2018-06-27 10:25:46 · 1683 阅读 · 0 评论 -
QGC android版 ubuntu编译
一,环境搭建参照:https://blog.csdn.net/foxbryant/article/details/518136851.软件安装Ubuntu 版本:14.04Qt:5.7.1Java:jdk1.8.0_171ndk: android-ndk-r12b-linux-x86_64.zipsdk:android-sdk_r24.4.1-linux.tgzan...原创 2018-06-05 16:14:01 · 2838 阅读 · 4 评论 -
QGC 地理围栏 代码解析
版本V3.3.11,功能。点击 【Circular Fence】 ->地图上 生成一个橙色的圆形 围栏2,类图。 业务控制为 GeoFenceControll类,界面为编辑框 和围栏 所对应的为qml文件。...原创 2018-05-18 15:17:42 · 1345 阅读 · 2 评论 -
QGC 谷歌中国地图 火星坐标系 转换
1,算法static double pi = 3.1415926535897932384626;static double a = 6378245.0;static double ee = 0.00669342162296594323;//坐标系转换 static double lonTrans(double x,double y); ...原创 2018-05-18 11:28:27 · 1881 阅读 · 2 评论 -
QGC 任务规划 航测功能 底层逻辑
基于版本:3.1.31,点击 左侧 航测按钮2,MissionEditor.qml中 调用MissionController 插入复杂任务 函数var sequenceNumber = missionController.insertComplexMissionItem(coordinate, missionController.visualItems.count)...原创 2018-05-14 10:23:13 · 2878 阅读 · 1 评论 -
QGC 汉化
效果如下一,pro文件修改。不添加 lupdate, qml文件中的 qstr 无法识别。二,生成 ts 文件三,利用 Qt 自带的 linguist软件 加载ts文件-》翻译后 -》 生成 qm 文件四,程序中 加载 qm 文件 。注意:一定要 在最开始,也就是窗口 构造之前 进行翻译的文件的加载,否则翻译文件 无效。...原创 2018-04-13 16:12:29 · 6613 阅读 · 14 评论 -
QGC 任务规划 -》Survey功能 底层执行逻辑
追踪了 一下 当点击 【Survey】按钮后,地图上 绘制出了 一个多边形,这个交互的 底层执行顺序。1,首先加载给地图加载代理。PlanView.qml 。给FlightMap 添加了一个代理(MissionItemMapVisual),用来展示 不同的任务 效果。比如简单的航点任务 和多边形的测量任务。Repeater{ model:_ed...原创 2018-03-07 13:11:06 · 1698 阅读 · 1 评论 -
QGC SetupView(设置功能) 界面加载顺序
1, SetupView.qml 加载固件、摘要和AutoPilotPlugin 类2, PX4AutoPilotPlugin:publicAutoPilotPlugin 。具体的PX4插件继承AutoPilotPlugin类,实例PX4对应组件 PX4AirframeLoader* _airframeFacts; AirframeComponent*...原创 2018-03-05 17:03:41 · 1839 阅读 · 0 评论 -
QGC启动时 qml 界面加载顺序
1,Main.ccQGCApplication*app=newQGCApplication(argc,argv,runUnitTests);,2,QGCApplication.ccvoid QGCApplication::_initCommon(void) //将 C++类 注册为 QML可识别的类型{ QSettings settings;...原创 2018-03-05 16:53:30 · 2661 阅读 · 0 评论 -
QGC PlanView(任务规划功能) 界面加载顺序
一,文件位置: qgroundcontrol.qrc->qml->PlanView.qml二,任务规划 UIQGCViewPanel{ FlightMap{//1,地图 ToolStrip{//2,左侧 竖条状工具栏 Waypoint Sync Center In Out title:qsTr("Plan")...原创 2018-03-05 15:38:29 · 2860 阅读 · 2 评论 -
QGroundControl 开发人员指南
基于QGC3.3.0(翻译的很烂)本指南解释了QGroundControl(QGC)如何在内部工作,并提供了为项目贡献代码的指导原则。它旨在供开发人员使用!支持本开发人员指南最终将成为有关QGroundControl开发信息的主要提供者。如果您发现它缺少有用信息或者有错误的信息,请提出问题。开发问题可以在QGroundControl Developer里讨论或者通过QG...翻译 2018-03-04 16:05:54 · 22369 阅读 · 8 评论 -
QGC Analyze 功能提取
1,QGroundControl Analyze功能以折线图的形式对传感器原始数据进行显示,有助于后期的调试。如下图所示:2,因项目需求,想使用这个模块,但是有不想使用QGC ,因为QGC太过庞大,操作也有点复杂,所以花了一点时间 将此功能单独摘了出来,效果如下:3,主要文件如下:4,使用方式 为调用LineChartWidget 的 appendD...原创 2018-02-10 10:18:30 · 1674 阅读 · 4 评论 -
QGC 指令发送解析
QGC在发送指令时运用了一个定时器,一个队列,和一个最大发送次数来确保指令最大可能的发送成功,此种方法可应用于其他发送命令的场景。 流程图如下:源码://发送指令线程void sendMavCommand(){ //1,指令entry 加入队列 queue _mavCommandQueue.append(entry);...原创 2019-05-07 12:36:10 · 1915 阅读 · 0 评论