不用羡慕特斯拉FSD,你也能在无人机上复现视觉端到端|Ubuntu复现教程

看过上篇天津大学的YOPO论文解读了吗?YOPO通过端到端轨迹规划将延迟降至毫秒级,驱动无人机高速、稳定自主飞行。

我们已经在SU17上实现了YOPO算法的复现,现将复现教程分享给大家,我们将连载三条复现教程包含:Ubuntu训练/仿真、Prosim训练/仿真、真机复现,请大家持续关注!

本文主要介绍基于Ubuntu平台的训练及仿真复现教程,跟着教程就能顺利跑通,在自己无人机上轻松实现视觉端到端飞行。

文末还附有论文与代码链接,方便您一键直达。如果本文对您有所帮助,欢迎在文末三连:点赞、转发和推荐,支持我们继续创作更多优质内容!

01 环境部署

安装Conda、ROS、CUDA、系统库倚赖项

Conda下载链接:

https://www.anaconda.com/download/success

ROS快捷安装链接:

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

CUDA链接:

https://developer.nvidia.com/cuda-toolkit-archive

系统库依赖项:


sudo apt-get update && sudo apt-get install -y --no-install-recommends \
   build-essential \
   cmake \
   libzmqpp-dev \
   libopencv-dev \
   libpcl-dev

02 环境变量

将catkin工作区的来源添加为FLIGHTMARE_PATH环境变量


echo "export FLIGHTMARE_PATH=~/YOPO" >> ~/.bashrc
source ~/.bashrc

03 路径修改

将YOPO压缩包放在用户目录下并解压:

将RPG_Flightmare文件夹放在flightrender目录下,结构如下图所示:

04 创建Python环境

利用conda创建python环境(因已存在yopo,故用yopo_test演示)

conda create --name yopo python=3.8

下载好后如下图所示,并使用conda activate yopo激活:

激活后如下图所示:

05 配置Python环境


conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1  
pytorch-cuda=11.8 -c pytorch -c nvidia

正常情况如下图:

安装opencv-python

pip install opencv-python

安装gym和stable-baseline3

pip install gym stable-baselines3

安装其他工具


pip install scipy==1.10.1 scikit-build==0.18.1 ruamel-yaml==0.17.21 numpy==1.22.3 
tensorboard==2.8.0 empy catkin_pkg

06 构建flightlib


conda activate yopo
cd YOPO/flightlib/build
cmake ..

07 编译flightlib

make -j4

注意事项

需要将arch和code修改为与自己电脑显卡和CUDA版本适配的参数。

编译后如下图:

08 安装flightgym


cd YOPO/flightlib/build
pip install -e .
Pip install .

09 配置flightpolicy模块


echo "export PYTHONPATH=$PYTHONPATH:~/YOPO" >> ~/.bashrc
source ~/.bashrc

10 数据收集模块


cd ~/YOPO/run
conda activate yopo
python data_collection_simulation.py

安装tqdm:

pip install tqdm

问题解决

安装好后再次报错如下:

表示protobuf版本不兼容

解决方法:

pip install protobuf==3.20.3

数据收集过程如下:

收集完成如下所示:

11 模型训练


cd ~/YOPO/run
conda activate yopo
python run_yopo.py --train=1

训练完成后模型保存如下:

12 测试1

无需动力学模型和控制器即可测试


cd ~/YOPO/run
conda activate yopo
python run_yopo.py --train=0 --render=1 --trial=1 --epoch=0 --iter=0 --supervised=0

编译控制器

报错如下:

原因:empy不兼容

解决方法:

pip install empy==3.3.4

安装好后重新编译

13 测试2

使用动力学模型和控制器进行测试

每一个下划线都在一个终端中执行,需要多个终端。


使用 Unity 和 ROS 接口启动模拟环境:
cd ~/YOPO/flightrender/RPG_Flightmare./flightmare.x86_64
------------------------------
cd ~/YOPO/flightlib/build
./flightros_node
------------------------------------------------------
 启动控制器cd ~/YOPO source devel/setup.bashroslaunch so3_quadrotor_simulator simulator.launch
-----------------------------------------------------------------------------
加载模型开始规划:
cd ~/YOPO/runconda activate yopo
python test_yopo_ros_new.py
---------------------------------------------------
启动Rviz可视化
cd ~/YOPO/
rviz -d yopo.rviz
-------------------------------------------------------
启动可视化地图
cd ~/YOPO/flightlib/build
./map_visual_node

问题解决

报错如下:

解决方法:

pip install rospkg

完成后,即可开始端到端路径规划测试。

端到端路径规划测试

在rviz环境下启动 YOPO 后,通过鼠标点选目标点即可触发完整闭环:目标坐标被发送至YOPO推理模块,生成对应轨迹并解算为控制指令下发至无人机;实测中无人机能够按规划路径完成自主避障与运动。

当进入目标点的设定阈值范围,终端输出“arrive”,随后停止下发控制指令,无人机在当前位置悬停;如需前往新的位置,继续在rviz点选目标即可,流程稳定可复用。

资源速递

论文解析:

天津大学端到端规划算法开源!自主飞行不再卡顿/附复现视频

论文链接:

https://ieeexplore.ieee.org/document/10528860

开源代码:

https://github.com/TJU-Aerial-Robotics/YOPO

如果您有感兴趣的技术话题,请在留言区告诉我们!关注阿木实验室,更多技术干货不断更新!

开发遇到棘手难题可以上阿木官方论坛:

bbs.amovlab.com

有工程师亲自解答

10000+无人机开发者和你共同进步!