Usually I only post about music technology, but a subject that is always fun to talk about is Robotics. My Autonomous Robotics class (ECE 564) is one of the more fun classes I've taken in college. The whole class builds up to a final robotic competition where each team builds a robot to compete head to head against another robot. The competition for this semester was a robotic egg hunt. Robots got 1 point for bringing a pastel colored egg back to their base and -3 for a brown egg in their base. You can see our robot (designed by myself, Michael DeVeau and Mostafa Farag) running a test to bring back pastel eggs below.
For more details about the robot design, construction and more videos, please keep reading after the break.
The main platform for the robot was built upon the MIT HandyBoard. This convenient package provides a microcontroller, battery and charger, easy sensor and motor interface, and easy computer interface with an IDE that uses Interactive-C (C with some custom libraries for motor and sensor control). A similar system can be created using an Arduino (As a separate group I was involved in did when designing a robot for the IEEE SouthEastCon Robot Competition). However, by the time you add motor shields, custom interface shields, a battery and other features built into the HandyBoard the cost is pretty similar between the two. The physical robot construction was done using the Lego Mindstorms kits (we're Electrical Engineers, not mechanical) and this allows quick and flexible prototyping.
Our design used a differential drive robot with a two bay system with lift gates to gather the eggs to read and differentiate between more eggs at a time than a single gate. The robot drives around the course randomly, avoiding obstacles by using an ultrasonic sensor. As an egg rolls in front of the gate, an IR sensor determines the egg color. If a pastel egg (+1 point) is detected, the gate is lifted and the egg is captured. If a brown egg is detected (-3 points) , the robot backs away and turns to the side to seek out new eggs. To return home after a set time, our robot uses a wall following system that drives it slightly to the left until an IR sensor sees the wall. Once this occurs, the robot uses a PID controller to follow the wall until the light sensors facing down towards the playing surface and ultrasonic sensor determine that the robot has arrived in it's home base. A head to head test against another robot can be seen below.
In the final competition, our robot was defeated in the first round after mistakenly believing it was home when it sensed the other robot near it as the wall of it's home base. Despite this, the class was very fun, and a great learning experience for both autonomous robot programming and the physical construction and kinematics of a robotic system.