Resumen del estudio del fin de semana (calibración LIO + uso del conjunto de datos kitti + uso de la herramienta evo + conjunto de datos de código abierto + uso de ssh)

Calibración LIO

Los paquetes de calibración de código abierto más utilizados en Internet son lidar_IMU_calib, que es de código abierto de la Universidad de Zhejiang, y lidar-align, que es de código abierto del Laboratorio de Conducción Autónoma del Instituto Federal Suizo de Tecnología en Zurich. Internet dice que este último método no se puede obtener porque son puntos IMU puros y datos Odom precisos, por lo que no se puede realizar una calibración pura de imu y lidar. No he mirado el código en detalle todavía, haré cambios después de leerlo más tarde.

lidar_IMU_calib

papel de código github

El proceso de instalación se puede encontrar aquí.

Lo primero que hay que entender es ¿ qué es la calibración?
Consulte aquí para obtener la respuesta.

1.Parámetros externos de Lidar

Generalmente, los fabricantes han realizado la calibración, por lo que puedes dejarlo así por el momento.

2.Parámetros internos de IMU

Según el modelo de medición IMU:

soy = RGI ( a − g ) + ba ( t ) + na \mathrm{a}_{\mathrm{m}}=\mathrm{R}_{\mathrm{G}}^{\mathrm{I}} (\mathrm{a}-\mathrm{g})+\mathrm{b}_{\mathrm{a}}(\mathrm{t})+\mathrm{n}_{\mathrm{a}}am=RGRAMOyo( ungramo )+bun( t )+norteun

wm = w + bg ( t ) + ng \mathrm{w}_{\mathrm{m}}=\mathrm{w}+\mathrm{b}_{\mathrm{g}}(\mathrm{t}) +\mathrm{n}_{\mathrm{g}}wm=w+bgramo( t )+nortegramo

El lado izquierdo del signo igual es el valor medido, a, w son los valores verdaderos reales y g es la aceleración de la gravedad (se puede ver que la IMU tendrá una salida +g cuando el eje z sea cuadrado, y se normaliza, indicando "varias g", ba b_abunbg b_gbgramoes ruido de caminata aleatoria, que cambia con el tiempo, y ng , na n_g,n_anortegramo,norteunes una medida del ruido blanco gaussiano. Una vez iniciada la IMU, es necesario determinar la matriz de rotación R al sistema mundial/sistema terrestre/sistema terrestre y estimar dos sesgos en tiempo real .

3. Conversión entre Lidar e IMU

La transformación entre Lidar e IMU incluye dos partes: transformación de cuerpo rígido 6DoF y la diferencia de tiempo entre el retardo del sensor . En primer lugar, hablemos de la diferencia de tiempo. Dado que el sensor no está sincronizado al medir (muestreo) y debido a que hay un retraso entre el sensor y el sistema, existe una diferencia de tiempo entre las dos señales, lo que afecta la precisión. de la interpolación del valor medido. Como se muestra en la figura, ta, tb t_a,t_btun,tsegundoSon los retrasos de IMU y cámara respectivamente. La diferencia después del retraso es td t_dtre, entonces necesitas agregar este td t_d a la cámara muestreadatrePara obtener el momento muestreado en el sistema de tiempo IMU (generalmente, los artículos usan el tiempo IMU como tiempo de referencia del sistema).

Alt.
Transformación de cuerpo rígido , es decir, calcular la transformación de cuerpo rígido de Lidar a IMU. En documentos generales, por conveniencia, el sistema IMU se usa a menudo como sistema robótico y los datos de la nube de puntos Lidar se transforman en el sistema IMU. es necesario obtener la transformación del cuerpo rígido de Lidar a IMU. Es decir, los parámetros R, t R,tr ,t

Como estoy usando un radar RS-16 y este código solo admite el radar VLP-16, necesito hacer algunos ajustes yo mismo.
Hay uno en línea que ha sido modificado a RS-32, consulte aquí

Para conocer el proceso de compilación y la comprensión del código, puede consultar aquí .

conjunto de datos lidar_IMU_calib

Los datos obtenidos por calibración se pueden usar para ejecutar algunos LIO, como lego-loam. El programa para agregar datos IMU se puede encontrar aquí . Para problemas encontrados al ejecutar lego-loam, consulte aquí
. Nota: rosbag play --clock *.bolsa

lidar_align

conexión de código github

¡Se dice que lidar_align no es adecuado para la calibración de IMU y Lidar puros! No se pueden obtener datos precisos de Odom mediante la integración pura de IMU.
La compilación de Lidar_align y algunos errores encontrados se pueden encontrar aquí y la calibración de parámetros externos de Lidar y Odom: aprendizaje de código lidar_align

El algoritmo Ubuntu16.04 lio_sam registra su propio conjunto de datos para construir un mapa

La explicación del código se puede encontrar aquí.

Uso del conjunto de datos de kitti

Con respecto al método para convertir archivos bin a rosbag, existe el código correspondiente. Consulte aquí . El archivo README correspondiente tiene pasos detallados.

También hay una manera de publicar directamente el tema en forma de nube de puntos a través de un programa a través del archivo bin, de modo que no sea necesario generar un paquete rosbag especial para ocupar espacio. Este autor lo modificó según el programa anterior. consulte aquí para obtener más detalles .

La introducción y explicación del conjunto de datos de Kitti están disponibles aquí , aquí y aquí , pero creo que es inútil. También puede consultar el sitio web oficial. Creo que el sitio web oficial es más claro y proporciona varias herramientas para su uso. Acerca de Just conocer el conjunto de datos es suficiente. Aquí se proporcionan ejemplos de uso específicos .

Conjunto de datos de código abierto

1. conjunto de datos kitti (RGB+Lidar+GPS+IMU) (escena: área urbana, área rural, autopista)
2. conjunto de datos ASL EuRoC (binocular RGB+IMU) (escena: microaviones en dos habitaciones diferentes, gran entorno industrial )
3. Marca de banco TUM VI (ojo de pez(ojo de pez)+imu) (debe estar en interiores)

Referencia: Conjunto de datos SLAM
Encuesta sobre conjuntos de datos relacionados con
SLAM Aprendizaje SLAM: recopilación de datos de prueba de código abierto

Cómo utilizar la herramienta evo

evo es una herramienta de evaluación que puede alinear trayectorias según marcas de tiempo, estirar y alinear trayectorias de diferentes escalas de acuerdo con las trayectorias estándar que usted especifique y calcular parámetros de evaluación como el error cuadrático medio para evaluar el rendimiento del algoritmo de slam.

Se recomienda utilizar la instalación rápida para la instalación evo.

pip install evo --upgrade --no-binary evo

Intenté usar el código fuente para instalar, pero me convencieron de que lo abandonara. Tal vez era demasiado bueno en eso. O la versión de Python no era suficiente o la versión de rosbags de la biblioteca no era suficiente. Después de casi un día de lanzamientos, Todavía no pude conseguirlo. Elegí la instalación rápida considerando el problema de tiempo. Para conocer los métodos de instalación, consulte la herramienta de evaluación Instalación y uso de evo , así como los problemas encontrados y las soluciones y el uso de evo, así como la instalación y el uso de evo. .

También encontré algunos problemas al usar la instalación rápida, parecía que no había ninguna biblioteca instalada y luego lo resolví usando Baidu. ModuleNotFoundError: No hay módulo llamado solución '_tkinter'

Estos se utilizan principalmente cuando se aprende lego-loam. Para el uso de evo, también puede consultar cómo utilizar la herramienta evo para evaluar los resultados de ejecutar LeGO-LOAM en el conjunto de datos KITTI , así como el gadget PCL 2 que se puede utilizar : usar GT ( verdad del terreno) de Kitti para crear un mapa de nube de puntos láser

uso de ssh

Busqué muchas rutinas en Internet para que VSCode usara SSH, pero todas fracasaron. Siempre no podía conectarme hasta que encontré esta rutina. El proceso de configuración del entorno para que VSCode se conecte a Ubuntu a través de SSH puede resolver el problema . de conectar vscode en Ubuntu a Raspberry Pi Ubuntu, pero aún no puede resolver el problema de conectar mi vscode en Windows a Ubuntu en Raspberry Pi. Al mismo tiempo, el problema encontrado al conectarme a Ubuntu es: ingresé la contraseña de Raspberry Pi tres veces y el mensaje que aparece después de ingresar la contraseña cada vez era: Permiso denegado. Después de ingresarla tres veces, no pude conectarme. hasta que me referí al complemento ssh-remote de VSCode . Se resolvió . Si no se puede resolver, se debe resolver si no hay respuesta después de ingresar la contraseña de forma remota a través de vscode ssh y sigue solicitando la contraseña .

Actualizado el 25/9/2022

Recientemente, creo que es bueno instalar un software xshell adicional para controlar ssh. El método específico está aquí: Xshell se conecta al host a través de ssh

Actualizado el 11/7/2023
Cuando utilice Raspberry Pi usted mismo, primero debe copiar id_rsa.pub en la unidad C de Windows a la carpeta .ssh en Raspberry Pi.

Si XHR falla al conectarse por primera vez, es porque vscode necesita estar conectado a Internet. Automáticamente descargará algo a la Raspberry Pi para que pueda conectarse. Si no está conectado a Internet, no puede descargarse, por lo que se informará este error.

Supongo que te gusta

Origin blog.csdn.net/weixin_41756645/article/details/126673894
Recomendado
Clasificación