Not a member yet? Register for full benefits!

AI Cars, Driving Like Hooligans

One of the favourite tricks of the less-than-mature young human male driver, has been since time immemorial, to 'handbrake turn'. To in other words, rev up the engine as fast as they can, then grab the handbrake and pull it up whilst spinning the wheel hard over. If done right the car spins round and parks itself to the tune of burning rubber. If done wrong, the car impacts something with enough force to demolish a wall, or take a life.

It is ironic then, that the first attempts at creating a reliable method for AI cars to self-park in tight spaces, uses a very similar method and manoeuvre.

Stanford University's Junior AI is a common sight in projects attempting to create autonomous road-cars, and this time is no exception. The little car that could, has mastered parking by a fairly unique method: putting itself into reverse, accelerating up to 25 miles per hour, and then suddenly braking while turning the wheel sharply, which starts it on a 180-degree spinning slide right into the parking spot.

In fact it is so accurate, that on field tests, there was only a two foot lateral variance in where the car ended up. In other words, perfect positioning in a parking space only fractionally over two feet longer than the vehicle parking. That is a considerably tighter space than a human driver would ever consider, and get it right every single time.

The system came about when the Stanford Racing Team tried to have Junior respond to an ever greater set of dynamic conditions. In normal driving, Junior operates on a closed loop system. This means that the input is expected and known. There are a finite number of variables, regardless of the values the sensor systems inform the loop of. A margin for error is built in, to allow for safety. However, if something unexpected happens, and a new variable is added to the system, the closed loop cannot handle it and just ignores the new variable.

Thus, the silly parking manoeuvres are not so silly. They utilise an open system, where the variable's values and number of variables are not known ahead of time. Instead the state of the environment is assessed in real-time, variables assigned and calculated. This is how humans drive. The problem of course is we have nowhere near the computing power or algorithm complexity in modern vehicular AIs to replicate the power of a human brain. So, they cannot operate on an open loop all the time.

Worse, if an open loop is used, because variables are assigned dynamically from moment to moment, it's not possible to have a finite error checking method in place. So the car can end up in completely different locations from attempt to attempt - exactly the same as occurs with a human. What they were then looking for, was a method to use a closed loop system most of the time, then teach Junior to switch to an open loop when a dynamic situation occurs, and switch back to closed loop once the new variable s are assessed. In this way, precision parking can be achieved time and time again.

Of course, the use does not end there. It can be applied to any number of situations. Driving down the road with a closed loop system, a child walks out into the road. Dynamic change of environment, new variables, switch to open system, plot possible course of new variables, switch back to closed loop system with old and new variables. Plot course with all possible margin for error avoiding the course of the new variables.

End result: The car seemingly effortlessly avoids the child, without endangering any other road user.

That is the basic system under test in this endeavour, and this ability to react; to switch between the two different systems dynamically, training the AI when to do it, based on past experiences and dynamic changes, is a crucial step in the development of autonomous AI vehicles that are safer on the road than humans are.

## References

Stanford Racing Team

A Probabilistic Approach to Mixed Open-loop and Closed-loop Control, with Application to Extreme Autonomous Driving