carlos

CARLA Open Simulation Architecture

https://github.com/ika-rwth-aachen/carlos

Science Score: 85.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, researchgate.net, ieee.org
  • Committers with academic emails
    5 of 6 committers (83.3%) from academic institutions
  • Institutional organization owner
    Organization ika-rwth-aachen has institutional domain (www.ika.rwth-aachen.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.2%) to scientific vocabulary

Scientific Fields

Engineering Computer Science - 39% confidence
Last synced: 6 months ago · JSON representation ·

Repository

CARLA Open Simulation Architecture

Basic Info
  • Host: GitHub
  • Owner: ika-rwth-aachen
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 55.7 MB
Statistics
  • Stars: 52
  • Watchers: 6
  • Forks: 8
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

CARLOS - An Open, Modular, and Scalable Simulation Framework for the Development and Testing of Software for C-ITS

This repository contains CARLOS, the official reference implementation of the open, modular and scalable simulation architecture presented in our paper. We provide a containerized simulation framework based on the open-source simulator CARLA and enable a simple integration of custom ROS applications. Find below a brief description of the architecture as well as configurations and instructions for demos of three example use cases: - Software Prototyping - Data-Driven Development - Automated Testing

Notice

[!IMPORTANT]
This repository is open-sourced and maintained by the Institute for Automotive Engineering (ika) at RWTH Aachen University.
Simulation, Containerization and DevOps for Automated Driving are some of many research topics within our Vehicle Intelligence & Automated Driving domain.
If you would like to learn more about how we can support your automated driving or robotics efforts, feel free to reach out to us!
:email: opensource@ika.rwth-aachen.de

Overview

Content

Publication

CARLOS: An Open, Modular, and Scalable Simulation Framework for the Development and Testing of Software for C-ITS

(IEEEXplore, arXiv, ResearchGate)

Christian Geller, Benedikt Haas, Amarin Kloeker, Jona Hermens, Bastian Lampe, Till Beemelmanns, Lutz Eckstein Institute for Automotive Engineering (ika), RWTH Aachen University

Abstract – Future mobility systems and their components are increasingly defined by their software. The complexity of these cooperative intelligent transport systems (C-ITS) and the ever-changing requirements posed at the software require continual software updates. The dynamic nature of the system and the practically innumerable scenarios in which different software components work together necessitate efficient and automated development and testing procedures that use simulations as one core methodology. The availability of such simulation architectures is a common interest among many stakeholders, especially in the field of automated driving. That is why we propose CARLOS - an open, modular, and scalable simulation framework for the development and testing of software in C-ITS that leverages the rich CARLA and ROS ecosystems. We provide core building blocks for this framework and explain how it can be used and extended by the community. Its architecture builds upon modern microservice and DevOps principles such as containerization and continuous integration. In our paper, we motivate the architecture by describing important design principles and showcasing three major use cases - software prototyping, data-driven development, and automated testing. We make CARLOS and example implementations of the three use cases publicly available at https://github.com/ika-rwth-aachen/carlos.


Quick Start

[!TIP] Make sure your computer fulfills the requirements and feel free to first check out our comprehensive tutorial, which gives an overview of our simulation framework's main features, and describes how CARLA and ROS applications can be combined in a containerized composition.

This repository provides demos for different use cases. The demos can be used as an example or initial starting point for your own variations for the use cases. A specific demo can be started using the provided run-demo.sh script, for example:

bash ./run-demo.sh software-prototyping

Hitting CTRL + C twice stops a demo.

Use Cases

Each link below provides a detailed description of a provided use case and instructions on how to adjust it to your needs.

| Use Case | Integrated Components | Description | | ------ | ------ | ------ | software-prototyping | carla-server, carla-ros-bridge, rviz | Transfers simulation data into the ROS ecosystem. | | data-driven-development | carla-server, carla-ros-bridge, carla-scenario-runner | Automated simulation configuration to capture sensor data at large scale. | | automated-testing | carla-server, carla-scenario-runner | Sequential simulation of multiple scenarios in OpenSCENARIO format with automated evaluation. |

Simulation Architecture

Our architecture consists of several sub-layers encapsulating different components that serve individual purposes:

  • Simulation Layer - simulation core equipped with low-level interfaces and capabilities;
  • Control Layer - tools for interactions with the simulation core;
  • Application Layer - software interacting with the simulation layer to achieve certain goals;
  • Storage Layer - persistent data used for or generated by the simulation layer;
  • Orchestation Layer - automated configuring, coordinating, and managing of all other layers.

The simulation layer contains the core of a simulation software. It performs the simulation work via its graphics and physics engine, and manages the world state. It comes with low-level interfaces that are often specific to the used software. The control layer provides tools for interactions with the simulation core via preferably standardized interfaces and communication protocols. The application layer contains application-specific user iterfaces and user-defined functions interacting with the simulation. These computational layers are accompanied by the storage layer which can both provide data to the other layers or record data generated by the other layers during simulation. Last, the orchestration layer automates the configuring, coordinating, and managing of the other layers.

The various layers are composed into a microservice architecture, fostering scalability, flexibility, reusability, maintainability. We achieve this through a very modular approach in which all major components are containerized.

CARLOS is a framework that implements the described architecture. We make use of already established software, especially the CARLA simulator. Some additional components from the rich CARLA ecosystem are crucial to our framework and available as specified GitHub forks. We extended these repositories by additional GitHub CI workflows to generate Docker images built with docker-ros. This approach enables an automatic and continual building of up-to-date container images with recent versions of, e.g., ROS, Python, and Ubuntu.

Simulation Core: carla-simulator

The carla-simulator constitutes the central element of the framework and handles all graphics and physics calculations in the individual simulation time steps.

Communication Actor: carla-ros-bridge

The carla-ros-bridge is the component that facilitates the powerful combination of CARLA and ROS. It retrieves data from the simulation to publish it on ROS topics while simultaneously listening on different topics for requested actions, which are translated to commands to be executed in CARLA. It communicates via DDS to interact with ROS, and via RPC to interact with the CARLA Python API.

Control Actor: carla-scenario-runner

To enable scenario-based testing and evaluation, the carla-scenario-runner is used. It is a powerful engine that follows the OpenSCENARIO standard for scenario definitions. An additional ROS service allows other ROS nodes to dynamically issue the execution of a specified scenario using the carla-scenario-runner. For the creation of light-weight container images, a custom Dockerfile is used.

[!NOTE] For all provided use case examples we use predefined Docker services, listed in carla-services.yml and further described in the carla-components overview.

Citation

We hope that our simulation framework CARLOS can help your research. If this is the case, please cite it using the following metadata. @inproceedings{CARLOS24, author = {Geller, Christian and Haas, Benedikt and Kloeker, Amarin and Hermens, Jona and Lampe, Bastian and Beemelmanns, Till and Eckstein, Lutz}, booktitle={2024 IEEE Intelligent Vehicles Symposium (IV)}, title = {{CARLOS: An Open, Modular, and Scalable Simulation Framework for the Development and Testing of Software for C-ITS}}, url = {https://ieeexplore.ieee.org/document/10588502}, year = {2024}, pages={3100-3106}, doi={10.1109/IV55156.2024.10588502} }

Acknowledgements

This research is accomplished within the project AUTOtech.agil (FKZ 01IS22088A). We acknowledge the financial support for the project by the Federal Ministry of Education and Research of Germany (BMBF).

Owner

  • Name: Institut für Kraftfahrzeuge, RWTH Aachen, ika
  • Login: ika-rwth-aachen
  • Kind: organization
  • Location: Aachen, Germany

Citation (CITATION.cff)

cff-version: 1.2.0
message: "We hope that our simulation framework CARLOS can help your research. If this is the case, please cite it using the following metadata."

title: "CARLOS"
type: software
repository-code: "https://github.com/ika-rwth-aachen/carlos"
date-released: 2024-02-01
authors:
  - given-names: Christian
    family-names: Geller
  - given-names: Benedikt
    family-names: Haas
  - given-names: Amarin
    family-names: Kloeker
  - given-names: Jona
    family-names: Hermens
  - given-names: Bastian
    family-names: Lampe

preferred-citation:
  title: "CARLOS: An Open, Modular, and Scalable Simulation Framework for the Development and Testing of Software for C-ITS"
  type: conference-paper
  conference:
    name: 2024 IEEE Intelligent Vehicles Symposium (IV)
  year: 2024
  doi: 10.1109/IV55156.2024.10588502
  url: "https://github.com/ika-rwth-aachen/carlos"
  authors:
    - given-names: Christian
      family-names: Geller
      orcid: "https://orcid.org/0000-0001-8655-3201"
    - given-names: Benedikt
      family-names: Haas
      orcid: "https://orcid.org/0009-0004-4842-9997"
    - given-names: Amarin
      family-names: Kloeker
      orcid: "https://orcid.org/0000-0003-4984-2797"
    - given-names: Jona
      family-names: Hermens
      orcid: "https://orcid.org/0009-0005-9193-3336"
    - given-names: Bastian
      family-names: Lampe
      orcid: "https://orcid.org/0000-0002-4414-6947"
    - given-names: Lutz
      family-names: Eckstein

GitHub Events

Total
  • Issues event: 1
  • Watch event: 13
  • Delete event: 5
  • Issue comment event: 1
  • Push event: 20
  • Pull request review comment event: 3
  • Pull request review event: 7
  • Pull request event: 5
  • Fork event: 2
  • Create event: 6
Last Year
  • Issues event: 1
  • Watch event: 13
  • Delete event: 5
  • Issue comment event: 1
  • Push event: 20
  • Pull request review comment event: 3
  • Pull request review event: 7
  • Pull request event: 5
  • Fork event: 2
  • Create event: 6

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 65
  • Total Committers: 6
  • Avg Commits per committer: 10.833
  • Development Distribution Score (DDS): 0.354
Past Year
  • Commits: 17
  • Committers: 4
  • Avg Commits per committer: 4.25
  • Development Distribution Score (DDS): 0.412
Top Committers
Name Email Commits
Christian Geller c****r@i****e 42
Benedikt Haas b****s@i****e 9
Amarin Klöker a****r@i****e 8
Bastian Lampe b****e@r****e 3
Benedikt Haas 4****6 2
sdamaschke s****e@i****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 1
  • Total pull requests: 17
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 15 hours
  • Total issue authors: 1
  • Total pull request authors: 6
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: about 22 hours
  • Issue authors: 0
  • Pull request authors: 5
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • BenediktHaas96 (1)
Pull Request Authors
  • cgeller (14)
  • bastilam (6)
  • akloeker (4)
  • BenediktHaas96 (3)
  • oliverkallenberg (2)
  • sdamaschke (2)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels

Dependencies

software-prototyping/docker-compose.yml docker
utils/tutorial/docker-compose.yml docker
.github/actions/generate-job-matrix/action.yml actions
.github/workflows/automated-testing.yml actions
  • ./.github/actions/evaluate-scenario * composite
  • ./.github/actions/generate-job-matrix * composite
  • actions/checkout v4 composite
data-driven-development/docker-compose.yml docker
data-driven-development/env/requirements.txt pypi
  • python-on-whales =0.68.0 development
data-driven-development/env/environment.yml conda
  • python 3.12.1
  • python-on-whales 0.68.0
  • pyyaml 6.0.2