Continuous and Compositional Validation for Autonomous Driving
Winter 2022/23 to Summer 2023
In cooperation with GET racing Dortmund e.V.
Motivation
For a decade, the automotive industry has pursued the vision of autonomous vehicles. In the US, autonomous taxis with and without safety drivers are tested in many areas, in Germany, e.g. MOIA tests ride pooling in Hamburg, and in racing, autonomous driving is becoming a discipline. To ensure the safety of autonomous driving software, a combination of simulations and test drives is employed: long, successful simulations generate initial trust that is validated by test rides on the street or the race track.
A major challenge is the number of components required to drive the car, ranging from perception over planning to controls. The components employ different paradigms (e.g., neural nets, optimazation, or control theory), are developed independently in different teams and need to be integrated in the vehicle. To manage changes to components, they must be tested in the full system. Automation can make an important contribution here.
Vision
Tools to enable such automation already exist for, e.g., web applications. DevOps describes the iterative process used to continuously improve the quality of softare by holistically managing the lifecycle of software from development over delivery to operations using practices like Continuous Integration and Continuous Deployment, quality assurance, configuration managment, automated releases and monitoring. These are established in industry, but are not established for cyber-physical systems.
Applying these techniques to autonomous driving would enable automated integration and delivery of small, local improvement to test vehicles. A simulation would automate tests in predefined scenarion to ensure basic correctness and safety or identify optimal sets of parameters. Next, the software can be tested on an actual vehical on a closed track. Recorded data is made available to developers and used to review proposed changes, allowing a distributed, component-based development process with short development cycles.
The goal of the project is the development of a DevOps-based development process for autonomous driving software as well as tools supporting this workflow, such as simulation-based tests, Continuous Integration, and processing of recorded data. As a case study, a driving stack for Formula Student-style races will be developed using the ROS platform and deployed in a simulation environment, a 1:8 model car capable of autonomous driving, and – if time permits – a race car competing in the Formula Student Germany in collaboration with the university's Formula Student team, GET racing. In addition, the Rig modeling framework will be evaluated for managing the CI/CD workflows.