You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Hochschule:**|`Technische Universität Freiberg`|
24
24
|**Inhalte:**|`Umsetzung von ROS Paketen`|
25
25
|**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)|
|**Hochschule:**|`Technische Universität Freiberg`|
25
25
|**Inhalte:**|`ROS Kommunikationsprinzipien`|
26
26
|**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)|
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.
@@ -182,6 +182,7 @@ manipulieren. Eine Anleitung findet sich zum Beispiel unter [Link](https://index
182
182
Eine Inspektion der Konfiguration der QoS Parameter ist mit
183
183
184
184
```
185
+
ros2 run turtlesim turtle_teleop_key
185
186
ros2 topic info /turtle1/cmd_vel --verbose
186
187
```
187
188
@@ -198,18 +199,18 @@ möglich.
198
199
Das Konzept, dass der Publisher überhaupt kein Wissen darüber hat, wer der/die Subscriber sind generiert folgende Vorteile:
199
200
200
201
+ 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.
205
206
206
207
Auf der anderen Seite ergeben sich genau daraus auch die zentralen Nachteile:
207
208
208
209
+ Die Zustellung einer Nachricht kann unter Umständen nicht garantiert werden.
209
210
+ Der Ausfall einer Komponente wird nicht zwangsläufig erkannt.
210
211
+ 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,
211
212
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).
@@ -222,9 +223,9 @@ Bisher haben wir über asynchrone Kommunikationsmechanismen gesprochen. Ein Publ
222
223
+ Aktiviere die Kamera
223
224
+ ...
224
225
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).
226
227
227
-
Dafür sind 3 Schritte notwendig:
228
+
Dafür sind 2 Schritte notwendig:
228
229
229
230
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.
|**Hochschule:**|`Technische Universität Freiberg`|
24
24
|**Inhalte:**|`Überblick Sensorsysteme`|
25
25
|**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()
679
679
680
680
Im Beispiel wird eine Intel Realsense 435 verwendet. Dieser Sensor implementiert das Active Stereo Verfahren [Link](https://www.intelrealsense.com/depth-camera-d435/).
0 commit comments