Two-wheeled Self Balancing Robot

Abstract

The balance bot system is based on the classic inverted pendulum problem in the field of control engineering. The robot is characterised by its ability to balance on its two wheels and be manoeuvred with the help of a remote control. LQR (Linear Quadratic Regulator) is used as the controller to impart stability to the system.

Technologies and Devices used to build the robot

Technologies

  • LQR (Linear Quadratic Regulator) controller is implemented for controlling the system; which is inherently unstable but controllable. The controller gives a negative feedback to the system and tries to bring it to the specified setpoint, which here is bot’s balanced and steady vertical position.
  • Complimentary filter for filtering out the noisy inclination readings from the gyroscope and accelerometer and then fusing them for achieving the best and near true values.
  • Timer interrupts for coordinating various processes at the same rate.
  • I2C and UART communication protocols

Devices

  • Arduino Mega microcontroller as the “brain” of the bot.
  • GY87 IMU sensor containing a gyroscope and accelerometer to measure inclination of the bot. I2C communication protocol is implemented for its communication with the microcontroller.
  • Xbee modules (TX & RX) for establishing communication between the bot and the remote. UART communication protocol is used for the same.
  • DC geared motor is used along with a quadrature encoder to measure the speed and direction of rotation.
  • L298D motor driver for controlling the speed and direction of the two motors.

Bot & arena images, system testing video