It simulates Rosbot movement on Gazebo and trains a rainforcement learning model DQN.
I mainly refer this thesis REINFORCEMENT LEARNING HELPS SLAM: LEARNING TO BUILD MAPS
- dqn_for_slam: RL Enviroment (gym) and trainig a DQN model (Keras-rl2, Tensorflow)
- rosbot_description: Based on rosbot_description. turned off camera and Infrared for computational load and reduced friction.
- simulate_robot_rl: The entry point of training launches all nodes
- simulate_map: Map for simulation
- slam_gmapping: Based on slam_gmapping. Added the service and functions that clear a map and restart gmapping.
IMU and Wheel odometry are used for Localization. RPLidar is filtered for SLAM (gmapping).
This application don't require GPU.
environment
- Ubuntu 20.04
- ROS Noetic
ros package
- geometry2
- openslam_gmapping
- robot_localization
install python frameworks to run
pip3 install matplotlib tensorflow gym numpy keras-rl2 rospkg
pip3 install --upgrade tensorflow
Run trainning
roslaunch simulate_robot_rl simulate_robot.launch
Trained models are saved to ~/dqn_for_slam/dqn_for_slam/models/
Figures show training process are saved to ~/dqn_for_slam/dqn_for_slam/figures/
This library is licensed under the MIT License.
mail to: [email protected]