Contents — find the section you need

Man geht mit einer Kamera in der Hand umher, und in der Bildsequenz verschiebt sich die Ecke einer Wand oder eines Schildes schrittweise. Ein Beschleunigungsmesser und ein Gyroskop messen gleichzeitig mit hoher Frequenz, wie stark das Gerät im selben Zeitraum beschleunigt und gedreht hat. Visuelle Odometrie (VO) schätzt die relative Lage, Geschwindigkeit und Position bis zum aktuellen Zeitpunkt anhand der ersteren; visuell-inertiale Odometrie (VIO) schätzt sie anhand beider. Sie ist eine Kerntechnologie für Drohnen, die in Innenräumen fliegen, AR/VR-Headsets, handgeführte 3D-Scanner und mobile Roboter.

VO/VIO wird manchmal synonym mit SLAM verwendet, aber die Rollen unterscheiden sich. Odometrie ist eine vorgelagerte Stufe, die eine glatte, kurzfristige relative Trajektorie erzeugt, deren Fehler sich prinzipiell akkumulieren. SLAM verwendet eine Karte, Ortserkennung und Schleifenschluss, um diesen akkumulierten Fehler global zu korrigieren. Dieser Artikel konzentriert sich weniger auf das Gesamtbild der Kartierung, sondern vielmehr darauf, wie Bewegung von Bild zu Bild integriert wird, wie die IMU-Daten einfließen und wann man die Schätzung hinterfragen sollte.

Mobileye-Kamera an der Windschutzscheibe eines FahrzeugsBeispiel einer Fahrzeugkamera
Xsens MTi-G GNSS/INS integrierte IMUBeispiel einer GNSS/INS IMU

Bilder: Car Fensterkamera des Mobileye-Systems (Ranbar, CC BY-SA 4.0) / Xsens MTi-G (Kallap85, CC BY-SA 4.0), Wikimedia Allgemeines. Repräsentative Sensoren, keine erforderliche VO/VIO-Produktkombination.

0. 30-Sekunden-Zusammenfassung

  • VO schätzt die Kamerabewegung sequenziell anhand von Bildkorrespondenzen oder Änderungen im Erscheinungsbild der Pixel. Monokulares VO kann die absolute Translationsskala nicht erfassen, und der Fehler akkumuliert sich mit der Zeit. Stereo, RGB-D, bekannte Objektgröße, Inertialsensorik und Räder liefern die Skalierung.

  • VIO fusioniert die niederfrequenten, driftresistenten Beobachtungen der Kamera mit den hochfrequenten Beobachtungen der IMU, die über kurze Zeiträume genau sind, aber aufgrund von Bias driften. Das Gyroskop liefert die Rotation; der Beschleunigungsmesser ergänzt das Signal, das die Schwerkraft von der Beschleunigung unterscheidet.

  • Die IMU-Vorintegration komprimiert die vielen IMU-Abtastwerte zwischen den Bild-Keyframes zu einer einzigen, bias-relinearisierbaren Nebenbedingung. Dies macht die Sliding-Window-Optimierung rechentechnisch handhabbar.

  • Die Initialisierung ist der schwierigste Teil. Ohne ausreichende Parallaxe lassen sich Anregungen, die Rotation, Bias-Schätzung im Stillstand sowie Kamera-IMU-Zeitsynchronisation und externe Kalibrierung, Skalierung, Schwerkraft, Geschwindigkeit und Bias nicht voneinander trennen.

Die Auswertung sollte neben dem mittleren Fehler auch ATE/RPE, Drift pro Intervall, Ausfallrate, Latenz, CPU-/GPU-Auslastung und die Verwendung von Relokalisierungen während der Trajektorie angeben. Typische Fehlerbedingungen sind geringe Textur, dynamische Objekte, Bewegungsunschärfe, Rolling-Shutter-Effekt, Erschütterungen und Synchronisationsversatz.

1. Was VO schätzt und was nicht

Die Pose des Kamera- oder IMU-Koordinatensystems B relativ zum Weltkoordinatensystem W zum Zeitpunkt k wird als Position \mathbf{p}_{WB,k} und Rotation R_{WB,k} angegeben. Die zentrale Ausgabe von VO ist die relative Transformation zwischen benachbarten Frames oder Keyframes.

T_{C_kC_{k+1}}= \begin{bmatrix}R_{C_kC_{k+1}}&\mathbf{t}_{C_kC_{k+1}}\\\mathbf{0}^\mathsf{T}&1\end{bmatrix}\in SE(3)

Bei Feature-Tracking-Methoden wird die Essentielle Matrix aus korrespondierenden Punkten mittels RANSAC geschätzt, und daraus werden Rotations- und Translationsrichtung rekonstruiert. Bei Stereo-/RGB-D-/kartenbasierten Methoden, die bereits 3D-Punkte verwenden, wird PnP auf die 2D-3D-Korrespondenzen angewendet. Bei Direct VO wird die Pose optimiert, anstatt explizite Deskriptoren abzugleichen, sodass die belichtungskorrigierten Pixelwerte an ihrer projizierten Position übereinstimmen.

Unabhängig von der verwendeten Methode ist VO eine Form der Koppelnavigation, die die seit dem letzten Frame zurückgelegte Strecke berücksichtigt. Ohne externe Karte oder Schleifenschluss verschwindet selbst ein kleiner Fehler in der relativen Pose nicht. Der Positionsfehler nimmt im Allgemeinen mit der Zeit und der zurückgelegten Strecke zu, und selbst wenn man einen langen Korridor mehrmals entlanggeht und zum Ausgangspunkt zurückkehrt, schließt sich die Trajektorie nicht. Dies ist nicht nur ein Implementierungsfehler – es ist eine Eigenschaft eines Problems, das lokale Beobachtungen sequenziell akkumuliert.

Diagram 1 · Use the button to switch views
Fusing camera and IMU in VIOThe camera supplies low-frequency visual constraints, the IMU supplies high-frequency motion constraints, and sliding-window optimization estimates the state trajectory. CameraImages, features, direct method IMUAngular velocity, acceleration (high-frequency) Preintegration + visual residualSliding windowoptimization / filter State estimatePose, position, velocityGravity, bias, scale Calibration, time sync, extrinsics

Das monokulare Skalierungsproblem

Eine kalibrierte monokulare Zwei-Ansichten-Korrespondenz schränkt E=[\mathbf{t}]_\times R ein, bestimmt aber nicht die Die Länge von \mathbf{t} ist entscheidend. Das liegt daran, dass die Skalierung jedes 3D-Punktes und die Translation um s>0 die Bildprojektionen unverändert lassen. Eine monokulare VO-Pose kann präzise erscheinen, obwohl die Positionseinheit willkürlich ist – und wenn die Skalierung von Frame zu Frame schwankt, geht sogar die Form der Trajektorie verloren.

Mit einem Stereo-Rig bekannter Basislinie B lässt sich die Tiefe aus der Disparität d als Z=fB/d rekonstruieren. RGB-D gibt der Tiefe des Sensors eine feste Skalierung. Da in VIO die Beschleunigung in m/s² gemessen wird und die Gravitationsstärke nahezu bekannt ist, ermöglicht eine ausreichende Bewegungsanregung die Angleichung der willkürlichen Skalierung des visuellen Systems an die physikalische Skalierung. Das bloße Anbringen einer IMU erzeugt jedoch nicht automatisch eine Skalierung – im Stillstand, bei Bewegung mit konstanter Geschwindigkeit, über ein zu kurzes Intervall oder mit falschem Zeitversatz werden Skalierung und Bias verwechselt. Sonstiges.

2. Kamerabeobachtungen: Merkmalsbasierte und direkte Methoden

Merkmalsbasierte visuelle Beobachtungen (VO) nutzen Korrespondenzen, die mit ORB, SIFT, FAST+KLT und ähnlichen Methoden verfolgt werden. Für die 2D-Beobachtung \mathbf{z}_{ij} und den Landmarkenpunkt \mathbf{P}_j eines neuen Frames ergibt sich das Projektionsresiduum zu:

\mathbf{r}_{C,ij}=\mathbf{z}_{ij}-\pi\left(K\,T_{CW,i}\mathbf{P}_j\right)

wobei \pi([X,Y,Z]^\mathsf{T})=(X/Z,Y/Z)^\mathsf{T} die perspektivische Teilung darstellt. RANSAC entfernt Fehlpaarungen, und ein Huber-Verlust oder ein ähnlicher Algorithmus verhindert eine Übergewichtung der verbleibenden Ausreißer. Merkmalsbasierte Methoden sind relativ robust gegenüber Belichtungsänderungen und lassen sich geometrisch leichter visualisieren und debuggen.

Direkte Methoden minimieren das Helligkeitsresiduum korrespondierender Pixel oder kleiner Bereiche. Mit den Belichtungsparametern a_i,b_i lässt sich das Residuum an einem Punkt \mathbf{u} näherungsweise wie folgt darstellen:

r_I=I_j\left(\pi(T_{C_jW}T_{WC_i}\pi^{-1}(\mathbf{u},d))\right)-e^{a_j-a_i}I_i(\mathbf{u})-(b_j-e^{a_j-a_i}b_i)

Dies kann viele texturierte Bereiche ausnutzen. Pixelbasierte Bildanalyse (VIO) reagiert empfindlich auf die Annahme konstanter Helligkeit, Rolling-Shutter-Effekte, Unschärfe, automatische Belichtung und Reflexionen. Semidirekte Methoden stellen einen Mittelweg dar: Pixel für die grobe Verfolgung, Merkmale für die spätere Detailerkennung.

Methode Primäre Beobachtung Stärken Schwächen Repräsentative Beispiele
Merkmalsbasierte VIO Keypoint-Reprojektion Leicht verständlich, relativ robust gegenüber Lichtveränderungen Geringe Textur, repetitive Merkmale ORB-SLAM-Familie, VINS-Mono
Direkt / Semidirekt Pixel-/Patch-Helligkeit Dichte Informationen, Subpixel-Verfolgung Belichtungsänderung, Unschärfe, Reflexionen DSO, SVO
Monokulare VIO Bild + IMU Ressourcenschonend, Skalierung sichtbar Empfindlich gegenüber Initialisierung/Synchronisierung VINS-Mono, OpenVINS
Stereo-VIO Linkes/rechtes Bild + IMU Sofortige Skalierung, stabile Initialisierung Stromverbrauch, Links-Rechts-Vergleich Synchronisierung/Kalibrierung VINS-Fusion, Basalt

3. Was die IMU misst und warum eine direkte Integration nicht möglich ist

Eine IMU gibt die Winkelgeschwindigkeit des Gyroskops \tilde{\boldsymbol\omega} und die spezifische Kraft des Beschleunigungsmessers \tilde{\mathbf{a}} aus. Dies sind keine idealen Werte – sie enthalten einen Bias \mathbf{b}_g,\mathbf{b}_a und weißes Rauschen \mathbf{n}_g,\mathbf{n}_a.

\tilde{\boldsymbol\omega}=\boldsymbol\omega+\mathbf{b}_g+\mathbf{n}_g, \qquad \tilde{\mathbf{a}}=R_{BW}(\ddot{\mathbf{p}}_{WB}-\mathbf{g})+\mathbf{b}_a+\mathbf{n}_a

Wichtig ist hierbei, dass der Beschleunigungsmesser nicht die Beschleunigung der Umgebung direkt misst, sondern die spezifische Kraft, wobei die Schwerkraft bereits abgezogen wurde. Ohne Kenntnis der Orientierung lässt sich nicht bestimmen, in welche Richtung die Schwerkraft wieder addiert werden muss, und die doppelte Integration selbst eines kleinen Bias führt zu einer schnellen Positionsdrift. Die Bewegungsgleichungen für kontinuierliche Zeit lauten:

\dot R_{WB}=R_{WB}[\tilde{\boldsymbol\omega}-\mathbf{b}_g-\mathbf{n}_g]_\times, \quad \dot{\mathbf{v}}_{WB}=\mathbf{g}+R_{WB}(\tilde{\mathbf{a}}-\mathbf{b}_a-\mathbf{n}_a), \quad \dot{\mathbf{p}}_{WB}=\mathbf{v}_{WB}

Betrachtet man nur den Fehler nach einer Sekunde, erscheint eine IMU gleichmäßig und Ausgezeichnet, aber bei mehrminütiger Navigation ohne Unterstützung verfälschen Bias und Orientierungsfehler die Position erheblich. Das Prinzip der VIO (Virtual Inference Observation) besteht darin, dass Bilder die langfristige Drift der IMU korrigieren, während die IMU die kurzen Bewegungs- und Rotationsintervalle überbrückt, in denen nur wenige Bilder vorliegen.

4. IMU-Vorintegration: Komprimierung von Bewegungen zwischen Keyframes

In einem typischen Setup arbeitet die Kamera mit 20–60 Hz und die IMU mit 100–1000 Hz. Zwischen den Keyframes i und j können Dutzende bis Hunderte von IMU-Messungen vorliegen. Jedes Mal, wenn der Optimierer die Pose oder den Bias anpasst, jedes Sample neu zu integrieren, wäre aufwändig. Die IMU-Vorintegration von Forster et al. berechnet die relative Rotation, die Geschwindigkeitsänderung und die Positionsänderung um einen gegebenen Linearisierungspunkt-Bias vor und behält außerdem die Jacobi-Matrizen und die Kovarianz bei.

Die Größen ohne Schwerkraft und Weltgeschwindigkeit werden als \Delta R_{ij},\Delta\mathbf{v}_{ij},\Delta\mathbf{p}_{ij} geschrieben. Die Vorhersage ist ungefähr:

R_j\simeq R_i\Delta R_{ij},\quad \mathbf{v}_j\simeq\mathbf{v}_i+\mathbf{g}\Delta t_{ij}+R_i\Delta\mathbf{v}_{ij},
\mathbf{p}_j\simeq\mathbf{p}_i+\mathbf{v}_i\Delta t_{ij}+\frac12\mathbf{g}\Delta t_{ij}^2+R_i\Delta\mathbf{p}_{ij}

Bei der Aktualisierung des Bias wird eine Korrektur erster Ordnung mithilfe des gespeicherten \partial\Delta/\partial\mathbf{b} angewendet. Eine vollständige Reintegration erfolgt nur bei großen Änderungen. Die Rotation wird nicht als einfacher Vektor summiert, sondern auf der SO(3)-Mannigfaltigkeit mittels der Exponentialabbildung oder mit Quaternionen zusammengesetzt. Durch die Berücksichtigung einer Kovarianz \Sigma_{ij} können ein verrauschtes IMU und ein präzises Kameraresiduum innerhalb derselben Zielfunktion korrekt gewichtet werden.

Die repräsentative Zielfunktion für Sliding-Window-VIO ist:

\min_{\mathcal X}\sum_{(i,j)\in\mathcal{B}}\left\|\mathbf{r}_{I,ij}\right\|^2_{\Sigma_{ij}^{-1}} +\sum_{(i,l)\in\mathcal C}\rho\left(\left\|\mathbf{r}_{C,il}\right\|^2_{\Sigma_{C}^{-1}}\right) +\left\|\mathbf{r}_{\text{prior}}\right\|^2

Die Zustandsmenge \mathcal X enthält für jedes Keyframe die Pose, Position, Geschwindigkeit, Gyroskop-/Beschleunigungsmesser-Bias, die inverse Tiefe von Landmarken und, falls erforderlich, den Zeitversatz oder extrinsische Parameter. Alte Zustände sind Die Marginalisierung in eine Priorverteilung begrenzt den Rechenaufwand. Da die Marginalisierung vom Linearisierungspunkt abhängt, führt die wiederholte Aktualisierung des Zustands um einen großen Betrag häufig zu Konsistenzproblemen. Techniken wie die First-Estimate Jacobian (FEJ) optimieren nicht nur die Geschwindigkeit, sondern verhindern auch, dass das System fälschlicherweise Freiheitsgrade „beobachtet“, die tatsächlich nicht beobachtbar sind.

5. Filterbasierte vs. optimierungsbasierte Verfahren

VIO lässt sich grob in zwei Familien unterteilen: erweiterte Kalman-Filter (EKF) mit Fehlerzustandsoptimierung und nichtlineare Optimierungsverfahren fester Länge. Erstere aktualisieren sequenziell den aktuellen Zustand und die Kovarianz und halten Latenz und Speicherbedarf gering. MSCKF speichert Merkmalspunkte nicht als langlebigen Zustand, sondern marginalisiert sie als Multi-View-Constraints, was den Ressourcenverbrauch reduziert. OpenVINS implementiert diese Familie mit Fokus auf Reproduzierbarkeit und Erweiterbarkeit.

Letztere optimieren mehrere Keyframes und Landmarken gemeinsam. VINS-Mono ist ein repräsentatives Beispiel. Beispiel mit Feature-Tracking, IMU-Vorintegration, einem gleitenden Fenster und Schleifenabschluss. Die Verteilung des Reprojektionsfehlers auf mehrere Frames führt oft zu einer höheren Genauigkeit, jedoch müssen Marginalisierung, Solver, Latenz und die Wiederherstellung nach einer fehlgeschlagenen Initialisierung sorgfältig geplant werden.

Aspekt EKF/MSCKF-Familie Familie der gleitenden Fensteroptimierung
Schätzform Sequenzielle Aktualisierung von Zustand und Kovarianz Iterative Minimierung eines Faktorgraphen über mehrere Zeitschritte
Rechenaufwand/Latenz Vorhersagbar, geringe Latenz leicht zu gewährleisten Abhängig von der Anzahl der Keyframes und Iterationen
Umgang mit Features Einfache Marginalisierung als Beobachtungsbeschränkungen Einfache Speicherung der inversen Tiefe etc. als expliziten Zustand
Stärken Gut geeignet für eingebettete Systeme, einfache Handhabung der Kovarianz Einfachere Gewährleistung einer weitgehend konsistenten Reprojektion
Einschränkungen Linearisierung und Konsistenz, Beobachtbarkeit Marginalisierungsfehler, CPU-Last Relinearisierung

Keine der beiden Methoden ist generell besser. Die Wahl hängt von der benötigten Latenz, der Sensorfrequenz, der CPU-Leistung, dem Sichtfeld, der Betriebsumgebung und dem Wartungsaufwand ab. Ein alleiniger Vergleich des in einer Veröffentlichung angegebenen Trajektorienfehlers, ohne das Kameramodell, die Kalibrierung, die Bewegung im Datensatz und die Verwendung einer Relokalisierung zu berücksichtigen, führt häufig zu einer falschen Implementierungsentscheidung.

6. Initialisierung: Was muss in den ersten Sekunden bestimmt werden?

Beim Start von VIO sind die Weltorientierung, die Anfangsgeschwindigkeit, die Gyroskop- und Beschleunigungsmesserabweichung, die Schwerkraft, der monokulare Maßstab und die relative Position von Kamera und IMU noch unbestimmt. Üblicherweise wird zunächst eine relative Struktur für zwei oder mehrere Ansichten allein aus den Bildern erstellt. Anschließend wird diese visuelle Bewegung mit der IMU-Integration abgeglichen, um Geschwindigkeit, Schwerkraftrichtung, Maßstab und Abweichung zu berechnen.

Ein stationäres Intervall liefert eine erste Schätzung der Gyroskopabweichung aus dem durchschnittlichen Gyroskopwert und einen Hinweis auf die Schwerkraftrichtung aus der durchschnittlichen Beschleunigungsrichtung. Der Beschleunigungsmesser kann die Eigenbeschleunigung eines Fahrzeugs nicht von der Schwerkraft unterscheiden. Die Einbeziehung von Anregung während der Initialisierung – Rotation und Translation um mehrere Achsen, nicht nur langsames Hin- und Herbewegen des Geräts – hilft, die Korrelation zwischen Skalierung und Bias zu entwirren. Umgekehrt führt ein nahezu stationäres Gerät auf einem Tisch, das sich mit konstanter Geschwindigkeit in eine Richtung bewegt oder nur eine Ebene erfasst, tendenziell zu einer unzureichenden Datenerfassung.

Die Beurteilung des Initialisierungserfolgs beschränkt sich nicht allein auf die Konvergenz des Optimierers. Prüfen Sie, ob die geschätzte Skalierung positiv und plausibel ist, die Schwerkraft nahe bei 9.81\,\mathrm{m/s^2} liegt, der Bias nicht weit außerhalb der Sensorspezifikationen liegt und die initialen triangulierten Punkte ausreichend Parallaxe und einen hohen Anteil positiver Tiefe aufweisen. Anstatt nach einem Fehler einen fehlerhaften Zustand beizubehalten, ist das Zurücksetzen der Bildspuren und des IMU-Puffers sowie die Neuinitialisierung in der Regel weniger schädlich für den weiteren Verlauf.

7. Kalibrierung und Zeitsynchronisation

Die Leistung von VIO wird weniger vom Algorithmus bestimmt. Die Genauigkeit des Sensormodells ist wichtiger als die korrekte Bezeichnung. Mindestens drei Kalibrierungen sind erforderlich.

  • Intrinsische Kamerakalibrierung: Brennweite, Hauptpunkt, Verzeichnungsmodell. Bei einer Größenänderung oder einem Beschnitt des Bildes muss auch K angepasst werden.

  • Extrinsische Kalibrierung: die starre Transformation T_{BC} zwischen Kamera und IMU. Ein Rotationsfehler von wenigen Grad oder ein Hebelarmfehler von wenigen Zentimetern hat bei schnellen Bewegungen große Auswirkungen.

  • Zeitkalibrierung: der Versatz zwischen Belichtungszeit und IMU-Zeit sowie gegebenenfalls der Auslesezeit der Kamera. Unterschiedliche Uhren, Pufferung und Treiberzeitstempel können einen Restversatz von mehreren Millisekunden verursachen.

Kalibr ist ein weit verbreitetes Tool zur Schätzung des Zeitversatzes und der extrinsischen Werte zwischen Kamera und IMU. Es ist jedoch riskant, einen einmal ermittelten Wert als permanent zu betrachten – eine Fokusänderung, der Zusammenbau des Gehäuses, Temperaturänderungen oder Firmware-Änderungen im Sensor können diese Bedingungen verändern. Das Übernehmen typischer Werte aus einem Datenblatt und die Überprüfung der IMU-Rauschdichte sowie des Bias-Random-Walk-Effekts mithilfe von Methoden wie der Allan-Varianz helfen, übermäßiges Vertrauen in den Filter zu vermeiden.

Eine Kamera mit Rolling-Shutter erfasst kein einzelnes Bild in einem einzigen Moment. Bei schneller Rotation werden die oberen und unteren Zeilen in unterschiedlichen Positionen erfasst, und ein Reprojektionsresiduum, das einen Global Shutter annimmt, ist systematisch ungenau. Eine kurze Belichtung mit Global Shutter ist die zuverlässigste Lösung; andernfalls sollte ein Beobachtungsmodell mit Zeilen-Timing und IMU-Kompensation in Betracht gezogen werden. Beim Hinzufügen von Kameras links/rechts oder eines Tiefensensors ist eine hardwaregesteuerte Synchronisierung vorzuziehen.

8. Implementierungswahl: VINS-Mono, OpenVINS und verwandte Systeme

VINS-Mono ist eine weit verbreitete, optimierungsbasierte VIO-Implementierung für eine monokulare Kamera mit IMU. Sie umfasst Online-Kalibrierung von Extrinsik und Zeitversatz, Feature-Tracking, Vorintegration, ein gleitendes Fenster und Schleifenschließung. Ihr Wert liegt nicht nur in der Ausgabe einer Position, sondern in der Lesbarkeit der gesamten Konfiguration. Für Forschungszwecke. VINS-Fusion eignet sich, wenn Stereo- oder GPS-Daten kombiniert werden sollen.

OpenVINS ist eine offene Implementierung, die auf der MSCKF/EKF-Familie basiert und mit FEJ und expliziter Konsistenz entwickelt wurde. Sie eignet sich für Situationen, in denen überprüft werden soll, wie ein filterbasierter VIO Zustand, Kovarianz und Kalibrierung handhabt. Basalt bietet Stereo-VIO mit einem leistungsstarken Optimierungs-Backend und wird anhand von Datensätzen wie EuRoC getestet. Auf Smartphones und in AR ist die Verwendung des plattforminternen VIO für eine Anwendung oft realistischer, da dieser Zugriff auf Kamera-Timing, IMU-Timing und gerätespezifische Kalibrierung hat.

Implementierung/Familie Schätzstil Beispielhafte Sensorkonfiguration Geeignet für Zu beachtende Punkte bei der Einführung
VINS-Mono Optimierung, festes Fenster Monokular + IMU Verständnis der Gesamtstruktur von VIO, Forschungsprototypen ROS-Generierung, Kalibrierungsformat, Initialisierungsbedingungen

VINS-Fusion | Optimierung, festes Fenster | Monokular/Stereo + IMU, GPS optional | Multisensor-Prototyping | Koordinatenrahmen und Gewichtung absoluter Beobachtungen |

OpenVINS | EKF/MSCKF | Monokular/Stereo + IMU | Eingebettetes Lernen, Filterverifizierung | Rauschwerte, FEJ, Zustandsdesign |

Basalt | Optimierung | Stereo + IMU | Hochleistungsfähiges VIO-Backend | Build-Umgebung, Kameramodell |

Benutzerdefiniertes OpenCV + Ceres | Beliebig | Beliebig | Anforderungsspezifische Arbeit, Lernen | Verifizierung von Reprojektion, Präintegration, Marginalisierung |

Beim Vergleich bestehender Implementierungen sollte eine in einer Demo angezeigte Trajektorie nicht als Erfolg gewertet werden. Überprüfen Sie auf realer Hardware: die Auflösung und tatsächliche Frequenz des Eingangsbildes, die Einheiten und Achsenkonvention der IMU, die Zeitreferenz, die externe Kalibrierung, das Verhalten bei Initialisierungsfehlern, die Relokalisierung nach Trackingverlust, die CPU-Auslastung, den Speicherverbrauch und die Lizenz. Insbesondere, wenn eine Der Zeitstempel der ROS-Nachricht wird mit der Empfangszeit aufgefüllt. Der Schätzer empfängt einen scheinbar korrekten Befehl, jedoch mit physikalisch falschen Zeitintervallen.

9. Minimaler Verarbeitungsablauf

  1. Kameraparameter (intrinsisch/extrinsisch) und Zeit kalibrieren und Bilder sowie IMU-Daten auf einer gemeinsamen Zeitbasis puffern.

  2. Bei jedem IMU-Eintreffen den Zustand mithilfe der bias-korrigierten Winkelgeschwindigkeit und der spezifischen Kraft vorhersagen und die Kovarianz bzw. Vorintegration aktualisieren.

  3. Bei jedem Bildeintreffen Merkmale des vorherigen Frames/Keyframes verfolgen und Ausreißer mithilfe von Vorwärts-Rückwärts-Prüfungen, RANSAC und Masken entfernen.

  4. Vor der Initialisierung Parallaxe und Anregung prüfen und die visuelle Struktur mit den Inertialdaten abgleichen. Bei schlechten Bedingungen den Start verzögern.

  5. Nach der Initialisierung das visuelle Reprojektionsresiduum mit dem IMU-Residuum fusionieren und Pose, Position, Geschwindigkeit, Bias und Punkte aktualisieren.

  6. Alte Keyframes marginalisieren und Beobachtungen, die ein Qualitätskriterium nicht erfüllen, verwerfen. Übergang zur Neulokalisierung oder einem sicheren Reset, falls erforderlich.

In diesem Ablauf ist die Unterscheidung zwischen Vorhersage und Korrektur wichtig. Selbst bei vorübergehendem Bildverlust kann die IMU-Vorhersage weiterhin Ergebnisse liefern, ihre Unsicherheit nimmt jedoch zu. Anstatt einer binären Antwort („Pose verfügbar/nicht verfügbar“) sollte die Anwendung den Tracking-Status, eine Kovarianz- oder Qualitätswert und die Zeit seit der letzten visuellen Aktualisierung erhalten und diese nutzen, um die AR-Anzeige schrittweise umzuschalten, die Geschwindigkeit zu steuern und Sicherheitsstopps durchzuführen.

10. Bewertungsmetriken: Was messen, um fair zu vergleichen?

Der absolute Trajektorienfehler (ATE) ist die Differenz zwischen der geschätzten Positionssequenz und der tatsächlichen Position nach der Ausrichtung mit einer starren oder Sim(3)-Transformation.

\mathrm{ATE}_{\mathrm{RMSE}}=\sqrt{\frac1N\sum_{k=1}^{N}\left\|\mathbf{p}^{\mathrm{gt}}_k-(R\hat{\mathbf{p}}_k+\mathbf{t})\right\|^2}

Da die monokulare visuelle Optik (VO) einen unbestimmten Maßstab aufweist, sollte immer angegeben werden, ob die Sim(3)-Ausrichtung ebenfalls dem Maßstab entspricht. Wenn der Maßstabsfehler in der visuellen Optik (VIO) oder Stereodarstellung sichtbar sein soll, wird er durch die Sim(3)-Ausrichtung genau verdeckt. Es ist zu entscheiden, ob eine SE(3)-Ausrichtung verwendet, nur die Ausgangspose ausgerichtet oder verglichen werden soll. Nicht ausgerichtete Trajektorien sollten dem jeweiligen Zweck entsprechend ausgewählt werden.

Der relative Positionsfehler (RPE) misst die lokale Abweichung über ein festes Zeit- oder Distanzintervall. Aus der Differenz zwischen der geschätzten relativen Transformation und der tatsächlichen Position werden der Translationsfehler (Translationsfehler in m/m oder %) und der Rotationsfehler (Grad/m, Grad/s) berechnet. Selbst wenn der ATE-Wert über eine lange Distanz gering ist, ist eine Trajektorie für Augmented Reality (AR) oder die Flugsteuerung ungeeignet, wenn das kurzfristige Jitter groß ist. Umgekehrt ist eine glatte, aber über lange Distanzen abweichende Trajektorie für die Kartierung ungünstig.

Metrik Hauptaussage Fallstrick
ATE RMSE/Median Gesamtpositionskonsistenz der Trajektorie Der Wert variiert stark je nach Ausrichtungsmethode.
RPE (Distanz/Zeitintervall) Lokale Drift, Auswirkung auf die Steuerung Nicht vergleichbar, solange die Intervalllänge nicht angegeben ist
Rotationsfehler Qualität der Gyroskop-/visuellen Orientierung Vermischung von Gier- und Roll-/Nickwinkel verschleiert die Ursache
Skalierungsfehler Physikalische Skala des monokularen VIO/Stereo-Systems Kann nach der Ausrichtung mit Sim(3) nicht bewertet werden
Tracking-Rate / Ausfallrate Verfügbarkeit in der Praxis Automatische Reinitialisierung nach einem Fehler nicht ausblenden
Latenz / CPU / Stromverbrauch Praktikabilität einer eingebetteten Implementierung Kann nicht allein anhand der Offline-Verarbeitung beurteilt werden

EuRoC MAV, TUM VI, UZH-FPV und KITTI sind öffentlich zugängliche Datensätze, die häufig für Vergleiche verwendet werden. Allerdings unterscheiden sich handgeführte Kameras für Innenräume, fahrzeugmontierte Systeme und Renndrohnen hinsichtlich Sichtfeld, Beleuchtung, Geschwindigkeit, Vibration und Belichtung. Anstatt eine Benchmark-Rangliste direkt auf reale Hardware zu übertragen, sollten Sie die Ergebnisse auf einer Route, mit einer Geschwindigkeit und unter Fehlerbedingungen bewerten, die Ihren eigenen Protokollen möglichst nahekommen. Selbst im Feld, wo keine Ground Truth erfasst werden kann, ist dies möglich. Prüfung anhand der Start-/Endlücke eines geschlossenen Regelkreises, bekannter Entfernungen, Wandprojektion oder eines durch externe Bewegungserfassung abgedeckten Teilbereichs.

11. Repräsentative Fehlerbedingungen und Gegenmaßnahmen

Geringe Textur, Dunkelheit, Unschärfe

Eine weiße Wand, ein dunkler Korridor, Gegenlicht oder eine scharfe Kurve führen zu einem unzureichenden Gradienten im visuellen Restbild. Eine Lockerung des RANSAC-Schwellenwerts bei wenigen Merkmalspunkten erhöht lediglich die Anzahl der Fehlanpassungen. Gegenmaßnahmen umfassen eine Beleuchtungs-/Sensorkonstruktion mit verkürzter Belichtungszeit, Weitwinkel- oder Stereoaufnahmen, erneute Merkmalserkennung und die Benachrichtigung des Nutzers über die erhöhte prognostizierte Unsicherheit.

Dynamische Objekte und Reflexionen

VIO geht davon aus, dass die meisten Bildpunkte zum statischen Hintergrund gehören. Menschenmengen, ein vorausfahrendes Fahrzeug im Verkehr, Spiegel, Glas und Wasseroberflächen widerlegen diese Annahme. Robuste Verlustfunktion und RANSAC allein können nicht helfen, wenn der Hintergrund nur noch eine Minderheit darstellt. Notwendig ist es, den semantischen Bereich bewegter Objekte auszuschließen, mehrere Bewegungen anhand von Tiefe oder Fluss zu trennen und ein Design zu entwickeln, das statische Objekte priorisiert.

IMU-Sättigung, Vibration, Temperaturdrift

Motorvibrationen in Drohnen und kleinen Robotern erzeugen starkes bandbegrenztes Rauschen im Beschleunigungsmesser, und Stöße können dessen Messbereich sättigen. Wird das Rauschen des Filters zu gering eingestellt und dem IMU zu viel Vertrauen geschenkt, werden Bildkorrekturen abgelehnt und die Messwerte divergieren. Verwenden Sie Vibrationsisolierung, geeignete Bandbegrenzung, Sättigungskennzeichen, ein Bias-Modell, das die Temperatur berücksichtigt, und gemessene Rauschparameter. Vorsicht: Eine zu starke Glättung der Rohdaten des IMU führt zum Verlust kurzer Beschleunigungen.

Zeitversatz und Koordinatensystem-Verwechslungen

Ein Zeitversatz von 5 ms entspricht einer großen Differenz im Sichtfeld bei schnellen Rotationen. Geben Sie explizit an, ob Bildzeitstempel den Belichtungsbeginn, die Belichtungsmitte oder den Empfangszeitpunkt und IMU-Zeitstempel die Abtastzeit oder die Ankunftszeit bezeichnen. Die Verwechslung von Rechts- und Linkshändigkeitskonventionen, dem Vorzeichen der Schwerkraft, T_{BC} versus T_{CB} oder der Richtung der optischen Achse der Kamera kann dazu führen, dass die Optimierung zwar numerisch konvergiert, aber physikalisch falsch ist. Führen Sie Unit-Tests mit einem stationären Test, einer bekannten 90°-Drehung und einer kurzen geradlinigen Bewegung durch.

Verwechslung von Initialisierung und Relokalisierung

Initialisierung bedeutet, eine Schätzung von einem Zustand ohne Karte oder Skalierung aus zu beginnen; Relokalisierung bedeutet, zu einer bekannten Karte oder einem vorherigen Keyframe zurückzukehren. Reines VO/VIO startet typischerweise in einem neuen lokalen Koordinatensystem neu, sobald die Verfolgung verloren geht. Verwechseln Sie bei der Bewertung nicht die Relokalisierungsfähigkeit von SLAM mit Schleifenschluss mit der Driftleistung von VO. Entscheiden Sie in einem Produkt explizit, ob nach einem Verfolgungsverlust das alte Koordinatensystem beibehalten, sicher gestoppt oder der Anker ungültig gemacht werden soll.

12. Aktuelle Entwicklungen

In den letzten Jahren haben sich lernbasierte Verfahren zur Merkmals- und Korrespondenzschätzung, wie SuperPoint, LightGlue und LoFTR, in einigen Fällen als wirksam gegen Erscheinungsänderungen erwiesen, die für klassische lokale Deskriptoren schwer zu erfassen sind. Auch Ansätze, die ein tiefes neuronales Netz mit iterativer geometrischer Optimierung kombinieren, wie beispielsweise DROID-SLAM, sind aufgekommen. Doch selbst wenn ein gelerntes Modell viele Korrespondenzen liefert, bleiben Skalenmehrdeutigkeit, planare Entartung, Zeitsynchronisation und IMU-Bias physikalische Probleme. Ein Design, das die gelernten Ergebnisse anhand robuster Geometrie, Reprojektionsfehler und inertialer Konsistenz verifiziert, ist nach wie vor der grundlegende Ansatz.

Eventkameras mit ihrer hohen Geschwindigkeit und ihrem hohen Dynamikumfang bieten das Potenzial, Bedingungen abzudecken, unter denen herkömmliche Kameras mit Unschärfe oder Dunkelheit zu kämpfen haben. Multimodale Schätzung, die LiDAR, UWB, GNSS oder Radodometrie in die VIO integriert, wird ebenfalls immer praktikabler, als Gegenmaßnahme gegen langfristige Drift und raue Umgebungen. Das Hinzufügen weiterer Sensoren verbessert die Leistung nicht automatisch – externe Faktoren, Timing, Fehlererkennung und Gewichtungsoptimierung stellen neue potenzielle Fehlerquellen dar.

13. Zusammenfassung

VO ist eine nützliche Odometrie-Technik zur Rekonstruktion kurzfristiger Relativbewegungen aus Bildern. Monokulares VO bietet jedoch keine Skalierung, und lokale Fehler akkumulieren sich. VIO kombiniert die hochfrequente Bewegungsbeschränkung der IMU mit der Langzeitkorrektur der Kamera und schätzt gleichzeitig Skalierung, Pose, Geschwindigkeit und Bias. Kernstück sind ein korrektes Sensormodell, die IMU-Vorintegration, die Initialisierung mit ausreichender Bewegungsanregung und eine robuste Fusion visueller und inertialer Residuen.

In der Praxis sollten Sie zunächst Kalibrierung, Timing und Koordinatensysteme überprüfen und anschließend Parallaxe, Inlier-Verteilung, Reprojektionsfehler, Bias, Schwerkraft und Tracking-Status in beobachtbare Protokolle umwandeln. VINS-Mono und OpenVINS sind gute Ausgangspunkte, müssen aber hinsichtlich Ihrer Aufnahmebedingungen, Latenz, Reinitialisierungsrichtlinie und Sicherheitsanforderungen evaluiert werden. Letztendlich sollte man nicht der Optik der Flugbahn vertrauen, sondern einem Design, das erklären kann, unter welchen Bedingungen Skalierung und Lage beobachtbar sind und unter welchen Bedingungen die Unsicherheit zunimmt.

Überprüfen Sie Ihr Verständnis
Stabilisiert das Hinzufügen einer IMU immer die Skalierung?

Die Beobachtbarkeit hängt von der Bewegung ab. Unzureichende Anregung oder Kalibrierungsfehler können trotz des zusätzlichen Sensors zu instabilen Schätzungen führen.

## Referenzen (Primärquellen und offizielle Dokumentation) - [Scaramuzza & Fraundorfer, Visual Odometry: Part I (IEEE Robotics & Automation Magazine, 2011)](https://doi.org/10.1109/MRA.2011.943233) - [Forster et al., On-Manifold Preintegration for Real-Time Visual-Inertial Odometry (IEEE TRO, 2017)](https://doi.org/10.1109/TRO.2016.2597321) - [Qin, Li & Shen, VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator (IEEE TRO, 2018)](https://doi.org/10.1109/TRO.2018.2853729) - [Geneva et al., OpenVINS: A Research Platform for Visual-Inertial Estimation (ICRA 2020)](https://arxiv.org/abs/1910.11675) - [Offizielle OpenVINS-Dokumentation](https://docs.openvins.com/) - [Offizielles VINS-Mono-Repository](https://github.com/HKUST-Aerial-Robotics/VINS-Mono) - [Offizielles Kalibr-Repository](https://github.com/ethz-asl/kalibr) - [EuRoC MAV-Datensatz (ETH Zürich)](https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets) - [TUM VI Benchmark](https://cvg.cit.tum.de/data/datasets/visual-inertial-dataset) - [DROID-SLAM-Paper (NeurIPS 2021)](https://proceedings.neurips.cc/paper_files/paper/2021/hash/a7c9585703d275249f30e7c8b80005e9-Abstract.html)

What to read next

Review the backgroundEinführung in die Multi-View-Stereo-Technologie – Auffüllen einer spärlichen Punktwolke zu einer dichten 3D-FormContinue the seriesLeitfaden zur Schleifenschließung – Gleichzeitige Behebung der Drift eines SLAM-Systems entlang einer SchleifeExplore another aspect of this fieldLab für Bildhelligkeit und Leuchtdichte — Belichtung, Gamma und Clipping