This project is a computer science 630 final. Its goal was to teach a 'turtlebot'(the name of the robot) to balance an inverted pendulum using q-learning.
The inputs to the model were the current and the previous angle. The output was a speed in between -1.5m/s and 1.5m/s. It would get a live reward. Video of humorous failed attempt can be seen here.
On running a simulation, it succeeded quickly. The OpenAI videos of its training are under the 'cartpole-experiment-1' folder.
In order to get the angle, we used a vex potentiometer attached to an arduino attached to our ubuntu mini-computer(on the turtlebot.)
For more information, the jupyter notebook contains more comprehensize coverage of the code and process.
The Turtlebot
The Potentiometer
The Arduino
images of high quality
Reichenbachian/BalancingBot
A solution to the inverted pendulum problem using reinforcement learning.
Jupyter Notebook