These robots need to think like my cat
So today we’re seeing media pooh-poohing the DARPA grand challenge. The really dumb media thinks it was a failure because nobody got the prize. The sophomoric media (‘sophomore’ means seemingly wise but incredibly stupid) like Slashdot, The Register, and other burrows of the increasingly threatened cyberspace crowd has quickly reassured themselves that robotic technology is, once again, a very long way off, and that Linux will be the next big thing in tech for decades to come.
However, one has to think about how hard this challenge was. All the teams tried to create new vehicles using technology that had never before been integrated, and run their systems 10 times faster than the beast autonomous car-bot to date. They did this in about 9 months. The results indicate that robotics is here, rather than “a long way off.”
Heres why: if the teams that were best-funded, either from established universities or heavyweight defense contractors had posted the best performances robotics might indeed be a long ways off. But the most remarkable part of the results is that grassroots teams like Digital Auto Drive matched CMU, and beat a variety of other teams with more history, contractor clout, or apparent talent. In other words, a few people in a garage can match the best. This is a huge step forward. It also means that grassroots development of the sort that created the personal computer is beginning in the robotics world.
Programmers of the virtual world should be shaking in their boots…
Analyzing the results posted by DARPA and at Mobile Robotics indicate to me that many of the non-mechanical problems appeared because the systems didn’t have any way to respond to problems. In other words, they were designed on the assumption that everything would go right. In the case that they went wrong, there was no “Plan B.” This is something that future robots will need in spades – they’ll need a “Plan Z.” These plans don’t have to be specific. If we look at animals in strange situations they have a pretty standard set of ways of reacting. So, below I’m listing the results by vehicle from DARPA, along with how I think my cat, Squeek, or Toonses the “driving cat”, would have responded had his brain been guiding the robot:
DARPA – Vehicle 22 – Red Team – At mile 7.4, on switchbacks in a mountainous section, vehicle
went off course, got caught on a berm and rubber on the front wheels caught fire, which
was quickly extinguished. Vehicle was command-disabled.
My comments – My guess was that Sandstorm was set to drive too fast. The earlier roll that almost destroyed the car the week before indicates that the team was trying to tune it for maximum speed, instead of maximum length of travel. My cat would probably have gotten scared when the turns on the switchback were near the limits and started driving more slowly. If the car had jumped the berm, Squeek and/or Toonses would have shifted into reverse and tried to pull away, stopping if they smelled rubber burning. I suspect Sandstorm just sat there spinning its wheels until it caught fire. The designers didn’t make it able to determine if it was “caught” and try a different strategy. Also, it didn’t have the senses to feel that it was caught or sense the “pain” of a burning tire. Low-level reflexes responding to these environmental changes might have make Sandstorm act more intelligently. If Sandstorm had the programming of Terramax so it backed up (see below) things might have been different.
DARPA – Vehicle 21- SciAutonicsII – At mile 6.7, two-thirds of the way up Daggett Ridge, vehicle
went into an embankment and became stuck. Vehicle was command-disabled.
My comments – This plucky little dune buggy had the same problem as Sandstorm, apparently. The robo-car couldn’t sense that it was caught and didn’t try to back up. Also, it had no way of raising its body (air shocks!) to clear the obstacle that it was caught on.
DARPA – Vehicle 5 – Team Caltech – At mile 1.3, vehicle veered off course, went through a fence,
tried to come back on the road, but couldn?t get through the fence again. Vehicle was
My comments – My cat probably could have found the hole it left in the fence by vision. This reminds us that the robo-cars are driving with vision far inferior to that of an animal. However, even if Squeek couldn’t see the fence, he would have tried to retrace his movements and run the crash-through in reverse. Apparently, “Bob” knew it was off-course but couldn’t figure out the fence problem. This might be more than simple reflexes, and require a high-level understand of the notion of being trapped to be overcome. Not easy to do.
DARPA – Vehicle 7 – Digital Auto Drive – At mile 6.0, vehicle was paused to allow a wrecker to
get through, and, upon resuming motion, vehicle was hung up on a football-sized rock.
Vehicle was command-disabled.
My comments – This is the saddest one. If the DAD vehicle hadn’t paused it might have gotten a lot further than Sandstorm. Here, it is obvious that a dynamic support system (e.g. air shocks) would have helped a great deal. My cat is pretty fat and could get his stomach hung up on a rock, but he would immediately stand up higher and arc his back to clear the obstacle. What DAD needed was a “low rider” mechanic on the team to add air shocks. In any case, dynamic shocks will be a must on future robo-cars – in effect they will be part of their “musculature”.
DARPA – Vehicle 25 – Virginia Tech – Vehicle brakes locked up in the start area. Vehicle was
removed from the course.
My comments – This is a great example of a machine doing a classic computer thing and acting very unlike animals. My cat, if he had brakes, would have sensed pain from the locked breaks and released them, independently of any other control program. He would have also stopped trying to move and just sat there. After a short time, he would try to move again. In other words, these cars will preform much better if they have sensors wired for pain. This isn’t impossible, and is much simpler than using touch to identify an object, which is a common AI goal. All you need here is a way of sensing damage appropriate to the part of the robo-car concerned. Instead of imaging the robot “thinking” about the situation, consider what would damage that part – heat, grinding, etc., and have a sensor detect that. Then have a “cautious” response – inibit everything. This is exactly what animals do when they feel pain.
DARPA – Vehicle 23 – Axion Racing – Vehicle circled the wrong way in the start area. Vehicle
was removed from the course.
My comments – Axion may have been on of the systems that wasn’t a real robot and simply trying to treat the course like cyberspace. Theoretically, one could make a robo-car follow the GPS signal without doing any real sensor work and make it tough enough to survive smashing into things. Axion and Palos Verdes High School appear to have taken this approach. When the systems couldn’t get the signal, they failed. My cat would have realized something was wrong because he would have noticed that the other cars were going the opposite direction. This is a bigger problem for robo-cars, since to duplicate my cat’s performance the robo-car would have to have some high-level concept of the race and what it was trying to do. It is fair to say that none of these cars “knew” they were trying to complete a race. In future systems, it may be that one will need to “stack” a rule-based system that “knows” it is in a race and can evaluate its performance at a very high level. The robo-cars may need a little box that understands the abstract goal of the race.
DARPA – Vehicle 2 – Team CajunBot – Vehicle brushed a wall on its way out of the chute.
Vehicle has been removed from the course.
My comments – This sounds like a system with almost no ability to sense its environment, and no simple reflexes to respond to running into stuff. Robo-cars will need simple reflexes, Roomba-style bump-plates, as well as high-level navigation. If the navigation appears OK but you are brushing things it is probably wrong and you should slow down. The cat response would be to go slow, adjust to prevent brushing against things (reducing pain), and see if the earlier goal of following the GPS path could be maintained.
DARPA – Vehicle 13 – Team ENSCO – Vehicle moved out smartly, but, at mile 0.2, when making
its first 90-degree turn, the vehicle flipped. Vehicle was removed from the course.
My comments – Sounds like hubris laid low from a big government contractor. The design of this vehicle showed that a lot of effort was put into it – but it may have lacked the testing carried out by a grassroots team. It clearly had a very high center of gravity. Clearly, the vehicle wasn’t “afraid” at a general level of pitching over. A simple bump-plate level circuit should be cutting in anytime a flipover seems likely and inhibit the whole system – stop it or slow it down.
DARPA – Vehicle 4 – Team CIMAR – At mile 0.45, vehicle ran into some wire and got totally
wrapped up in it. Vehicle was command-disabled.
My comments – This is an example of sensors not being good enough. Wire is hard to see with human eyes, more so with the limited “2.5D” perception of robo-cars. Based on this, and the performance of the robo-cars on the shorter obstacle course, it is clear that there weren’t any basic visual reflexes operating. Animals have a center in their brain prior to the cerebrum that scans the visual field for anything that is moving rapidly on a “collision course.” Animals don’t stop to analyze what is coming at them, they just turn so they don’t hit it. It isn’t a matter of encoding every kind of obstacle into a robot so it can recognize wire – it is a matter of making it “afraid” of any obstacle, whether or not it “understands” what the obstacle is. The trade-off: the machine will be too cautious, like Terramax was (see below). In this case, an animal that is cautious and is repeatedly thwarted in its goal will over time become more bold again.
DARPA – Vehicle 10 – Palos Verdes High School Road Warriors – Vehicle hit a wall in the start
area. Vehicle was removed from the course.
My comments – I suspect this system was simply trying to follow the GPS and had little or no ability to sense its environment. GPS is not an environmental signal – it is an artificial series of symbols that allows navigation across an abstract world. The real world simply happens to be similar to the virtual one. As I mentioned in an earlier post, the kids working on the car probably thought that making a robo-car work would be similar to making a good run in a videogame road race. The reality check will be good for them.
DARPA – Vehicle 17 – SciAutonics I – At mile 0.75, vehicle went off the route. After sensors tried
unsuccessfully for 90 minutes to reacquire the route, without any movement, vehicle was
My comments – The “without any movement” is key here. My cat would have tried first to retrace its steps from memory. If this didn’t work, it would start some sort of search pattern. Both of these wouldn’t be that hard for a robo-car to implement. The car should store a recent history of its travel in terms of odometer readings, turns, gear shifts, and so on. If it can’t get a signal it would just try to reverse its course. Failing that, it would begin looking for the course in a simple spiral pattern. This is only a little more sophisticated than a Roomba – in other words, this is basic reflexes rather than complex computations of road versus bushes in a video processor.
DARPA – Vehicle 20 – Team TerraMax – Several times, the vehicle sensed some bushes near the
road, backed up and corrected itself. At mile 1.2, it was not able to proceed further.
Vehicle was command-disabled.
My comments – This machine was too shy. After a while it ran into what it interpreted as a wall of impassible bushes and stopped. My cat would have reacted the same way – at first. But after a while the desire to achieve its “final goal” would override its caution and it would try to proceed with relaxed caution. Gingerly, it would have tried to go through the “bushes” and succeeded. The Terramax strategy sounds better than most – it actually appeared to have some way of handling temporary failure – it just didn’t go far enough.
DARPA – Vehicle 15 – Team TerraHawk Withdrew prior to start.
My comments – None.
DARPA – Vehicle 9 – The Golem Group At mile 5.2, while going up a steep hill, vehicle stopped on the road, in gear and with engine running, but without enough throttle to climb the hill.
After trying for 50 minutes, the vehicle was command-disabled.
My comments – This was an interesting entry – too bad they don’t have a website! According to the Mobile Robotics eyewitness, this robo-car took off straight and didn’t bother following the road. Interesting alternative strategy. It kept going until it ran into something it couldn’t get over because its engine wasn’t powerful enough. My cat would have reacted in a similar way at first. But he would not have tried the same thing endlessly. After a while, he would have stopped. Then he would have done something that resolved the two “pulls” – a pull to driving rather than being stuck, and a pull to the final goal. The net result would have been a move along the hill sideways rather than directly over it. In robo-car terms, this means integrating a secondary goal (being able to move) that somewhat accomplishes the primary goal (not moving in the correct direction). If this failed, a Terramax-style backup would have been in order. Failing this, a retrace of the course by memory backwards, then forward movement deliberately taking a different path would have given the robo-car a better shot.
DARPA – Vehicle 16 – The Blue Team Withdrew prior to start.
My comments – It was pretty sad watching this robo-motorcycle go about six inches and fall over on national television – doubly sad because Blue Team had video footage of the motorcycle balancing and even driving in a circle. But it drove on grass and this was hard desert ground. My cat would not have gotten on the motorcycle.
Conclusions: It is clear that future robo-cars need two things they don’t have yet – simple yet detailed sensation, and some high-level AI understanding that they are in a race. Of the two, adding the reflexes should be the easiest. The teams should research ways to completely stud the cars with sensors and have them linked in a simple pain/inhibition reflex. In addition, the cars need a “memory” of their recent moves so they can retrace their travels. At a high level, the cars need to understand the concept of a race so they can notice if they are doing something really stupid (eg. driving in the opposite direction from all the other cars). All of these seem possible with a few years of tinkering and integration.