Learning High-Speed Flight in the Wild 环境安装

2023-05-16

有许多问题可以去github项目内的issues查找一下,里面有相当一部分问题的解决方案。
也可参考论文学习–Learning High-Speed Flight in the Wild

一、环境安装

论文程序github地址:uzh-rpg/agile_autonomy,以及安装所需的基本流程,都在下方的Readme中可以找到。
环境:ubuntu 20.04 + cuda11.0 + gcc/g++ 7.5.0 + ROS noetic + python3.8 + anaconda 4.8.3 + open3d 0.9.0
安装流程

ubuntu20.04、cuda11.0、gcc/g++ 7.5.0 安装

1.Ubuntu 20.04 安装:ubuntu 20.04 的安装较为简单,可以参考之前的ubuntu16.04的安装过程。
2.安装完Ubuntu20.04后,应该首先安装cuda11.0,即先安装Nvidia显卡驱动,安装完成之后,再安装cuda11.0即可。

// 安装ubuntu20.04所需的软件包,此时安装的gcc/g++ 为 9.3.0
sudo apt update
sudo apt install build-essential
// 查看gcc/g++版本
gcc --version

在这里插入图片描述为了防止系统内核不一致,导致安装不上的问题,在此时安装Nvidia驱动以及cuda,这里使用的版本是NVIDIA-Linux-x86_64-470.94以及cuda11.0。

// 先需要禁用nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
// 在文本最后添加
blacklist nouveau
options nouveau modeset=0
// 更新系统
sudo update-initramfs -u
// 重启之后,检查是否已经禁用,若没有输出,则已经成功。
lsmod | grep nouveau
// 将NVIDIA-Linux-x86_64-470.94.run拷贝到room目录下,ubuntu下按ctrl+alt+f1进入命令行界面
// 若没有lightdm,则需要先安装
//关闭图形界面
sudo service lightdm stop  
//若安装过其他版本或其他方式安装过驱动执行此项    
sudo apt-get remove nvidia-*  
sudo chmod  a+x NVIDIA-Linux-x86_64-470.94.run
//只有禁用opengl这样安装才不会出现循环登陆的问题
sudo ./NVIDIA-Linux-x86_64-470.94.run -no-x-check -no-nouveau-check -no-opengl-files 
//只选择安装TOOK那一项即可,其他不安装。
//挂载驱动
modprobe nvidia
//查看驱动
nvidia-smi

安装cuda

// 在该目录下运行
sudo sh cuda_11.0.2_450.51.05_linux.run
//不安装driver,其他选yes,直到安装完毕

查看cuda版本

//查看cuda版本
nvcc -V

在这里插入图片描述安装完成之后,再安装gcc/g++ 7.5.0

# 首先安装gcc7.5.0
sudo apt install gcc-7 g++-7
# 修改优先级,首先使用gcc/g++ 7.5.0,最后面的数字是优先级,谁的大,就是选择谁。
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100

在这里插入图片描述

ROS noetic 安装

Ros noetic 是支持python3的

// 添加ROS noetic 软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
// 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
// 安装ROS noetic
sudo apt update
sudo apt install ros-noetic-desktop-full

值得注意的是,由于网络的问题,有许多软件包下载不下来,可以换成手机热点或者再多试一下。重新输入sudo apt install ros-noetic-desktop-full 就可以继续安装。直到安装成功。

//设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
//安装ROS noetic 其他的依赖项
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

安装完成之后,运行小例程,查看是否能够正常运行。

sudo rosdep init

此处可能会报错:cannot download default sources list from:https://raw.githubusercontent.com…20-default.list website may be down.这个问题产生的原因是网络连接不上上述的网址。
解决办法:

//先安装一个pip3
sudo apt-get install python3-pip
//安装rosdepc
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

这是小鱼开发用来使用国内的网站,来下载相关文件,自动配置的。这部分也可能更新不上,多试几次。成功之后,运行一下例程。

//打开新的终端
roscore
//打开新的终端,输入下条指令后,出现小海龟
rosrun turtlesim turtlesim_node
//打开新的终端,输入下条指令后,可以使用方向键控制小海龟
rosrun turtlesim turtle_teleop_key

在这里插入图片描述至此,ROS noetic 安装完毕。

python3.8 + anaconda 4.8.3 安装

该部分网上教程多,且不易出错,不再详谈。
这部分值得注意的是,安装完ROS后,anaconda安装不会自动设置环境,需要手动设置:
打开bashrc,添加

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/pipiw/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/pipiw/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/pipiw/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/pipiw/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
conda deactivate
# <<< conda initialize <<<

这样在启动的时候,会自动进入python2.7的环境,在后续的catkin build 需要进入python3的环境时,需要输入

conda activate base

这样才会进入anaconda的虚拟环境中。

open3d 安装

在这一部分踩坑无数,遇到了无数的问题。

  1. 在该论文的代码中,只能安装0.10.0版本以及0.9.0,其他高于0.10.0的版本,在编译过程中,均会报错。但是由于不知道什么原因,电脑上0.10.0的安装会报错。安装不上,最终安装上了0.9.0版本。
    安装过程:

这里首先应该安装cmake,这里安装cmake以及make

sudo apt install cmake
sudo pip install --upgrade cmake==3.21.0
// make 如果先安装的显卡部分,会提示需要安装make
sudo apt install make

安装open3d

// 若没有git,则需要安装
git clone --recursive https://github.com/intel-isl/Open3D
// 在open3d文件夹内,输入下方指令,切换到指定版本
git checkout  v0.9.0
// 在open3d文件夹内,输入如下指令,进行自动下载第三方支持库,这一步不要自己去下载第三方支持库,很容易出错,虽然速度有点慢,并且可能会失败,但多尝试几次,总会成功的。
git submodule update --init --recursive
// 安装相关库
util/scripts/install-deps-ubuntu.sh
// 安装
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/open3d_install ..
# On Ubuntu
make -j$(nproc)
make install

若其中有的第三方支持库版本不兼容:
在这里插入图片描述所以最好采用自动更新的方式。
问题:
CMake Warning at src/Python/CMakeLists.txt:13 (message):
Cannot find npm. Jupyter support will be disabled.
解决:

  sudo apt-get install npm

二、安装程序

1.程序下载

export ROS_VERSION=noetic
mkdir agile_autonomy_ws
cd agile_autonomy_ws
export CATKIN_WS=./catkin_aa
mkdir -p $CATKIN_WS/src
cd $CATKIN_WS
catkin init
catkin config --extend /opt/ros/$ROS_VERSION
catkin config --merge-devel
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-fdiagnostics-color
cd src

git clone git@github.com:uzh-rpg/agile_autonomy.git
vcs-import < agile_autonomy/dependencies.yaml
cd rpg_mpl_ros
git submodule update --init --recursive

#install extra dependencies (might need more depending on your OS)
sudo apt-get install libqglviewer-dev-qt5

# Install external libraries for rpg_flightmare
sudo apt install -y libzmqpp-dev libeigen3-dev libglfw3-dev libglm-dev

# Install dependencies for rpg_flightmare renderer
sudo apt install -y libvulkan1 vulkan-utils gdb

# Add environment variables (Careful! Modify path according to your local setup)
# 这个地方路径要设置成自己的,并且不要有中文路径
echo 'export RPGQ_PARAM_DIR=/home/<path/to/>catkin_aa/src/rpg_flightmare' >> ~/.bashrc

注意,模拟支持包放入的位置是:

agile_autonomy_ws/catkin_aa/src/rpg_flightmare/

(1) catkin init 错误
可能是缺少相关的包

sudo apt install python3-catkin-tools python3-osrf-pycommon

(2) git错误
加入ssh密钥即可解决。
(3) vcs-import 错误

sudo apt-get update
sudo apt-get install python3-vcstool

2.程序编译
注意,这一步需要python3.7环境。如果没有python3,需要先安装。

# 如果有python2的环境,首先设置软连接,切换到python3
# 设置软链接
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
# build
catkin build
# 在devel文件夹内
. ../devel/setup.bash

# Create your learning environment
roscd planner_learning
conda create --name tf_24 python=3.7
conda activate tf_24
conda install tensorflow-gpu
pip install rospkg==1.2.3,pyquaternion,open3d,opencv-python

在catkin build过程中,错误非常多。以下错误是典型的:
(1) open3d路径问题
由于安装时,将open3d安装到了home文件夹内,所以要将程序中的搜索open3d路径修改:

  • mpl_test_node/CMakeLists.txt
  • open3d_conversions/CMakeLists.txt
  • agile_autonomy/data_generation/traj_sampler/CMakeLists.txt
    在CMakeLists里,有open3d的搜索路径程序:
find_package(Open3D HINTS /home/yourname/open3d_install/lib/cmake/)

再将agile_automomy_ws/devel/share/open3d_conversions/cmake/open3d_conversionsConfig.cmake 的第157行增加如下路径:

foreach(path  *;/home/yourname/open3d_install/lib)

我这里路径是open3d_install_v9
(2) 缺少相关库的作用
缺少什么安装什么即可,如下,缺少empy库

sudo apt-get install python3-empy

在这里插入图片描述
缺少octomap-msgs

sudo apt-get install ros-noetic-octomap-msgs

在这里插入图片描述类似的,缺少什么库,安装什么库即可。

catkin build 成功
在这里插入图片描述

三、运行程序

Now download the flightmare standalone available at this link, extract it and put in the flightrender folder.
需要去 uzh-rpg/agile_autonomy下载支持包,放到flightrender文件夹内,该文件在agile_autonomy_ws/catkin_aa/src/rpg_flightmare/flightrender

cd agile_autonomy_ws
source catkin_aa/devel/setup.bash
roslaunch agile_autonomy simulation.launch

问题:
(1)ERROR: cannot launch node of type[joy/joy node]:xxx
在这里插入图片描述

sudo apt-get install ros-noetic-joy

顺利运行之后,新打开一个终端

cd agile_autonomy_ws
source catkin_aa/devel/setup.bash
conda activate tf_24
cd /home/pipiw/agile_autonomy_ws/catkin_aa/src/agile_autonomy/planner_learning
python test_trajectories.py --settings_file=config/test_settings.yaml

报错:没有data文件夹:
在该目录新建一个data文件夹即可。
在这里插入图片描述运行结果:
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Learning High-Speed Flight in the Wild 环境安装 的相关文章

随机推荐

  • 智能车调试

    首先 xff1a 摄像头采集图像 xff0c 采集是一张一张的 xff0c 在每一张图片然后根据二维数组识别黑白边界 xff0c 进而通过每一行得到黑白边界求出中值点 xff0c 车随中值点构成的中值线驱动电机的行驶 xff0c 电机有加速
  • STM32串口不定长度传输策略

    目录 一 接收中断 43 空闲中断 二 接收中断 43 外加定时器 三 接收中断 43 自定义结束符 四 串口DMA接收不定长数据 一 接收中断 43 空闲中断 RXNE中断和IDLE中断的区别 xff1f 当接收到1个字节 xff0c 就
  • 【AUTOSAR】【信息安全】CSM

    目录 一 概述 二 依赖模块 三 功能描述 3 1 基本体系结构 3 2 通用行为 3 2 1 正常操作 3 2 2 设计说明 3 3 错误分类 3 3 1 开发错误 3 3 2 运行时错误 四 API接口 4 1 通用接口 4 2 加密接
  • ::在c++中什么意思

    34 34 在C 43 43 中表示作用域 xff0c 和所属关系 34 34 是运算符中等级最高的 xff0c 它分为三种 xff0c 分别如下 xff1a 一 作用域符号 xff1a 作用域符号 的前面一般是类名称 xff0c 后面一般
  • 在eclipse上配置使用tomcat

    在eclipse上配置使用tomcat 1 确认自己已经下载好tomcat后 xff0c 打开eclipse后选择菜单栏中的windows列表中的首选项配置 2 找到Server选项中的Runtime Envirnm选项 xff0c 如图所
  • 本科学完C语言、C++、python(学透点),还有必要学别的语言吗?

    原作者是一名高校的信息技术类的教师 xff0c 主教程序设计类课程 这样的问题 xff0c 作者的学生也会经常问他 本篇文章意于为各位大学生提供一些在编程上的疑惑 xff0c 希望能够对大家有帮助 作者 xff1a 悟空问答丨EXCEL进阶
  • C/C++编程笔记:C/C++中的strrchr()函数,到底该怎么用?

    在C 43 43 中 xff0c strrchr xff08 xff09 是用于字符串处理的预定义函数 cstring是字符串函数所需的头文件 此函数返回一个指针 xff0c 该指针指向字符串中最后一次出现的字符 我们想要找到的最后一个出现
  • C++编程书籍推荐:零基础入门书籍,学C++看它们就够了!

    如果你是一个没有编程经验的C 43 43 零基础小白 xff0c 或者有其它语言经验的C 43 43 初学者 xff0c 那么强烈推荐下面的十本零基础小白入门C 43 43 书籍 1 C 43 43 Primer 作者 xff1a Stan
  • 【ROS2 入门】虚拟机环境 ubuntu 18.04 ROS2 安装

    大家好 xff0c 我是虎哥 xff0c 从今天开始 xff0c 我将花一段时间 xff0c 开始将自己从ROS1切换到ROS2 xff0c 做为有别于ROS1的版本 xff0c 做了很多更新和改变 xff0c 我还是很期待自己逐步去探索R
  • 如何解压.gz的压缩文件

    如何解压 gz的压缩文件 gzip d xxx gz tar命令 root 64 linux tar cxtzjvfpPN 文件与目录 参数 xff1a c xff1a 建立一个压缩文件的参数指令 create 的意思 xff1b x xf
  • GPS经纬度坐标与XY坐标相互转换的python程序

    文章目录 前言一 说明二 函数1 import 和 常数2 GPS经纬度转XY坐标3 XY坐标转GPS经纬度 总结 前言 室外定位常用的是GPS xff0c 故编队队形 设定轨迹都是基于GPS经纬度坐标 而在仿真中我们通常会在XY坐标系下进
  • AD20 原理图设计流程

    Altium Designer 20 的原理图设计大致可以分为 9 个步骤 xff1a xff08 1 xff09 新建原理图 这是原理图设计的第一步 xff08 2 xff09 图纸设置 图纸设置就是要设置图纸的大小 xff0c 方向等信
  • JavaScript基础——DOM节点操作学习笔记

    目录 笔记 方法的使用 案例一 动态生成表格 案例二 下拉菜单 xff0c 鼠标经过和离开实现 案例全部代码 笔记 节点概述 1 网页中的任何内容都是节点 文字 标签 元素 文档等 节点至少有nodeType 节点类型 nodeName 节
  • MAVLINK包的校验方法

    这段时间做一个项目要进行MAVLINK的解包校验 xff0c 但有一个叫做 CRC EXTRA的位导致这个校验码怎么算结果都不对 xff0c 后来找了好久还是在github的论坛上看见别人讨论才找到方法的 1 先上从官网上拿的mavlink
  • 机器人工程专业课程

    1 机器人工程专业的课程主要有 xff1a 高级语言程序设计 电路分析 机械设计基础 模拟电路技术 数字电子技术 自动控制原理 微机原理及接口技术 电机与电气控制技术 单片机原理及其应用 机械制造基础 工业机器人控制系统 运动控制系统 工业
  • python获取当前执行py文件的绝对路径

    python获取当前执行py文件的绝对路径 python3 home appuser test py span class token comment 获取当前执行py文件的绝对路径 span py file path span class
  • 相机内参的标定方法

    简介 摄像机标定 Camera calibration 简单来说是从世界坐标系换到图像坐标系的过程 xff0c 也就是求最终的投影矩阵 PP 的过程 xff0c 下面相关的部分主要参考UIUC的计算机视觉的课件 xff08 网址Spring
  • python中的函数、类和对象、模块和包都是啥意思?

    python中的函数 类 对象 包都是啥意思 xff1f 1 函数 重复的事情不做两次 函数还是比较好理解的吧 xff0c 数学中就学到过函数 xff0c 就是用来解决某一些问题的过程 为啥要写函数 xff1f 首先是方便代码重用 xff0
  • E3ZG_D62传感器 STM32C8T6

    E3ZG D62传感器 在STM32C8T6的简单应用 该图便是E3ZG D62传感器的样子 第一个旋钮是灵敏度调节旋钮的 xff0c 第二个旋钮是改变模式 xff0c 在L时 xff0c 长灭 xff0c 检测到 xff0c 为亮 xff
  • Learning High-Speed Flight in the Wild 环境安装

    有许多问题可以去github项目内的issues查找一下 xff0c 里面有相当一部分问题的解决方案 也可参考论文学习 Learning High Speed Flight in the Wild 一 环境安装 论文程序github地址 x