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
comment: In dieser Vorlesungen werden die Schichten einer Roboterarchitektur adressiert.
8
8
narrator: Deutsch Female
@@ -630,7 +630,16 @@ Im folgenden soll dies Anhand der Detektion von
630
630
631
631
## Abstraktion
632
632
633
-
> Have to be extended!
633
+
Während der Abstraktion werden die Rohdaten im Hinblick auf relevante Aspekte segmentiert und vorverarbeitet. Beispiele dafür sind die
634
+
635
+
+ Extraktion von höherabstrakten Linien, Ebenen, usw. aus Laserscans oder Punktwolken oder Gesichtern in Bildern
636
+
+ Kategorisierung von Situationen (Form des Untergrundes anhand von Beschleunigungsdaten, Einparkhilfen beim Fahrzeug (grün, gelb, rot))
637
+
+ Identifikation von Anomalien
638
+
+ ...
639
+
640
+
Das ganze fügt sich dann ein in die allgemeine Verarbeitungskette von Daten, die
641
+
die Abbildung von Rohdaten auf Informationen, Features und letztendlich auf Entscheidungen realisiert. Dabei beruht dieser Fluß nicht auf den Daten eines
642
+
einzigen Sensors sondern kombiniert verschiedene (multimodale) Inputs.
Eine knappe Einführung in die Grundlagen der Datenfusion folgt in der kommenden Veranstaltung, eine Vertiefung im Sommersemester.
654
+
655
+
## Anwendung einer Rohdatenverarbeitung in ROS
656
+
657
+
> __Achtung:__ Die nachfolgende Erläuterung bezieht sich auf die ROS1 Implementierung. Unter ROS2 ist die Implementierung der entsprechenden Pakete noch nicht abgeschlosssen.
_Darstellung verschiedener Koordinatensysteme innerhalb eines Roboterszenarios (Autor Bo im ROS Forum unter [answers.ros.org](https://answers.ros.org/question/265846/how-to-build-tf-topic-frame-tree-for-hector_slam-or-gmapping/))_
668
+
669
+
`tf` spannt einen Baum aus Transformationen auf, innerhalb derer diese automatisiert aufgelöst werden können. Grundlage dieser Lösung ist die Integration einer Frame-ID in jeden Datensatz. Jede `sensor_msgs` enthält entsprechend einen header, der folgendermaßen strukturiert ist.
670
+
671
+
```text std_msgs/Header Message
672
+
# sequence ID: consecutively increasing ID
673
+
uint32 seq
674
+
#Two-integer timestamp that is expressed as:
675
+
# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')
676
+
# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')
677
+
# time-handling sugar is provided by the client library
678
+
time stamp
679
+
#Frame this data is associated with
680
+
string frame_id
681
+
```
682
+
683
+
Dabei werden die Relationen zwischen den Koordinatensystemen über eigene Publisher und Listener ausgetauscht. Am Ende bildet jede Applikation eine Baumstruktur aus den Transformationen zwischen den Frames. Isolierte Frames können entsprechend nicht in Verbindung mit anderen gesetzt werden.
_Beispielhafte Darstellung des tf-Trees eines ROS-Turtle Szenarios, das zwei Turtle umfasst. Die individuellen Posen werden jeweils gegenüber den globalen `world`-Frame beschrieben._
688
+
689
+
Nehmen wir nun an, dass wir die Positionsinformation von `turtle2` im Koordindatensystem von `turtle1` darstellen wollen, um zum Beispiel eine Richtungsangabe zu bestimmen. Dafür subscrbieren wir uns für deren
Die aktuell größte Einschränkung des ROS tf-Konzeptes ist das Fehlen einer Unsicherheitsdarstellung für die Relationen.
748
+
749
+
__laser-filters__
750
+
751
+
Der primäre Inhalt des `laser_filters`-Pakets [(Link)](http://wiki.ros.org/laser_filters) besteht aus einer Reihe von Filtern und Transformationsalgorithem für Laserscanner-Rohdaten. Der Anwender konfiguriert dabei die Parameter der Filter in einem Beschreibungsfile, die eigentliche Ausführung übernehmen zwei Knoten, die dann mehrere Filter nacheinander ausführen. Der `scan_to_scan_filter_chain` Knoten wendet eine Reihe von Filtern auf einen `sensor_msgs/LaserScan` an. Die `scan_to_cloud_filter_chain` implementiert zunächst eine Reihe von Filtern auf einen `sensor_msgs/LaserScan` an, wandelt ihn in einen `sensor_msgs/PointCloud` um und wendet dann eine Reihe von Filtern auf den `sensor_msgs/PointCloud` an.
+ Implementieren Sie eine exponentielle Glättung für den Durchschnitt im Beispiel zu gleitenden Mittelwert.
829
+
+ Nutzen Sie Bag-Files, die Sie zum Beispiel unter folgendem [Link](https://code.google.com/archive/p/tu-darmstadt-ros-pkg/downloads) finden, um eine Toolchain für die Filterung von Messdaten zu implementieren. Experimentieren Sie mit den verschiedenen Filtern.
0 commit comments