Jetracer Kamera: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
:'''Kamera''' (Vll. Bild der Kamera)
:In diesem Tutorial: [https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_VIII:_Start_the_Camera_Node#: Start the Camera Node] wird beschrieben wie man die Kamera des JetRacers initial einschaltet und das aufgenommene Video entweder in RViz in der Virtualbox oder im Browser anschauen kann. Außerdem wird hier beschrieben wie die Kamera, anhand eines Python Skripts und eines beigelegten Schachbrettmusters, kalibriert werden kann. Für eine einfachere Kalibrierung kann aber auch das Schachbrett welches im Autonome Systeme Labor vorhanden ist benutzt werden. Hierfür muss dann lediglich die Größe des Brettes im Befehl, welcher die Kalibrierung startet, auf die neuen Werte angepasst werden.
== '''Kamera Node einschalten''' ==
== '''Kamera Node einschalten''' ==
*
*Öffnen sie ein Terminal auf dem Roboter und geben sie folgenden Befehl ein, um den CSI Kamera Knoten zu starten.
roslaunch jetracer csi_camera.launch
[[Datei:JetRacer_Kamera_Enable_Step01.png|Step 01]]
*Sobald der Kamera Knoten gestartet ist, können sie in der Virtuellen Maschine durch folgenden Befehl das "Image Viewing Interface" öffnen.
rosrun rqt_image_view rqt_image_view
[[Datei:JetRacer_Kamera_Enable_Step02.png|Step02]]
*Es kann zwischen zwei Moden ausgewählt werden, /csi_cam_0/image_raw und /csi_cam_0/image_raw/compressed. Sie stehen jeewils für rohe Daten und komprimierte Daten. Es ist besser den komprimierten Modus zu wählen, da dieser die benötigte Bandbreite reduziert.


== '''Video in RVIZ anschauen''' ==
== '''Video in RVIZ anschauen''' ==
*Öffnen Sie erneut ein Terminal in der virtuellen Maschine und führen Sie den Befehl rosrun rviz rviz oder rviz aus, um das RVIZ Programm zu starten.
[[Datei:JetRacer_Kamera_RVIZ_Step01.png|Step01]]
*Fügen Sie die Bild-Komponente hinzu, wählen Sie das entsprechende Thema /csi_cam_0/image_raw und wählen Sie die komprimierten Daten als Übertragungsart, um das Bild anzuzeigen.
[[Datei:JetRacer_Kamera_RVIZ_Step02.png|Step02]]
*Sie können die Auflösung und die Bildrate ändern, indem Sie die Startdatei jetbot_pro/launch/csi_camera.launch ändern. Beachten Sie, dass je höher die Auflösung, desto höher die Bildrate, desto größer die benötigte Bandbreite und desto leichter kann das Bild einfrieren.
*Geben Sie den folgenden Befehl im Terminal auf dem jetson nano ein, um die Auflösung und die Bildrate zu ändern.
sudo nano catkin_ws/src/jetbot_pro/launch/csi_camera.launch
[[Datei:JetRacer_Kamera_RVIZ_Step03.png|Step03]]


== '''Kamera kalibrieren''' ==
== '''Kamera kalibrieren''' ==
*Run the following command in the virtual machine to start the calibration image interface
*Geben sie den folgenden Befehl auf Seiten der virtuellen Maschine ein, um das Kalibrations Interface zu öffnen.
  rosrun camera_calibration cameracalibrator.py --size 5x7 --square 0.03 image:=/csi_cam_0/image_raw camera:=/csi_cam_0
  rosrun camera_calibration cameracalibrator.py --size 5x7 --square 0.03 image:=/csi_cam_0/image_raw camera:=/csi_cam_0
Among which:
*Hierbei stehen die Variablen für:
size: The number of intersections of black and white grids to calibrate the chessboard, this uses 5x7 intersections.
#size: Die Anzahl der Schwarzen und Weißen Kanten auf dem Brett, hier wäre es also ein 5x7 kariertes Brett.
square: the side length of the checkerboard, in meters.
#square: Die Seitenlänge des Schachbretts in Metern.
image and camera: Set the topic of images posted by the camera.
#image and camera: Der Modus in dem die Bilder gesendet werden.
*In order to obtain better calibration results, it is necessary to move the checkerboard to different positions of the image, especially the edge positions of the image. When the CALIBRATE button changes from gray to green, it means that enough data has been collected, you can click CALIBRATE to view the results.
*Hier kann auch das Schachbrett welches im Labor ist benutzt werden, dann müssen aber die size und square Werte im Befehl entsprechen angepasst werden.
[][]
*Um bessere Kalibrierungsergebnisse zu erhalten, ist es notwendig, das Schachbrett an verschiedene Positionen des Bildes zu bewegen, insbesondere an die Randpositionen des Bildes. Wenn die Schaltfläche CALIBRATE von grau auf grün wechselt, bedeutet dies, dass genügend Daten gesammelt wurden. Sie können auf CALIBRATE klicken, um die Ergebnisse anzuzeigen.
[[Datei:JetRacer_Kamera_Kalibrierung_Step01.png|Step01]] [[Bild vom großen Schachbrett]]


*Click the "CALIBRATE" button, the calibration program automatically calculates the calibration parameters, it takes a while, the interface may become gray and unresponsive, be careful not to close it and wait for a while.
*Klicken Sie auf die Schaltfläche „CALIBRATE“, das Kalibrierungsprogramm berechnet automatisch die Kalibrierungsparameter, es dauert eine Weile, die Benutzeroberfläche kann grau werden und nicht mehr reagieren, achten Sie darauf, sie nicht zu schließen und eine Weile zu warten.
[][]
[[Datei:JetRacer_Kamera_Kalibrierung_Step02.png|Step02]]


*After the calibration is completed, you can see the calibrated image through the graphical interface. By comparison, you can find that there is a deformation on the right side until a good calibration effect is obtained.
*Nach Abschluss der Kalibrierung können Sie das kalibrierte Bild über die grafische Oberfläche betrachten. Im Vergleich dazu können Sie feststellen, dass es auf der rechten Seite eine Verformung gibt, sodass ein guter Kalibrierungseffekt erreicht ist.
[][]
[[Datei:JetRacer_Kamera_Kalibrierung_Step03.png|Step03]]


*Click "SAVE" to save the calibration data to the temporary file of the virtual machine, click "COMMIT" to save the calibration file to the robot configuration file, the default directory is
*Klicken Sie auf „SAVE“, um die Kalibrierungsdaten in der temporären Datei der virtuellen Maschine zu speichern, klicken Sie auf „COMMIT“, um die Kalibrierungsdatei in der Roboterkonfigurationsdatei zu speichern; das Standardverzeichnis ist jetracer_ros/cfg/camera_celibratio/cam_640x480.yaml.
[][]
*Führen Sie nach dem Neustart des Kameraknotens den folgenden Befehl aus, um zu überprüfen, ob die Kalibrierungsparameter aktualisiert wurden.
*After restarting the camera node, run the following command to check that the calibration parameters have been updated.
  rostopic echo /camera_info
  rostopic echo /camera_info
[][]
[[Datei:JetRacer_Kamera_Kalibrierung_Step04.png|Step05]]
 
*RVIZ wird in Zukunft aber weiterhin das nicht kalibrierte Bild anzeigen, nur im Hintergrund ist es kalibriert.
 
*Quelle: [[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_VIII:_Start_the_Camera_Node# JetRacer_ROS_AI_Kit_Tutorial_VIII:_Start_the_Camera_Node]]


*[Note: At this time, the image viewed through image_view or RVIZ is still the original image of the camera, not the calibrated image. If the calibration image is displayed, it will be introduced in the OpenCV tutorial.]
----
→ zurück zum Hauptartikel: [[Kategorie:JetRacer_ROS_AI_Roboter| Jetracer Ros AI Roboter]]

Aktuelle Version vom 11. Dezember 2024, 09:33 Uhr

Kamera Node einschalten

  • Öffnen sie ein Terminal auf dem Roboter und geben sie folgenden Befehl ein, um den CSI Kamera Knoten zu starten.
roslaunch jetracer csi_camera.launch

Step 01

  • Sobald der Kamera Knoten gestartet ist, können sie in der Virtuellen Maschine durch folgenden Befehl das "Image Viewing Interface" öffnen.
rosrun rqt_image_view rqt_image_view

Step02

  • Es kann zwischen zwei Moden ausgewählt werden, /csi_cam_0/image_raw und /csi_cam_0/image_raw/compressed. Sie stehen jeewils für rohe Daten und komprimierte Daten. Es ist besser den komprimierten Modus zu wählen, da dieser die benötigte Bandbreite reduziert.

Video in RVIZ anschauen

  • Öffnen Sie erneut ein Terminal in der virtuellen Maschine und führen Sie den Befehl rosrun rviz rviz oder rviz aus, um das RVIZ Programm zu starten.

Step01

  • Fügen Sie die Bild-Komponente hinzu, wählen Sie das entsprechende Thema /csi_cam_0/image_raw und wählen Sie die komprimierten Daten als Übertragungsart, um das Bild anzuzeigen.

Step02

  • Sie können die Auflösung und die Bildrate ändern, indem Sie die Startdatei jetbot_pro/launch/csi_camera.launch ändern. Beachten Sie, dass je höher die Auflösung, desto höher die Bildrate, desto größer die benötigte Bandbreite und desto leichter kann das Bild einfrieren.
  • Geben Sie den folgenden Befehl im Terminal auf dem jetson nano ein, um die Auflösung und die Bildrate zu ändern.
sudo nano catkin_ws/src/jetbot_pro/launch/csi_camera.launch

Step03

Kamera kalibrieren

  • Geben sie den folgenden Befehl auf Seiten der virtuellen Maschine ein, um das Kalibrations Interface zu öffnen.
rosrun camera_calibration cameracalibrator.py --size 5x7 --square 0.03 image:=/csi_cam_0/image_raw camera:=/csi_cam_0
  • Hierbei stehen die Variablen für:
  1. size: Die Anzahl der Schwarzen und Weißen Kanten auf dem Brett, hier wäre es also ein 5x7 kariertes Brett.
  2. square: Die Seitenlänge des Schachbretts in Metern.
  3. image and camera: Der Modus in dem die Bilder gesendet werden.
  • Hier kann auch das Schachbrett welches im Labor ist benutzt werden, dann müssen aber die size und square Werte im Befehl entsprechen angepasst werden.
  • Um bessere Kalibrierungsergebnisse zu erhalten, ist es notwendig, das Schachbrett an verschiedene Positionen des Bildes zu bewegen, insbesondere an die Randpositionen des Bildes. Wenn die Schaltfläche CALIBRATE von grau auf grün wechselt, bedeutet dies, dass genügend Daten gesammelt wurden. Sie können auf CALIBRATE klicken, um die Ergebnisse anzuzeigen.

Step01 Bild vom großen Schachbrett

  • Klicken Sie auf die Schaltfläche „CALIBRATE“, das Kalibrierungsprogramm berechnet automatisch die Kalibrierungsparameter, es dauert eine Weile, die Benutzeroberfläche kann grau werden und nicht mehr reagieren, achten Sie darauf, sie nicht zu schließen und eine Weile zu warten.

Step02

  • Nach Abschluss der Kalibrierung können Sie das kalibrierte Bild über die grafische Oberfläche betrachten. Im Vergleich dazu können Sie feststellen, dass es auf der rechten Seite eine Verformung gibt, sodass ein guter Kalibrierungseffekt erreicht ist.

Step03

  • Klicken Sie auf „SAVE“, um die Kalibrierungsdaten in der temporären Datei der virtuellen Maschine zu speichern, klicken Sie auf „COMMIT“, um die Kalibrierungsdatei in der Roboterkonfigurationsdatei zu speichern; das Standardverzeichnis ist jetracer_ros/cfg/camera_celibratio/cam_640x480.yaml.
  • Führen Sie nach dem Neustart des Kameraknotens den folgenden Befehl aus, um zu überprüfen, ob die Kalibrierungsparameter aktualisiert wurden.
rostopic echo /camera_info

Step05

  • RVIZ wird in Zukunft aber weiterhin das nicht kalibrierte Bild anzeigen, nur im Hintergrund ist es kalibriert.

→ zurück zum Hauptartikel: