Panoramica
Questa pagina descrive i topic e i servizi ROS2 forniti dalx_camera_ros nel modulo di localizzazione V2.
Compilazione
Installa i componenti Qt5 Core e Network. I comandi di installazione variano in base alla distribuzione Linux; l’esempio seguente usa Ubuntu:libzip dalla pagina di download di libzip e compilalo seguendo le istruzioni ufficiali.
Esegui il comando seguente da /lx_camera_ros:
Esecuzione
Ricompila dopo aver modificato il file di configurazione YAML. Le modifiche non diventano effettive finché il progetto non viene ricompilato.
Interfacce dei topic ROS2
Prima di testare un’interfaccia, accendi la camera, attendi circa 30 secondi e avvia il nodo dell’SDK ROS2.Ricevi la posa di localizzazione
ROS2 riceve continuamente i valorix, y e theta della camera, pubblica i valori e il quaternione convertito da theta su LxCamera_LocationPoseResult e diffonde la posa tramite TF.
Ricevi lo stato della localizzazione
ROS2 riceve lo stato della localizzazione della camera (true o false) a 1 Hz e lo pubblica come std_msgs::msg::Bool su LxCamera_LocationResult.
Ricevi l’utilizzo dello spazio di archiviazione della camera
ROS2 riceve il rapporto di utilizzo dello spazio di archiviazione della camera a 2 Hz e lo pubblica comestd_msgs::msg::Float32 su LxCamera_Capacity_Status.
Ricevi il nome del modulo guasto
ROS2 riceve dalla camera il nome di un modulo guasto e lo pubblica comestd_msgs::msg::String su LxCamera_Module_Error.
Ricevi l’avanzamento della mappatura
Dopo l’avvio della mappatura, ROS2 pubblica l’avanzamento (0–100) come std_msgs::msg::Int32 su LxCamera_Mapping_Progress.
Ricevi lo stato della mappatura
Dopo l’avvio della mappatura, ROS2 pubblica lo stato della mappatura comestd_msgs::msg::Bool su LxCamera_MappingState.
Imposta i parametri
Pubblica un messaggiostd_msgs::msg::String su LxCamera_SetParam. Il messaggio contiene nove valori in virgola mobile separati da virgole: x,y,z,yaw,pitch,roll,x,y,yaw. I primi sei valori definiscono la posa della camera; gli ultimi tre definiscono la posa del LiDAR. Dopo un aggiornamento riuscito, i valori corrispondenti nelle sezioni [Laser1] e [Camera1] di /home/fr1511b/hontai/params/config_install_FL21500HAF.ini vengono aggiornati.
Cambia mappa
Pubblica un messaggiostd_msgs::msg::String contenente il nome di una mappa completata su LxCamera_SwitchMap. Aggiorna l’interfaccia web della camera. Se il nome della mappa visualizzato cambia, il cambio è riuscito.
Scarica una mappa
- Pubblica un messaggio
std_msgs::msg::StringsuLxCamera_DownloadMap. - Il messaggio contiene due campi:
save_path, un percorso assoluto sul computer host, emapname, il nome del file.zipdi una mappa completata sulla camera. - Dopo un download riuscito, il percorso host specificato contiene l’archivio della mappa. Estrailo per ottenere un file di mappa
PGMe un file di configurazioneYAML.
Carica l’odometria
Pubblica i datinav_msgs::msg::Odometry su /sim/odom (il topic può essere cambiato).
Esegui la rilocalizzazione
- Pubblica i dati
geometry_msgs::msg::PoseWithCovarianceStampedsuLxCamera_UploadReloc. - La posa contiene la posa del LiDAR:
x,yeyaw. - La rilocalizzazione riesce quando la posizione mostrata nell’interfaccia web della camera si aggiorna alla posa inviata.
I quaternioni sono vincolati e non devono essere compilati arbitrariamente. Usa il convertitore da Eulero a quaternione per convertire un angoloEuler yawnei valori del quaternionexyzw.
Prefissi dei tipi di messaggio
Il computer host comunica con la camera tramite UDP. I primi quattro byte di ogni messaggio identificano il tipo di dati dell’interfaccia:Interfacce dei servizi ROS2
La mappatura, il cambio di mappa, il download delle mappe e la rilocalizzazione sono disponibili anche tramite i servizi ROS2. Una risposta del serviziotrue indica il successo; false indica un errore.
Usa
ros2 service call per i comandi seguenti. I nomi delle mappe non devono iniziare con un numero e non possono superare i 30 caratteri.Crea una mappa
Nome del servizio:/LxCamera_Mapping_srv
Definizione del servizio:
Cambia mappa
Nome del servizio:/LxCamera_SwitchMap_srv
Definizione del servizio:
Scarica una mappa
Nome del servizio:/LxCamera_DownloadMap_srv
Definizione del servizio:
Esegui la rilocalizzazione
Nome del servizio:/LxCamera_UploadReloc_srv
Definizione del servizio:
Ottieni il nome della mappa corrente
Nome del servizio:/LxCamera_GetCurMapname_srv
Definizione del servizio:
Ottieni l’elenco delle mappe correnti
Nome del servizio:/LxCamera_GetMapList_srv
Definizione del servizio:
Esci dalla mappatura
Nome del servizio:/LxCamera_ExitMapping_srv
Definizione del servizio:
Elimina una mappa
Nome del servizio:/LxCamera_EraseMap_srv
Definizione del servizio:
Scarica una mappa termica
Nome del servizio:/LxCamera_DownloadHeatMap_srv
Definizione del servizio:
Mappatura incrementale
Nome del servizio:/LxCamera_IncMapping_srv
Definizione del servizio: