La Red de Conocimientos Pedagógicos - Conocimientos matemáticos - ORB SLAM 2 basado en la cámara de profundidad RealSense D435i

ORB SLAM 2 basado en la cámara de profundidad RealSense D435i

En comparación con el artículo anterior, aquí reemplazamos el paquete de datos oficial de rosbag con los datos en tiempo real de la cámara de profundidad. Se eligió la Intel RealSense como cámara de profundidad simplemente porque era la más fácil de comprar. . . Busque "cámara de profundidad" en JD.COM y casi todas cumplen con los requisitos de esta serie. En cuanto al modelo D435i, puede proporcionar imágenes RGB y de profundidad y tiene una IMU. En el futuro, si seguimos utilizando navegación visual e inercial para SLAM, será suficiente.

Referencia: /profundidad-camera-d435i/

Intel ofrece oficialmente una introducción muy detallada, especialmente el manual del producto, que casi cubre lo que los usuarios necesitan (y no necesitan) saber. Toda la información.

A continuación se incluye un extracto de información clave sobre la D435i para referencia futura.

La serie Interl RealSence D4××, incluido el D435i, mide la profundidad a través de la visión binocular clásica. Aunque hay un proyector de infrarrojos, no se utiliza el alcance de reflexión de infrarrojos. Su función es únicamente proyectar patrones de textura infrarrojos fijos e invisibles para mejorar la precisión del cálculo de profundidad y ayudar a la medición de distancia visual binocular en entornos donde la textura no es obvia (como paredes blancas). Las cámaras izquierda y derecha envían datos de imagen al procesador de profundidad incorporado, donde el valor de profundidad de cada píxel se calcula según el principio de alcance binocular.

La siguiente imagen es el patrón de textura de la proyección infrarroja sobre papel blanco:

Parámetros de la cámara de alcance binocular

Parámetros del proyector de infrarrojos

RGB parámetros de la cámara

Resolución de imagen profunda y velocidades de fotogramas admitidas

Resolución de imagen RGB y velocidades de fotogramas admitidas

Parámetros IMU

Intel RealSense SDK 2.0 es un kit de desarrollo multiplataforma que incluye herramientas básicas de cámara como realsense-viewer. También proporciona una gran cantidad de interfaces para desarrollo secundario, incluidas ROS, Python, Matlab, Node.js, LabVIEW y OpenCV. Red, etc.

En los sistemas Linux, hay dos formas de instalar bibliotecas de herramientas de desarrollo, una es instalar paquetes Debian precompilados y la otra es compilar desde el código fuente.

Si la versión del kernel de Linux es 4.4, 4.8, 4.10, 4.13, 4.15, 4.18*5.0* y 5.3*, y no hay ningún módulo personalizado, es mucho más conveniente instalar el paquete Debian precompilado.

Compruebe la versión del kernel de Ubuntu mediante el siguiente comando

El resultado mostrado es 5.0.0-23-generic, que cumple con los requisitos de la versión anterior. Elegimos instalar paquetes Debian precompilados.

Para conocer los pasos de instalación en Ubuntu, consulte /Intel real sense/librealsense/blob/master/doc/distribution_Linux.MD.

Los pasos específicos se resumen a continuación (para Ubuntu 18.04):

Luego puedes ejecutar realsense-viewer para ver la profundidad y las imágenes RGB de la cámara, así como las medidas. en la IMU, como se muestra en la siguiente figura:

Además, debe comprobarlo.

Asegúrate de incluir la palabra realsense, por ejemplo versión: 1.1.2 real sense-14.

Verifique dkms nuevamente

Los resultados devueltos incluyen algo como librealsense2-dkms, 1.3.14, 5.0.0-23-generic, x86_64: instalado.

Si todo lo anterior es correcto, RealSense SDK 2.0 se instaló correctamente.

Si los resultados devueltos anteriormente son incorrectos, las operaciones posteriores pueden verse afectadas. Según nuestra experiencia, realsense-dkms seleccionará el primer kernel en /lib/modules para su instalación. Esto puede salir mal si hay varios núcleos en el sistema y el núcleo que se está ejecutando actualmente no es el primero en /lib/modules.

A partir de la versión de firmware 5.12.02.100, las cámaras de la serie D4××× de Intel RealSense han agregado una función de autocalibración, que mejora en gran medida la automatización de la calibración de la cámara y ya no requiere una placa de calibración portátil.

Las operaciones detalladas se pueden ver aquí.

Breve proceso:

En este artículo, nuestro objetivo final es publicar la profundidad de la cámara y los datos RGB en un tema ros, y luego mapear la nube de puntos a través de ORB SLAM 2.

Aquí se requiere la biblioteca RealSense ROS-$ROS_VER-RealSense de 2 cámaras. Cabe señalar que esta biblioteca ROS no depende de RealSense SDK 2.0, los dos son completamente independientes. Por lo tanto, si solo desea utilizar Realsense en ROS, no necesita instalar RealSense SDK 2.0 o superior primero.

Para conocer los pasos de instalación, consulte /IntelRealSense/realsense-ros.

El comando específico es el siguiente (requisito previo: la versión melódica de ROS está instalada):

Incluye dos partes:

Antes de iniciar la cámara, debemos configurar en el archivo realsense2_camera rospack rs_camera.launch.

Para obtener una introducción a varios parámetros en el lanzamiento de ros, consulte aquí.

Asegúrese de que los siguientes dos parámetros en el archivo rs_camera.launch sean verdaderos:

El primero es el momento de sincronizar diferentes datos del sensor (profundidad, RGB, IMU), es decir, debe haber la misma marca de tiempo;

Este último agregará algún rostopic, del cual estamos más preocupados por /camera/aligned_ Depth_to_color/image_raw, donde el mapa de profundidad está alineado con el mapa RGB, la comparación es como sigue.

Luego puedes iniciar la cámara con:

Algunos temas son los siguientes:

El enfoque es /camera/color/image_raw y /camera/aligned_ Depth _ a _ color/imagen _ raw corresponde a imágenes RGB e imágenes de profundidad respectivamente. Con base en estos datos, esperamos lograr el efecto del mapeo de nubes de puntos ORB SLAM 2.

En comparación con ORB SLAM 2 que utiliza paquetes de datos rosbag, existen las siguientes modificaciones:

Después de las modificaciones anteriores, puede compilar y ejecutar ORB SLAM 2 de acuerdo con los pasos anteriores. artículo. En este punto, los datos de profundidad y RGB ya no provienen del rosbag, sino de la cámara.

El comando se resume de la siguiente manera:

El mapa de nube de puntos final guardado tiene los siguientes efectos:

Este artículo registra la implementación de ORB SLAM 2 basado en la cámara de profundidad proceso Intel RealSense D435i. Dado que los artículos anteriores (1, 2) registraron ORB SLAM 2 basado en paquetes de datos rosbag con gran detalle, la mayor parte del contenido de este artículo es registrar algunas configuraciones relacionadas con la cámara de profundidad para mi referencia futura. útiles para otros usuarios similares. Los lectores orientados a la investigación son útiles.