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:

  • He could find his way to waypoints in the desert with aid of GPS;
  • Sensors told him to slow down in time to not roll over or tilt.
  • He could drive through a dark tunnel without GPS -- at least for 30 secs.
  • He could resolve obstacles in a 500-feet range (170 meters) and kept track of them in his memory. At the same time he made sure not to pollute his obstacle map with, say, blades of gras, so the obstacle avoidance methods calculated the urgency by confidence level. E.g. an obstacle that only was detected once may be a sensor error and should not be avoided.

When the big day (week?) arrived, the first runs were pretty promising: Silver Tommy (named after Thomas Jefferson) was the big star -- until he ran amok. Inexplicably, he totalled himself during 4th test run. Just ran straight into a wall on the test site. (Allegedly, he was trying to go to the beach). The "port-mortem" revealed: Yes triple failures are possible. :-( After some "Refactoring" and a 36h rebuild though,Tommy was up and running again. Luckily, the sensors had not broken and only needed recalibration. Would Tommy be given a second chance? No - unfortunately, he was no longer allowed to take part in the race. All this after 10-men-months of work, 60k$ spent on material and 30k$ on travel. :-(

But Tommy will not give up! Perrone is already prepping him for the next grand challenge -- Navigation in a city! Tommy has to learn to get around moving obstacles and to behave properly in traffic circles. And there is one more city-style task to fulfill that would make us all very proud of Tommy: back into a parking space. :-P


Post a Comment:
Comments are closed for this entry.

NetBeans IDE, Java SE and ME, 3D Games, Linux, Mac, Cocoa, Prague, Linguistics.


« July 2016

No bookmarks in folder