The inspiration of this project was to create a self balancing system using a Raspberry Pi computer as the main controller of the entire robot. It was the result of a class project in Dr. Hala ElAarag’s Operating Systems. The inspiration came from a BallBot designed by the Tohoku Gakuin University. The robot showed a smooth transition throughout its balancing period, moving the ball by using 3 omni wheels at 120 degree angles. A video of the Robot is shown below:


The RapiBaBot was designed as a robot that balances itself (a basic reflex agent). The RapiBaBot uses a Raspberry Pi as the main control unit, a Polulu MinIMU-9 v2 Gryo, Accelerometer, and Compass, Big Easy Stepper Motor Driver from Arduino, and the Nema 17 stepper motors. The housing was used from an old Erector set found in Kyle Campbell’s attic, the wheels are off of a Traxxas rc car, and basic bread boards are used to connect the Raspberry Pi with the sensor and the stepper motor drivers. To connect the Nema motors with the wheels a axle was 3d printed and placed over the metal shaft of the motor. The wheels were then screwed on to the 3d printed axle.

The RapiBaBot baisically reads an output from the Polulu sensor and decides which direction it will spin its motors based off of that output. In a more in depth sequence the RapiBaBot reads the output of the sensor, uses a digital filter called a Kalman filter to remove all of the white noise from the output, and then sends the output of the Kalman filter to the PID controller. The PID controller decides then what wheels to spin based off of the location the RapiBaBot and where the RapiBaBot is at currently.



The RapiBaBot functioned fairly well, resulting a automated self-balancing robot. Issues occured usually when soldering became a problem, many boards were fried and ruined from that. Future improvements might include a system that is a self learning/balaning robot. Also many beards resulted from this project.

Leave a Reply