Quote:
|
Originally Posted by Matt Krass
...the not fun part? One breaks half our robot stops working 
|
Redundancy! Redundancy!
Anyway, we don't really have an overly complex robot, so there was no need for our sensor package to be any different.
Optical Encoders for the drive train. We initially wanted to use a closed loop, velocity based control, but the drivers didn't like it and it was scrapped. Now the only job of the encoders is a measuring tape for our autonomous mode.
Yaw rate gyro for heading. It keeps track of heading in the background, and allows us to keep a running measurement of where we are on the field. Makes turning a specific heading a breeze. Nothing too fancy.
Ultrasonic range finder for distance from the wall. This is probably the most important sensor on our bot, and it was thrown on at the last minute! It reads the distance from the wall which gets thrown into a position based PI loop, and drives the wheels accordingly.
Our controls are pretty basic. Total open loop for the drive train in user mode. I know it can be harsh on the motor, but you know what they say.. If it ain't broke don't fix it! For autonomous movements, the robot is forced to drive straight by a PI loop, driven by readings from the gyro. This algorithm basically spits out a value to add or subtract from each side's output. The robot steers accordingly. This algorithm is pretty nifty. It allows us to specify a relative angle and drive speed. Enter 0 as the drive speed, and the robot turns in place to the specified angle.
My favorite autonomous feature on our robot has to be the ball dump mode. Closed loop control has become my best friend. There has been occasions where opposing robots have pushed us into the wall, but the bot is smart enough to know to push back (We have to be about 6" away to drop balls into the corner goal.)
Excuse me for the unorganized flow of this post. I just get too excited thinking about sensors!