This remote controlled, two-wheel, self-balancing robot
maneuvers with ease at a speed of about 5 mph. UA’s
BalanceBot took first place at this year’s RoboGames held
in April in the Bay Area.
microcontrollers which were programmed using the C
language. The Arduino addressed the Wi-Fi communications
and robot commands. It would pass messages useful to the
PIC controller on to it so it could control the motor driver
and linear actuator system. Operators use a GUI on a PC to
control the robot’s speed and send motion related
commands to the tracks and the plow. Interestingly, the
final version of the robot is able to turn itself off if the
operators lose communication with it.
The Akron students targeted the BalanceBot
competition at RoboGames 2010. In the competition,
RoboGames requires the operators to drive the two-wheeled, self-balancing robot — which is like the Segway in
many respects — via remote down a straight course. They
must then stop the robot and have it balance itself for a
while. Then, the roboticists must return it to the course’s
The wooden platform robot houses most of its
electronics inside. The motors that drive the robot’s eight
inch wheels are of the permanent magnet geared variety.
The robot’s control system is quite sophisticated, as college
competition robots go. The bot’s ultrasonic transducers,
(which are affixed to its bottom) provide sensory feedback
on the platform’s angular position.
A dedicated dsPIC33FJ64MC804 microcontroller
computes and transmits the transducer sensory data to the
digital controller to balance the robot. The students
programmed the PIC controller in C and designed the
digital control system by modeling the robot’s dynamics.
Dr. Hartley drills down to the control systems finer
“This system used a modified PID controller
containing two poles and two zeros and
implemented as a difference equation. The
controller also incorporated the velocity command
signal from the wireless transceiver to drive the
robot from one position to another.
The students implemented the digital controller
using a separate dsPIC33FJ64MC804 that they had
programmed in C. The custom designed H-bridge
motor driver received the commands from the
controller and commanded the motor torques
through the H-bridge. The students controlled the
H-bridge driver using a dedicated
A separate microcontroller received the wireless
signal velocity commands. The roboticists
connected all the microcontrollers together with a
dedicated I2C network. They used three dsPICs due
to the necessary high speed of the math-intensive
Operators communicated with the robot via wireless
Close-up of BalanceBot components.
SERVO 11.2010 11