/door_open_rl

Door opening with a wheeled robot using Reinforcement Learning technique

Primary LanguagePythonMIT LicenseMIT

door_open_rl

Door opening with a wheeled robot using Reinforcement Learning techniques

Prerequisite

sudo apt install libopencv-dev
python2 pip install opencv-python==4.2.0.32
# add repository first, then install realsense sdk
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
# install realsense-ros
sudo apt-get install ros-melodic-realsense2-camera

dependencies

  • tensorflow 2.1.0 (last version support python 2.7) (tensorflow_probability is used in do_training)
pip install tensorflow==2.1.0 tensorflow_probability==0.9.0
  • if pip unable to recognize the version, upgrade pip with
pip install pip --upgrade
  • gym
pip install gym
  • scikit-image
pip install scikit-image

start gazebo environment

roslaunch do_gazebo door_opening.launch
  • office_room_0.world is for Geforce RTX 1070
  • offce_room.world is for Geforce RTX 3070, remove one lighting source

train specific tasks

  • door pulling task
cd ../do_learning/scripts/task_pull
python door_pull_training_ppo.py
  • door pushing task
cd ../do_learning/scripts/task_push
python door_push_training_ppo.py
  • door traversing task
cd ../do_learning/scripts/task_traverse
python door_traverse_training_ppo.py

training log

tensorboard --logdir=saved_models/task_pull

testing

  1. the trained policy can be tested in different environments with different appearances and other physical settings
roslanch do_gazebo door_opening.launch world:=office_room_{x}
  1. modify the argument of 'mu' in mobile_robot.urdf file to change the friction coefficient between robot wheels and ground

Switch to old environment (door_room.world) using do_training

roslanch do_gazebo door_opening.launch world:=door_room

The latest environment (office_room.world) is enriched with, customize door model, lighting and specific ode parameters, while old environment (door_room.world) does not have this features, it used the existing door from gazebo model base, which contains imperfect mesh and may result bad dynamic simulation performance, but many previous work are done with old environment.

  • change the friction coefficients (mu1, mu2) to 0.1 in "/do_description/urdf/mobile_robot.urdf.xacro"

video & paper

https://youtu.be/O_FV47hIRus

https://ieeexplore.ieee.org/document/9562517