Skip to content

Commit 45efde9

Browse files
committed
Add missing images
1 parent 11747d4 commit 45efde9

31 files changed

+99
-760
lines changed

07_ROS_Pakete.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import: https://github.com/liascript/CodeRunner
1919
| Parameter | Kursinformationen |
2020
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2121
| **Veranstaltung:** | `Softwareprojekt Robotik` |
22-
| **Semester** | `Wintersemester 2022/23` |
22+
| **Semester** | `Wintersemester 2023/24` |
2323
| **Hochschule:** | `Technische Universität Freiberg` |
2424
| **Inhalte:** | `Umsetzung von ROS Paketen` |
2525
| **Link auf GitHub:** | [https://github.com/TUBAF-IfI-LiaScript/VL_Softwareentwicklung/blob/master/07_ROS_Pakete.md](https://github.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/blob/master/07_ROS_Pakete.md) |

08_ROS_Kommunikation.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ import: https://github.com/liascript/CodeRunner
1414

1515
[![LiaScript](https://raw.githubusercontent.com/LiaScript/LiaScript/master/badges/course.svg)](https://liascript.github.io/course/?https://raw.githubusercontent.com/SebastianZug/VL_SoftwareprojektRobotik/master/08_ROS_Kommunikation.md#1)
1616

17-
# ROS2 Kommunikationsmethoden
17+
# ROS2 Kommunikation
1818

1919

2020
| Parameter | Kursinformationen |
2121
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2222
| **Veranstaltung:** | `Softwareprojekt Robotik` |
23-
| **Semester** | `Wintersemester 2022/23` |
23+
| **Semester** | `Wintersemester 2023/24` |
2424
| **Hochschule:** | `Technische Universität Freiberg` |
2525
| **Inhalte:** | `ROS Kommunikationsprinzipien` |
2626
| **Link auf GitHub:** | [https://github.com/TUBAF-IfI-LiaScript/VL_Softwareentwicklung/blob/master/08_ROS_Kommunkation.md](https://github.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/blob/master/08_ROS_Kommunkation.md) |
@@ -31,7 +31,7 @@ import: https://github.com/liascript/CodeRunner
3131
--------------------------------------------------------------------------------
3232

3333

34-
# Was ist eigentlich eine Middleware?
34+
## Was ist eigentlich eine Middleware?
3535

3636
{{0-1}}
3737
********************************************************************************
@@ -85,7 +85,7 @@ Der DDS Standard wurde durch verschiedene Unternehmen und Organisationen unter d
8585
{{2-3}}
8686
********************************************************************************
8787

88-
ROS2 hat als Default Lösung die Implementierung `rmw_fastrtps_cpp`, die von der Firma eProsima unter einer Appache 2.0 Lizenz verbreitet wird, integriert. Alternative Umsetzungen lassen sich anhand der unterstützten Hardware, des Overheads für den Nachrichtenaustausch bzw. anhand der Dauer für die Nachrichtenverbreitung abgrenzen. (vgl [A performance comparsion of OpenSplice and RTI implementations](https://www.researchgate.net/publication/271550363_Data_Distribution_Service_DDS_A_performance_comparison_of_OpenSplice_and_RTI_implementations)). Daher sieht ROS2 ein abstraktes Interface vor, dass ein Maximum an Austauschbarkeit gewährleisten soll.
88+
ROS2 hat als Default Lösung die Implementierung `rmw_fastrtps_cpp`, die von der Firma eProsima unter einer Apache 2.0 Lizenz verbreitet wird, integriert. Alternative Umsetzungen lassen sich anhand der unterstützten Hardware, des Overheads für den Nachrichtenaustausch bzw. anhand der Dauer für die Nachrichtenverbreitung abgrenzen. (vgl [A performance comparsion of OpenSplice and RTI implementations](https://www.researchgate.net/publication/271550363_Data_Distribution_Service_DDS_A_performance_comparison_of_OpenSplice_and_RTI_implementations)). Daher sieht ROS2 ein abstraktes Interface vor, dass ein Maximum an Austauschbarkeit gewährleisten soll.
8989

9090
vgl. https://index.ros.org/doc/ros2/Concepts/DDS-and-ROS-middleware-implementations/
9191

@@ -182,6 +182,7 @@ manipulieren. Eine Anleitung findet sich zum Beispiel unter [Link](https://index
182182
Eine Inspektion der Konfiguration der QoS Parameter ist mit
183183

184184
```
185+
ros2 run turtlesim turtle_teleop_key
185186
ros2 topic info /turtle1/cmd_vel --verbose
186187
```
187188

@@ -198,18 +199,18 @@ möglich.
198199
Das Konzept, dass der Publisher überhaupt kein Wissen darüber hat, wer der/die Subscriber sind generiert folgende Vorteile:
199200

200201
+ Es entkoppelt Subsysteme, die damit unabhängig von einander werden. Damit steigt die Skalierbarkeit des Systems und gleichzeitig die Handhabbarkeit.
201-
+ Die Abarbeitung erfolgt asynchron und ohne Kontrollflussübergabe. Der Knoten ist damit allein auf den eigenen Zustand fokussiert.
202-
+ Der Publisher zusätzlich zum Veröffentlichen nicht auch noch komplexe Zielinformationen angeben muss.
203-
+ Publisher und Subscriber können die Arbeit jederzeit einstellen. Aus rein Kommunikationstechnischen Gründen beeinflusst dies das System nicht.
204-
+ Publisher und Subscriber können eine spezifische Nachrichtenstruktur verwenden, die auf die Anwendung zugeschnitten ist.
202+
+ Die Abarbeitung erfolgt asynchron und ohne Kontrollflussübergabe.
203+
+ Der Publisher muss zum Veröffentlichen keine "komplexe Zielinformationen" angeben.
204+
+ Publisher und Subscriber können die Arbeit jederzeit einstellen.
205+
+ Publisher und Subscriber können eine spezifische Nachrichtenstruktur verwenden.
205206

206207
Auf der anderen Seite ergeben sich genau daraus auch die zentralen Nachteile:
207208

208209
+ Die Zustellung einer Nachricht kann unter Umständen nicht garantiert werden.
209210
+ Der Ausfall einer Komponente wird nicht zwangsläufig erkannt.
210211
+ Das Pub/Sub-Pattern skaliert gut für kleine Netzwerke mit einer geringen Anzahl von Publisher- und Subscriber-Knoten und geringem Nachrichtenvolumen. Mit zunehmender Anzahl von Knoten und Nachrichten steigt jedoch die Wahrscheinlichkeit von Instabilitäten,
211212

212-
ROS implementiert eine themenbasierte Registrierung (topic based), andere Pub/Sub Systeme eine parameterbasierte (content based).
213+
> ROS implementiert eine themenbasierte Registrierung (topic based), andere Pub/Sub Systeme eine parameterbasierte (content based).
213214
214215
![RoboterSystem](./image/08_ROS_Kommunikation/TurtlesSimMitKey.png)<!-- style="width: 80%; min-width: 420px; max-width: 800px;"-->
215216

@@ -222,9 +223,9 @@ Bisher haben wir über asynchrone Kommunikationsmechanismen gesprochen. Ein Publ
222223
+ Aktiviere die Kamera
223224
+ ...
224225

225-
In diesem Fall liegt eine Interaktion in Form eines Remote-Procedure-Calls (RPC) vor. Die Anfrage / Antwort erfolgt über einen Dienst, der durch ein Nachrichtenpaar definiert ist, eine für die Anfrage und eine für die Antwort. Ein bereitstellender ROS-Knoten bietet einen Dienst unter einem String-Namen an, und ein Client ruft den Dienst auf, indem er die Anforderungsnachricht sendet und in seiner Ausführung innehält und auf die Antwort wartet. Die Client-Bibliotheken stellen diese Interaktion dem Programmierer so dar, als wäre es ein Remote Procedure Call.
226+
In diesem Fall liegt eine Interaktion in Form eines Remote-Procedure-Calls (RPC) vor. Die Anfrage / Antwort erfolgt über einen Dienst, der durch ein Nachrichtenpaar definiert ist, eine für die Anfrage und eine für die Antwort. Ein bereitstellender ROS-Knoten bietet einen Dienst unter einem String-Namen an, und ein Client ruft den Dienst auf, indem er die Anforderungsnachricht sendet und in seiner Ausführung innehält und auf die Antwort wartet. Die Client-Bibliotheken stellen diese Interaktion dem Programmierer so dar, als wäre es ein [Remote Procedure Call](https://de.wikipedia.org/wiki/Remote_Procedure_Call).
226227

227-
Dafür sind 3 Schritte notwendig:
228+
Dafür sind 2 Schritte notwendig:
228229

229230
1. Ein Service wird über ein Service File definiert, dass analog zu den benutzerdefinierten Paketen die Struktur der auszutauschenden Daten beschreibt. Dabei wird sowohl die Struktur des Aufrufes, wie auch die Antwort des Services beschrieben. Dabei wird das gleiche Format wie bei den nutzerspezifischen Messages verwendet.
230231

09_Sensoren.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import: https://github.com/liascript/CodeRunner
1919
| Parameter | Kursinformationen |
2020
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2121
| **Veranstaltung:** | `Softwareprojekt Robotik` |
22-
| **Semester** | `Wintersemester 2021/22` |
22+
| **Semester** | `Wintersemester 2023/24` |
2323
| **Hochschule:** | `Technische Universität Freiberg` |
2424
| **Inhalte:** | `Überblick Sensorsysteme` |
2525
| **Link auf GitHub:** | [https://github.com/TUBAF-IfI-LiaScript/VL_Softwareentwicklung/blob/master/08_ROS_Kommunkation.md](https://github.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/blob/master/09_Sensoren.md) |
@@ -679,7 +679,7 @@ void loop()
679679
680680
Im Beispiel wird eine Intel Realsense 435 verwendet. Dieser Sensor implementiert das Active Stereo Verfahren [Link](https://www.intelrealsense.com/depth-camera-d435/).
681681
682-
Die Instellation der Treiber ist unter
682+
Die Installation der Treiber ist unter
683683
684684
https://index.ros.org/r/ros2_intel_realsense/
685685

0 commit comments

Comments
 (0)