Red de conocimiento informático - Material del sitio web - 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 datos en tiempo real de la cámara de profundidad. Se eligió la cámara de profundidad Intel RealSense simplemente porque era la más disponible. Busque "cámara de profundidad" en JD.com y casi todas las cámaras pueden cumplir con los requisitos de esta serie. Específico para el modelo D435i, puede proporcionar imágenes RGB y de profundidad, junto con IMU, será suficiente si continuamos haciendo SLAM de guía visual + inercial en el futuro.

Como referencia: /profundidad-camera-d435i/

Las instrucciones oficiales de Intel son muy detalladas, especialmente la hoja de datos, que cubre casi todo lo que el usuario necesita (y no necesita) saber. .

Aquí se resume la información clave sobre la D435i para comodidad del usuario.

La serie Interl RealSence D4×× (incluido el D435i) utiliza la visión binocular clásica para medir la profundidad. Aunque hay un proyector de infrarrojos, no utiliza rango de reflectancia de infrarrojos. Simplemente proyecta un patrón de textura infrarrojo fijo invisible para mejorar la precisión de los cálculos de profundidad en entornos donde las texturas no son obvias (como paredes blancas) y para ayudar en el alcance visual binocular. Las cámaras izquierda y derecha ingresan datos de imagen en el procesador de profundidad incorporado y luego calculan el valor de profundidad de cada píxel según el principio de alcance binocular.

La siguiente imagen muestra el patrón de textura de proyección de infrarrojos sobre papel blanco:

Parámetros de la cámara de alcance binocular

Parámetros del proyector de infrarrojos

Parámetros de la cámara RGB

Resolución de imagen de profundidad y velocidad de fotogramas admitida

Resolución de imagen RGB y velocidad de fotogramas admitida

Parámetros IMU

p>

Intel RealSense SDK 2.0 es una herramienta de desarrollo multiplataforma. Intel RealSense SDK 2.0 es un kit de desarrollo multiplataforma que incluye herramientas básicas de cámara, como realsense-viewer, y proporciona interfaces ricas para el desarrollo secundario, incluidos ROS, python, Matlab, node.js, LabVIEW, OpenCV, PCL, . etc.

Intel RealSense SDK 2.0 es el primer producto de este tipo en el mundo.

En Linux, hay dos formas de instalar un kit de desarrollo, una es instalar un paquete Debian precompilado y la otra es compilarlo 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 módulos definidos por el usuario, lo mejor es instalar el paquete de software debian precompilado , lo cual será mucho más conveniente.

Utilice el siguiente comando para verificar la versión del kernel de Ubuntu

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

Los pasos de instalación para Ubuntu se pueden encontrar en /IntelRealSense/librealsense/blob/master/doc/distribution_linux.md

Los pasos de instalación se resumen a continuación (para Ubuntu 18.04:

Los pasos de instalación para Ubuntu 18.04 se pueden encontrar en /IntelRealSense/librealsense/blob/master/doc/distribution_linux.md.

Luego puede ejecutar realsense-viewer para ver la profundidad y las imágenes RGB de la cámara, así como las mediciones en la IMU, como se muestra a continuación:

Verifique también para asegurarse se incluye la palabra realsense, por ejemplo versión: 1.1.2.realsense-1.3.14.

Eche otro vistazo a dkms

El valor de retorno contiene contenido como librealsense2-dkms, 1.3.14, 5.0.0-23-generic, x86_64: instalado.

Si todo el contenido anterior es normal, significa que RealSense SDK 2.0 se ha instalado correctamente.

Si la operación anterior devuelve un error, puede afectar las operaciones posteriores. Según nuestra experiencia, realsense-dkms elige el primer kernel en /lib/modules para la instalación, por lo que si tiene varios kernels en su sistema y el kernel que está ejecutando actualmente no es el primero en /lib/modules kernel, puede producirse un error. ocurrir.

Las cámaras Intel RealSense serie D4×× con versión de firmware 5.12.02.100 incluyen una función de autocalibración que aumenta en gran medida la automatización de la calibración de la cámara, por lo que ya no es necesario sostener una almohadilla de calibración para posar para una fotografía. .

Haga clic aquí para obtener más detalles.

Breve proceso:

En este artículo, nuestro objetivo final es publicar la profundidad y los datos RGB de la cámara en el tema ros y luego usar ORB SLAM 2 para construir una nube de puntos. .

Aquí es donde entra en juego la biblioteca ROS realsense ros-$ROS_VER-realsense2-camera. Tenga en cuenta que esta biblioteca ROS no depende de RealSense SDK 2.0, son completamente independientes. Por lo tanto, si solo desea utilizar Realsense con ROS, no necesita instalar primero el RealSense SDK 2.0 mencionado anteriormente.

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

El comando es el siguiente (siempre que se haya instalado la versión melódica de ROS):

Consta de dos partes:

Antes de encender la cámara, Necesito en realsense2_camera rospack Configure el archivo rs_camera.launch.

Consulte aquí para obtener una descripción de los parámetros en el lanzamiento de ros.

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

El primero se utiliza para sincronizar la hora de diferentes datos del sensor (profundidad, RGB, IMU), es decir. , hazlo Mismas marcas de tiempo;

Este último agrega una serie de rostopics, de los cuales estamos interesados ​​en /camera/aligned_ Depth_to_color/image_raw, donde la imagen de profundidad está alineada con la imagen RGB como se muestra a continuación

La cámara se puede iniciar usando el siguiente comando:

Algunos temas de ejemplo son:

Los temas clave son /camera/aligned_ Depth_to_color/image_raw y /camera/aligned_ Depth_to_color/ imagen_raw. color/image_raw y /camera/aligned_ Depth_to_color/image_raw corresponden a imágenes RGB e imágenes de profundidad respectivamente. Con base en estos datos, esperamos lograr el efecto de la construcción de nube de puntos ORB SLAM 2 +.

En comparación con ORB SLAM 2 que usa paquetes rosbag, aquí hay algunas modificaciones:

Con estas modificaciones, puede compilar y ejecutar ORB SLAM 2 descrito en el artículo anterior, donde la profundidad y Los datos RGB ya no provienen del rosbag, sino de la cámara.

El comando se resume de la siguiente manera:

La imagen final de la nube de puntos guardada es la siguiente:

Este artículo registra la implementación de ORB SLAM 2 basado en cámara de profundidad Intel RealSense D435i Los artículos anteriores (1, 2) han documentado en detalle ORB SLAM 2 basado en paquetes de datos rosbag. El objetivo principal de este artículo es registrar algunas configuraciones relacionadas con la cámara de profundidad para su referencia futura y espero ser útil para otros lectores en direcciones de investigación similares.