ROSCon DE 2023
23. – 24. November 2023
Karlsruhe, Deutschland

Tooling-Suite für container-getriebenes Development und DeploymentKarlsruhe, 23. November 2023
Lennart Reiher

Institut für Kraftfahrzeuge (ika), RWTH Aachen University#23lre0008

Folie Nr. 1

23.11.2019© ika 2023 · All rights reservedInstitut für Kraftfahrzeuge, RWTH Aachen University
Führendes Institut für Bildung und Forschung in der Fahrzeugtechnik~ 90

Wissenschaftliche
Mitarbeitende~ 250

Mitarbeitende in
Verwaltung, Werkstätten &Studierende Mitarbeitende~ 10m €

Jährliches Projektvolumen#23lre0008

Fahrzeugkonzepte &HMI

LEHRE
ÖFFENTLICHGEFÖRDERTFORSCHUNGAUFTRAGSFORSCHUNG

INDUSTRIE

Funktionsentwicklung
Automatisiertes Fahren

Fahrdynamik & Akustik
Daten & Wirksamkeit
Energiemanagement &Antriebe
Fahrzeugintelligenz &Automatisiertes Fahren
Verkehrspsychologie &Akzeptanz

Folie Nr. 2

23.11.2019

Intelligente
Infrastruktur
Human-Centered
Driving Simulation© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
Motivation© Lutz Eckstein

Das Mobilitätssystem der Zukunft ist
automatisiert, vernetzt, modular, und service-orientiert#23lre0008

Folie Nr. 3

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
Motivation

ROS

Testing

Dependencies

CI/CD

Wie lassen sich Robotik-Anwendungenauf robuste Art und Weise
entwickeln, testen, und einsetzen,
von Einzelkomponenten bis hin zu
Containerisierung
verteilten Systemen?

Modularisierung

DevOpsOrchestrierung
Docker#23lre0008

Microservices

Service-orientiert

Folie Nr. 4

23.11.2019

Kubernetes© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
Motivation

Containerisierung

Microservices

Container bieten isolierte, reproduzierbare
Microservices – das Auflösen eines Softwareund portable Umgebungen für Entwicklung und Monolithen in minimale, unabhängige ServiceRuntime.
Komponenten – ermöglichen flexible undschnelle Entwicklungszyklen.

Orchestrierung
Verteilte Systemarchitekturen wie das
Mobilitätssystem der Zukunft profitieren vonautomatischer Konfiguration, Koordination
und Management der involvierten SoftwareKomponenten.

ROS-Applikation
ROS-Installation und Dependencies
System-Dependencies und Libraries#23lre0008

vsFolie Nr. 5

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(1/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Ziel: Vereinfachung des Deployments von skalierbaren Robotik-Applikationen§ Methodik: Containerisierung und Orchestrierung einzelner Microservices§ Voraussetzung: Verfügbarkeit automatisch gebauter und getesteter minimaler Container Images#23lre0008

Folie Nr. 6

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(2/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ docker-ros automatisiert den Image Build für beliebige ROS / ROS 2 Packages§ CI/CD Templates für GitHub und GitLab erleichtern die Integration#23lre0008

Folie Nr. 7

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(2/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ docker-ros automatisiert den Image Build für beliebige ROS / ROS 2 Packages§ Generisches Multi-Stage Dockerfile für minimale Container Images§ Development-Image enthält installierte Dependencies und Source Code§ Deployment-Image enthält installierte Dependencies und kompilierte Binaries§ Support für amd64 und arm64 sowie Multi-Arch Images§ CI/CD-Templates für GitHub und GitLab erleichtern die Integration§ Einbindung mit <10 Zeilen Code§ Lokale Ausführung ebenfalls möglich#23lre0008

Folie Nr. 8

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(3/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Beliebige Base-Images können für den Image Build benutzt werden§ docker-ros-ml-images stellt nützliche ROS Base-Images inkl. ML-Frameworks bereit#23lre0008

Folie Nr. 923.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(3/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Beliebige Base-Images können für den Image Build benutzt werden§ Automatische Installation von ROS, falls nicht bereits installiert§ docker-ros-ml-images stellt nützliche ROS Base-Images
inkl. ML-Frameworks bereit§ Verschiedene ROS / ROS 2 Distributionen§ CUDA, TensorFlow Python / C++, PyTorch Python / C++§ Mehr als 100 Multi-Arch Images auf DockerHub#23lre0008

Folie Nr. 10

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(4/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Development-Images ermöglichen konsistente Entwicklungs-Umgebungen§ docker-run ist ein CLI-Tool, das den Umgang mit Containern erleichtert#23lre0008

Folie Nr. 11

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(4/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Development-Images ermöglichen konsistente EntwicklungsUmgebungen§ docker-run ist ein CLI-Tool, das den Umgang mit Containern erleichtert§ Voreingestellte Standardargumente für docker run und docker exec
§ X11-GUI-Forwarding von Container zu Host§ GPU-Support§ Rechtemanagement im Container§ Quick-Attach an laufenden Container§ …
§ Für beliebige Images geeignet, auchunabhängig von ROS§ Installierbar über pip#23lre0008

Folie Nr. 12

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment(5/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Minimale Deployment-Images sind für das Deployment optimiert§ Containerisierung ist Grundlage für Orchestrierung einzelner Funktionen#23lre0008

Folie Nr. 13

23.11.2019© ika 2023 · All rights reservedTooling-Suite für container-getriebenes Development und Deployment(5/5)
Workflow: Microservice-basiertes Development und Deployment von ROS-Applikationen§ Minimale Deployment-Images sind für das Deployment optimiert§ Nur Dependencies und kompilierte Binaries§ Vorkonfigurierter Command für Start des Containers§ Containerisierung ist Grundlage für Orchestrierung einzelner
Funktionen§ Mehrere ROS-Funktionen ➔ mehrere Container ➔ docker compose§ Orchestrierung durch Tools wie Kubernetes#23lre0008

Folie Nr. 14

23.11.2019© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
Demo – docker-ros#23lre0008

DFolie Nr. 15

23.11.2019

OMEdocker-ros© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
Demo – docker-run#23lre0008

DFolie Nr. 16

23.11.2019

OM
E

docker-run© ika 2023 · All rights reserved

Tooling-Suite für container-getriebenes Development und Deployment
ZusammenfassungThis work is accomplished within the projects 6GEM (FKZ 16KISK036K) andAUTOtech.agil (FKZ 01IS22088A). We acknowledge the financial support for theprojects by the Federal Ministry of Education and Research of Germany (BMBF).

github.com/ika-rwth-aachen/docker-ros

github.com/ika-rwth-aachen/docker-ros-ml-images

Fragen?
#23lre0008

Kontakt
Lennart Reiher
lennart.reiher@ika.rwth-aachen.de+49 241 80 25614
Folie Nr. 17

23.11.2019

github.com/ika-rwth-aachen/docker-run© ika 2023 · All rights reserved