Software & Systems Engineering Process and Tools for the Development of Autonomous Driving Intelligence
It addresses the problem of managing complex AI development for autonomous vehicles, though it appears incremental by applying existing engineering practices to a specific domain.
The paper tackles the challenge of coordinating a large, heterogeneous team to develop autonomous driving intelligence for the 2007 DARPA Urban Challenge, presenting a software and systems engineering process that includes agile concepts, continuous integration, and modular simulation for efficient testing.
When a large number of people with heterogeneous knowledge and skills run a project together, it is important to use a sensible engineering process. This especially holds for a project building an intelligent autonomously driving car to participate in the 2007 DARPA Urban Challenge. In this article, we present essential elements of a software and system engineering process for the development of artificial intelligence capable of driving autonomously in complex urban situations. The process includes agile concepts, like test first approach, continuous integration of every software module and a reliable release and configuration management assisted by software tools in integrated development environments. However, the most important ingredients for an efficient and stringent development are the ability to efficiently test the behavior of the developed system in a flexible and modular simulator for urban situations.