BBot - Self-balancing Inverted Pendulum
This nifty robot is the product of several weeks' work by myself and good friend Ben Casse for our year 3 BE project at the Auckland University of Technology. We started (in August 2005) with no idea what we were in for, but hey, Segway did it so why couldn't we?
After a lot of background research (done in parrallel with simulating and building up loads of circuits and writing hundreds of lines of C to test out the various sensors and subsystems, experiment with control methods and whatnot) we had our first ever balancing robot. It took a fair few late nights in the lab but we finally struck gold in October.
It was an amazing sight, this thing had been sitting on top of an old piece of test equipment with two laptops and a desktop hooked up to it by various programming and debugging cables getting the sensors reading nicely, tuning up the K-filter and the PID controller. So at some insane hour of the night, with cables all over the show and the chassis literally falling to pieces as screw after screw fell out (we hadn't quite got the control loop sorted), and with piles of empty V cans lining the bench we set it down on the floor (still tethered, of course) and lo, he balanced! This had to be one of the coolest projects I'd ever worked on, period. Balancing robots, HELL YEAH!
Specs
- mega128 + mega8 uCs running kalman filter
- ADXL202 +/-2g dual-axis mems accelerometer
- Works fine, but be careful - they're easy to kill
- Murata ENC-03J 300°/s piezo gyro
- homebrew shaft-encoders for speed feedback
- 2ch R/C receiver
- md22 dual h-bridge (i2c)
- motors: 12kg/cm, 140rpm (wayyy too grunty and not nearly fast enough, too much backlash, too noisy... )
- WTS701 speech synth
- power: 2x 12v SLA's - 1.2 and 6Ah
- battery life: something abysmal
- frame: Al
- weight: about 5 kgs
- size: ~400x200x300 mm