ROS 2 und Webots in der Lehre
ROScon DE’23 Karlsruhe – Track: Bildung

Mark O. Mints, Peer Neubert
23. November 2023
Universität Koblenz
Institut für Computervisualistik
Arbeitsgruppe Intelligente Autonome Systeme

Inhalt

1. Lehr- und Lernziele
2. Einsatz von Webots
3. VacuSim: Software-Projekt
4. Ergebnisse der Studierenden
5. Lehrevaluation
6. Fazit

M. O. Mints & P. Neubert1Lehr- und Lernziele

Einführung in die Computervisualistik

M. O. Mints & P. Neubert2Einführung in die Computervisualistik

M. O. Mints & P. Neubert

3

Theorie: Big-Picture“ Robotik”

M. O. Mints & P. Neubert

4Praxis: Roboterprogrammierung

M. O. Mints & P. Neubert

5Bewältigung der Lernkurve

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation
2. Setup

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation
2. Setup
1. Installation von Webots

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation
2. Setup
1. Installation von Webots
2. Installation des Roboter-Driver ROS-Pakets

M. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation
2. Setup
1. Installation von Webots
2. Installation des Roboter-Driver ROS-Pakets
3. Erstellen eines eigenen ROS-Pakets und Programmierung der ersten NodeM. O. Mints & P. Neubert

6Bewältigung der Lernkurve
1. Einführung
1. Installation Ubuntu 22.04 (VM) und ROS 2 Humble
2. Erarbeitung der Konzepte von Topics und Services
3. Einarbeitung in Humble-Dokumentation
2. Setup
1. Installation von Webots
2. Installation des Roboter-Driver ROS-Pakets
3. Erstellen eines eigenen ROS-Pakets und Programmierung der ersten Node
3. Staubsauger-Wettbewerb“”
Implementieren Sie eine Robotersteuerung, sodass ein Staubsaugerroboter in einer simulierten
Testumgebung möglichst effizient den Boden reinigt.
M. O. Mints & P. Neubert

6Einsatz von Webots

Warum eigentlich Webots?

M. O. Mints & P. Neubert

6I. Einsatz auf unbekannter Hardware

M. O. Mints & P. Neubert

6I. Einsatz auf unbekannter Hardware
II. Einsatz in virtueller Maschine

M. O. Mints & P. Neubert

6Vergleich von Simulationsumgebungen

Farley, A. et al. (2022). How to pick a mobile robot simulator [FWM22]
M. O. Mints & P. Neubert

7Vergleich von Simulationsumgebungen

Farley, A. et al. (2022). How to pick a mobile robot simulator [FWM22]
M. O. Mints & P. Neubert

8Vergleich von Simulationsumgebungen

Farley, A. et al. (2022). How to pick a mobile robot simulator [FWM22]

M. O. Mints & P. Neubert

9Vergleich von Simulationsumgebungen

Farley, A. et al. (2022). How to pick a mobile robot simulator [FWM22]
M. O. Mints & P. Neubert

10Einsatz von Webots

Gründe für die Wahl von Webots:

M. O. Mints & P. Neubert

11Einsatz von Webots

Gründe für die Wahl von Webots:
1. Ressourcenschonend

M. O. Mints & P. Neubert

11Einsatz von Webots

Gründe für die Wahl von Webots:
1. Ressourcenschonend
2. Rendering-Probleme von Gazebo in virtuellen Maschinen

M. O. Mints & P. Neubert

11Einsatz von Webots

Gründe für die Wahl von Webots:
1. Ressourcenschonend
2. Rendering-Probleme von Gazebo in virtuellen Maschinen
3. Aufgeräumte UI mit ingeriertem Texteditor

M. O. Mints & P. Neubert

11Einsatz von Webots

Gründe für die Wahl von Webots:
1. Ressourcenschonend
2. Rendering-Probleme von Gazebo in virtuellen Maschinen
3. Aufgeräumte UI mit ingeriertem Texteditor
4. Bietet einen zu Gazebo ähnlich großen Funktionsumfang

M. O. Mints & P. Neubert

11Einsatz von Webots

Gründe für die Wahl von Webots:
1. Ressourcenschonend
2. Rendering-Probleme von Gazebo in virtuellen Maschinen
3. Aufgeräumte UI mit ingeriertem Texteditor
4. Bietet einen zu Gazebo ähnlich großen Funktionsumfang
5. Persönliche Neugier

M. O. Mints & P. Neubert

11

VacuSim: Software-Projekt

VacuSim: Paketübersicht

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots
3. PROTO-Beschreibungen von verschiedenen Welten

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots
3. PROTO-Beschreibungen von verschiedenen Welten
4. Supervisor Controller (C): Allwissender Webots Controller zur Evaluation

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots
3. PROTO-Beschreibungen von verschiedenen Welten
4. Supervisor Controller (C): Allwissender Webots Controller zur Evaluation
vacusim_robot_interfaces

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots
3. PROTO-Beschreibungen von verschiedenen Welten
4. Supervisor Controller (C): Allwissender Webots Controller zur Evaluation
vacusim_robot_interfaces
1. Sensor-Messages: Bumper.msg, Distance.msg

M. O. Mints & P. Neubert

12VacuSim: Paketübersicht

vacusim_robot_driver
1. PROTO-Beschreibung eines angepasten iRobot Create
2. Driver-Node (Python): Schnittstelle zwischen ROS 2 und Webots
3. PROTO-Beschreibungen von verschiedenen Welten
4. Supervisor Controller (C): Allwissender Webots Controller zur Evaluation
vacusim_robot_interfaces
1. Sensor-Messages: Bumper.msg, Distance.msg
2. Bewengungs-Services: Drive.srv, Turn.srv

M. O. Mints & P. Neubert

12VacuSim: Custom iRobot Create

Angepassert iRobot Create1 mit zusätzlichen Distanzsensoren (45° Öffnungswinkel)
1 https://github.com/cyberbotics/webots/blob/released/projects/robots/irobot/create/protos/Create.proto

M. O. Mints & P. Neubert

13

VacuSim: Robot Driver

M. O. Mints & P. Neubert

14

VacuSim: Robot Driver – Fahrmodi

M. O. Mints & P. Neubert

15

VacuSim: Robot Driver – Fahrmodi

Kontinuierlich über Geschwindigkeit (/cmd_vel)
Der Roboter wird über lineare und Winkelgeschwindigkeit durch die Arena gesteuert.

M. O. Mints & P. Neubert

15

VacuSim: Robot Driver – Fahrmodi

Kontinuierlich über Geschwindigkeit (/cmd_vel)
Der Roboter wird über lineare und Winkelgeschwindigkeit durch die Arena gesteuert.
Diskret über Distanz (/turn und /drive)
Der Roboter bewegt sich immer nur so lange, bis die gewünschte Distanz erreicht ist bzw. dergewünschte Winkel erreicht wurde.

M. O. Mints & P. Neubert

15

VacuSim: Robot Driver – Sensoren

M. O. Mints & P. Neubert

16

VacuSim: Robot Driver – Sensoren

Bumper (/bumper)
Gibt für linken und rechten Tastsensor jeweils einen bool-Wert zurück.

M. O. Mints & P. Neubert

16

VacuSim: Robot Driver – Sensoren

Bumper (/bumper)
Gibt für linken und rechten Tastsensor jeweils einen bool-Wert zurück.
Distance (/distance)
Gibt für linken, mittleren und rechten Distanzsensor jeweils einen float-Wert zurück.

M. O. Mints & P. Neubert

16

VacuSim-Welten: Simple Arena

Einfache Szene zum Experimentieren und Testen.

M. O. Mints & P. Neubert

17

VacuSim-Welten: Apartment

Angepasste iRobot Create Beispielwelt create.wbt 2
2 Nach Webots-Installtion zu finden unter: $WEBOTS_HOME/projects/robots/irobot/create/worlds

M. O. Mints & P. Neubert

18

VacuSim-Welten: Leeres Apartment

Angepasste iRobot Create Beispielwelt create.wbt 3
3 Nach Webots-Installtion zu finden unter: $WEBOTS_HOME/projects/robots/irobot/create/worlds

M. O. Mints & P. Neubert

19

VacuSim-Welten: Apartment-Karte

M. O. Mints & P. Neubert

20

VacuSim: Supervisor-Controller

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:
Visuelles Feedback beim Ausführen der Simulation.

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:
Visuelles Feedback beim Ausführen der Simulation.
Evaluation

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:
Visuelles Feedback beim Ausführen der Simulation.
Evaluation• 600 Sekunden Laufzeit

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:
Visuelles Feedback beim Ausführen der Simulation.
Evaluation• 600 Sekunden Laufzeit• Berechnung der abgefahrenen/ gereinigten“ Fläche”

M. O. Mints & P. Neubert

21

VacuSim: Supervisor-Controller

Rendering
Der Controller basiert auf Code aus der Beispielwelt create.wbt:
Visuelles Feedback beim Ausführen der Simulation.
Evaluation• 600 Sekunden Laufzeit• Berechnung der abgefahrenen/ gereinigten“ Fläche”• Ausgabe:• Tabelle: Reinigungsfortschritt alle n Sekunden• Karte des abgefahreren Bereichs

M. O. Mints & P. Neubert

21

VacuSim: Supervisor Controller – Rendering

M. O. Mints & P. Neubert

22

Ergebnisse der Studierenden

Ergebniskarten

1

2

3

4

A

B

C
M. O. Mints & P. Neubert

23

Reinigungsfortschritt

Empty Apartmemnt

60
Alpha
Bravo
Echo
Foxtrot

Alpha
Bravo
Echo
Foxtrot
Charlie DrehCharlie Parallel
Charlie Wand

50

Cleaning progress in %Cleaning progress in %50

Apartment

60

40

30

20

10

40

30

20

10

0
0

100

200

300

time in Seconds

M. O. Mints & P. Neubert

400

500

600

0
0

100

200

300

400

500

600

time in Seconds

24

Lehrevaluation

Lehrevaluation – Eigene Einschätzung

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt• Studierende haben kreative Lösungen vorgestellt

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt• Studierende haben kreative Lösungen vorgestellt• Persönlicher Einstieg in ROS 2

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt• Studierende haben kreative Lösungen vorgestellt• Persönlicher Einstieg in ROS 2
Negativ

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt• Studierende haben kreative Lösungen vorgestellt• Persönlicher Einstieg in ROS 2
Negativ• Initial sehr viel Aufwand, einen niedrigschwelligen Einstieg zu gewährleisten

M. O. Mints & P. Neubert

25

Lehrevaluation – Eigene Einschätzung

Positiv• Thema Robotik mehr ins Licht gerückt• Studierende haben kreative Lösungen vorgestellt• Persönlicher Einstieg in ROS 2
Negativ• Initial sehr viel Aufwand, einen niedrigschwelligen Einstieg zu gewährleisten• Individuelle Hilfestellung oft benötigt

M. O. Mints & P. Neubert

25

Lehrevaluation – Feedback der Studierenden

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden• Aufgaben-Szenario hat zur Programmierung motiviert

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden• Aufgaben-Szenario hat zur Programmierung motiviert• Spannendster Kurs in diesem Semester

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden• Aufgaben-Szenario hat zur Programmierung motiviert• Spannendster Kurs in diesem Semester
Negativ

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden• Aufgaben-Szenario hat zur Programmierung motiviert• Spannendster Kurs in diesem Semester
Negativ• Sehr schwerer Einstieg:• Zum ersten mal ein OS installiert• Zum ersten mal Linux genutzt• Zum ersten mal Python programmiert

M. O. Mints & P. Neubert

26

Lehrevaluation – Feedback der Studierenden
Positiv• Interesse am Thema Robotik gefunden• Aufgaben-Szenario hat zur Programmierung motiviert• Spannendster Kurs in diesem Semester
Negativ• Sehr schwerer Einstieg:• Zum ersten mal ein OS installiert• Zum ersten mal Linux genutzt• Zum ersten mal Python programmiert• Kein Nutzen von ROS 2 im weiteren Studienverlauf

M. O. Mints & P. Neubert

26

FazitFazitM. O. Mints & P. Neubert

27

Fazit1. Steilere Lernkurve als erwartet

M. O. Mints & P. Neubert

27

Fazit1. Steilere Lernkurve als erwartet
2. Linux umgehen?
• Native Installation von ROS 2 undWebot auf Windows/MacOS?
• RoboStack, Fischer et al. [FVT+ 21]• Cloudlösung?

M. O. Mints & P. Neubert

27

Fazit1. Steilere Lernkurve als erwartet
2. Linux umgehen?
• Native Installation von ROS 2 undWebot auf Windows/MacOS?
• RoboStack, Fischer et al. [FVT+ 21]• Cloudlösung?

3. Erweiterung der Benchmark-Kriterien

Projekt Repositorya
a https://gitlab.uni-koblenz.de/intas/vacusim

M. O. Mints & P. Neubert

27

Fazit1. Steilere Lernkurve als erwartet
2. Linux umgehen?
• Native Installation von ROS 2 undWebot auf Windows/MacOS?
• RoboStack, Fischer et al. [FVT+ 21]• Cloudlösung?

Projekt Repositorya

3. Erweiterung der Benchmark-Kriteriena https://gitlab.uni-koblenz.de/intas/vacusim

Vielen Dank!

M. O. Mints & P. Neubert27

QuellenQuellen i
Fischer, Tobias ; Vollprecht, Wolf ; Traversaro, Silvio ; Yen, Sean ; Herrero,
Carlos ; Milford, Michael:
A RoboStack Tutorial: Using the Robot Operating System Alongside the Conda
and Jupyter Data Science Ecosystems.
In: IEEE Robotics and Automation Magazine (2021).
http://dx.doi.org/10.1109/MRA.2021.3128367. –DOI 10.1109/MRA.2021.3128367

Farley, Andrew ; Wang, Jie ; Marshall, Joshua A.:
How to pick a mobile robot simulator: A quantitative comparison of CoppeliaSim,
Gazebo, MORSE and Webots with a focus on accuracy of motion.
In: Simulation Modelling Practice and Theory 120 (2022), 102629.
http://dx.doi.org/https://doi.org/10.1016/j.simpat.2022.102629. –DOI https://doi.org/10.1016/j.simpat.2022.102629

M. O. Mints & P. Neubert