Home About Projects Contact

Machine Learning with turtlebot3


This is our final project for CS4341(B-term 2022, Introduction to AI @ WPI). This project is built upon the tutorial provided on the turtlebot3's ROBOTIS e-Manual. Our application defines a free cylindrical object in the world and has the robot push it towards a random goal position. Team size: 3.

Achieving this using traditional robot kinematics is not trivial because, the robot needs to push the object from behind and, if it loses the contact with the object, has to re-position itself to be pushing again. We thought that attempting to achieve this using machine learning would make a good entry-level AI project!

Close up picture of the test environment

To steer the robot behind the object and push it towards a goal position, the reward function was modified to include suggested heading vector fields like shown on the right. The modified reward function is used in approximating the Q-values in the Deep Q-learning process. There also exists a big reward for pushing to the goal and a penalty for hitting the wall.

Vector field graph of the reward function

R: robot, O: cylindrical object, G: goal

In about 200 episodes (8 hours of training), turtlebot was able to go to four-consecutive goal regions. After 8 hours, training showed that the reward function wasn't near optimal because it found other ways of getting points. Our first 8 hours show that an ML-based approach works some of the time. Here is the git repo