Self-driving cars are likely to be safer, on average, than human-driven cars. But they may fail in new and catastrophic ways that a human driver could prevent. This project is designing a new architecture for a highly dependable self-driving car.

Human drivers are good at avoiding huge boulders that come into view a mile away; at adjusting their speed when they can no longer see well; and can often even stop suddenly or pull over when continuing would be dangerous. Self driving cars generally can't do any of these things. In this project, we are developing a new architecture to bring this kind of flexibility to self-driving cars.

The keys ideas are:

  • A reconfigurable network that allows sensors to be reassigned if some fail, a control algorithm to be replaced by a simpler one, and computational resources to be increased for select software components;
  • A system modeler that maintains an¬†explicit representation of the state of the system -- software and hardware -- and detects when it goes outside the envelope in which it was designed to operate;
  • An assurance case that is constructed statically from the design to determine the operating envelopes of different controllers, and that can be monitored on the fly.

The project is funded by Toyota and conducted in collaboration with members of Toyota's Research Institute.