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 seguendo le istruzioni ufficiali.
Compila il pacchetto ROS da /V2-ROS-SDK-service, che si trova allo stesso livello di src:
Esecuzione
Dahome/username/V2_ROS_SDK, che si trova allo stesso livello di src, esegui:
Interfacce dei topic ROS
Prima di testare un’interfaccia, accendi la camera e attendi circa 30 secondi che il programma integrato si avvii. Quindi avvia il nodo dell’SDK ROS.Ricevi la posa di localizzazione
ROS riceve continuamente i valorix, y e theta della camera, pubblica questi valori e il quaternione convertito da theta su LxCamera_LocationPoseResult e diffonde la posa tramite TF.
Ricevi lo stato della localizzazione
ROS riceve lo stato della localizzazione della camera (true o false) a 1 Hz e lo pubblica come std_msgs::Bool su LxCamera_LocationResult.
Ricevi l’utilizzo dello spazio di archiviazione della camera
ROS riceve il rapporto di utilizzo dello spazio di archiviazione della camera a 2 Hz e lo pubblica comestd_msgs::Float32 su LxCamera_Capacity_Status.
Ricevi il nome del modulo guasto
ROS riceve dalla camera il nome di un modulo guasto e lo pubblica comestd_msgs::String su LxCamera_Module_Error.
Ricevi lo stato della mappatura
Dopo l’avvio della mappatura, ROS pubblica lo stato della mappatura comestd_msgs::Bool su LxCamera_MappingState.
Ricevi l’avanzamento della mappatura
Dopo l’avvio della mappatura, ROS pubblica l’avanzamento della mappatura (0–100) come std_msgs::Int32 su LxCamera_Mapping_Progress.
Imposta i parametri
Pubblica un messaggiostd_msgs/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/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.
Carica l’odometria
- Pubblica i dati
nav_msgs::Odometrysu/sim/odom(il topic può essere cambiato).
Scarica la mappa di contorno
- Pubblica un messaggio
std_msgs/StringsuLxCamera_DownloadMap. - Il messaggio contiene un percorso host assoluto e un nome mappa, separati da una virgola. Il nome della mappa è 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 un file ZIP di mappa (nuovo)
- Pubblica un messaggio
std_msgs/StringsuLxCamera_UploadMapZip. - Il messaggio contiene il percorso dell’archivio della mappa da caricare, ad esempio
/home/fr1511b/map.zip. Usa un archivio scaricato tramite l’interfaccia di download delle mappe. - Se la mappa viene trovata, l’SDK la invia alla camera. La camera la estrae in
/home/fr1511b/hontai/map/.
Esegui la rilocalizzazione
- Pubblica i dati
geometry_msgs::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.
Interfacce dei servizi ROS
La mappatura, il cambio di mappa, il download delle mappe e la rilocalizzazione sono disponibili anche tramite i servizi ROS. Una risposta del serviziotrue indica il successo; false indica un errore. Per le operazioni che richiedono conferma, preferisci l’interfaccia del servizio.
Usa
rosservice 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:/lx_localization_node/LxCamera_Mapping_srv
Definizione del servizio:
Cambia mappa
Nome del servizio:/lx_localization_node/LxCamera_SwitchMap_srv
Definizione del servizio:
Scarica una mappa
Nome del servizio:/lx_localization_node/LxCamera_DownloadMap_srv
Definizione del servizio:
Esegui la rilocalizzazione
Nome del servizio:/lx_localization_node/LxCamera_UploadReloc_srv
Definizione del servizio:
Ottieni il nome della mappa corrente
Nome del servizio:/lx_localization_node/LxCamera_GetCurMapname_srv
Definizione del servizio:
Ottieni l’elenco delle mappe correnti
Nome del servizio:/lx_localization_node/LxCamera_GetMapList_srv
Definizione del servizio:
Esci dalla mappatura (interfaccia personalizzata)
Nome del servizio:/lx_localization_node/LxCamera_ExitMapping_srv
Definizione del servizio:
Elimina una mappa
Nome del servizio:/lx_localization_node/LxCamera_EraseMap_srv
Definizione del servizio:
Scarica una mappa termica
Nome del servizio:/lx_localization_node/LxCamera_DownloadMap_srv
Definizione del servizio:
Mappatura incrementale
Nome del servizio:/lx_localization_node/LxCamera_IncMapping_srv
Definizione del servizio: