Stanford's Autonomous Car Parallel Parks By Sliding Sideways into Space, Stuntman Style

Watch Junior powerslide

Junior, Making an Entrance

Automakers are already mass producing cars that will parallel park themselves, but the rudimentary sensor-based systems on the latest Lexus or Buick have nothing on Junior. The Stanford Racing Team's autonomous car can throw itself into reverse, jam the accelerator to the floor, and slam on the brakes at 25 miles per hour, sliding sideways into a parking space in a display that would make the Duke boys proud.

This maneuver, while exhilarating in the James Bond sense, is not just for fun. The team is trying to teach the car to think for itself. Junior usually uses a model of the car's dynamics to control steering, gas, and braking. This is relatively easy when the car is moving straight ahead, but when it's sliding sideways across the pavement, the variables -- friction of the tires, texture of the pavement, grade of the roadway -- are far more diverse. That means working from a fixed model is far more difficult.

So the team also implemented a two-prong approach. There's the physics-based simulator that understands how the car moves in space, and a second system that draws from past demonstrations of the car sliding across the pavement. That second system works more or less by trial and error; it draws on the cars "experience," repeating the control inputs it used in other successful slide maneuvers to try to reproduce the successful results.

The trick was teaching Junior to employ both systems, and to learn when to switch between the two. Junior uses the physics based model to make its approach, then must switch to the demonstration-based model to throw the brakes and slide quite coolly into the parking space. The software must make the decision when to make that switch.

The car has a margin of error of about two feet, so don't expect Lexus to make it a standard feature any time soon. But from a machine learning standpoint, it's quite an impressive maneuver. If we can teach our machines to be more flexible, using a kind of learned intuition to switch between control models, developers should be able to create better autonomous robots that can handle not just preprogrammed tasks, but variables that arise out of the blue. That's not even factoring in their eligibility for style points.