ubantu上跑通无人机飞控代码(ZJU-FAST-Lab/GCOPTER)教程

写在前面

最近接触到一些无人机轨迹规划的知识,学习了浙江大学FAST实验室做的一些东西,不得不说,突然接触到这么深奥的知识是很痛苦的,尤其是在读王哲培老师的博士论文的时候,读了一个寒假只读了一点点表皮,不,一点表皮也没有(苦涩)。所以想直接跑代码。我首先在unbuntu18.04上面跑的,然后遇到了各种错误,最终确实错误搞不定,然后重装了一个20.04,竟然直接跑通了。所以写下这篇文章给大家一些建议。

环境

  • 虚拟机:VMware-workstation-full-17.0.0
  • 操作系统:Ubuntu20.04

教程

安装VMware和ubuntu

这部分网上有很多教程我就不多说了,这里给大家推荐一个我感觉还不错的教程:
安装虚拟机(VMware)保姆级教程(附安装包)
这里我使用的VM是17.0,使用的ubuntu镜像是20.04.6(不要用18.04,血的教训)
这里附上阿里云Ubuntu20.04镜像下载地址
如下:
在这里插入图片描述
或者自己跟着网上浏览量多的,评论多的教程安装一下vm和虚拟机,这个能力还是必备的。毕竟有时候要卸载安装好多次。

git FAST-Lab实验室代码

首先给出FAST-Lab的github代码连接,里面的readme大家可以读一下,有教怎么跑通的简单教程。如下所示:

sudo apt update
sudo apt install cpufrequtils
sudo apt install libompl-dev
sudo cpufreq-set -g performance
mkdir ROS; cd ROS; mkdir src; cd src
git clone https://github.com/ZJU-FAST-Lab/GCOPTER.git
cd …
catkin_make
source devel/setup.bash
roslaunch gcopter global_planning.launch

这里做详细的解释
文件夹随便选,我这里是桌面。
sudo apt install cpufrequtils:是安装一个cpu的变频工具包,作用是在线调节cpu时钟频率。
sudo cpufreq-set -g performance:就是将cup的模式调整到performance(表演),顾名思义,就是最好的性能。(这里用不用都可以,我就没有使用,只不过运行的卡一点)
sudo apt install libompl-dev :这里是安装ompl库,作用是运动规划


当执行到`git clone https://github.com/ZJU-FAST-Lab/GCOPTER.git`时,需要下载一个git。如下所示:


可以按照命令sudo apt install git进行安装

在git代码的时候可能需要(我尝试不设置有时也可以)使用科学上网的方法,这里我给出两种方法:
第一种方式:这里我给出虚拟机使用主机代理科学上网的知乎教程
第二种解决方式:在主机上下载GitHub的GCOPTER安装包,然后再传进虚拟机进行解压(这也许需要安装vmtools)。

我使用的是第一种,接下来是我git的过程:
在这里插入图片描述

安装catkin_make、g++和ros

catkin_make和g++都是超级常见的安装包,直接使用sudo apt 就好了
sudo apt install catkin
sudo apt insatll g++
如下:
在这里插入图片描述


如果你现在执行catkin_make命令,他会报错,告诉你roscpp找不到,接下来需要配置ros环境。

在配置之前进行简单的介绍。ros是一个用于开发机器人的一个系统,我目前才刚刚学就感觉到了他的强大。下面给出一个简单介绍的博客:
ROS简介-从零开始讲解ROS(适合超零基础阅读)


至于配置ros,网上有很多教程,我是小白,所以使用的是鱼香ros的一键配置。具体过程如下所示:
执行命令:

wget http://fishros.com/install -O fishros && . fishros

然后得到的结果如下:
在这里插入图片描述
需要输入一下密码,然后就得到鱼香ROS支持的配置,如下:
在这里插入图片描述


这里我们配置的是ros环境,所以选择1,接着得到:


在这里插入图片描述


为了给小伙伴演示,我这是全新的Ubuntu,还没有换过源,Ubuntu源的服务器在美国。所以这里我选择更换源。如果还没有动过源的话,默认是Ubuntu源,这个可以从源的配置文件中可以看到,文件路径为/etc/apt/sources.list 在没有更换的时候,显示结果如下:
在这里插入图片描述
如果选择换源,鱼香ROS默认更换为国内中科大源,更换之后如下:
在这里插入图片描述


然后开始安装ROS,我这里安装的是ROS1桌面版,如下所示:
在这里插入图片描述
到这里基本上就安装好ros了

运行

再到下载ROS代码的文件夹中,在ROS目录下执行

catkin_make
source devel/setup.bash
roslaunch gcopter global_planning.launch

就可以正成运行了:
在这里插入图片描述

后记

我刚开始是使用Ubuntu18.04进行配置的,几乎是按照上面的完全一样配置的,但是在进行轨迹规划的时候,遇到了如下报错:

what(): Direct sampling of the path-length objective requires Eigen, but thisversion of OMPL was compiled without Eigen support. If possible,please installEigen and reconpile oMPL. If this is not possible,you can manually create an instantiation of RejectionInfSampler to approxinate the behaviour of direct informed sampling.

在这里插入图片描述
它告诉我我现阶段的ompl(运动规划库)在编译的时候没有使用Eigen3(一个进行快速矩阵运算的库),让我重新编译。但是当我下载了Eigen3之后,按照网上的教程和官网的教程安装好ompl之后,又修改了GCOPTER的配置文件,但是还是遇到了ompl中少了几个头文件的错误。因为环境变量也被我改坏了,所以我只能重新换了一个操作系统。当我使用20.04的时候,运行代码超级顺利。如果有小伙伴遇到上面的错误,提供一个解决的思路:

  1. 重现下载一个ompl库(我遇到了很多麻烦),尽量按照官网的步骤来。
  2. 修改一下 ROS/src/GCOPTER/gcopter/ 目录下的Cmakelist,指定find_package(ompl REQUIRED) 的位置为你下载ompl的位置,或者修改ompl_find*文件里面的路径
  3. 重新编译,运行

猜你喜欢

转载自blog.csdn.net/weixin_53665577/article/details/130400275