完整的Ubuntu20.04+ROS+PX4+Anaconda+PyTorch+GPU+CUDA+CUDNN+XTdrone配置智能无人机开发环境搭建过程

概述

我之前写了如何在Ubuntu18下搭配一系列软件的教程,然后近期重新安装20.04版本,于是重新记录一些东西,但是众多东西之前已经有了,所以我在这里知会在一些不同的地方和新增的地方特别说明,其他的请大家看之前的博客。

对xtdrone的理解

在搞了这么久的ros和px4之后,我也明白了xtdrone是什么了,它本质上就是一个包含了多个例程和模型文件的仓库,以gazebo和px4、ros为基础,做出来的一些初学者可以上手即用的例子,类比一下就是这样:你想学做题(进行应用),如何已经学会了一些基础知识(就是ros等基础),但是不知道怎么做题,然后肖昆老师团队出了一本例题集,你可以看一下一些题目是怎么做的,这个习题集就是xtdrone
大家看一下xtdrone的结构可以发现,包括很多模型(sdf无人机模型和world世界模型),很多集成的launch文件,很多程序,但是本质上还是mavros+PX4等

对xtdrone配置教程的理解

xtdrone中搭配无人机仿真的方式,实际上就是将px4官方的依赖安装方式进行修改,官方的依赖安装方式实际上是安装一系列软件和一系列Python包,这些软件和Python包不止是gazebo仿真的依赖,还有其他仿真环境的依赖,然后肖昆老师团队把其中单独属于gazebo仿真的各种依赖摘出来,也就是大家见到的xtdrone文档里面的一些需要安装的依赖与包,然后这里我进行了优化,使用清华源安装Python包,大大优化了安装速度与稳定性

CUDA环境

这里直接参考我之前的一篇即可
这里有一个可能的坑,就是不要使用火狐浏览器登录,我在火狐登录的时候NVIDIA发确认邮件,但是我谷歌邮箱没收到
完整的Ubuntu18.04+ROS+PX4+Anaconda+PyTorch+GPU+CUDA+CUDNN+XTdrone配置智能无人机开发环境搭建过程

谷歌浏览器安装

我们在谷歌浏览器官网上可以下载deb格式的安装包
谷歌浏览器官网
不过需要重启电脑才可以启动谷歌浏览器

安装ros

我这里是使用的换源安装,大家也可以使用小鱼的一键安装ros,但是要注意一个地方:如果你在小鱼的一键安装ros里面选择更换系统源那么后续有可能安装不上mavros
我第一次安装三采用小鱼的一键安装ros,但是后来发现mavros要死要活安装不上,然后重装系统之后没有使用小鱼的一键安装ros,而是先换源,我用的是中科大的,然后使用命令行安装ros noetic,然后使用小鱼的rosdepc方法进行初始化,之后可以正常安装mavros
先将原来的软件源备份

sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup

然后使用文本编辑器打开软件源文件

sudo gedit /etc/apt/sources.list

将内容清空,然后将下面的内容粘贴进去

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

然后保存,关闭,在命令行里面输入下面命令,对软件进行更新

sudo apt update 
sudo apt upgrade

然后我们使用小鱼的rosdepc来初安装和始化我们的ros

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

然后大家先使用在个指令安装ros,注意不要换源安装,为当初换源安装后无法安装mavros,不知道是不是特殊情况
安装完成之后rosdepc一下,这里欢迎大家去小鱼的官网,也就是鱼香ros
鱼香ROS

mavros

先直接进行安装

sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras

当然这只是第一步,还有第二步
原教程里面有一个sh文件的加载,这一步十分耗时,但是不安装的话运行mavros就会报错,所以我们进行一些修改,让其容易安装
直接下载压缩包,解压,然后将其子文件夹移动到目录/usr/share/GeographicLib下,就可以完成操作了
链接: https://pan.baidu.com/s/1Fw3HWJqGvAz2USomgF9eqA 提取码: q2pn
上面是压缩包,解压后得到三个文件夹,如图
我们需要将这三个文件夹移动到/usr/share/GeographicLib目录下,大家可以先看一下有没有这个目录,没有的话需要自己创建
创建的指令如下

cd /usr/share/
sudo mkdir -p GeographicLib
cd GeographicLib

把文件夹移动过去的指令为

sudo cp -r /home/ncepu/下载/Baidu/geographic-lib/magnetic /usr/share/GeographicLib/
sudo cp -r /home/ncepu/下载/Baidu/geographic-lib/gravity /usr/share/GeographicLib/
sudo cp -r /home/ncepu/下载/Baidu/geographic-lib/geoids /usr/share/GeographicLib/

这里的/home/ncepu/下载/Baidu/geographic-lib是我自己的文件目录,大家记得改为自己的目录

PX4仿真

注意一下,本教程跟xtdrone并不是十分兼容,只是提供一种如何构建PX4官方仿真环境的方法
因为本人在这里并没有使用gazebo9版本,所以会导致gazebo无法使用xtdrone的模型和代码,如果是初学者不建议尝试
实际上肖昆老师团队的PX4仿真方法,与PX4官方也有所区别,本人所写的教程也不过是优化了PX4官方的仿真环境搭建方法,使得各位同学可以使用国内网络快速搭建
而且本人已经具备了ROS等相关技术并且有一定水平,所以对XTDrone的模型文件进行移植,对各种例程文件进行改写,自行构建项目,所以并不十分依赖XTdrone的例程,初学者请谨慎使用本教程
如果是纯粹的初学者,不建议使用本教程(最少在本人写的基础教程之前不建议)
不过本人后面会出一些基础的教程,从mavros最基础的用法开始教大家,而不是直接给大家一个项目去使用,这样就可以供大家学习和入门
我们无需从github下载px4源代码,费时费力,我下载好了,这个是1.12.3的版本,所有子模块全部完成更新,打包发给大家
链接: https://pan.baidu.com/s/1vbMwi4uz3Nex-nJ1G1G46Q 提取码: 2stb
–来自百度网盘超级会员v4的分享

下载好之后就是这样一个压缩包,大家将其解压到主目录下,然后在在个文件夹目录下打开终端,我们安装一系列依赖

官方推荐的依赖安装方式是这样,也就是

bash ./Tools/setup/ubuntu.sh 

但是因为很多东西要去国外网站下,所以容易安装不全,我们对此进行改进


这个ubuntu.sh文件的内容,其实就是安装一些软件包和python包,里面很多python包我们只要用国内软件源下载就可以

我们打开文件夹下的Tools文件夹,其中还有一个setup文件夹
实际上python是根据这个requirements.txt来进行安装各种依赖的,我们在这个文件夹下打开终端
我们直接根据这个文件,从清华源进行安装,又快又好

pip3 -r requirements.txt -i  https://pypi.tuna.tsinghua.edu.cn/simple

这里要注意,我们现在是安装到系统自带的python中,后面我们会进行anaconda的安装,大家如果想修改系统python的安装包,需要取消anaconda的激活

在安装完python依赖之后,我们安装软件依赖

bash ./ubuntu.sh 

然后就可完成一系列依赖,因为我们已经更换了国内源,所以可以很快完成,至此,依赖安装完成
然后我们回到px4代码文件夹,在终端输入

make px4_sitl gazebo

然后等待编译完成就可以开启仿真,大家就可以看到gazebo开启,并且里面有一个无人机
然后我们抄一下xtdrone的方法,把下面的内容粘贴到.bashrc文件的最后,保存关闭,然后使用source刷新,告诉ubuntu我们这些文件夹是ros包以及刷新环境变量,然后我们以后就可以直接使用roslaunch指令开启仿真了
这里的PX4_Firmware是肖昆设置的文件夹名字,我为了省事就直接复制粘贴了,大家记得修改,或者将自己保存px4的文件夹改名PX4_Firmware

source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

然后我们每次打开新窗口的时候,都会自动加载这些变量

当然暂时还不能运行launch开启仿真,因为还有一个问题我们并没有解决,否则你会看到如下错误


这里实际上就是缺少包所导致的,但是我尝试通过pip安装的时候显示已经安装了,我发现原来是我python环境有多个,所以需要指定安装环境,我们这里是安装在ros的python包目录下,所以输入下面的指令

sudo pip3 install -t /opt/ros/noetic/lib/python3/dist-packages rospkg -i  https://pypi.tuna.tsinghua.edu.cn/simple

这里的-t表示我们要安装的位置,安装之后,我们就可以进行仿真了
通信也是成功的

如果大家在这里使用launch打开仿真还是报错,可以看一下我这个解决方法
px4进行gazebo仿真时所碰到的问题及解决方法

安装Anaconda

我们在清华源上下载最新的anaconda发行版
清华镜像-anaconda
我这里选择的是2022.10的最新版

然后我们打开下载的文件夹,打开终端进行安装

bash Anaconda3-2022.10-Linux-x86_64.sh 

这里大家把文件名换成自己的

安装完成后,首先刷新环境,也就是

cd
source .bashrc

然后添加镜像源,我这里选清华镜像,大家将下面内容粘贴到命令行

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --set show_channel_urls yes
conda clean -i

然后创建环境并且激活,我这里考虑兼容问题,新环境是3.8版本python,有了新的镜像源,下载还是很快的

conda create -n robot python=3.8
conda activate robot

在里的robot是我给新虚拟环境的名字,大家可以改成自己的名字
第一行指令是创建一个python版本为3.8的虚拟环境,第二个命令是激活这个环境
然后我们在命令行输入下面的指令,在这个虚拟环境下安装ros需要的python包

conda install pyyaml
pip3 install catkin_pkg rospkg -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成之后,就可以在自己的虚拟环境里面使用rospy了,我自己创建的虚拟环境名为pytorch,可以看到,导入rospy正常

如果大家想使用自己创建的python环境来编译工作空间中的文件的话,可以使用下面的命令
catkin build(有人用catkin_make也可以,修改python解释器的方法一样,把catkin build换成catkin_make就可以)后面的的-DPYTHON_EXECUTABLE=意思是python解释器的位置,这里我们选择之前创建的anaconda环境

catkin build -DPYTHON_EXECUTABLE=/home/robot/anaconda3/envs/pytorch/bin/python3

当然还是catkin build命令更新更好,也建议catkin build

未完待续

后面测试好PyTorch和xtdrone后会补上

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月6日
下一篇 2023年8月6日

相关推荐