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 es gemäß der offiziellen Anleitung.
Kompiliere das ROS-Paket aus /V2-ROS-SDK-service, das sich auf derselben Ebene wie src befindet:
Ausführen
Führe die folgenden Befehle aushome/username/V2_ROS_SDK aus, das sich auf derselben Ebene wie src befindet:
ROS-Topic-Schnittstellen
Schalte die Kamera vor dem Testen einer Schnittstelle ein und warte etwa 30 Sekunden, bis das integrierte Programm gestartet ist. Starte anschließend den ROS-SDK-Node.Lokalisierungspose empfangen
ROS empfängt fortlaufend die Wertex, y und theta der Kamera, veröffentlicht diese Werte sowie das aus theta umgerechnete Quaternion auf LxCamera_LocationPoseResult und überträgt die Pose über TF.
Lokalisierungsstatus empfangen
ROS empfängt den Lokalisierungsstatus der Kamera (true oder false) mit 1 Hz und veröffentlicht ihn als std_msgs::Bool auf LxCamera_LocationResult.
Kameraspeichernutzung empfangen
ROS empfängt das Speichernutzungsverhältnis der Kamera mit 2 Hz und veröffentlicht es alsstd_msgs::Float32 auf LxCamera_Capacity_Status.
Namen des fehlerhaften Moduls empfangen
ROS empfängt den Namen eines fehlerhaften Moduls von der Kamera und veröffentlicht ihn alsstd_msgs::String auf LxCamera_Module_Error.
Kartierungsstatus empfangen
Nach dem Start der Kartierung veröffentlicht ROS den Kartierungsstatus alsstd_msgs::Bool auf LxCamera_MappingState.
Kartierungsfortschritt empfangen
Nach dem Start der Kartierung veröffentlicht ROS den Kartierungsfortschritt (0–100) als std_msgs::Int32 auf LxCamera_Mapping_Progress.
Parameter setzen
Veröffentliche einestd_msgs/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/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.
Odometrie hochladen
- Veröffentliche
nav_msgs::Odometry-Daten auf/sim/odom(das Topic kann geändert werden).
Konturkarte herunterladen
- Veröffentliche eine
std_msgs/String-Nachricht aufLxCamera_DownloadMap. - Die Nachricht enthält einen absoluten Hostpfad und einen durch Komma getrennten Kartennamen. Der Kartenname ist der
.zip-Dateiname 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.
ZIP-Kartendatei hochladen (neu)
- Veröffentliche eine
std_msgs/String-Nachricht aufLxCamera_UploadMapZip. - Die Nachricht enthält den Pfad zum hochzuladenden Kartenarchiv, zum Beispiel
/home/fr1511b/map.zip. Verwende ein über die Kartendownload-Schnittstelle heruntergeladenes Archiv. - Wenn die Karte gefunden wird, sendet das SDK sie an die Kamera. Die Kamera entpackt sie nach
/home/fr1511b/hontai/map/.
Relokalisierung durchführen
- Veröffentliche
geometry_msgs::PoseWithCovarianceStamped-Daten aufLxCamera_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.
ROS-Service-Schnittstellen
Kartierung, Kartenwechsel, Kartendownload und Relokalisierung sind auch über ROS-Services verfügbar. Eine Serviceantworttrue bedeutet Erfolg, false bedeutet Fehler. Verwende für Vorgänge, die eine Bestätigung erfordern, bevorzugt die Service-Schnittstelle.
Verwende
rosservice call für die folgenden Befehle. Kartennamen dürfen nicht mit einer Zahl beginnen und höchstens 30 Zeichen lang sein.Karte erstellen
Servicename:/lx_localization_node/LxCamera_Mapping_srv
Servicedefinition:
Karten wechseln
Servicename:/lx_localization_node/LxCamera_SwitchMap_srv
Servicedefinition:
Karte herunterladen
Servicename:/lx_localization_node/LxCamera_DownloadMap_srv
Servicedefinition:
Relokalisierung durchführen
Servicename:/lx_localization_node/LxCamera_UploadReloc_srv
Servicedefinition:
Aktuellen Kartennamen abrufen
Servicename:/lx_localization_node/LxCamera_GetCurMapname_srv
Servicedefinition:
Aktuelle Kartenliste abrufen
Servicename:/lx_localization_node/LxCamera_GetMapList_srv
Servicedefinition:
Kartierung beenden (benutzerdefinierte Schnittstelle)
Servicename:/lx_localization_node/LxCamera_ExitMapping_srv
Servicedefinition:
Karte löschen
Servicename:/lx_localization_node/LxCamera_EraseMap_srv
Servicedefinition:
Heatmap herunterladen
Servicename:/lx_localization_node/LxCamera_DownloadMap_srv
Servicedefinition:
Inkrementelle Kartierung
Servicename:/lx_localization_node/LxCamera_IncMapping_srv
Servicedefinition: