DRL机器人导航
基于ROS Gazebo模拟器的移动机器人深度强化学习导航。使用双延迟深度确定性策略梯度(TD3)神经网络,机器人学习在模拟环境中导航到随机目标点,同时避开障碍物。障碍物通过激光读数检测,目标以极坐标形式给出。在ROS Gazebo模拟器中使用PyTorch进行训练。在Ubuntu 20.04上使用ROS Noetic、Python 3.8.10和PyTorch 1.10进行测试。
!!!使用问题模板提交问题
安装和代码概述教程可在此处获取
训练示例:
ICRA 2022和IEEE RA-L论文:
有关实现的更多信息可在此处获取
请如下引用:
@ARTICLE{9645287,
author={Cimurs, Reinis and Suh, Il Hong and Lee, Jin Han},
journal={IEEE Robotics and Automation Letters},
title={Goal-Driven Autonomous Exploration Through Deep Reinforcement Learning},
year={2022},
volume={7},
number={2},
pages={730-737},
doi={10.1109/LRA.2021.3133591}}
安装
主要依赖项:
克隆仓库:
$ cd ~
### 克隆此仓库
$ git clone https://github.com/reiniscimurs/DRL-robot-navigation
该网络可以使用标准2D激光运行,但此实现使用模拟的3D Velodyne传感器
编译工作空间:
$ cd ~/DRL-robot-navigation/catkin_ws
### 编译
$ catkin_make_isolated
打开终端并设置源:
$ export ROS_HOSTNAME=localhost
$ export ROS_MASTER_URI=http://localhost:11311
$ export ROS_PORT_SIM=11311
$ export GAZEBO_RESOURCE_PATH=~/DRL-robot-navigation/catkin_ws/src/multi_robot_scenario/launch
$ source ~/.bashrc
$ cd ~/DRL-robot-navigation/catkin_ws
$ source devel_isolated/setup.bash
运行训练:
$ cd ~/DRL-robot-navigation/TD3
$ python3 train_velodyne_td3.py
在tensorboard上检查训练过程:
$ cd ~/DRL-robot-navigation/TD3
$ tensorboard --logdir runs
终止训练进程:
$ killall -9 rosout roslaunch rosmaster gzserver nodelet robot_state_publisher gzclient python python3
训练完成后,测试模型:
$ cd ~/DRL-robot-navigation/TD3
$ python3 test_velodyne_td3.py
Gazebo环境:
Rviz: