SLAM Mapping: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Danach kann dann eine Karte des Raumes erstellt werden. Hierfür kann dem Tutorial [https://www.waveshare.com/wiki/SLAM_Lidar_Mapping#: SLAM Lidar Mapping] gefolgt werden, und es können vier verschiedene Mapping-Algorithmen ausprobiert werden.
=='''Slam Karten Knoten aktivieren'''==
:Hier bei ist allerdings zu beachten das der im Tutorial gegebene Save Befehl abgeändert werden muss. Das jetbot_pro im Befehl muss auf jetracer_ros geändert werden, sodass der Befehle "cd catkin_ws/src/jetracer_ros/maps" lautet.
*Schalten Sie zunächst das Radar ein, sodass es sich normal dreht. Danch führen Sie den folgenden Befehl aus, um den Lidar-Knoten auf dem Roboter zu starten.
*<span style="color:red">Der Karosserieknoten und der Radarknoten werden beim Starten des Slam-Mapping-Knotens standardmäßig aktiviert. Schließen Sie daher bitte zuerst den Karosserieknoten und den Radarknoten des Roboters, um Konflikte und Fehler beim Starten des Slam-Mapping-Knotens zu vermeiden.</span>
roslaunch jetracer_ros slam.launch #Der Kartierungsalgorithmus gmapping wird als Standard genutzt.
[[Datei:JetRacer_SLAM_Node_Step01.png|Step01]]
*Führen Sie den folgenden Befehl in der virtuellen Maschine aus, um das Bildtool rviz zu starten und die Daten betrachten. Diese Startdatei startet auch den Gamepad-Fernsteuerungsknoten, das heißt das Sie den Kontroller mit der virtuellen Maschine verbinden müssen, bevor Sie den Befehl ausführen.
*Nach dem Start von rviz werden Radarinformationen, Kamerabilder, Kartendaten, TF-Koordinaten und andere Informationen angezeigt. Verwenden Sie einen Kontroller zur Steuerung der mechanischen Bewegung, um die Karte zu scannen.
roslaunch jetracer_ros view_slam.launch #Karte anzeigen
[[Datei:JetRacer_SLAM_Node_Step02.png|Step02]]
*Wenn bei der Anzeige der Karte der folgende Fehler auftritt, überprüfen Sie bitte, ob der Kontroller angeschlossen ist, wobei /dev/input/js0 der Input des Kontrollers ist.
[[Datei:JetRacer_SLAM_Node_Step03.png|Step03]]


===Slam Mapping Knoten aktivieren===
=='''Karte abspeichern'''==
===Karte abspeichern===
*Nachdem Sie die Karte gescannt haben, öffnen Sie ein neues Terminal im Roboter und führen Sie den folgenden Befehl aus, um die erstellte Kartendatei zu speichern.
===Verschiedene Algorithmen===
cd ~/catkin_ws/src/jetracer_ros/maps
rosrun map_server map_saver -f mymap
[[Datei:JetRacer_SLAM_Speichern_Step01.png|Step01]]
*Führen Sie den ls Befehl aus, um die gespeicherten Kartendatei anzuzeigen.
ls
[[Datei:JetRacer_SLAM_Speichern_Step02.png|Step02]]
*Dazu gehören: mymap.pgm sind die Kartendaten, mymap.yaml sind die Karteninformationen und savemap.sh ist das Skript zum Speichern der Karte. Sie können also auch dieses Skript ausführen, um die Karte zu speichern.
cd ~/catkin_ws/src/jetracer_ros/maps && ./savemap.sh
 
=='''Verschiedene Algorithmen'''==
*Das Programm unterstützt vier Kartierungsalgorithmen: gmapping, hector, karto und cartographer. Standardmäßig wird der gmapping-Algorithmus verwendet, und der entsprechende Mapping-Algorithmus kann auch über den Parameter map_type ausgewählt werden.
*Die folgenden Befehle könne zur Auswahl des jeweiligen map_type-Parameters genutzt werden.
roslaunch jetracer_ros slam.launch map_type:=gmapping #gmapping Algorithmus (Standard)
roslaunch jetracer_ros slam.launch map_type:=hector #hector Algorithmus
roslaunch jetracer_ros slam.launch map_type:=karto #karto Algorithmus
roslaunch jetracer_ros slam.launch map_type:=cartographer #cartographer Algorithmus
*Auf der Seite der virtuellen Maschine können Sie, wenn sie die Algorithmen gmapping, hector oder karto benutzt haben, den folgenden Befehl ausführen, um die Karte anzuzeigen
roslaunch jetracer_ros view_slam.launch #Karte anzeigen
*Wenn Sie den Algorithmus cartographer verwenden, ist die Konfiguration von rviz anders, Sie müssen den folgenden Befehl verwenden, um die Karte anzuzeigen.
roslaunch jetracer_ros view_slam.launch map_type:=cartographer #Display map
*Mapping-Effekt des Hector-Algorithmus.
[[Datei:JetRacer_SLAM_Algorithmen_Step01.png|Step01]]
*Mapping-Effekt des Karto-Algorithmus
[[Datei:JetRacer_SLAM_Algorithmen_Step02.png|Step02]]
*Mapping-Effekt des Cartographer-Algorithmus. Die grünen Punkte in der Abbildung sind Punktwolkendaten anstelle von Radardaten, und die blauen Punkte sind die Bewegungspfade des Fahrzeugs.
[[Datei:JetRacer_SLAM_Algorithmen_Step03.png|Step03]]
*<span style="color:red">Wenn Sie die Algorithmen gmapping, hector oder karto verwenden, um eine Karte zu erstellen, können Sie die Karte direkt über den Befehl map_server speichern; nachdem der Kartograph-Algorithmus eine Karte erstellt hat, müssen Sie den pbstream vor dem Speichern in eine Karte umwandeln, d. h. wir können das folgende Skript zum Speichern der Karte verwenden.</span>
cd ~/catkin_ws/src/jetracer_ros/maps && ./carto_savemap.sh
 
*Quelle: [[https://www.waveshare.com/wiki/SLAM_Lidar_Mapping#:# JetRacer_ROS_AI_Kit_Tutorial:_SLAM_Lidar_Mapping]]
 
 
 
----
→ zurück zum Hauptartikel: [[Kategorie:JetRacer_ROS_AI_Roboter| Jetracer Ros AI Roboter]]

Aktuelle Version vom 14. Dezember 2024, 16:34 Uhr

Slam Karten Knoten aktivieren

  • Schalten Sie zunächst das Radar ein, sodass es sich normal dreht. Danch führen Sie den folgenden Befehl aus, um den Lidar-Knoten auf dem Roboter zu starten.
  • Der Karosserieknoten und der Radarknoten werden beim Starten des Slam-Mapping-Knotens standardmäßig aktiviert. Schließen Sie daher bitte zuerst den Karosserieknoten und den Radarknoten des Roboters, um Konflikte und Fehler beim Starten des Slam-Mapping-Knotens zu vermeiden.
roslaunch jetracer_ros slam.launch #Der Kartierungsalgorithmus gmapping wird als Standard genutzt.

Step01

  • Führen Sie den folgenden Befehl in der virtuellen Maschine aus, um das Bildtool rviz zu starten und die Daten betrachten. Diese Startdatei startet auch den Gamepad-Fernsteuerungsknoten, das heißt das Sie den Kontroller mit der virtuellen Maschine verbinden müssen, bevor Sie den Befehl ausführen.
  • Nach dem Start von rviz werden Radarinformationen, Kamerabilder, Kartendaten, TF-Koordinaten und andere Informationen angezeigt. Verwenden Sie einen Kontroller zur Steuerung der mechanischen Bewegung, um die Karte zu scannen.
roslaunch jetracer_ros view_slam.launch #Karte anzeigen

Step02

  • Wenn bei der Anzeige der Karte der folgende Fehler auftritt, überprüfen Sie bitte, ob der Kontroller angeschlossen ist, wobei /dev/input/js0 der Input des Kontrollers ist.

Step03

Karte abspeichern

  • Nachdem Sie die Karte gescannt haben, öffnen Sie ein neues Terminal im Roboter und führen Sie den folgenden Befehl aus, um die erstellte Kartendatei zu speichern.
cd ~/catkin_ws/src/jetracer_ros/maps
rosrun map_server map_saver -f mymap

Step01

  • Führen Sie den ls Befehl aus, um die gespeicherten Kartendatei anzuzeigen.
ls

Step02

  • Dazu gehören: mymap.pgm sind die Kartendaten, mymap.yaml sind die Karteninformationen und savemap.sh ist das Skript zum Speichern der Karte. Sie können also auch dieses Skript ausführen, um die Karte zu speichern.
cd ~/catkin_ws/src/jetracer_ros/maps && ./savemap.sh

Verschiedene Algorithmen

  • Das Programm unterstützt vier Kartierungsalgorithmen: gmapping, hector, karto und cartographer. Standardmäßig wird der gmapping-Algorithmus verwendet, und der entsprechende Mapping-Algorithmus kann auch über den Parameter map_type ausgewählt werden.
  • Die folgenden Befehle könne zur Auswahl des jeweiligen map_type-Parameters genutzt werden.
roslaunch jetracer_ros slam.launch map_type:=gmapping #gmapping Algorithmus (Standard)
roslaunch jetracer_ros slam.launch map_type:=hector #hector Algorithmus 
roslaunch jetracer_ros slam.launch map_type:=karto #karto Algorithmus 
roslaunch jetracer_ros slam.launch map_type:=cartographer #cartographer Algorithmus 
  • Auf der Seite der virtuellen Maschine können Sie, wenn sie die Algorithmen gmapping, hector oder karto benutzt haben, den folgenden Befehl ausführen, um die Karte anzuzeigen
roslaunch jetracer_ros view_slam.launch #Karte anzeigen
  • Wenn Sie den Algorithmus cartographer verwenden, ist die Konfiguration von rviz anders, Sie müssen den folgenden Befehl verwenden, um die Karte anzuzeigen.
roslaunch jetracer_ros view_slam.launch map_type:=cartographer #Display map
  • Mapping-Effekt des Hector-Algorithmus.

Step01

  • Mapping-Effekt des Karto-Algorithmus

Step02

  • Mapping-Effekt des Cartographer-Algorithmus. Die grünen Punkte in der Abbildung sind Punktwolkendaten anstelle von Radardaten, und die blauen Punkte sind die Bewegungspfade des Fahrzeugs.

Step03

  • Wenn Sie die Algorithmen gmapping, hector oder karto verwenden, um eine Karte zu erstellen, können Sie die Karte direkt über den Befehl map_server speichern; nachdem der Kartograph-Algorithmus eine Karte erstellt hat, müssen Sie den pbstream vor dem Speichern in eine Karte umwandeln, d. h. wir können das folgende Skript zum Speichern der Karte verwenden.
cd ~/catkin_ws/src/jetracer_ros/maps && ./carto_savemap.sh



→ zurück zum Hauptartikel: