Expériences SLAM
Jeu de données TUM
Lien du site officiel de l'ensemble de données TUM
Associate.py utilise
Instructions
python2 associate.py rgb.txt depth.txt > associate.txt
Remarque : Le script officiel fourni ici est python2
évolution
Méthode de calcul de evo_ape et evo_rpe
Avant l'introduction, marquons d'abord la formule de définition :
Algorithme pose estimée : P 1 . . . . . . P n ∈ SE ( 3 ) P_1......P_n\in SE(3)P1...... Pn∈SE ( 3 )
pose réelle :Q 1 . . . . . . Q n ∈ SE ( 3 ) Q_1......Q_n\in SE(3)Q1...... Qn∈L'indice SE ( 3 )
représente le tempsttt (ou image), nous supposons ici que la pose estimée et la pose réelle sont alignées dans le temps pour chaque image, et que le nombre total d'images est le même. △ \triangle△ représente l'intervalle de temps d'intervalle.
Installer
Il est recommandé de se référer au site officiel
erreur un
evo_traj tum data.tum -p
L'erreur suivante est signalée pendant le fonctionnement
[ERROR] Unhandled error in evo.main_traj
Traceback (most recent call last):
File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/entry_points.py", line 99, in launch
main_module.run(args)
File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/main_traj.py", line 420, in run
from evo.tools import plot
File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/tools/plot.py", line 43, in <module>
import seaborn as sns
File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/__init__.py", line 2, in <module>
from .rcmod import * # noqa: F401,F403
File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/rcmod.py", line 5, in <module>
from . import palettes
File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/palettes.py", line 9, in <module>
from .utils import desaturate, get_color_cycle
File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/utils.py", line 11, in <module>
import pandas as pd
File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/__init__.py", line 48, in <module>
from pandas.core.api import (
File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/api.py", line 22, in <module>
from pandas.core.algorithms import (
File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/algorithms.py", line 40, in <module>
from pandas.core.dtypes.cast import (
File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/dtypes/cast.py", line 23, in <module>
from dateutil.parser import ParserError
ImportError: cannot import name 'ParserError' from 'dateutil.parser' (/usr/lib/python3/dist-packages/dateutil/parser/__init__.py)
[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)
Vous pouvez voir que l'erreur ici est que ImportError: cannot import name 'ParserError' from 'dateutil.parser'
nous allons installer ce qui manque.
pip install python-dateutil==2.8.2
Vous pouvez afficher le dernier numéro de version de python-dateutil sur le site Web de pypi
. L'installation est réussie et nous continuons à exécuter evo_traj tum data.tum -p
, et une nouvelle erreur est apparue
File "/home/houyiliang/.local/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 8, in <module>
import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'
Ce qui manque dans les anciennes règles et ce qu'il faut installer
sudo apt-get update
sudo apt-get install python3-tk
Une fois l'installation terminée, exécutez-la à nouveau et signalez une autre erreur
from PIL import Image, ImageTk
ImportError: cannot import name 'ImageTk' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
encore
sudo apt-get install python3-pil python3-pil.imagetk
vous avez terminé
pistes prises en charge
- ros —— Paquet de données ROS
Lorsque le paquet de données contient des rubriques : geometry_msgs/PoseStamped, geometry_msgs/TransformStamped, geometry_msgs/PoseWithCovarianceStamped et nav_msgs/Odometry, vous pouvez utiliser l'outil EVO pour la comparaison de trajectoire.
Après la v1.9, les rubriques TF prennent également en charge l'évaluation EVO. - euroc——Ensemble de données EuRoC MAV
L'ensemble de données EuRoC lui-même ne prend pas en charge l'utilisation directe des outils EVO et doit être converti en un ensemble de données de type TUM pour évaluation.
Les fichiers se terminant par csv dans l'ensemble de données EuRoC stockent les informations de vérité terrain.
Lorsque vous utilisez l'ensemble de données EuRoC, faites attention au système de coordonnées, à la vérité terrain, à l'IMU et à la caméra qui ont des conventions d'axe différentes. - kitti——Ensemble de données KITTI
Les données de trajectoire générées par l'ensemble de données KITTI ne contiennent pas d'informations d'horodatage. 12 données de description sont stockées dans le fichier de trajectoire KITTI, qui correspond aux trois premières lignes de la matrice de pose homogène SE(3)
//SE(3)
a b c d
e f g h
i j k l
0 0 0 1
//kitti traj file
a b c d e f g h i j k l
- tum - Ensemble de données TUM RGB-D
avec 8 entrées par ligne contenant l'horodatage (en secondes), la position et l'orientation (quaternion), chaque valeur séparée par des espaces, pas d'espaces à la fin
timestamps x y z q_x q_y q_z q_w
transition entre les pistes
Certains des différents types de trajectoires peuvent être convertis les uns aux autres tandis que d'autres ne le peuvent pas. Le tableau suivant montre la relation de conversion entre les types de trajectoires
–save_as_bag | –save_as_kitti | –save_as_tum | |
---|---|---|---|
sac | Oui | Oui | Oui |
euroc | Oui | Oui | Oui |
minou | Non | Oui | Non |
tour | Oui | Oui | Oui |
//Example
// export a EuRoC groundtruth file to a TUM trajectory
evo_traj euroc data.csv --save_as_tum
//(will be saved as data.tum)
//export TUM trajectories to KITTI format
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti
//(will be saved as *.kitti)
//export TUM trajectories to ROS bagfile
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
//(will be saved as <timestamp>.bag with topics traj_1, traj_2 and traj_3)