Übersicht
Diese Seite beschreibt die ROS2-Topics und -Services, dielx_camera_ros im V2-Lokalisierungsmodul bereitstellt.
Kompilieren
Installiere die Qt5-Komponenten Core und Network. Die Installationsbefehle unterscheiden sich je nach Linux-Distribution. Das folgende Beispiel verwendet Ubuntu:libzip von der Downloadseite von libzip herunter und kompiliere ihn gemäß der offiziellen Anleitung.
Führe den folgenden Befehl aus /lx_camera_ros aus:
Ausführen
Kompiliere das Projekt nach Änderungen an der YAML-Konfigurationsdatei neu. Änderungen werden erst nach einer erneuten Kompilierung des Projekts wirksam.
ROS2-Topic-Schnittstellen
Schalte die Kamera vor dem Testen einer Schnittstelle ein, warte etwa 30 Sekunden und starte den ROS2-SDK-Node.Lokalisierungspose empfangen
ROS2 empfängt fortlaufend die Wertex, y und theta der Kamera, veröffentlicht die Werte sowie das aus theta umgerechnete Quaternion auf LxCamera_LocationPoseResult und überträgt die Pose über TF.
Lokalisierungsstatus empfangen
ROS2 empfängt den Lokalisierungsstatus der Kamera (true oder false) mit 1 Hz und veröffentlicht ihn als std_msgs::msg::Bool auf LxCamera_LocationResult.
Kameraspeichernutzung empfangen
ROS2 empfängt das Speichernutzungsverhältnis der Kamera mit 2 Hz und veröffentlicht es alsstd_msgs::msg::Float32 auf LxCamera_Capacity_Status.
Namen des fehlerhaften Moduls empfangen
ROS2 empfängt den Namen eines fehlerhaften Moduls von der Kamera und veröffentlicht ihn alsstd_msgs::msg::String auf LxCamera_Module_Error.
Kartierungsfortschritt empfangen
Nach dem Start der Kartierung veröffentlicht ROS2 den Fortschritt (0–100) als std_msgs::msg::Int32 auf LxCamera_Mapping_Progress.
Kartierungsstatus empfangen
Nach dem Start der Kartierung veröffentlicht ROS2 den Kartierungsstatus alsstd_msgs::msg::Bool auf LxCamera_MappingState.
Parameter setzen
Veröffentliche einestd_msgs::msg::String-Nachricht auf LxCamera_SetParam. Die Nachricht enthält neun durch Kommas getrennte Gleitkommawerte: x,y,z,yaw,pitch,roll,x,y,yaw. Die ersten sechs Werte definieren die Kamerapose, die letzten drei die LiDAR-Pose. Nach einer erfolgreichen Aktualisierung werden die entsprechenden Werte in den Abschnitten [Laser1] und [Camera1] von /home/fr1511b/hontai/params/config_install_FL21500HAF.ini aktualisiert.
Karten wechseln
Veröffentliche einestd_msgs::msg::String-Nachricht mit dem Namen einer fertiggestellten Karte auf LxCamera_SwitchMap. Aktualisiere die Weboberfläche der Kamera. Wenn sich der angezeigte Kartenname ändert, war der Wechsel erfolgreich.
Karte herunterladen
- Veröffentliche eine
std_msgs::msg::String-Nachricht aufLxCamera_DownloadMap. - Die Nachricht enthält zwei Felder:
save_path, einen absoluten Pfad auf dem Hostcomputer, undmapname, den.zip-Dateinamen einer fertiggestellten Karte auf der Kamera. - Nach einem erfolgreichen Download enthält der angegebene Hostpfad das Kartenarchiv. Entpacke es, um eine
PGM-Kartendatei und eineYAML-Konfigurationsdatei zu erhalten.
Odometrie hochladen
Veröffentlichenav_msgs::msg::Odometry-Daten auf /sim/odom (das Topic kann geändert werden).
Relokalisierung durchführen
- Veröffentliche Daten vom Typ
geometry_msgs::msg::PoseWithCovarianceStampedaufLxCamera_UploadReloc. - Die Pose enthält die LiDAR-Pose:
x,yundyaw. - Die Relokalisierung ist erfolgreich, wenn die in der Weboberfläche der Kamera angezeigte Position auf die gesendete Pose aktualisiert wird.
Quaternions sind eingeschränkt und dürfen nicht beliebig ausgefüllt werden. Verwende den Konverter von Euler- zu Quaternion-Werten, um einen WinkelEuler yawin Quaternionwertexyzwumzuwandeln.
Nachrichtenpräfixe
Der Hostcomputer kommuniziert über UDP mit der Kamera. Die ersten vier Bytes jeder Nachricht identifizieren den Datentyp der Schnittstelle:ROS2-Service-Schnittstellen
Kartierung, Kartenwechsel, Kartendownload und Relokalisierung sind auch über ROS2-Services verfügbar. Eine Serviceantworttrue bedeutet Erfolg, false bedeutet Fehler.
Verwende
ros2 service call für die folgenden Befehle. Kartennamen dürfen nicht mit einer Zahl beginnen und höchstens 30 Zeichen lang sein.Karte erstellen
Servicename:/LxCamera_Mapping_srv
Servicedefinition:
Karten wechseln
Servicename:/LxCamera_SwitchMap_srv
Servicedefinition:
Karte herunterladen
Servicename:/LxCamera_DownloadMap_srv
Servicedefinition:
Relokalisierung durchführen
Servicename:/LxCamera_UploadReloc_srv
Servicedefinition:
Aktuellen Kartennamen abrufen
Servicename:/LxCamera_GetCurMapname_srv
Servicedefinition:
Aktuelle Kartenliste abrufen
Servicename:/LxCamera_GetMapList_srv
Servicedefinition:
Kartierung beenden
Servicename:/LxCamera_ExitMapping_srv
Servicedefinition:
Karte löschen
Servicename:/LxCamera_EraseMap_srv
Servicedefinition:
Heatmap herunterladen
Servicename:/LxCamera_DownloadHeatMap_srv
Servicedefinition:
Inkrementelle Kartierung
Servicename:/LxCamera_IncMapping_srv
Servicedefinition: