Navigate

Endeavors

The Driverless Car: Helping the Computer Catch Up

Driverless cars were supposed to be right around the corner. What’s the holdup? How many computers are in your car? One? Three? Five?

Closer to 40. That’s for a midrange vehicle. A higher-end car might have 100 computers, says UNC computer scientist Jim Anderson. Computers control a car’s ignition, transmission, brakes, cruise control, thermostat, air bags and other functions that have switched from mechanical to electronic interfaces over the past 20 years.

If it takes 40 computers to run a normal vehicle or 100 to run a fancy one, imagine how many more it takes to run a car that drives itself. “Trunkfuls,” said Anderson, a William Rand Kenan Distinguished Professor. Some of these driverless vehicles exist in test versions — cars whose trunks you pop and see a pile of computer hardware.

The U.S. military once set a goal of making a third of its vehicles self-driving by 2015. Now that the year has arrived, the main problem with that goal is money, Anderson explained. Even if driverless cars worked perfectly, all those computer systems make them too expensive to mass-produce.

To get driverless cars on the road, you have to do more with less hardware. That’s why General Motors asked UNC to help simplify cars’ computing needs. This year, faculty and students will design new computing systems to do the data-intensive work of sensing the world around a vehicle and responding.

Computer science department chair Kevin Jeffay pulls up Activity Monitor on his office Macintosh. (On a Windows machine, this would be Task Manager.) On screen is a list of dozens of programs his computer is running all at once. The computer has to decide how much processing power to allot, and for how long, to each program.

You don’t have to be a scientist to know that how fast a computer performs can be unpredictable. Sometimes the on-screen cursor moves the moment you touch the mouse — sometimes it lags a little. But the computer has a great feature, Jeffay says: the person sitting at the keyboard. You, the user, wait for the computer to catch up.

You can’t have that kind of unpredictability in a car or a plane. When you design the computer systems in a machine that puts people’s lives on the line, you have be able to promise the computer programs will run on a precise schedule, so brakes will brake on time and wings will deploy when needed.

At UNC and other computer science programs, researchers like Anderson, Jeffay and their computer science professor colleague Sanjoy Baruah have written algorithms that show how to prioritize programs for reliable performance in systems that must perform on time. Companies now use some of those same UNC-designed algorithms to control electronics in cars, planes and cell phones. Students trained here to build such algorithms go on to work at companies like Tesla, the electric car maker.

But as vehicles and gadgets get more complicated, their internal activity monitors get more complicated as well, with lots of different programs needing to run in sync and on time. To create something like a vehicle that drives itself, Anderson says, designers usually add a separate computer for every different thing the vehicle has to do. “That way you don’t have to worry about the computations interfering with each other.”

But to bring the price down, you have to run more computations on less hardware.

So a big part of the team’s work is trying to build super-reliable systems out of mass-produced processors. Is that even possible? “Sure,” Baruah said without hesitating. “You have to accurately characterize the behavior of the components and figure out what kinds of statements you can make about multiple devices running at the same time.” For example, one processor might fail, but you might find you can guarantee that several of them won’t fail all at once.

The scientists have to make sure they don’t overpromise how well processors will perform.

You don’t want to claim that a car can sense an obstacle and brake more quickly than it actually can, for example. So when they’re designing systems, Anderson and Baruah’s team make conservative predictions about how fast programs will be able to run.

“The way you make up for those predictions is to have faster hardware,” Anderson said. “Computers are always evolving to be better, cheaper, faster.” Some of the computing requirements of driverless cars will get easier to meet in the future, simply because processors are becoming more powerful, he predicts.

Anderson believes that one day the roads will be full of self-driving cars. It’s not just a question of how fast the technology is ready, but of how quickly the law can answer questions of liability when the driver behind the wheel isn’t necessarily controlling the car.

“The major auto companies are predicting to have fully autonomous cars on the road by 2020,” Anderson said. “Are the laws going to evolve to let that happen? I don’t know.”

— Susan Hardy ’05

Visit Endeavors, UNCs online research magazine.

Share via: