Jetracer Lidar: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
:'''LIDAR''' (Vll. Bild des LIDAR)
:In diesem Tutorial: [https://www.waveshare.com/wiki/Enable_the_Lidar_Node#: Enable the Lidar Node] wird beschrieben wie man den LIDAR des JetRacers initial einschaltet und dann überprüft ob Daten gesendet werden. 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.
: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.
== '''LIDAR Node einschalten''' ==
== '''LIDAR Node einschalten''' ==
*Firstly, you need to power on the lidar and make it rotate.
*Der Lidar sollte wenn er korrekt angeschlossen ist beim Hochfahren des Roboters beginnen zu rotieren. Wenn das der Fall ist können die folgenden Schritte durchgeführt werden.
*Run the following commands to enable the lidar node on the robot.
*Führen Sie den folgenden Befehl aus, um den Lidar-Knoten auf dem Roboter zu aktivieren.
  roslaunch jetracer lidar.launch
  roslaunch jetracer lidar.launch
[]
[[Datei:JetRacer_Lidar_Enable_Step01.png|Step01]]
*If the node can not be enabled, please press the RESET key on the expansion board, and reboot it.
*Wenn der Knoten nicht aktiviert werden kann, drücken Sie bitte die RESET-Taste auf dem "Expansion Board" und starten Sie es neu.
*If you want to run Is/dev, please check whether the expansion board is connected to Jetson Nano,and whether or not the ttyACM0 and ttyACM11 device is found. [ttyACM0 is for micro-controller communicationn, and ttyACM1 is for lidar communication.]
*Wenn Sie Is/dev ausführen, können sie überprüfen, ob das "Expansion Board" mit dem Jetson Nano verbunden ist und ob die Geräte ttyACM0 und ttyACM11 gefunden wurden. (ttyACM0 ist für die Kommunikation mit dem Mikrocontroller und ttyACM1 ist für die Lidar-Kommunikation).
   ls /dev
   ls /dev
[]
[[Datei:JetRacer_Lidar_Enable_Step02.png|Step02]]


== '''Daten in RVIZ einsehen''' ==
== '''Daten in RVIZ einsehen''' ==
*View radar data through the RVIZ tool in a virtual machine. Please enter the following command to open the RVIZ graphical tool interface.
*Die Radar Daten könne im Rviz Programm eingesehen werden. Dafür müssen sie zuerst den folgenden Befehl eingeben.
  rosrun rviz rviz
  rosrun rviz rviz
[]
[[Datei:JetRacer_Lidar_Rviz_Step01.png|Step01]]
*Click "Add" to add the LaserScan component, select the /scan topic for the Topic, and select Laser_frame for the Fixed Frame to see the radar data. The red points in the image are the points scanned by the radar.
*Klicken Sie auf „Add“, um die Komponente LaserScan hinzuzufügen, wählen Sie das Thema /scan für das Thema und Laser_frame für den festen Rahmen, um die Radardaten zu sehen. Die roten Punkte im Bild sind die vom Radar gescannten Punkte.
[]
[[Datei:JetRacer_Lidar_Rviz_Step02.png|Step02]]
*Click "Add" to add the TF component.
*Klicken sie auf "Add" um dann die TF Komponente hinzuzufügen.
[]
[[Datei:JetRacer_Lidar_Rviz_Step03.png|Step03]]
*TF zeigt zwei Koordinaten an, wobei base_footprint die Fahrgestellkoordinaten des Roboters sind und laser_frame die Radarkoordinaten.  Die Radarkoordinaten und die Fahrgestellkoordinaten sind entgegengesetzt.
[[Datei:JetRacer_Lidar_Rviz_Step04.png|Step04]]


== '''Daten analysieren''' ==
== '''Daten analysieren''' ==
*Führen Sie den folgenden Befehl aus, um den Datentyp des Radartopics/scan anzuzeigen.
rostopic type /scan
[[Datei:JetRacer_Lidar_Analysis_Step01.png|Step01]]
*Wie in der obigen Abbildung gezeigt, ist der Ausgabetyp sensor_msgs/LaserScan. Sie können den folgenden Befehl eingeben, um die detaillierte Nachrichtenstruktur von LaserScan anzuzeigen.
rosmsg show sensor_msgs/LaserScan
[[Datei:JetRacer_Lidar_Analysis_Step02.png|Step02]]
*Die Bezeichner stehen dabei für:
std_msgs/Header header            # Header ist eine Struktur, und enthält seq, stamp und frame_id
uint32 seq                  # bezieht sich auf die ID, die in der Reihenfolge der Abtastung zunimmt
time stamp                  # stamp enthält die Zeit für den Start des Scans und die Zeitdifferenz zum Start des Scans. Beachten Sie, dass der Scan von vorne gegen den Uhrzeigersinn beginnt.
string frame_id                    # frame_id ist der Name des gescannten Referenzsystems, der in ROS sehr wichtig ist. Die Nachricht wird an tf gebunden, um die Daten zu lesen.                             
float32 angle_min                  # Der Winkel, bei dem die Abtastung beginnen soll (rad)
float32 angle_max                  # Der Winkel, bei dem der Scan beendet werden soll (rad)
float32 angle_increment            # Der Winkel, um den bei jedem Scan vergrößert wird (rad)
float32 time_increment            # Messintervall (Sekunde)
float32 scan_time                  # Abfrageintervall (Sekunde)
float32 range_min                  # Mindestabstand (m)
float32 range_max                  # Maximalabstand (m)
float32[] ranges                  # Abstandsfeld (m), die Länge des Feldes ist gleich dem Abtastwinkel geteilt durch jedes Inkrement des Winkels
float32[] intensities              # geräteabhängig, Intensitätsfeld, gleiche Länge wie Bereiche
*Geben Sie die folgenden Befehle ein, um die Daten des Lidartopics "/scan“ anzuzeigen.
rostopic echo /scan
[[Datei:JetRacer_Lidar_Analysis_Step03.png|Step03]]
*Aus den Daten geht hervor, dass der Abtastwinkel -3,14 ~ 3,14 beträgt, d.h. ein Kreis von 360 Grad; der Radarabtastbereich beträgt 0,15m~12M. Die Bereichsdaten sind die Entfernungsdaten jedes Winkels, und die Länge des Arrays kann durch: (angle_max-angle_min)/angle_increment, in etwa angenähert werden.
*Der A1-Radarwinkel ist in der nachstehenden Abbildung dargestellt.Der erste Datenwinkel der Bereiche ist in der Abbildung 0 Grad (d.h. direkt vor dem Roboter), und der letzte Datenwert ist 360 Grad.
[[Datei:JetRacer_Lidar_Analysis_Step04.png|Step04]]


== '''Daten filtern''' ==
== '''Daten filtern''' ==
*From the above steps, we know the data format and radar data information sent by the radar, so we can choose to filter the unwanted parts.
*Anhand der obigen Schritte kennen wir das Datenformat und die vom Radar gesendeten Dateninformationen, so dass wir die unerwünschten Teile herausfiltern können.
*[Note: Please close the radar node first, otherwise an error will occur if you start the radar node multiple times.]
*<span style="color:red">Bitte schließen Sie zuerst den Radarknoten, da sonst ein Fehler auftritt, wenn Sie den Radarknoten mehrmals starten.</span>
*Enter the following command on the robot side to start the radar filter node.
*Geben Sie den folgenden Befehl auf der Roboterseite ein, um den Radar-Filterknoten zu starten.
  roslaunch jetracer laser_filter.launch        #Start the radar filter node
  roslaunch jetracer laser_filter.launch        #Startet den Radar Filter Knoten
[]
*Führen Sie auf der Seite der virtuellen Maschine den folgenden Befehl aus, um die grafische Oberfläche des RVIZ-Tools zu öffnen.
*Run the following command on the virtual machine side to open the RVIZ graphical tool interface.
  rosrun rviz rviz
  rosrun rviz rviz
[]
*Fügen Sie die Komponente LaserScan hinzu, wählen Sie das Thema /filteredscan, wählen Sie den festen Rahmen base_footprint; fügen Sie die Komponente TF hinzu, um die Koordinaten des Roboterchassis anzuzeigen; die roten Punkte im Bild sind die vom Radar gescannten Punkte. Zu diesem Zeitpunkt kann man feststellen, dass die Radardaten nur die erste Hälfte darstellen und die allgemeinen Daten dahinter herausgefiltert werden.
*Add LaserScan component, Topic select /filteredscan topic, Fixed Frame select base_footprint; add TF component to display the coordinates of the robot chassis; the red points in the image are the points scanned by the radar. At this time, it can be found that the radar data is only the first half, and the general data behind is filtered out.
[[Datei:JetRacer_Lidar_Filter_Step01.png|Step01]]
[]
*Führen Sie die folgenden Befehle aus, um das "Parameter Reconfigure Interface" zu aktivieren.
*Run the following commands to enable the reconfigure parameters interface.
   rosrun rqt_reconfigure rqt_reconfigure     
   rosrun rqt_reconfigure rqt_reconfigure     
[]
[[Datei:JetRacer_Lidar_Filter_Step02.png|Step02]]
*Among which:
*Die Bezeichner stehen dabei für:
#laserAngle : Set the effective angle range to detect the angle in front of the robot
#laserAngle : Stellen Sie den effektiven Winkelbereich ein, um den Winkel vor dem Roboter zu erkennen
#distance: Set the effective distance, data beyond this distance will be filtered
#distance: Legen Sie den effektiven Abstand fest, Daten außerhalb dieses Abstands werden gefiltert.
*Drag the slider to adjust the parameters, and you can find that the red dot displayed by the radar also changes.
*Ziehen Sie den Schieberegler, um die Parameter anzupassen, und Sie werden feststellen, dass sich auch der vom Radar angezeigte rote Punkt ändert.
 
*Quelle: [[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_%E2%85%A8:_Enable_the_Lidar_Node# JetRacer_ROS_AI_Kit_Tutorial_IX:_Enable_The_Lidar_Node]]
 
 
 
----
→ zurück zum Hauptartikel: [[Kategorie:JetRacer_ROS_AI_Roboter| Jetracer Ros AI Roboter]]

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

LIDAR Node einschalten

  • Der Lidar sollte wenn er korrekt angeschlossen ist beim Hochfahren des Roboters beginnen zu rotieren. Wenn das der Fall ist können die folgenden Schritte durchgeführt werden.
  • Führen Sie den folgenden Befehl aus, um den Lidar-Knoten auf dem Roboter zu aktivieren.
roslaunch jetracer lidar.launch

Step01

  • Wenn der Knoten nicht aktiviert werden kann, drücken Sie bitte die RESET-Taste auf dem "Expansion Board" und starten Sie es neu.
  • Wenn Sie Is/dev ausführen, können sie überprüfen, ob das "Expansion Board" mit dem Jetson Nano verbunden ist und ob die Geräte ttyACM0 und ttyACM11 gefunden wurden. (ttyACM0 ist für die Kommunikation mit dem Mikrocontroller und ttyACM1 ist für die Lidar-Kommunikation).
 ls /dev

Step02

Daten in RVIZ einsehen

  • Die Radar Daten könne im Rviz Programm eingesehen werden. Dafür müssen sie zuerst den folgenden Befehl eingeben.
rosrun rviz rviz

Step01

  • Klicken Sie auf „Add“, um die Komponente LaserScan hinzuzufügen, wählen Sie das Thema /scan für das Thema und Laser_frame für den festen Rahmen, um die Radardaten zu sehen. Die roten Punkte im Bild sind die vom Radar gescannten Punkte.

Step02

  • Klicken sie auf "Add" um dann die TF Komponente hinzuzufügen.

Step03

  • TF zeigt zwei Koordinaten an, wobei base_footprint die Fahrgestellkoordinaten des Roboters sind und laser_frame die Radarkoordinaten. Die Radarkoordinaten und die Fahrgestellkoordinaten sind entgegengesetzt.

Step04

Daten analysieren

  • Führen Sie den folgenden Befehl aus, um den Datentyp des Radartopics/scan anzuzeigen.
rostopic type /scan

Step01

  • Wie in der obigen Abbildung gezeigt, ist der Ausgabetyp sensor_msgs/LaserScan. Sie können den folgenden Befehl eingeben, um die detaillierte Nachrichtenstruktur von LaserScan anzuzeigen.
rosmsg show sensor_msgs/LaserScan

Step02

  • Die Bezeichner stehen dabei für:
std_msgs/Header header             # Header ist eine Struktur, und enthält seq, stamp und frame_id
uint32 seq                   # bezieht sich auf die ID, die in der Reihenfolge der Abtastung zunimmt
time stamp                   # stamp enthält die Zeit für den Start des Scans und die Zeitdifferenz zum Start des Scans. Beachten Sie, dass der Scan von vorne gegen den Uhrzeigersinn beginnt.
string frame_id                    # frame_id ist der Name des gescannten Referenzsystems, der in ROS sehr wichtig ist. Die Nachricht wird an tf gebunden, um die Daten zu lesen.                               
float32 angle_min                  # Der Winkel, bei dem die Abtastung beginnen soll (rad)
float32 angle_max                  # Der Winkel, bei dem der Scan beendet werden soll (rad)
float32 angle_increment            # Der Winkel, um den bei jedem Scan vergrößert wird (rad)
float32 time_increment             # Messintervall (Sekunde)
float32 scan_time                  # Abfrageintervall (Sekunde)
float32 range_min                  # Mindestabstand (m)
float32 range_max                  # Maximalabstand (m)
float32[] ranges                   # Abstandsfeld (m), die Länge des Feldes ist gleich dem Abtastwinkel geteilt durch jedes Inkrement des Winkels
float32[] intensities              # geräteabhängig, Intensitätsfeld, gleiche Länge wie Bereiche
  • Geben Sie die folgenden Befehle ein, um die Daten des Lidartopics "/scan“ anzuzeigen.
rostopic echo /scan

Step03

  • Aus den Daten geht hervor, dass der Abtastwinkel -3,14 ~ 3,14 beträgt, d.h. ein Kreis von 360 Grad; der Radarabtastbereich beträgt 0,15m~12M. Die Bereichsdaten sind die Entfernungsdaten jedes Winkels, und die Länge des Arrays kann durch: (angle_max-angle_min)/angle_increment, in etwa angenähert werden.
  • Der A1-Radarwinkel ist in der nachstehenden Abbildung dargestellt.Der erste Datenwinkel der Bereiche ist in der Abbildung 0 Grad (d.h. direkt vor dem Roboter), und der letzte Datenwert ist 360 Grad.

Step04

Daten filtern

  • Anhand der obigen Schritte kennen wir das Datenformat und die vom Radar gesendeten Dateninformationen, so dass wir die unerwünschten Teile herausfiltern können.
  • Bitte schließen Sie zuerst den Radarknoten, da sonst ein Fehler auftritt, wenn Sie den Radarknoten mehrmals starten.
  • Geben Sie den folgenden Befehl auf der Roboterseite ein, um den Radar-Filterknoten zu starten.
roslaunch jetracer laser_filter.launch        #Startet den Radar Filter Knoten
  • Führen Sie auf der Seite der virtuellen Maschine den folgenden Befehl aus, um die grafische Oberfläche des RVIZ-Tools zu öffnen.
rosrun rviz rviz
  • Fügen Sie die Komponente LaserScan hinzu, wählen Sie das Thema /filteredscan, wählen Sie den festen Rahmen base_footprint; fügen Sie die Komponente TF hinzu, um die Koordinaten des Roboterchassis anzuzeigen; die roten Punkte im Bild sind die vom Radar gescannten Punkte. Zu diesem Zeitpunkt kann man feststellen, dass die Radardaten nur die erste Hälfte darstellen und die allgemeinen Daten dahinter herausgefiltert werden.

Step01

  • Führen Sie die folgenden Befehle aus, um das "Parameter Reconfigure Interface" zu aktivieren.
 rosrun rqt_reconfigure rqt_reconfigure    

Step02

  • Die Bezeichner stehen dabei für:
  1. laserAngle : Stellen Sie den effektiven Winkelbereich ein, um den Winkel vor dem Roboter zu erkennen
  2. distance: Legen Sie den effektiven Abstand fest, Daten außerhalb dieses Abstands werden gefiltert.
  • Ziehen Sie den Schieberegler, um die Parameter anzupassen, und Sie werden feststellen, dass sich auch der vom Radar angezeigte rote Punkt ändert.



→ zurück zum Hauptartikel: