Gabe Hoffmann, the man behind the control systems of Stanley and Junior, Stanford University's autonomous cars entered into recent DARPA challenges, sat down with DN's Mechatronics Zone editor to talk about his work on autonomous ground and aerial vehicles.
Let's talk about Stanley and Junior. You were the control lead on both, what does that entail?
The “leads” in our team were individuals who championed ideas and organized research around them. I was responsible for the development and testing of the control system. The control system had to execute the planned trajectories at the planned speeds through commands to the steering system, brake system and throttle system.
I derived control laws, simulated them and worked with other researchers to try various techniques. I also worked with the core technical group on system-level issues.
How many people designed Stanley?
This is hard to quantify. Initially, it was a class effort at Stanford, with a couple dozen students. They experimented with initial designs that largely guided the final vehicle design. Following the class, there were a handful of people in the core technical group at Stanford and several people at Volkswagen and Intel.
What were some of the roles?
The roles in the team were loosely defined — this group evolved out of a university research lab. The main structure was that we had co-team-leads, Professor Sebastian Thrun and Dr. Mike Montemerlo. It was a very loosely organized hierarchy — essentially flat. We worked together closely to contribute our expertise where helpful. Most everybody had familiarity, not only with their own components of the project, but with those that they affected and that affected them.
The development of Junior was very analogous to Stanley. The team leads were the same and my role was the same.
What was the main difference in developing Stanley and Junior? Any differences in the core systems?
Stanley competed in an off-road race without traffic, whereas Junior competed in a fake urban environment, with moving traffic. Still, many of the design lessons from Stanley went into Junior. We tried to keep the design as simple as possible and focused on using reliable, tested, off-the-shelf hardware where possible. Stanley had to be rugged to handle the desert terrain, but it turns out that this is a generally good approach for autonomous vehicles. To be reliable when no one is around, a rut in the road can't damage the system.
The main differences were (1) that Junior was small enough to be able to more easily maneuver between obstacles, (2) that Junior was less able to handle off-road terrain, as a consequence of being small and (3) that the sensors on Junior were able to sense dynamic obstacles. This latter requirement was new for the DARPA Urban Challenge and the ability to drive off-road was no longer necessary. One final development difference was in testing. More of the testing for Junior was initially done in simulation. Whereas much of the challenge for Stanley was in identifying drivable terrain, which is most readily tested by driving off road, much of the challenge for Junior was in handling complicated traffic states, which was more easily configured and more safely accomplished, in simulation.
We've heard a lot about Stanley and Junior, but I understand you have done some groundbreaking research and development with UAVs. What have you developed?
We've developed a fleet of quadrotor helicopters, the Stanford Testbed of Autonomous Rotorcraft for Multi-Agent Control (STARMAC). This system was designed for experimenting with multi-agent control laws. They have the ability to fly embedded computers and sensors in an indoor or outdoor setting and to cooperate as a team.
What is the main difference between developing and testing unmanned helicopters and unmanned automobiles?
There are three big differences. The dynamics of a helicopter are substantially faster, so control can be more challenging. The payload of the helicopter needs to be as lightweight as possible to achieve reasonable flight times. Finally, there is no one on board to take control if anything goes wrong. With our autonomous cars, we always had a person in the driver's seat to take control by pressing the big red button. With helicopters, we can try to take over remotely, but that doesn't always go smoothly.
The goals of the platforms are different, too. The point of autonomous cars is to provide a transportation system, in large part. The point of autonomous helicopters is to remove the need for a pilot, so that novices can use the system, flight times can be longer and inaccessible areas become accessible. However, there is large overlap in the algorithms. In both cases, to make the vehicles perform well, we try to develop “intelligent” algorithms, in the sense that the vehicles are “curious.” They try to make control actions that give them more information toward achieving their goals.
How are autonomous vehicles (automobiles or helicopters) mechatronic?
Autonomous vehicles are a natural extension of the techniques employed in mechatronics. These systems are comprised of embedded control systems, mechanical systems and electrical systems.
Finally, why is engineering unmanned autonomous vehicles (ground or aerial) important?
These autonomous vehicles are striving to achieve a major advance in engineering systems — to not only cope with unknown environments, but actively try to understand them and adapt to them. With this technology, we hope to be able to both automate existing tasks and make new capabilities possible.
For instance, driving can be a tiring, frustrating and dangerous endeavor. To have cars augment our control actions to reduce the difficulty of driving and to enhance our sensing with external information would increase safety and quality of life. Already, simple systems have been fielded to this end — cruise control, electronic stability control, adaptive cruise control, range sensors for alarms and many others. Cars will be transformed at a rapid pace over the next decades, along the path to doing all the work for us and with more information from their sensors to make us safer.
For unmanned aerial vehicles (UAVs), major changes are happening in what they are capable of doing and what pilots no longer need to do. From civilian to military applications, UAVs provide increased safety and flight time at a reduced cost. By removing the need for life support systems, the costs immediately drop. This makes possible crop monitoring, disaster response, environment monitoring and many other activities that are either prohibitively expensive or too difficult to plan for. This is an information age and UAVs will be a growing source of that information.