天津大学YOPO端到端规划算法复现教程 |ProSim篇
基于天津大学开源的YOPO端到端轨迹规划算法,我们在SU17开发者版本上完成了工程化复现。SU17开发者版本面向研发场景,具备强扩展性与丰富的二次开发接口,便于数据采集、模型训练与联调验证,并与ProSim(PrometheusSim) 仿真平台无缝对接。
本篇聚焦ProSim(PrometheusSim) 平台,提供可直接上手的训练与仿真复现教程,为后续真机部署打好基础。
文末还附有论文与代码链接,方便您一键直达。
基于ProSim平台的模型训练教程
01 准备阶段
打开wslgui,Prometheus地面站,Prosim连接成功
02 数据收集
地面站解锁起飞
地面站运行深度避障
进入wslgui中,运行数据收集脚本
在图中目录下,运行conda activate yopo激活环境
激活后,运行 python collection_realworld.py开始收集数据
收集完成如下图所示,保存在run目录下的yopo_simulation目录里:
将数据按以下结构整理后,放入下图所示路径:
注意事项
文件夹中保存的为 img_*.tif 图片和 label.npz 标签;
Pointcloud-*.ply为对应的点云地图;
所收集的图片和点云地图的名字要一一对应,如:文件夹0里面放Pointcloud-0.ply中采集的图片和标签。
03 地图收集
地面站运行雷达避障
在Rviz里面给点飞行,争取扫描到每一个角落使地图完整,扫描到的点云地图pcd格式保存在以下目录中:
点云地图格式转换:pcd转换成ply
将上面生成的scans.pcd文件放到run目录下的utils目录中:
打开终端运行 conda activate yopo激活yopo环境
运行python pointcloud_clip.py开始进行格式转换
转换完成时会显示转换后的地图
生成的ply名字为trans_scans.ply
将其移到run目录下的yopo_sim目录中,改名为对应的pointcloud-*.ply
)
此时打开ply文件,将前几行的double改为float
在run目录下打开终端,运行conda activate yopo激活yopo环境,运行python run_yopo.py即可开始用自己的数据进行训练。注意第一次需要安装open3d,命令:pip install open3d即可安装。
基于ProSim平台进行仿真
01 环境部署
建立YOPO的python环境,python版本3.8
conda create -n yopo python=3.8
安装pytorch
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 —index-url
下载:https://download.pytorch.org/whl/cu118
安装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
02 构建flightlib
到flightlib/build目录下,运行指令:cmake ..
正确配置如下图:
开始编译
make -j4
解决报错
解决方法:
指令: pip install pyyaml
再次make -j4进行编译
03 安装flightgym模块
运行下述指令,注意别误删build目录下的setup.py文件。
pip install .
04 配置flightpolicy
运行下述指令,用于刷新环境变量,刷新后进入base环境,注意重新激活yopo环境。
echo "export PYTHONPATH=$PYTHONPATH:~/YOPO" >> ~/.bashrc
source ~/.bashrc
05 规划
前往run目录运行py程序,开始进行规划
python test_yopo_ros_local.py
解决报错
解决方法:
指令: pip install rospkg
再重新运行py程序
06 ProSim仿真
打开地面站和仿真器,建立连接
进入run目录下运行指令
bash yopo.sh
运行成功如下:
在地面站端解锁起飞开始测试
在ProSim仿真平台的森林、白柱、仓库等典型场景中,YOPO 端到端规划使四旋翼稳定完成避障飞行。模型经TensorRT优化部署后,提高了模型的推理速度,可以看出模型转换前后的推理速度得到了3倍的提升。
在测试环境中,通过在Rviz中给点飞行,无人机仅利用深度相机获取到的深度图以及速度和加速度作为模型输入,最终得到可行的运动轨迹。
资源速递
关注公众号,私信ProSim获取安装包、wiki链接
往期复现教程:
不用羡慕特斯拉FSD,你也能在无人机上复现视觉端到端|Ubuntu复现教程
论文解析:
论文链接:
https://ieeexplore.ieee.org/document/10528860
开源代码:
https://github.com/TJU-Aerial-Robotics/YOPO
开发遇到棘手难题可以上阿木官方论坛:
bbs.amovlab.com
有工程师亲自解答
10000+无人机开发者和你共同进步!