Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Eine visuell saubere SLAM-Karte gibt weder Aufschluss über Lagefehler noch über Latenz. Definieren Sie Referenz, Ausrichtungsfreiheitsgrade und Fehlerbehandlung, bevor Sie Systeme vergleichen. Die hier angegebenen Werte stammen aus synthetischen Trajektorien und stellen keinen Benchmark eines bestimmten SLAM-Algorithmus dar.

Was ATE und RPE messen

Sei Q_i die Referenzlage, P_i die Schätzung und S eine feste Ausrichtung. Der absolute Fehler kann als E_i=Q_i^{-1}SP_i dargestellt werden. Der quadratische Mittelwert seiner Translationsnorm ist ein gängiges ATE-Maß; evo bezeichnet die umfassendere Metrik für die absolute Lage als APE.

Der relative Fehler vergleicht die Bewegung im Intervall i\rightarrow j : F_{ij}=(Q_i^{-1}Q_j)^{-1}(P_i^{-1}P_j). Die Ergebnisse hängen davon ab, ob das Intervall eine Sekunde, einen Meter oder ein Frame beträgt. Siehe die offizielle evo Metrics-Dokumentation.

Überprüfen Sie die Unterscheidung mit einer kleinen Berechnung

Speichern Sie slam_metric_lab.py in einem leeren Verzeichnis und führen Sie python3 slam_metric_lab.py aus. Die Überprüfung erfolgte mit Python 3.12.3 und verwendet ausschließlich die Standardbibliothek. Die Referenzwerte betragen x=t Meter, abgetastet an 101 Punkten von 0 bis 10 Sekunden in 0,1-Sekunden-Intervallen, mit Identitätsrotationen.

Synthetischer Fehler RMSE der nicht ausgerichteten Translation (APE) RMSE der Translation (RPE) über eine Sekunde, alle Paare
Konstante +0,1 m Offset 0,100000 m 0,000000 m
Drift nimmt jede Sekunde um 0,01 m zu 0,057879 m 0,010000 m

Eine konstante Translation tritt in Positionsdifferenzen auf, hebt sich aber in Bewegungsdifferenzen auf. Drift bleibt in beiden Fällen bestehen. In diesem Beispiel werden weder Ausrichtung noch Zeitinterpolation angewendet. Laden Sie die Referenz und die Driftabschätzung herunter.

Reale Daten vor der Auswertung abgleichen

Diagram 1 · Use the button to switch views
Zeiten und Frames abgleichen, Ausrichtung korrigieren, APE und RPE berechnen, dann Fehler und Latenz melden

Meter und Sekunden verwenden und Sensor- und Körperbezugssysteme nicht vermischen. Unterschiedliche Aufzeichnungsstartzeiten von Taktfehlern unterscheiden. Das TUM-Format ist timestamp x y z q_x q_y q_z q_w ; die Quaternionenreihenfolge anhand der offiziellen Formatdokumentation überprüfen.

Die SE(3)-Ausrichtung korrigiert Rotation und Translation; Sim(3) korrigiert zusätzlich die Skalierung. Eine Skalierungskorrektur kann für den Vergleich monokularer Trajektorienformen sinnvoll sein, beseitigt aber Skalierungsfehler, wenn diese im Experiment gemessen werden sollen. Diese Auswertungseinstellungen dürfen in einem Ranking nicht unbemerkt vermischt werden.

EVO-Umgebung aufzeichnen

Speichern Sie in einer dedizierten EVO-Umgebung die Dateien evo_ape --version und evo_rpe tum --help. Diese Befehle folgen der offiziellen CLI-Struktur; sie stellen eine Prozedur dar und liefern für diesen Artikel keine Ergebnisse, die auf realen Trajektorien ausgeführt wurden.

evo_ape tum reference.tum estimate.tum --align --save_results ape.zip
evo_rpe tum reference.tum estimate.tum --delta 1 --delta_unit s --all_pairs --save_results rpe.zip

Ersetzen Sie die Dateinamen durch die Trajektorien desselben Durchlaufs. Korrigieren Sie die Toleranz der Zeitstempelzuordnung mithilfe der Hilfe der installierten Version und geben Sie die Anzahl der übereinstimmenden Stichproben an. Die obige synthetische Tabelle ist nicht ausgerichtet; das Hinzufügen von --align verändert daher deren Interpretation und Ergebnisse.

Mehr als nur Genauigkeit berichten

Anzahl Erforderlicher Kontext
APE / RPE Ausrichtung, Intervall, Meter oder Grad, übereinstimmende Positionen
Fehler Gesamtanzahl der Durchläufe, Trackingverluste und Wiederherstellungszeit in Sekunden
Latenz Erfassung-zu-verfügbarer-Schätzung p50/p95 und Taktsynchronisation
Ressourcen CPU/GPU, Threads, Speicher, Eingaberate und Softwareversionen

Die Verarbeitungszeit pro Frame unterscheidet sich von der Latenz, einschließlich der Warteschlangen. Ohne Referenzdaten sollte kein ATE angegeben werden. Stattdessen können Wiederholbarkeit oder Konsistenz gemessen werden, wobei darauf hingewiesen werden muss, dass diese nicht direkt die Positionsgenauigkeit bestimmen.

Schwierige Intervalle beibehalten

Durch das Entfernen schwieriger Abschnitte wird ein Genauigkeitswert für erfolgreiches Tracking erzielt. Die Gesamterfolgsrate sollte separat vom Fehler in auswertbaren Intervallen angegeben werden. Überprüfen Sie zunächst Sensor-Timing und Frames, um zu vermeiden, dass Integrationsfehler in einen Algorithmenvergleich einfließen.

Related reading

Check timing and frames before evaluationWarum Sensorfusion fehlschlägt – Timing, Frames und extrinsische KalibrierungExplore another aspect of this fieldWarum ICP fehlschlägt: Initialisierung, Ausreißer und symmetrische GeometrieExplore another aspect of this fieldVon der Kartierung zur Navigation in ROS 2 – ein minimales Jazzy- und Nav2-Verfahren