2005 MIT 6.270 Lego Robotics Competition Robot
The Strategy We Wanted | The Strategy We Got |
- Integrate rate measurements from a gyroscope to keep track of heading.
- Collect balls of any color and sort them internally into two compartments.
- Double-integrate two-axis accelerometer readings to estimate position in between RF updates.
- Sort a list of map features by their distance from the robot.
- Select the nearest unvisited feature (ball cluster, voting box, or scoring region) and use it, i.e.
- Collect all four balls in the cluster
- Use the least-full compartment to vote for the most-full compartment
- Open a rear gate to drop the winning balls into our scoring region, or the losing balls into the oponent's scoring region
|
- Integrate rate measurements from a gyroscope to keep track of heading.
- Drive to the nearest unvisited cluster of balls.
- Collect balls of any color and sort them internally into two compartments.
- If either compartment is full or 40 seconds have passed, go to our team's nearest scoring region.
- Back into our scoring region and dump the container holding the winning color.
|
Design
Overall Pros:
- Versatile
- Fast
- Turns in place
- Sorts balls
- Votes
- Dumps selectively
- Looks awesome
Overall Cons:
- Low riding
- Has front
- Limited storage space
Problems:
- The gyro drifted on average 50 degrees in one minute, causing a terrible heading error.
- IC contains countless bugs.
- Our motor chips kept overheating.
Drive System:
- Differential drive for small turn radius
- 125:1 drive train for speed
- 2 motors per drive wheel for power
- Servo-controlled castor for precision
Navigation:
- Craptastic RF receiver for... um...
- 3 ir sensors with ir LEDs for initial orientation
- Gyro for turns and driving
- Shaft encoder (unused) for distance
- Accelerometer (unused) for distance
Ball Intake:
- Rubber tire beater bar to grab balls
- 15:2 gear train for lots of momentum
- 2 motors for power
- Base plate ramp with rubber bands to give balls potential energy
- Lots of LEGO plate shielding to contain balls
Ball Processing:
- Entire robot frame built on slant to control ball flow
- Visible light sensor with red LED to detect color
- Servo-mounted sorting claw to sort
- 2 bins with gates (6-8 balls) for storage
- Servo controlled gate pin for dumping
Code
Our Source Code: blueghost.c
Results
Here is an artist's rendering of the day of the competition:
On the night before the competition, the Blue Ghost had fantastic ball handling and passable strategy. Unfortunately, its navigation was heavily based on RF, which meant that it was virtually nonexistent. Our only test run showed that it was unable to accurately locate even the first ball cluster.
So in the first round of competition, we were thrilled to see the Blue Ghost do as well as it did. After correctly orienting itself, Blue Ghost turned towards the ball cluster immediately behind the starting area, but missed by about
40 degrees. It then proceeded to drift towards the cluster, pushing two
of the balls away at random. Its only real scoring opportunity missed, the Blue Ghost then wandered around the home side of the board at apparently random, picking up and correctly sorting 3 red balls. It eventually ended up in our opponents scoring zone in the
corner, where it got stuck. At the end of the match it correctly read
the vote and dumped its empty green chamber (it thought it was in our
scoring zone and was dumping the positive color).
In the second round, the blue ghost turned around and drifted off to one of
the corners on the home side and got stuck. Lesson learned: good ball sorting is useless without good navigation.
Frustrated with its performance, the Blue Ghost tried to take a bite out of Ben.