Jonathan Sprinkle wants to build robotic vehicles that pass the Turing Test.
The test, proposed by Alan Turing in a 1950 paper, “Computing Machinery and Intelligence,” requires a robot’s behavior to be so lifelike that an observer can't tell if he’s dealing with a robot or a person.
Sprinkle, an assistant professor at The University of Arizona, and professor J. Mikael Eklund, of the University of Ontario Institute of Technology, have already passed the Turing Test with a control system they designed for a T-33 jet trainer. A veteran F-15 pilot who flew against the T-33 in a test at Edwards Air Force Base said it looked like a recent flight school graduate was at the controls.
Following his success with flight-based systems, Sprinkle has placed his robotic control expertise firmly on the ground, where he’s applying it to smart cars that drive themselves.
This research effort began with a DARPA Urban Challenge project Sprinkle worked on at the University of California, Berkeley. The Urban Challenge race took place in November, with smart vehicles driving themselves through 60 miles of simulated city traffic.
While the Urban Challenge got engineers involved in designing autonomous vehicles it didn’t foster robust designs, Sprinkle noted. As engineers faced tight deadlines, they hacked systems just to make them work instead of creating optimized, integrated designs. “The downside of that is that you don't get a holistic approach to the system,” said Sprinkle, who is with the UA’s electrical and computer engineering department.
Searching for Repeatable Results
“Some of the better teams out there had 30 to 40 people working on a single car,” he added. “And if they wanted to do this project again, they would have to have the same car. They would probably have to have exactly the same people. If they gave another team the code and the car, they probably couldn't make it run because there is so much knowledge involved in the order in which things start up.”
Obviously, these are not robust control systems that can be mass produced and bolted into thousands of vehicles.
Sprinkle would like to see the engineering community take a collective deep breath following the Urban Challenge, step back and design a system that isn't specific to one group of researchers or a single prototype vehicle.
The best way to do this is to work on each component of the system in detail, he said.
“In my research at UA, I want to give a small component of the system to each student, such as a path planner, and have them design a really solid one,” Sprinkle said. “I want to isolate the student to work on just one piece of the software to make it as robust as possible. I think that's where it needs to go. Each person understands a small piece of the problem in depth, and when you plug all those pieces together in the end, it should work.”
Simulations Save Time, Money
A lot of this new research is being done with computer simulations in Sprinkle's lab. Although field testing is an important part of vehicle development, Sprinkle believes much faster progress can be made initially with simulations because they don't require an expensive car and thousands of hours of tinkering with hardware.
Much of Sprinkle’s research is based on Model Predictive Control techniques, which involve combining models of various behaviors (such as obstacle avoidance) with data from the real world to calculate future moves (braking, turning or acceleration, for instance).
“You want to spend less time designing control algorithms, and more time telling the machine that certain things are good and certain things are bad and then having the control algorithm sort that out,” he said.
“If you see a traffic cone ahead when you're driving, for instance, you know that you can turn the steering wheel and don't need to change the accelerator,” he said. “You can just swerve out of the way. Sometimes you have to brake and use the accelerator in rapid succession, but, in your mind, you have a timeline for doing those various actions. Model Predictive Control follows the same logic. It's pretty magical, amazing stuff.”
The result is a control system that anticipates what will happen ahead and plans for future scenarios, rather than driving reactively in the present moment.
One way to further enhance Model Predictive Control would be to record the actions of a human driver and overlay the human’s driving style on the robotic system. “That would make it feel like a human is driving,” Sprinkle said. And the robotic car would move a step closer to passing the Turing Test.
Testing Multi-Core Sensors
In related research, Sprinkle is studying multicore computer processors. They offer a huge increase in computational speed and power, both of which are valuable for robotic cars. But there's a danger that they may make the system less stable.
Procedures that were previously handled by a single processor in linear fashion are now split up into shared tasks being done simultaneously by two or more processors. The processors are trading information, but there’s no guarantee that they're doing so at exactly the right time.
“We're doing some experiments to look at the possibilities of failure in these systems and to identify indicators that show when the system is failing,” Sprinkle said.
Cutting Sensor Costs
While autonomous vehicles now use lasers to learn about their environment, Sprinkle says large numbers of lasers aren’t practical for production cars. “If you want to build an autonomous car now, you basically have to start by buying $40,000 in lasers,” he said. “But if you can put something like a video camera in the car to help gather data, reducing the number of lasers, you'll have a more affordable, lower-cost sensor system.”
Although autonomous cars are experimental these days, Sprinkle believes that in 10 or 20 years we may see cars that can pull out of the parking garage and drive over to pick us up at the office.
But before that happens, there's plenty of research to be done by thousands of people.
“These procedures are couched in a really serious amount of nonlinear systems equations, and nonlinear differential equations,” Sprinkle said. “The problem is how you change that math into something that executes on a computer. That's where software engineering needs to go.
“That's what I really want to teach my students. Otherwise, we're just teaching them to compile things – and that's no fun – and how to do data structures. Data structures have already been done. It's not new.
“I don't want just any data structure,” he said. “I want a data structure that will drive my car.”