为QGroundControl地面站二次开发所做的准备

欢迎交流~ 个人 Gitter 交流平台,点击直达:


更新于2017.5.7

对于QGC3.1.3以后的版本,其编译所需的Qt Creator已经全面升级为5.7.1。

为QGroundControl地面站二次开发所做的准备_第1张图片

QGC的官网是http://qgroundcontrol.com/,可以从这里下载比较稳定的安装包解压,建议下载daily build的,里面有一些新的功能后面要用到,但是还是得安装Qt,如果不安装Qt,打开QGC会有缺少动态链接库的问题。

如果想要对自己编译QGC或者进行二次开发,那就必须从Github上下载QGC源码并且安装特定版本的Qt Creator了。

QGC3.1.3以后的版本

对于2017年4月之后的QGC

其中Windows操作系统需要安装vs2015以及Qt5.7.1(MSVC2015 32bit);

为QGroundControl地面站二次开发所做的准备_第2张图片

Linux安装与操作系统对应的Qt5.7.1即可。

Windows下操作简单,安装软件即可,本文介绍的是Ubuntu下QGC的编译方法。

安装Qt 5.7.1

可以选择中国科学技术大学的镜像。

为QGroundControl地面站二次开发所做的准备_第3张图片

这样下载比较快一些,下载完成后进行如下操作。

~ $ chmod 777 qt-opensource-linux-x64-5.7.1.run
~ $ ./qt-opensource-linux-x64-5.7.1.run
# => 建议将目标文件夹选为$HOME/Qt($HOME为用户目录,替换为如/home/your_name)
# => 相关依赖项的安装如下:
~ $ sudo apt-get install espeak libespeak-dev libudev-dev libsdl1.2-dev libsdl2-dev
# => Qt配置如下:
# => 更换qt源,默认为qt4
~ $ export QT_SELECT=qt5
# => 查看Qt环境
~ $ qtchooser -print-env
QT_SELECT="qt5"
QTTOOLDIR="/home/your_name/Qt5.7.1/5.7/gcc_64/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
# => 更改文件/usr/lib/x86_64-linux-gnu/qtchooser/5.conf 第一行为:/home/your_name/Qt/5.7/gcc_64/bin
~ $ sudo gedit /usr/lib/x86_64-linux-gnu/qtchooser/5.conf 
# => 我的如下:
~ $ cat /usr/lib/x86_64-linux-gnu/qtchooser/5.conf 
/home/fantasy/Qt5.7.1/5.7/gcc_64/bin
/usr/lib/x86_64-linux-gnu
~ $ qmake -v
QMake version 3.0
Using Qt version 5.7.1 in /home/fantasy/Qt5.7.1/5.7/gcc_64/lib

下载QGC源码

QGC的源码可以在这里找到。

git clone --recursive https://github.com/mavlink/qgroundcontrol.git

然后就可以用Qt打开.pro工程文件进行开发了,Qt使用了影子构建,用户可以自定义生成目录的路径。

QGC的编译只能使用Qt5.7.1,必须在工程设置中选择Qt 5.7.1的GCC

为QGroundControl地面站二次开发所做的准备_第4张图片

编译一次耗时挺久的,不知道有没有快一点的方法……

生成的可执行方式在影子目录中。

为QGroundControl地面站二次开发所做的准备_第5张图片

如上图所示,笔者在qgroundconctrol源码目录的同级创建了构建目录QGC_Build,编译好的QGC可执行文件就在该目录下的Debug目录中

为QGroundControl地面站二次开发所做的准备_第6张图片

看到这里应该无须再多说了

新版地面站是这样的,软件更新速度很快,指不好还会怎么大改。

为QGroundControl地面站二次开发所做的准备_第7张图片

QGC3.1.3及以前

对于2017年4月之前的QGC

其中Windows操作系统需要安装vs2013以及Qt5.5.1(MSVC2013);Linux安装与操作系统对应的Qt5.5.1即可。

Windows下操作简单,安装软件即可,本文介绍的是Ubuntu下QGC的编译方法。

安装Qt 5.5.1

可以选择中国科学技术大学的镜像。

为QGroundControl地面站二次开发所做的准备_第8张图片

这样下载比较快一些,下载完成后进行如下操作。

~ $ chmod 777 qt-opensource-linux-x64-5.5.1.run
~ $ ./qt-opensource-linux-x64-5.5.1.run
# => 建议将目标文件夹选为$HOME/Qt($HOME为用户目录,替换为如/home/your_name)
# => 相关依赖项的安装如下:
~ $ sudo apt-get install espeak libespeak-dev libudev-dev libsdl1.2-dev libsdl2-dev
# => Qt配置如下:
# => 更换qt源,默认为qt4
~ $ export QT_SELECT=qt5
# => 查看Qt环境
~ $ qtchooser -print-env
QT_SELECT="qt5"
QTTOOLDIR="/home/your_name/Qt5.5.1/5.5/gcc_64/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
# => 更改文件/usr/lib/x86_64-linux-gnu/qtchooser/5.conf 第一行为:/home/your_name/Qt/5.5/gcc_64/bin
~ $ sudo gedit /usr/lib/x86_64-linux-gnu/qtchooser/5.conf 
# => 我的如下:
~ $ cat /usr/lib/x86_64-linux-gnu/qtchooser/5.conf 
/home/fantasy/Qt5.5.1/5.5/gcc_64/bin
/usr/lib/x86_64-linux-gnu
~ $ qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /home/fantasy/Qt5.5.1/5.5/gcc_64/lib

下载QGC源码

QGC的源码可以在这里找到。

git clone https://github.com/mavlink/qgroundcontrol.git

这一步很重要

要编译以前的地面站,需要编译以前的固件。

以前的固件在执行git clone xxx步骤时已经一并下下来了。

使用git tag可以查看以前的qgc版本

$ git tag
v1.0.4
...
v2.4
v2.5
...
v3.1.2
v3.1.3

例如这里如果要编译3.1.2版本的地面站,可以使用以下指令切换到3.1.2版本的tag上

git checkout v3.1.2

然后在此tag上递归更新子模块

git submodule update --init --recursive

接下来就可以用Qt打开.pro工程文件进行开发了,Qt使用了影子构建,用户可以自定义生成目录的路径。

QGC的编译只能使用Qt5.5.1,必须在工程设置中选择Qt 5.5.1的GCC

为QGroundControl地面站二次开发所做的准备_第9张图片

编译一次耗时挺久的,不知道有没有快一点的方法……

生成的可执行方式在影子目录中。

编译成的地面站长这样

为QGroundControl地面站二次开发所做的准备_第10张图片

FAQ

  • 问题1

对于下载的Daily Build版QGC,有时直接./qgroundcontrol-start.sh启动不了,报错

error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory

此时需要安装依赖项

sudo apt-get install espeak libespeak-dev libudev-dev libsdl2-dev
  • 问题2

编译报错

ERROR: sdl2 development package not found

缺包就安

sudo apt-get install libsdl2-dev
  • 问题3

在虚拟机中打开带GUI的软件(QGC、GAZEBO等)时,报错

VMware: vmw_ioctl_command error Invalid argument.

为QGroundControl地面站二次开发所做的准备_第11张图片

取消上图所示的3D加速即可。

  • 问题4

旧版Qt creator卸载

  1. 对于使用sudo apt-get install qtcreator安装的软件都可以使用如下指令卸载

    sudo apt-get remove qtcreator
    sudo apt-get autoremove
  2. 对于.run格式的qtcreator卸载

安装后的目录中MaintenanceTool为可执行文件,在这里为qtcreator的卸载文件

uninstall

如上图所示,在Linux中,绿色名字的都是可执行文件,使用./MaintenanceTool执行它,会出现可视界面

为QGroundControl地面站二次开发所做的准备_第12张图片


有对QGC开发感兴趣的还望交流指导


                                          By Fantasy

你可能感兴趣的:(工具,Pix学习笔记)