Herramienta de evaluación de trayectoria SLAM EVO


El entorno que utilizo es la versión ubunut1604 + ROS (Kinect)

1 instalación de entorno EVO

1.1 Instalación binaria

Se recomienda el método de instalación del código fuente. , Primero instale las dependencias:

sudo pip install --upgrade pip
sudo pip install --user --upgrade
 
sudo apt-get install libfreetype6-dev gfortran
pip install matplotlib
pip install scipy

Instalar evo:

git clone https://github.com/MichaelGrupp/evo.git
cd evo
pip install . --upgrade
pip install numpy --upgrade --user

Las siguientes condiciones indican que la instalación se realizó correctamente
Inserte la descripción de la imagen aquí

2 Cómo utilizar

EVO proporciona comandos de evaluación de errores absolutos y relativos y herramientas de análisis gráfico (
llámelo como tal por ahora): evo_ape -error de pose absoluto (error absoluto)
evo_rpe- error de pose relativo (error relativo)

Herramientas:
evo_traj - herramienta para analizar, trazar o exportar una o más trayectorias (用于 分析 一个 或者 多个 曲线)
evo_res - herramienta para comparar uno o varios archivos de resultados de evo_ape o evo_rpe
evo_fig - herramienta (experimental) para reabrir serializado plots (guardados con --serialize_plot)
evo_config - herramienta para configuraciones globales y manipulación de archivos de configuración

Cabe señalar aquí que el orden de cuaternión utilizado en los datos EUROC, el conjunto de datos TUM y el conjunto de datos KITTI no es el mismo. Por lo tanto, al usar el comando, debe agregar parámetros para distinguirlo. Debemos guardar la salida del archivo de trayectoria mediante el algoritmo nosotros mismos. Presta atención a esto.
En el código fuente de evo, hay conjuntos de datos para probar en el directorio evo / test / data

2.1 Uso en el conjunto de datos TUM

2.1.1 Calcular el error absoluto de la trayectoria (evo_ape)

Evaluar el error de pose absoluto entre la salida de la curva por el algoritmo y el valor verdadero (error de pose absoluto)

mkdir results
evo_ape tum fr2_desk_groundtruth.txt  fr2_desk_ORB.txt -va --plot --plot_mode xz --save_results results/ORB_fr2_desk.zip

Después de ejecutar el comando, imprima RMSE y otros valores de error en el terminal
Inserte la descripción de la imagen aquí

2.1.2 Dibujar múltiples curvas (evo_traj)

Dibuje las curvas de salida de los dos algoritmos (rgbdslam-v2 y orb-slam) en una imagen, donde el parámetro de --ref es el valor de trayectoria verdadero especificado.

evo_traj tum freiburg1_xyz-ORB_kf_mono.txt freiburg1_xyz-rgbdslam.txt  --ref=freiburg1_xyz-groundtruth.txt -va --plot --plot_mode xy

Puede modificar parámetros como el color de la curva en la interfaz de imagen.
Inserte la descripción de la imagen aquí

2.1.3 Analizar múltiples curvas (evo_res)

Supongamos que ahora uso el comando en 2.1.1 para generar archivos Zip en las secuencias fr1_xyz y fr2_desk (ambos archivos zip están en el directorio de resultados). En este punto, usamos el comando evo_res para analizar el rendimiento del algoritmo en estas dos secuencias.

 evo_res results/*.zip -p --save_table results/table.csv

Esto significa analizar todos los archivos zip en el directorio de resultados.
Inserte la descripción de la imagen aquí

2.3 Uso en el conjunto de datos KITTI

2.2.1 Calcular el error absoluto de la trayectoria

Aquí se generará un archivo comprimido llamado xxx.zi, que se utilizará para dibujar múltiples curvas.

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/KITTI_00_ORB.zip

Inserte la descripción de la imagen aquí

2.2.2 Dibujar múltiples curvas

Coloque el archivo de curva que se dibujará en la misma carpeta de prueba,

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

Entre ellos, KITTI_00_ORB.txt representa el archivo donde se ejecuta el primer algoritmo en la secuencia, KITTI_00_SPTAM.txt * representa el archivo donde se ejecuta el segundo algoritmo en la secuencia, *** - ref = KITTI_00_gt.txt *** indica la verdad básica real especificada Archivo de trayectoria, *** - p --plot_mode = xz *** es el parámetro de comando para dibujar la trayectoria en el plano XOZ.
Inserte la descripción de la imagen aquí

2.2.3 Analizar múltiples curvas

 evo_res results/*.zip -p --save_table results/table.csv

Inserte la descripción de la imagen aquí

2.3 Uso en el conjunto de datos EUROC

2.3.1 Calcular el error absoluto de la trayectoria

Evaluar el error de pose absoluto entre la salida de la curva por el algoritmo y el valor verdadero (error de pose absoluto)

evo_ape euroc V102_groundtruth.csv V102.txt -va --plot --plot_mode xy --save_results results/EUROC.zip

Inserte la descripción de la imagen aquí
Los dos comandos restantes son los mismos que las operaciones anteriores, simplemente reemplace euroc y *** kitti *** en el comando con *** tum ***.

Referencia

Tutorial oficial: https://github.com/MichaelGrupp/evo
https://blog.csdn.net/A_L_A_N/article/details/88708979
https://blog.csdn.net/qq_37568167/article/details/104961523

Si el artículo es útil para ti, por favor dame un me gusta. O (∩_∩) O

Bienvenidos a todos para intercambiar y discutir en el área de comentarios ([email protected])

Supongo que te gusta

Origin blog.csdn.net/crp997576280/article/details/105385240
Recomendado
Clasificación