The final hovercraft competition ended up going well, even though most teams were unable to collect very many balls in the end. Most teams were there the whole night before leading up to the competition debugging code and tweaking hardware. Although more than one team completely revamped their systems that night (despite my strong recommendations not to). Congratulations to all of the teams for their hard work throughout the semester and to Group2 for collecting nearly a dozen balls! Here are a few pictures and videos.
On Friday, December 9, 2011, we will be holding the final competition for CSCE 496/896: Robotics. This will take place at 2:30 on the second floor of the Schorr Center. We will start by having each group of students in the course give a short presentation about the hovercraft they built over the course of the semester and the approach they are taking in the competition. We will then move onto the competition. Each group will have two attempts on the competition course.
For the final competition (inspired by 6.141, but our version is much harder since we hover), the hovercraft have to autonomously find and pick up balls and then drop them off at particular drop off locations. The layout of the environment will not be revealed until the morning of the competition. The environment will contain a number of balls, some at known locations and some at unknown locations. There will be visual landmarks (self-similar bar codes) placed throughout the environment at known locations. There will also be drop off locations specified where the robots will need to drop the balls off. Each robot will be scored on the number of balls they pick up and how many the drop off. Some balls and drop off locations will have a higher point value than others.
There are a number of challenges that the students have been working on over the course of the semester that will come into play in the final competition. Some of the challenges include: 1) controlling the hovercraft (a robot without wheels); 2) avoiding obstacles (did I mention that there may be some unknown obstacles in the environment?!); 3) detecting the landmarks using an onboard camera (on a gumstix); 4) detecting the balls; 5) global localization based on the landmarks and balls (dead reckoning is nearly impossible on a hovercraft since it drifts significantly); 6) planning paths in the environment; 7) picking up balls; and 8 ) getting all of this to work at the same time.
Each group designed and built their own mechanisms to pick up the balls, with every group choosing a very different approach. Below are some pictures and short videos of some of the approaches. I will certainly post videos and results after the competition!
Last semester I taught CSCE 436/836 Embedded Systems Course. In this course the students learned about embedded systems by programming the microcontrollers on a custom-designed omni-directional hovercraft (we are also using it for CSCE 496/896 Robotics Course this semester). A number of people have asked to see some pictures and videos. So I thought I would have my first post be a little bit of information on the hovercrafts we have been working with in these classes.
The hovercraft are controlled by the hoverboard (pictured below). The hoverboard has two ATMega1284p processors. One runs at 5V and the other runs at 3.3V. They communicate over an I2C bus. Having both voltages available makes it easy to interface with most any sensor or other peripheral. There are 6 uni-directional motor control channels, 6 servo ports, gyro, magnetometer (although most didn’t work on the first board build), UART ports, XBee Radio, GPIO, a bunch of A2D ports, and some other things.
Once completed the hovercraft looks something like this (although the iPhone was just to display nice pictures):
Besides the hoverboard (which I built, if you want the design I will happily send it), thrusters, and batteries (which were purchased online at a hobby shop) everything is available at your local hardware store. One of the goals was to make it inexpensive and easy to find parts. The base of the hovercraft is just 1.5 inch foam insulation and the hovercraft skirt is made from 5mil plastic. Other than that, it just requires some brackets, screws, and patience.
There were a number of labs in the course, but for the final project the students were left to their own devices to come up with interesting ways to modify their hovercraft. One group (Yutaka and Beau) decided to actuate the thrusters on their hovercraft with servos so that they could get the maximum thrust in any direction. Below is a short video showing what it could do. They also added a joystick interface which makes it a lot of fun to control.
Another group (Charlie, Brent, and Kyle) decided to use an optical encoder from a mouse to maintain a position estimate of the hovercraft as it moved. They had to move slow to maintain accurate position estimates, but they were able to program it to get a “strike:”
They also could return to their starting point as shown in this video:
This semester has just started and there are a number of strong groups in my robotics course. The focus this semester is on higher level control, planning, and manipulation. So I expect there will be more good projects and videos to come!