Darin steht unter 2.1 ich soll den Laser Scan Matcher csm installieren.
Aber dazu soll ich zusätzlich noch unter 3. slam_toolbox installieren.
Den Parametern zufolge hat aber die slam_toolbox Laser Scan Matching bereits eingebaut.
Zusätzlich noch ist die slam_toolbox anscheinend die go-to ROS2-SLAM library, und wird zb in nav2 benutzt.
Ihr ohmler kennt euch da sicherlich besser aus, weshalb wird csm benötigt, ist es besser als das Matching in der slam_toolbox?
die SLAM-Toolbox ist die Standardlösung für ROS2, daher haben wir sie auch für den Workshop ausgesucht. In der Dokumentation unter dem Punkt API sind die zwei Eingangsdaten der Toolbox beschrieben:
Eine Odometrieschätzung der Roboterpose, also dessen Position und Orientierung.
Einen LaserScan, wie man ihn von einem 2D Lidar bekommt.
Das ist auch am Anfang nochmal in der Workshopanleitung abgebildet:
Die Odometrie erhält man klassischerweise über das Beobachten der Radumdrehungen oder durch das Aufintegrieren der Beschleunigungswerte einer IMU. Da wir im Workshop nicht wussten, ob eure Roboter bereits eine eigene Odometrie Berechnung eingebaut haben, sind wir einen kleinen Umweg gegangen:
Wir haben den Lidar nicht nur als Quelle des LaserScans benutzt, sondern zusätzlich auch um die Odometrie zu generieren. Das ist die Aufgabe des ros2_laser_scan_matcher mit der csm Bibliothek. Über diesen Weg kann man die SLAM Toolbbox mit nur einem 2D Lidar ohne andere Eingangswerte betreiben. Wie du ganz richtig festgestellt hast, doppeln wir die Berechnung damit aber auch zu gewissen Teilen.
Probiert die Rad-Odometrie oder IMU-Odometrie gerne als Alternative aus und entscheidet, was für euch besser funktioniert. Wir haben die Rad-Odometrie z.B. auch in der neusten Version des edu_drive_ros2 Knotens eingebaut. Hier als Gedankenanstoß: Rad-Odometrie reagiert empfindlich auf durchdrehende Räder, ob das in unwegsamen Gelände gut funktioniert … ?
Viele Grüße
Hannes Duske
PS: Es ist übrigens nicht geplant, dass die SLAM-Toolbox eine eigene Lösung bereitstellen wird, um sie ohne Odometrie zu verwenden. Das hat einer der Haupt-Entwickler hier mal beschrieben.