Tuesday May 16, 2006 Amok running robots at JavaOne
How cute, a silver iMac on wheels in the JavaOne pavilion! Oh wait -- that's Tommy? Let's see what this egg on wheels is up to: Luckily, there were still empty seats in the "A robotic dune buggy named Tommy" session. (The alternatives would have been a session on AJAX, and one on Swing animations, still, Tommy's session was a good choice. There'll be other AJAX stuff). This technical session covered the DARPA grand challenge of Oct 2005. The challenge is a forum for building and testing real robotic vehicles, the winner receives an appropriate financial reward. The experience gathered will later be used for military, personal or professional purposes, for example, military surveilance, the handling of dangerous objects, or work in live-threatening environments. They say. Or maybe they just want to play with robots.
The challenge's goal is briefly to create an autonomous vehicle that can (for starters) travel through a desert and reach a target without any human intervention. Remember the Mars buggies of late? A planet's surface is not a German freeway. Every step has to be planned, discussed with ground control (radio signals from Mars can take something like 15 minutes), and then the step has to be taken slowly and carefully, or it'll be their last. But the DARPA challenge is different, as the vehicle has to complete the task at "mission-relevant" speeds, too. When the first grand challenge was held, even the best robots got stuck after 10km. But in the following years, the winners already managed to cover the whole alloted distance. On the other hand, each year a random number of great brave robots crashes, burns, or simply bails out during the first few meters -- it's by far not a trivial task, as we will see later.
Tommy is a cool retro-looking silver egg-shaped vehicle. He seems to be propelled by gas like a car and is pretty DIY, thanks to the team-members' enthusiasm and dedication. In the design phase (going from cardboard-box-sized to increasingly bigger robots) redundancy was already an essential part of the plan. You never know when one or the other signal doesn't come through. And, to be honest, you could count on the DARPA choosing a terrain that was not fully covered by the conventional global positioning system (GPS), just to make the game more interesting. So the Perrone team made sure to equip Tommy with a triple redundant navigational system: Two high-resolution GPSs (one beacon- and one satellite-guided), plus a lower-resolution standard GPS. Additionally, Tommy got two kinds of radars and lots of outside sensors, as well as internal state sensors. All that was orchestrated by one microprocessor that could make decisions and send them to the actuators (the motors and wheels that make the vehicle speed up, slow down, break, or turn).
The software used was a general purpose Java-based robotics platform, "Perrone MAX", if I remember correctly. Basically, you have threads running that are triggered by certain cofigurations of sensor input and internal state. Tommy's got a kind of artificial intelligence, pre-defined rules that allow him to make quick and good choices. The AI does not involve any machine learning however, the rules are hand-coded in Java. Some jinxers may claim, neither the Java Standard nor the Micro Edition would really scale to this kind of task -- so just to prove them wrong, Tommy's software uses both: Java ME and Realtime Java SE. Realtime means, that processes have a higher priority even over the garbage collection processes. Garbage collection slows down importantant realtime actions by milliseconds, a delay that you could cope with during a game of Minesweeper, but not when your autonomous robot is trying to defuse an actual bomb. Thanks to Java (and NetBeans IDE, woot!) :-) Tommy fulfills his demanding tasks happily with one microprocessor, and they detected no performance bottleneck what-so-ever. After his "training", Tommy was able to complete several tasks, among other things: