๐ค OpenADStack#
Baseline reference implementation for modular ROS 2 automated-driving stacks in OpenADS.
OpenADStack bundles reusable OpenADServices into a Docker Compose based reference stack. It supports different deployment compositions, from real-world automated-driving research with the karl. research vehicle to lightweight and repeatable simulation tests in OpenADSim.
๐ Quick Start | ๐ Architecture | ๐ Documentation | ๐ Acknowledgements
Note
This repository is part of OpenADS, the Open Automated Driving Systems project. OpenADS and its modules have been initiated and are currently being maintained by the Institute for Automotive Engineering (ika) at RWTH Aachen University.
Watch the preview above or open the full video on YouTube.
๐ Quick Start#
Note
For closed-loop simulation, scenario execution, maps, and simulator adapters, OpenADSim is the recommended entry point.
Important
Make sure that the general OpenADS system requirements are fulfilled. Graphical applications require access to a local X11 server.
OpenADStack is usually part of a larger deployment composition, for example with the karl. research vehicle or in an OpenADSim simulation setup. For a first look at OpenADStack itself, a demo is provided in this repository. It runs the stack open-loop on recorded ROS 2 data, so you can inspect the stack behavior without starting additional simulation or vehicle components.
Two demos using different parts of OpenADStack are provided:
Basic Demo without Perception: Start the open-loop demo using recorded detections:
cd demo xhost +local: docker compose up -d
Extended Demo: Start the open-loop demo including perception OpenADServices running on recorded raw sensor data:
cd demo xhost +local: export COMPOSE_PROFILES=demo-extended && docker compose up -d
Note
The extended demo requires an NVIDIA GPU with compute capability 8.0 or higher, and additional disk space of 14GB for its larger bag files.
Stop the demo with:
docker compose down
๐ Architecture#
OpenADStack is an L4 automated driving software stack built on ROS 2. It aims to enable suitably equipped vehicles to operate in traffic without human intervention.
The system is composed of services that primarily communicate through ROS messages. Each service uses a Docker image containing one or more ROS nodes. The services are composed and deployed using Docker Compose.
The modular architecture is organized into domains such as localization, perception, planning, and control.
The architecture is documented from three complementary perspectives:
The Functional Architecture describes the systemโs functional modules, their responsibilities, and the interfaces between them.
The Integration Architecture explains how released OpenADServices are assembled into the reference stack.
The Deployment Composition describes how the stack or selected parts can be embedded in custom vehicle and simulation setups.
The following image shows the so-called A Model, a functional reference architecture for automated driving systems originally developed in the UNICARagil project. The left side of the A describes the world modeling while the right side describes planning and actuation. The horizontal bar describes safety fallbacks, e.g. to perform a minimum risk maneuver in case of a degradation in the higher levels. The on-board system is supported by remote operations, e.g. for technical supervision.
The OpenADStack architecture follows a Doer/Checker/Fallback pattern, which continually evolves from a rule-based architecture into a hybrid architecture that combines a white-box safety Checker with an MLOps-driven end-to-end driving model. For more details, take a look at our proposed architecture for learning-based behavior planning and our proposed MLOps architecture.
In the initial release in Phase I, OpenADStack consists of lidar-based learned perception and a rule-based planner module, which initially acts as both Doer and Checker. The planned motion is converted into actuation signals by a model-based controller.
In Phase II (until the end of 2026), the architecture is planned to be extended with a learned planning module acting as Doer while keeping the rule-based planner as Checker. This enables a data-driven MLOps process for continual improvement. In addition, camera- and radar-based perception, remote operations, and minimum-risk maneuvers are planned.
As the collected database grows, Phase III (until the end of 2027) plans to replace the learned planner with an end-to-end driving model acting as Doer, while keeping the learned perception and rule-based planning path as Checker.
๐ Documentation#
The documentation contains:
๐ Acknowledgements#
Citation#
We hope that OpenADStack can help your research. If this is the case, please cite it using the metadata specified in CITATION.cff, or click on Cite this repository in GitHubโs About section on the top right.
Licensing#
The source code in this repository is licensed under Apache-2.0, see LICENSE. Container images provided by this repository may contain third-party software shipped with their own license terms.
Funding#
Development and maintenance of this repository are supported by the following projects. We acknowledge the funding of the respective institutions.
Project |
Funding Institution |
Grant Number |
|---|---|---|
๐ฉ๐ช Federal Ministry for Research, Technology and Space (BMFTR) |
16KIS2409K |
|
๐ช๐บ European Union |
101202457 |
|
๐ช๐บ European Union |
101076754 |
|
๐ฉ๐ช Federal Ministry for Research, Technology and Space (BMFTR) |
01IS22088A |
Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Climate, Infrastructure and Environment Executive Agency (CINEA). Neither the European Union nor CINEA can be held responsible for them.