blog.raydenuni.com

Philosophical Ranting of an Engineer

Stanley and the DARPA Challenge

September 28th, 2006

I’m taking a class on artificial intelligence this quarter and one of the things we do in this class is we read papers on important AI topics. For example, we read Turing’s paper on the famous “Turing Test.” And we read a paper by Searle on whether digital computer can truly understand things the way we understand things. The current paper is on Stanley. I’m sure you’ve all heard of Deep Blue. It is the computer famous for beating one of the greatest chess players of all time, Gary Kasparov. A lot of people point to Deep Blue and say that it proves machines can be as intelligent as we are at difficult tasks. Unfortunately Deep Blue isn’t very intelligent. It’s rather stupid as far as chess programs go. It’s just stupid really, really fast. It beats players simply by calculating way more possibilities than a human can comprehend. Because Chess is a solvable game Deep Blue can play well. Stanley is a machine that in my opinion accomplished a lot more than Deep Blue. Stanley is a vehicle that drove autonomously over 142 miles in less than 7 hours. Not only did it follow the course it was given, it avoided obstacles, corrected for inaccuracies in the route, and AI was entirely responsible for all of this.

The vehicle was able to drive as well as it did because of its many sophisticated input devices. For short range detection it uses five laser sensors on the roof. Each sensor is angled differently to get the optimal data. While these generate a highly accurate 3D point cloud of the road and possible obstacles, its range is limited to 30 meters. With a detection range of only 30 meters, Stanley was on capable of going 25mph and preventing collisions. For this reason the team also used a color camera and some fancy computer vision technology to detect obstacles, drivable road, and unknown terrain. With this, Stanley was capable of more than 50mph and still swerve to avoid obstacles. Many times during the race this proved to be crucial. Numbers given in the paper show more than 95% accuracy determining drivable terrain in both flat terrain and mountain roads.

Perhaps the most spectacular function of Stanley is its path planning. The team was given a disc with a number of the route’s latitude and longitude coordinates. This meant that Stanley was not responsible for coming up with the best route. The data however was horribly inadequate. Not only did Stanley have to respond to unexpected events, the data given was not entirely accurate and in some cases the given route was 10.7m off the actual road. This meant that Stanley had to plan its own short term paths. Before that Stanley improved upon the initial data. A preprocessor ran through and greatly increased the number of waypoints and then smoothed this path in order to give Stanley a faster route.

Even though Stanley has a smooth path to follow, it is still affected by the actual road in front of it, what it detects on camera and from the lasers. Many possible paths are computed and the best one is chosen. At any given moment Stanley can gently “nudge” to the side, similar to changing lanes, or it could quickly “swerve” to avoid a rock or a pothole. It is because of this flexibility that Stanley was able to successfully traverse the entire course with only a few minor incidences.

The way Stanley picked the best path was similar to how my AI program of fire trucks rescuing people worked. It scored each path based on some equation and then picked the path with the best score. There were many properties, or limits, that Stanley had that needed to be considered. Its speed was governed by several different factors, rules, health of the vehicle, and traction. If the path chosen was determined unsafe at the current speed, Stanley would slow down. Similarly, if Stanley hit a rut, it would slow down. After a short period of time Stanley would increase speed again, but this was enough to keep Stanley’s speed to a safe level over sections with lots of ruts.

All in all, Stanley is an impressive machine. Nothing about the car’s mechanics is out of the ordinary. It uses a stock engine, stock suspension. It has a few more bumpers and things to prevent damage to the car, but nothing performance wise. Everything special about this car is in the software, and the most spectacular is the artificial intelligence that drove it.

1 Response to “Stanley and the DARPA Challenge”

  1. Darkell Says:

    Awesome. I like how it changes acceleration and dodges obsticles based on its immediate calculations.

Sorry, comments are closed for this article.