SLAM Mapping: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
==='''Slam Karten Knoten aktivieren'''===
=='''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.
*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>
*<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>
Zeile 11: Zeile 11:
[[Datei:JetRacer_SLAM_Node_Step03.png|Step03]]
[[Datei:JetRacer_SLAM_Node_Step03.png|Step03]]


==='''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.
*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
  cd ~/catkin_ws/src/jetracer_ros/maps
Zeile 22: Zeile 22:
  cd ~/catkin_ws/src/jetracer_ros/maps && ./savemap.sh
  cd ~/catkin_ws/src/jetracer_ros/maps && ./savemap.sh


==='''Verschiedene Algorithmen'''===
=='''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.
*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.
*Die folgenden Befehle könne zur Auswahl des jeweiligen map_type-Parameters genutzt werden.

Version vom 14. Dezember 2024, 16:32 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