Wobble Bot

    This is WobbleBot, my attempt at a two-wheeled self-balancing robot. Using Pololus' Baby Orangutan-B 328 to control the micro gearmotors. Although the bot is not very stable yet, it uses PID with a Kalman filter to do what it does. The Ultrasonic sensor will be implemented when it is on a stable platform. The code is working properly but the motors just aren't fast enough. The current motors are 120RPM, and the ones I'll be installing are 290RPM, so it should help a lot. I also have some larger wheels I could use if the motors still aren't fast enough. After the surgery, I'll need to recalibrate the PID and hopefully it will be on to the next step. :D

    This robot is based on an inverted pendulum design, where the weight of the batteries mounted in it's head actually help it balance better. Think of balancing a broom in your hand, the mass at the top makes it easier for you to move your hand under it to maintain balance. To control the motors it uses data from an accelerometer and a gyro mixed in what is called a Kalman filter, which basically measures a noisy signal over a specific amount of time and estimates what the signal actually should be, to feed a clean signal into a PID algorithm to tell the motors how fast they need to go to make everything balance out. I'm using Pololus' Baby Orangutan-B 328 as a controller because it is small, has a built it motor driver, and I already had one laying around waiting for a project with 2 DC motors. :P The Baby-Os' 20mHz clock speed is a little funky with the standard arduino library and I hope to work around that in the future, but I think as long as all of the equations are using the same time reference it shouldn't be a problem.

    Here are some pics of the robot so far, I didn't get any of the inside of the motor/sensor bay, but will when I swap out the motors.

   

         Side showing jaw "bumper" to protect ultrasonic sensor                             Some of the wiring for the Baby Orangutan board

 

 

   

                    Top view showing the battery holder                                                 The bracket for the ultrasonic sensor mount

 

These are some great resources if you are interested in a similar project:

PID control

PID without PHD

Kalman vs Complementary Filter

 

Thanks for stopping by, I'll post pics of the motor swap and the sensor bay when I tear it all apart again :P

Video coming soon as well.

 

 

 

 

Tries not to fall over.

  • Actuators / output devices: (2) 6v Micro gearmotors
  • Control method: autonomous, maybe implement human control in the future?
  • CPU: Baby Orangutan-B 328
  • Power source: (6) NiMH 2300 mAh AA's
  • Programming language: C++
  • Sensors / input devices: SRF04 Ultrasonic, ADXL345 Accelerometer, L3GD20 Gyroscope
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/wobble-bot

Nice One :smiley:

Looks very good and very good write up… but has the old adage says: “Video or it didn’t happen” :wink: yes I know, it’s pending the alterations to follow :slight_smile:

Supposed to be a reply to Kariloy

.

Thanks

Not much of a writeup compared to your adventures, but it’ll have to do. In the mean time just rotate the pic above 90 degrees and pretend the wheels are turning madly in mid-air. Knock on your desk one good time and you’ll even have the soundtrack :stuck_out_tongue: