Navegación de un AMR mediante Isaac ROS VSLAM y Nvblox con una cámara Intel RealSense

La tecnología que impulsa la navegación de robots evoluciona constantemente, pero aún quedan algunos obstáculos importantes que superar para que sean verdaderamente autónomos. Las nuevas soluciones de NVIDIA hacen que la posibilidad de dar el siguiente paso sea más real. En este artículo, conocerá cómo los sistemas ROS y ROS2 acelerados por GPU, además de los algoritmos de localización y mapeo visual simultáneo (SLAM visual o VSLAM) y los paquetes de Nvblox, hacen más eficiente la navegación de robots móviles autónomos (AMR) con un menor uso de potencia de CPU.

Introducción

La navegación autónoma es un paso vital para los sistemas robóticos. Uno de los elementos esenciales de la navegación de robots móviles autónomos es la SLAM visual. La SLAM visual es una técnica que utiliza imágenes capturadas por una cámara para mapear el entorno y, simultáneamente, estimar la posición del robot. La sonda Phoenix, el rover Opportunity y el helicóptero Ingenuity con los que se exploró Marte utilizan algoritmos de SLAM visual para la navegación y el aterrizaje autónomos. Otras aplicaciones incluyen aspiradoras, equipos de endoscopia y robots aéreos, terrestres y submarinos no tripulados, en los que las máquinas automatizan las tareas.

La SLAM visual requiere una gran potencia de cómputo para estimar la pose y generar un mapa a partir de las imágenes que proporciona una cámara. La mayoría de los algoritmos de SLAM visual utilizan mucha potencia de CPU, lo que limita la creación de mapas y la estimación de la pose en tiempo real. Isaac ROS (Robot Operating System), VSLAM y Nvblox son paquetes de ROS2 acelerados por GPU que ayudan a estimar las poses y a crear mapas del entorno circundante para la navegación de robots móviles autónomos en tiempo real. Se está estudiando qué tan bien funcionan Isaac ROS VSLAM y Nvblox con cámaras RealSense para la navegación autónoma de los AMR.

Segmentación de Nvblox y NVIDIA Isaac ROS VSLAM

En la Figura 1, se muestra el funcionamiento y la integración de la segmentación de Nvblox y NVIDIA Isaac ROS VSLAM. Aquí, la VSLAM estima las poses y Nvblox reconstruye el mapa del entorno circundante para la navegación autónoma del robot.

Block Diagram of Isaac ROS VSLAM and Nvblox
Figura 1. Diagrama de bloques de Isaac ROS VSLAM y Nvblox

NVIDIA Isaac ROS VSLAM es un paquete de ROS2 que lleva a cabo la localización y el mapeo visual estéreo en simultáneo. Calcula la odometría inercial visual estéreo mediante un par de imágenes estéreo con sincronización temporal y utiliza la biblioteca acelerada por GPU Isaac Elbrus. La odometría inercial visual, la optimización y el mapeo son los tres componentes de Isaac ROS VSLAM. La odometría visual (VO) es una técnica que sirve para estimar la posición de la cámara en relación con el punto de partida. La pose de VO que se muestra en la Figura 1 se estima por VO. El método de localización y mapeo visual simultáneo se basa en la pose de VO y tiene como objetivo mejorar la calidad de este mediante la detección de cierre de bucle y la estimación de las poses de SLAM utilizando partes del entorno que se vieron previamente. Además de los datos visuales, Elbrus puede utilizar mediciones que provienen de una unidad de medición inercial (IMU). Cuando la VO no puede estimar una pose, por ejemplo, cuando la iluminación es escasa o hay una superficie extensa y sin rasgos distintivos frente a la cámara, cambia a la IMU. En la Figura 1, se muestran las poses de SLAM estimadas por medio de la VSLAM.

NVIDIA Isaac ROS Nvblox es un paquete de ROS2 que se utiliza para la reconstrucción 3D en tiempo real del entorno de un AMR a partir de imágenes de cámaras. Los planificadores de rutas utilizan la reconstrucción para generar una ruta de navegación segura. Nvblox utiliza NVIDIA CUDA para acelerar este proceso y permitir la operación en tiempo real. Este repositorio contiene la integración de ROS2 para la biblioteca principal de Nvblox. El algoritmo de Nvblox consta de tres componentes clave: la función de distancia con signo truncada (TSDF), la malla y la función de distancia con signo euclidiana (ESDF). Nvblox utiliza una imagen RGB, una imagen de profundidad y una pose de SLAM como mallas de entrada y salida para la visualización y un mapa de corte de distancia para la planificación de rutas. Nvblox genera un corte del mapa de distancia 2D y una malla 3D a partir de un flujo de imágenes RGB y de profundidad y la pose correspondiente de la imagen de profundidad. El flujo de imágenes RGB, que se utiliza para colorear la reconstrucción 3D del entorno circundante para su visualización, es opcional. El corte del mapa de distancia 2D muestra la distancia entre cada punto y el obstáculo reconstruido más cercano, así como una malla 3D para la visualización en RVIZ. La reconstrucción 3D del entorno circundante para su visualización es opcional. El corte del mapa de distancia 2D muestra la distancia entre cada punto y el obstáculo reconstruido más cercano, así como una malla 3D para la visualización en RVIZ.

Explicación de la segmentación de la pila de Nav2, Isaac ROS VSLAM y Nvblox

La segmentación completa para realizar la navegación autónoma de los AMR mediante Isaac ROS VSLAM, Nvblox y la pila de Nav2 se muestra en la Figura 2. Esta segmentación consta de cinco nodos: el nodo de la cámara RealSense, el nodo de Isaac ROS VSLAM, el nodo de Isaac ROS Nvblox, el nodo de Nav2 y el nodo de Rviz. En el siguiente párrafo se explica cada bloque.

Isaac ROS VSLAM Nvblox and NAV2 pipeline
Figura 2. Segmentación de Nav2, Isaac ROS VSLAM y Nvblox

El nodo de la cámara RealSense captura imágenes de la cámara RealSense y publica imágenes RGB, de profundidad, infra‑1 e infra‑2. Infra-1 e infra-2 son imágenes infrarrojas. Las imágenes infra-1 e infra-2 están suscritas por el bloque Isaac ROS VSLAM, y este publica la pose y el paquete tf. El bloque Isaac ROS Nvblox genera un mapa de corte de distancia al suscribirse a la imagen RGB, a la imagen de profundidad, a la pose y al paquete tf. Para la planificación de rutas y la navegación, el nodo de Nav2 utiliza un mapa de corte de distancia. El nodo de Nav2 es el sistema de control que permite que un AMR alcance un estado objetivo de forma autónoma mediante el uso de una pose actual, un mapa y un objetivo, como una pose de destino. El nodo de Nav2 traza con éxito una ruta hacia el estado objetivo y envía comandos al AMR para seguir la ruta planificada hasta la posición objetivo. Rviz es una herramienta útil para visualizar imágenes, datos de odometría y mapas generados y para proporcionar una pose objetivo al AMR.

Resultados experimentales

En la Figura 3, se muestra el AMR, lo que ve a través de la cámara RealSense instalada en él y el mapa de nube de puntos 3D resultante en forma de malla. En la Figura 4, se muestra el mapa creado con el estado objetivo que se le asignó, la ruta planificada y el AMR que llega de manera segura al estado objetivo tras seguir la ruta planificada.

AMR images with generated 3d map
Figura 3. En la imagen de la izquierda, se muestra el AMR en el entorno de laboratorio; en la del medio, lo que ve el AMR; en la de la derecha, el mapa 3D generado en forma de malla.

AMR generated map goal state
Figura 4. En la figura de la izquierda, se muestra el mapa generado con el objetivo proporcionado; en la del medio, la ruta planificada; en la de la derecha, el AMR alcanzó el estado objetivo.

Conclusión

Para lograr que el AMR navegue de forma autónoma en el laboratorio, se integró una cámara Intel RealSense en las pilas de Nav2, Isaac ROS Nvblox e Isaac ROS VSLAM. Se puso en movimiento el AMR dentro de un entorno de laboratorio con fines de mapeo y navegación. Isaac ROS VSLAM estimó con éxito la odometría del AMR y, al mismo tiempo, creó un mapa del entorno del AMR. Gracias a la aceleración por GPU, la segmentación de NVIDIA Isaac ROS VSLAM y Nvblox ofrece un rendimiento en tiempo real. En forma simultánea, el algoritmo de VSLAM localizó su posición en el mapa y creó uno para una navegación segura. Esperamos que la demostración de nuestros experimentos ayude a los ingenieros en robótica a desarrollar diversos tipos de robots comerciales. Para obtener más detalles, puede contactar a los autores.


Últimas noticias

Lo sentimos, pero su selección de filtros no devolvió resultados.

Hemos actualizado nuestra política de privacidad. Por favor tome un momento para revisar estos cambios. Al hacer clic en Acepto, usted está de acuerdo con la Politica de Privacidad de Arrow Electronics y sus condiciones de uso.

Nuestro sitio Web coloca cookies en su dispositivo para mejorar su experiencia y nuestro sitio. Lea más sobre las cookies que utilizamos y cómo desactivarlas aquió. Es posible que se utilicen las cookies y tecnologías de seguimiento con fines de marketing.
Al hacer clic en "Aceptar", usted está consintiendo la colocación de cookies en su dispositivo y el uso de tecnologías de seguimiento. Haga clic en "Leer más" a continuación para obtener más información e instrucciones sobre cómo desactivar las cookies y tecnologías de seguimiento. Si bien la aceptación de cookies y tecnologías de seguimiento es voluntaria, la desactivación de estos puede resultar en que el sitio web no funcione correctamente, y es posible que ciertos anuncios sean menos relevantes para usted.
Respetamos su privacidad. Lea nuestra política de privacidad aquió