不用羡慕特斯拉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
如果您有感兴趣的技术话题,请在留言区告诉我们!关注阿木实验室,更多技术干货不断更新!
开发遇到棘手难题可以上阿木官方论坛:
有工程师亲自解答
10000+无人机开发者和你共同进步!