精华内容
下载资源
问答
  • QGC地面站二次开发教程二

    千次阅读 2018-08-12 09:03:45
    上一带大家进行了ubuntu下的Q Ground Control安装与编译,这次教大家对地面站的页面进行修改,对按钮或者页面进行删减,如何添加下次再说吧,我还没研究明白。...编译生成的QGC地面站最上方会有...

             上一次带大家进行了ubuntu下的Q Ground Control安装与编译,这次教大家对地面站的页面进行修改,对按钮或者页面进行删减,如何添加下次再说吧,我还没研究明白。

             一开始打开qgroundcontrol.pro文件会出现很多文件夹

           面对这么多文件,我们一开始又要去看哪些文件呢?快跟着我的脚步开始吧。编译生成的QGC地面站最上方会有四个图标:

            点击每个图标,下面又会出现一系列图形页面和按钮。现在我打算删除Application Settings页面或者其下面的General按钮,我又该怎么做呢?

             其实我们点开Resources/qgroundcontrol.qrc/ /qml,下面会出现很多.qml文件,这些qml文件就是在描述这些UI页面或者按钮似的东西一些属性特征,例如多高多宽,什么颜色等等。找不到也可以在左下角的搜索框直接搜索qml,自己选择需要的文件就行。

               我们打开MainWindowlnner.qml(不要问我为什么是这个文件,我也是找了很久),里面是描述上面提到的四个按钮UI的程序,例如,下面的程序就是显示Application Settings页面的程序:

           我们尝试把其程序注释再进行保存编译

          就会发现现在点击最左边的按钮没有反应了

         同理,下面的程序分别描述了setup、plan、fly窗口的页面。
         关闭地面站,反注释之前的程序,利用搜索框打开AppSettings.qml文件,这个是描述Application Settings内容的。在程序中有这么一句话

            由此受到启发,搜索CorePlugin文件,一搜,还真有,打开QGCCorePlugin.cc。会发现新大陆,这里面描述了许多的button按钮的程序,想要删除哪个按钮只要注释相应的程序即可。

     

             比如说我注释了General的程序,保存,编译运行

           会发现没有General按钮,其他的也类似

    展开全文
  • QGC地面站二次开发教程一

    万次阅读 多人点赞 2018-08-10 21:29:20
    因为需要做二次开发,所以必须要用QtCreator进行编译、改程序、再编译。采用的QGC源码版本是v3.4.0,是2018年8月10日最新的版本,在QGC develop网站上可以开到,目前的源码编译需要的QtCreator版本是5.11.0。 在...

             这一节是关于Q Ground Control源码编译安装的教程。因为需要做二次开发,所以必须要用QtCreator进行编译、改程序、再编译。采用的QGC源码版本是v3.4.0,是2018年8月10日最新的版本,在QGC develop网站上可以开到,目前的源码编译需要的QtCreator版本是5.11.0。

        在Qt官网下载是比较慢的,可以去清华或者中科大的镜像下载,速度比较快,中科大的镜像Qt下载链接(http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/5.10/5.10.0/)。 下载完则是一个qt-opensource-linux-x64-5.11.0.run文件,可以剪切放在/home文件夹中,方便操作。
    第一步:需要对其进行授权,防止超出权限      chmod 777 qt-opensource-linux-x64-5.11.0.run  
    第二步:开始执行安装命令      ./qt-opensource-linux-x64-5.11.0.run      在安装过程中可能会有点卡,耐心等待一会,整个安装                过程大概20分钟左右,若是失败可以重新安装再次尝试一下,安装位置可以默认即可。
    第三步:安装一些依赖包   sudo apt-get install espeak libespeak-dev libudev-dev libsdl1.2-dev libsdl2-dev    直接复制粘贴即可
    第四步:对Qt源进行更换,因为默认的源是Qt4    export QT_SELECT=qt5

    之后便可以查看Qt环境    qtchooser -print-env

           第一个导向和我们安装的不一致,需要对其进行更改。sudo gedit /usr/lib/x86_64-linux-gnu/qtchooser/5.conf   第一行需要更改,目录与自己安装的位置有关,例如我的是改成    /home/lxk/Qt5.11.0/5.11.0/gcc_64/bin

    最后查看Qt的qmake的版本   qmake -v

    如果是这样的话则代表安装成功了,接下来可以编译QGC源码了。

    一、使用git命令clone源码,跟新submodules
    git clone --recursive https://github.com/mavlink/qgroundcontrol.git
    git submodule update

    二、用Qt打开,一开始可能会有些messages输出,不用管

    三、点击编译按钮,编译,第一次编译时间比较长,可以去干点其他的事

           编译完成后会出现这个页面,提示我们将用户加入权限组,并移除设备管理器,因为设备管理器会对串口造成影响。
    在命令行输入 sudo usermod -a -G dialout $USER    和    sudo apt-get remove modemmanger
          最后出现了QGC地面站,表示编译成功。连接上PIXHAWK,需要新建立一个串口,最好再重新启动一下Ubuntu

     

     

     

     

    展开全文
  • QGC地面站二次开发教程三

    千次阅读 2018-08-22 09:45:27
    上次我们进行了地面站的图标、按钮等的删减,这次我们来开始添加一些我们喜欢的页面或者按钮。(这几天在家陪家人,不知不觉时间都过了这么久,还得去陪陪女票,更新的有点慢,抱歉,不过有问题加入专业的群,可以...

            上次我们进行了地面站的图标、按钮等的删减,这次我们来开始添加一些我们喜欢的页面或者按钮。(这几天在家陪家人,不知不觉时间都过了这么久,还得去陪陪女票,更新的有点慢,抱歉,不过有问题加入专业的群,可以随时有人来解答你的疑惑)
             我打算是在QGC最上面的栏目增加一个按钮,单击它可以出现一些自己喜欢的图案或者文字。例如可以增加一个和Analyze一样的图标(自己也可以换),单击它就可以显示一个文本框。如下图

            增加图标是比较容易的,可以仿照其他的来做就行。像这个在整个QGC顶部增加图标,需要在MainWindowlnner.qml文件中改相关的程序,如果在某个子图标下增加按钮,需要在子窗口文件下改程序。
            当我们打开MainWindowlnner.qml时,可以看到

            而这一部分其实是属于QML里面的知识,需要了解可以到网上搜搜,这里目前只是先简单介绍如何更改页面,深入了解放在后面。那我们就可以自己加一个自己定义的List,如图

            虽然可能不知道为什么加,但是感觉一定会用到。需要加一个参数,还需要加一个字符串,名字可以自己改。再让下看,会看到几个function函数,这应该是描述信号与槽连接的关系。

        那我们就需要仿照上面的函数自己来写一个function函数,下面是我自己写的

          发现有一个checkMyAddButton()函数需要添加,可以看一下前面的checkAnalyzeButton()函数是怎么定义的,利用Qt 的搜索功能可以看到使用的地方

    发现在MainToolBar.qml还有函数定义,打开这个文件,可以看到,这个文件是添加信号与槽的地方

    我们顺便可以仿照这个方法添加一个

    往下看会看到需要定义的函数,正是我们要找的东西,仿照这个形式再继续添加

    再往下就会看到一些图标的属性描述

    那个.svg文件就是图标的图案,再次仿照这个写一个自己要添加的图标属性

          我这里简单的就是用了Analyze的图标,也可以自己新建一个这样的文件添加进去。线与槽添加完后,再次回到MainWindowlnner.qml里面,继续往下,看到下面有添加窗口的地方

    再增加一个把自己写的显示出来

    再往下看到有许多的Loader,我们不要忘记了,自己写的也要写一个类似的

    这些搞完之后还要新建一个qml文件来描述单击后出现的页面情况

    文件的内容可以参考AppSettings.qml里的内容,例如我的内容如下,很简单,大家应该也能很容易理解

    搞完这些之后记得保存所有,编译。

    会发现多了一个和Analyze一样的图标,单击会出现一个文本框,这个文本框的内容正是我们设定的

    到这里,基本上我们的目标就算完成了。后面页面还需要处理一下,嘿嘿。

    展开全文
  • 文章目录前言一、打开MainRootWindow.qml、打开MainToolBar.qml三、之前的修改只是为了在QGC最上面添加一个按钮图标,因此为了实现点击按钮后的功能,需要自己添加qml文件。1.新建qml文件2.背景组件...
    
    
    


    前言

    在QGC最上面一栏添加一个按钮,单击出现一个文本框,背景为白色到黑色渐变,里面有两个按钮,点击Sender会自身改变颜色并给Receiver发送信号,同时Receiver也会改变颜色并显示点击的次数。
    在这里插入图片描述

    一、打开MainRootWindow.qml

    找到槽函数function viewSwitch(isPlanView),这里是为了当点击最上面按钮,主界面内容发生改变,因此默认设置主界面不显示。因此仿造上面的analyzeWindow写一个对应的。
    在这里插入图片描述
    然后这里是为了设置当点击最上面图标按钮的时候,对应的主界面内容发生改变,因此设置仿造上面function showAnalyzeView()写一个对应的。
    在这里插入图片描述
    最后这里是给自己所添加的按钮动态加载QML组件的来源,因此仿造上面的Loader写一个对应的。

    在这里插入图片描述

    二、打开MainToolBar.qml

    找到QGCToolBarButton,这个就是自己添加按钮的实现函数,仿造上面的analyzeButton写一个。
    在这里插入图片描述
    icon.source就是设置图标的来源,这里我用了QGC自带的一个图标。
    onClicked就是点击事件,根据之前设置的function槽函数,这里改成mainWindow.showMyAddView()。

    三、之前的修改只是为了在QGC最上面添加一个按钮图标,因此为了实现点击按钮后的功能,需要自己添加qml文件。

    1.新建qml文件

    代码如下(示例):
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    MyAdd.qml里面的内容可以参考AppSettings.qml,为了实现之前所说的功能,还需要按照之前的方法添加背景(MyAddBackground.qml),按钮(MyAddButton.qml),接收(Receiver.qml)和发送(Sender.qml)这4个qml组件。

    2.背景组件(MyAddBackground.qml)

    在这里插入图片描述
    设置渐变色,从白色到黑色
    在这里插入图片描述

    3.按钮(MyAddButton.qml)

    在这里插入图片描述
    这里的两个property是把按钮内容和按钮颜色导出后的属性,方便以后在其他地方修改
    在这里插入图片描述

    4.接收(Receiver.qml)

    在这里插入图片描述
    ①MyAddButton:Receiver继承于MyAddButtonMyAddButton
    ②function槽函数:当这个槽函数触发的时候,其内容和按钮颜色都发生改变
    ③SequentialAnimation动画:当槽函数内容发生变化的时候,其颜色会从红色到蓝色来回变化,默认关闭

    5.发送(Sender.qml)

    在这里插入图片描述
    ①MyAddButton:Receiver继承于MyAddButtonMyAddButton
    ②property是自定义属性,计数值为0
    ③signal信号函数,把信号发送给Receiver,
    ④property是自定义属性,目标是Receiver,默认为null
    ⑤onTargetChanged函数是当目标的值发生改变的时候,将send信号的连接到receive槽函数上⑥MouseArea是设置鼠标的处理,并设置区域占满整个按钮,当点击的时候发送信号,并且sender的计数值改变;当按钮被按下去的时候,按钮颜色变成蓝色;当按钮弹起的时候,按钮颜色变成红色。

    6.MyAdd.qml

    在这里插入图片描述
    首先添加MyAddBackground组件,接着再上门添加Sender和Receiver组件,并设置内容和颜色。然后在Sender中给target赋值,当target的值由null转为receiver的时候,就会触发Sender的槽函数,最后send会将这个信号和对应的receive槽进行连接,所以当点击Sender的时候,Receiver的值就会发生改变。

    总结

    自己研究了好久才弄成由于是最新的4.0.0版本的QGC,所以很多之前的教程都不能用了,很多函数名字都变了,对于小白的我来说太不友好了。

    参考

    QGC地面站二次开发教程三
    Qt入门课堂 | 第三讲 QML信号槽及属性绑定

    展开全文
  • QGroundControl(QGC)飞控地面站二次开发-修改地图

    千次阅读 热门讨论 2019-07-25 04:23:46
    QGC的地图在国内某些地方,只用bing可用,其他都不能使用。而且bing卫星图也没有道路和标签信息,还死慢死慢的。据说bing其实就没有国内的卫星地图版权,在网页上查看bing地图,是没有卫星图的,只有切换到en-US上才...
  • Mission Planner二次开发:...QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、QGC地面站进行UI全新设计,功能增减,企业Logo定制; 地面站定制开发 基于Mavli...
  • QGC二次开发 电脑:联想拯救者Lenovo R720,在电脑上安装虚拟机——>在虚拟机中安装UBuntu系统——>在Ubuntu中安装QGC以及Qt编译器。 1 安装VMware Workstation Pro以及UBuntu系统 1 下载 先在百度网盘上下载...
  • 字节地面站定制开发

    2017-12-08 15:34:00
    地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、QGC地面站进行UI全新...
  • 云豹地面站定制开发

    2017-12-05 10:54:00
    地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、QGC地面站进行UI全新...
  • qgc环境搭建笔记

    2018-09-20 14:52:03
    qgroundcontrol地面站3.2版本二次开发环境搭建,包含了qt下载地址与qt与vs混编的·环境搭建过程
  • QGC程序框架简单解析

    2020-12-02 11:53:50
    QGC地面站功能很强大,界面也做的很好看,不过代码量也是很庞大,二次开发难度挺大的,自己看了好几天还是一头雾水,晚上资料也大都不齐,最后还是买了阿木社区的课程参考一下,说实话,课程讲的真不咋地,虽然是个...
  • 每个功能模块单独封装,注释详尽,使得有一定编程经验的初学者能对整个地面站软件运行逻辑一目了然,并能基于我们开源的地面站软件进行二次开发,后续会上线更多功能,地面站软件持续更新,欢迎大家公测,只要您是...
  • Windows下QGroundControl开发问题汇总

    千次阅读 2018-08-26 17:37:53
    前段时间因为项目要求涉及了一下QGC地面站二次开发,开发难度先不提,环境搭建遇到了很多问题,几乎网上能搜到的问题都遇到了一遍,在这里总结一下。 一、QGC源码版本选择与下载 首先进入QGC官网链接,...
  • PX4开发基础

    2020-03-26 22:18:21
    文章目录一、与无人机的缘分开发前三、背景知识硬件PIXHAWKpixhawkV1:pixhawkV2:pixhawkV3x:软件代码ArduPilotPX4(推荐)地面站(GCS)Mission Planner(MP)QGroundControl(QGC)四、我的开发环境 ...
  • QGroundControl3.2版本

    2018-08-26 15:52:41
    地面站QGC的3.2版本,QT和C++,适合二次开发。已经包含mavlink和GPS驱动。

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

qgc地面站二次开发