Imagine a car that drives itself, and takes us to wherever we want to be. This is not a far-fetching idea now. In DARPA Urban Challenge of November 2007, six autonomous cars finished the course of city street driving. In addition, they performed stop-sign recognizing, yielding to other cars at intersection and safe passing on the road. What an amazing achievement! Just compare this to 3 years earlier, in the 2004 DARPA Grand Challenge (the first of this kind), no car was able to reach the finishing line.
An autonomous vehicle needs 3 basic capabilities: Sensors that perceives the environment such as lane, curbs, and stop signs; a route plan that tells it where it is heading; A response strategy so that it knows when to move, when to yield to other cars and when to pass.
1. Sensing the environment

Today’s Autonomous cars are mostly equipped with laser range finders. These laser finders (lidar) can detect objects as far as 120 meters. Such long-distance range is especially useful when the car moves in high speed. In addition, a laser rangefinder spins at 15 cycles per second, constantly gathering new data. Thus it can accurately detect changes in the environment such as another moving car. 
As the lasers rotate and scan the environment with 360-degree (horizontal) range, the data are fed into the car’s control center to form a picture of the environment. Thus laser has replaced cameras as more reliable environment senors. Some autonomous cars still have cameras, mainly for lane detection. In addition, radars are used for close-range object dectection. Finally, every car needs GPS antennas to pinpoint its own location. In this aspect, an automous car may be smarter than a human driver for knowing its exact location.
2. Planning the route
The goal of driving is reaching a destination. A human driver needs a map to get from location A to location B. A car also needs such a map internally. This is the route plan for a car. Every autonomous car must have detailed route information for where it goes. In DARPA challenge, each car is given a Road Network Description File (RNDF), which is basically a digital street map of the environment. The RNDF contained geometric information on lanes, lane markings, stop signs, and parking lots.
3. Driving strategy
When should the car stop? When should it keep driving? These simple yet most profound choices for autonomous cars have to be defined in a coherent strategy. A simple reactive framework does not work because the situation can be complicated.
At a 4-way stop intersection, the car has to understand who came first and who has the right-of-way. Then it decides whether to wait and for how long it waits. It also has to detect at real time how another car moves. On a two-lane highway, our autonomous car is behind a slow-moving car. It has to decide when to pass and with what speed it can safely pass. All these are the strategies or intelligence of an autonomous vehicle.
The top 2 winning cars, from CMU and Stanford respectively, have demonstrated remarkable capabilites of incorporting the above 3 capabilities. They finished the 96 kilometer urban course (with stops signs and driving vehicles) within four and a half hours. This is a milestone for autonoumous driving.
The future challenges of autonomous driving include: recogniztion of pestrian crossing and make emergence stop; recognition of small objects one the ground such as cats and dogs; recognition of traffic signs such as “Right only”, “Yield” etc. It is very likely we will see fully autonomous car on city streets in 10 years.
References
Michael Montemerlo et al. and Sebastian Thrun. Junior: The Stanford Entry in the Urban Challenge Journal of Field Robotics, Special Issue on DARPA Urban Challenge, September 2008
A robot is an agent. It acts on its own in the physical world. It has to avoid obstacle and navigate through the physical space. A home vacuuming robot can even be programmed to wake up every day, do the cleaning, then go back to sleep. In short, an agent has a goal, and a basic plan to accomplish that goal. It is alive most of the time (including sleeping), and can wake up by itself.
The only missing piece is that a web server is typically passive. It may send you a reminder or news summary, but most of the time it just waits for your visit. This may change when you need to enter daily data on a web server. I use