Descripción general
Esta página describe los tópicos y servicios de ROS2 que proporcionalx_camera_ros en el módulo de localización V2.
Compilación
Instala los componentes Qt5 Core y Network. Los comandos de instalación varían según la distribución de Linux; el siguiente ejemplo usa Ubuntu:libzip desde la página de descargas de libzip y compílalo según las instrucciones oficiales.
Ejecuta el siguiente comando desde /lx_camera_ros:
Ejecución
Vuelve a compilar después de cambiar el archivo de configuración YAML. Los cambios no se aplican hasta que se vuelve a compilar el proyecto.
Interfaces de tópicos de ROS2
Antes de probar una interfaz, enciende la cámara, espera unos 30 segundos e inicia el nodo del SDK de ROS2.Recibe la pose de localización
ROS2 recibe continuamente los valoresx, y y theta de la cámara, publica los valores y el cuaternión convertido a partir de theta en LxCamera_LocationPoseResult y difunde la pose mediante TF.
Recibe el estado de localización
ROS2 recibe el estado de localización de la cámara (true o false) a 1 Hz y lo publica como std_msgs::msg::Bool en LxCamera_LocationResult.
Recibe el uso de almacenamiento de la cámara
ROS2 recibe la proporción de uso del almacenamiento de la cámara a 2 Hz y la publica comostd_msgs::msg::Float32 en LxCamera_Capacity_Status.
Recibe el nombre del módulo defectuoso
ROS2 recibe de la cámara el nombre de un módulo defectuoso y lo publica comostd_msgs::msg::String en LxCamera_Module_Error.
Recibe el progreso del mapeo
Después de iniciar el mapeo, ROS2 publica el progreso (0–100) como std_msgs::msg::Int32 en LxCamera_Mapping_Progress.
Recibe el estado del mapeo
Después de iniciar el mapeo, ROS2 publica su estado comostd_msgs::msg::Bool en LxCamera_MappingState.
Establece los parámetros
Publica un mensajestd_msgs::msg::String en LxCamera_SetParam. El mensaje contiene nueve valores de coma flotante separados por comas: x,y,z,yaw,pitch,roll,x,y,yaw. Los seis primeros valores definen la pose de la cámara; los tres últimos definen la pose del LiDAR. Después de una actualización correcta, se actualizan los valores correspondientes de las secciones [Laser1] y [Camera1] de /home/fr1511b/hontai/params/config_install_FL21500HAF.ini.
Cambia de mapa
Publica un mensajestd_msgs::msg::String que contenga el nombre de un mapa completado en LxCamera_SwitchMap. Actualiza la interfaz web de la cámara. Si cambia el nombre del mapa mostrado, el cambio se realizó correctamente.
Descarga un mapa
- Publica un mensaje
std_msgs::msg::StringenLxCamera_DownloadMap. - El mensaje contiene dos campos:
save_path, una ruta absoluta en el equipo host, ymapname, el nombre del archivo.zipde un mapa completado en la cámara. - Después de una descarga correcta, la ruta del host especificada contiene el archivo del mapa. Extráelo para obtener un archivo de mapa
PGMy un archivo de configuraciónYAML.
Carga la odometría
Publica datosnav_msgs::msg::Odometry en /sim/odom (el tópico se puede cambiar).
Relocalízate
- Publica datos
geometry_msgs::msg::PoseWithCovarianceStampedenLxCamera_UploadReloc. - La pose contiene la pose del LiDAR:
x,yyyaw. - La relocalización se realiza correctamente cuando la posición mostrada en la interfaz web de la cámara se actualiza a la pose enviada.
Los cuaterniones están restringidos y no se pueden completar arbitrariamente. Usa el convertidor de Euler a cuaternión para convertir un ánguloEuler yawen valores de cuaterniónxyzw.
Prefijos de tipo de mensaje
El equipo host se comunica con la cámara mediante UDP. Los primeros cuatro bytes de cada mensaje identifican el tipo de datos de la interfaz:Interfaces de servicios de ROS2
El mapeo, el cambio de mapa, la descarga de mapas y la relocalización también están disponibles mediante servicios de ROS2. Una respuesta de serviciotrue indica que la operación se realizó correctamente; false indica un fallo.
Usa
ros2 service call para los siguientes comandos. Los nombres de los mapas no deben comenzar por un número ni superar los 30 caracteres.Crea un mapa
Nombre del servicio:/LxCamera_Mapping_srv
Definición del servicio:
Cambia de mapa
Nombre del servicio:/LxCamera_SwitchMap_srv
Definición del servicio:
Descarga un mapa
Nombre del servicio:/LxCamera_DownloadMap_srv
Definición del servicio:
Relocalízate
Nombre del servicio:/LxCamera_UploadReloc_srv
Definición del servicio:
Obtén el nombre del mapa actual
Nombre del servicio:/LxCamera_GetCurMapname_srv
Definición del servicio:
Obtén la lista de mapas actual
Nombre del servicio:/LxCamera_GetMapList_srv
Definición del servicio:
Sal del mapeo
Nombre del servicio:/LxCamera_ExitMapping_srv
Definición del servicio:
Elimina un mapa
Nombre del servicio:/LxCamera_EraseMap_srv
Definición del servicio:
Descarga un mapa de calor
Nombre del servicio:/LxCamera_DownloadHeatMap_srv
Definición del servicio:
Mapeo incremental
Nombre del servicio:/LxCamera_IncMapping_srv
Definición del servicio: