记录文章《Towards Optimally Decentralized Multi-Robot Collision......》的程序运行过程

文章信息

题目:Towards Optimally Decentralized Multi-Robot Collision Avoidance via Deep Reinforcement Learning

作者:P Long,T Fan,X Liao,W Liu,H Zhang,J Pan

来源:2018 — ICRA

原文链接:https://arxiv.org/abs/1709.10082

原始代码链接:https://github.com/Acmece/rl-collision-avoidance

本文基于原始的代码进行了部分改进,以便在配置低一些的电脑上成功运行模型训练程序,百度网盘链接如下:
链接: https://pan.baidu.com/s/1rJnBML3A1Vo5UsXUGZFeGw?pwd=hurg 提取码: hurg
论文图片

准备工作

1. 环境需求

  • Python2.7
  • ROS kinetic(对应Ubuntu16.04)
  • mpi4py
  • Stage
  • Pytorch (=1.4.0)
  • torchversion (=0.5.0)
  • cudatoolkit (=9.2)

2. Anaconda环境搭建

可以使用程序包中提供的yaml文件进行环境的克隆,在py36.yaml所在的文件中打开终端,输入指令:

conda env create -f py36.yaml
pip install -r 27.txt

但是,使用这种方法进行环境克隆大概率会报错,由于1.4.0版本的Pytorch和0.5.0版本的torchversion过于古老,因此anaconda默认的安装源早已不再维护这两个文件,而懒狗Anaconda则会以“找不到对应文件版本”为理由不去建立我们需要的虚拟环境。对于这种问题,我的解决方法如下:

  1. 删除py36.yaml文件的倒数后两行(对应的pytorch和torchversion)并保存
  2. 运行指令conda env create -f py36.yaml,此时,名为"rlpy2"的虚拟环境将会被建立
  3. 使用指令conda activate rlpy2进入新建立的虚拟环境
  4. 通过指定源的方式安装刚才欠下的两个文件,具体指令如下,默认下载GPU版的pytorch
pip install torch==1.4.0 torchvision==0.5.0 -f https://download.pytorch.org/whl/torch_stable.html
  1. 控制台输入python,进入python编辑器内,验证Pytorch是否被成功安装
(rlpy2) ygq@pc:python
Python 2.7.18 |Anaconda, Inc.| (default, Jun  4 2021, 14:47:46) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.4.0+cu92'
>>> print(torch.cuda.is_available())
True

3. 配置ROS空间

配置ROS空间可以按照以下终端指令来运行

mkdir -p catkin_ws/src
cp stage_ros-add_pose_and_crash catkin_ws/src
cd catkin_ws
catkin_make
source devel/setup.bash

需要注意的是,在进行第四步catkin_make前,要先对catkin_ws 文件里的部分路径进行更改,否则直接运行程序会导致报错,具体操作方式如下:

  1. 查看catkin_ws 文件所在的路径
    在这里插入图片描述
  2. 进入工作空间下的build文件夹,打开Makefile文件,将下图中的那两个路径改成现在的
    在这里插入图片描述
  3. 删除build文件夹下CMakeCache.txt 和 src 文件夹下的CMakeLists.txt
  4. 重新进行catkin_make

运行程序

1. 启动ROS与环境

roscore
cd catkin_ws  
source devel/setup.bash
rosrun stage_ros_add_pose_and_crash stageros -g ../worlds/stage1.world
(-g 表示是否显示界面,删除-g则会出现GUI界面)   

若前面未出现问题的话,此时会出现如图所示的场景:
在这里插入图片描述

2. 运行强化学习算法

在工程所在文件夹打开新的终端,并运行如下指令:

conda activate rlpy2 
mpiexec -np 5 python ppo_stage1.py  

这里有可能会因缺失模块而出现报错,因为前面在克隆环境时,有些历史悠久的模块无法被安装。解决方法是根据报错提示(traceback)来手动下载,补全缺少的模块:
博主在运行程序时,缺少了rospkg、yaml 两个包,因此使用如下指令进行补充安装

pip install pyyaml
sudo pip install --target=/opt/ros/kinetic/lib/python2.7/dist-packages rospkg

其他缺少的模块亦可使用pip或者conda来安装,使用科学上网的方法可以有效解决下载境外资源超时的问题。

当所有模块都补全以后,程序便可以正常运行。此时控制台会显示训练信息
在这里插入图片描述
场景中的小车也开始运动
在这里插入图片描述
算法每隔一段时间就会自动保存当前阶段的训练结果,并存储在名为Policy的文件夹中。
第二个场景与算法的运行方式同理,请大家自行研究。
至此,算法成功运行。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值