Diagnose und behebung: Probleme mit springendem und driftendem Inhalt in Anwendungen
"Virtueller Inhalt driftet", "Objekte zittern", "Position ist instabil" – dies sind häufige Probleme, die Entwickler in AR-Anwendungen erleben. Instabiler Inhalt kann die Immersion stark beeinträchtigen und zu einer schlechten Benutzererfahrung führen.
Dieser Artikel hilft Ihnen, die Ursachen für springenden und driftenden Inhalt zu verstehen und bietet einen systematischen Ansatz zur Fehlersuche und Optimierung.
Unterscheidung zwischen "normalem zittern" und "anormaler drift"
Zunächst ist es wichtig, realistische Erwartungen zu setzen. Hochpräzises AR-Tracking auf Mobilgeräten ist von Natur aus herausfordernd. Folgende Phänomene liegen im normalen Bereich, können nicht vollständig beseitigt, aber optimiert werden:
Geringfügiges hochfrequentes Zittern (Jitter):
- Erscheinungsbild: Virtuelle Objekte zeigen millimetergroße, feine Schwankungen.
- Ursache: Dies wird durch physikalisches Rauschen der Gerätesensoren, die Genauigkeitsgrenzen von visuellen Tracking-Algorithmen und minimales Zittern der Hand beim Halten des Geräts verursacht.
- Beispiel: Bei Betrachtung aus kurzer Distanz (z.B. ein virtuelles Objekt auf einem Tisch, das aus der Nähe betrachtet wird) ist dieses leichte Zittern normal.
Kurzzeitiges Driften (Drift):
- Erscheinungsbild: Bei schnellen Bewegungen oder Drehungen des Geräts weicht das virtuelle Objekt kurzzeitig (0,5-1 Sekunde) von seiner Position ab, bevor es zurückkehrt.
- Ursache: Das SLAM-System (Simultaneous Localization and Mapping) des Geräts kann bei schneller Bewegung aufgrund von kumulativen Fehlern der IMU (Inertial Measurement Unit) und Verzögerungen im visuellen Tracking zu kurzzeitigem Positionsdrift führen.
- Beispiel: In dynamischen Szenen ist dies akzeptabel. Wenn das Objekt schnell in die korrekte Position "zurückspringt", funktioniert das System.
Folgende Fälle sind jedoch anormale Probleme, die untersucht und behoben werden müssen:
- Anhaltendes, starkes Positionsdriften: Das virtuelle Objekt weicht langsam und kontinuierlich von seiner Sollposition ab und kehrt nicht oder erst nach langer Zeit zurück.
- Starkes Springen oder Flackern: Das virtuelle Objekt springt deutlich auf dem Bildschirm oder erscheint und verschwindet intermittierend.
- Inkonsistente relative Position zum realen Objekt: Das virtuelle Objekt kann nicht stabil auf dem realen Objekt "fixiert" werden.
Anmerkung
Zusätzlich ist ein wichtiger Punkt zu beachten:
Geräte, die im 0DoF-, 3DoF- oder 5DoF-Modus betrieben werden, haben von Natur aus eine schwächere "Passgenauigkeit" und "Realitätsnähe" als 6DoF-Geräte. Bei schnellen Bewegungen, Richtungswechseln oder Treppensteigen können virtuelle Objekte nicht perfekt folgen.
Daher sind Phänomene wie "in der Luft schwebender" oder "verschobener" Inhalt in diesen Modi eine grundlegende Einschränkung der Gerätefähigkeit und nicht die in diesem Artikel behandelte "Fehlfunktion" von springendem oder driftendem Inhalt.
Unterschiede in der Erfahrung zwischen verschiedenen xDoF-Modi finden Sie in der Einführung unter Navigationsbest Practices.
Systematischer fehlersuchungsprozess
Bitte folgen Sie dieser Reihenfolge, beginnend mit den wahrscheinlichsten Ursachen.
Schritt eins: Externe umgebungs- und hardwarefaktoren (keine codeänderung erforderlich)
Überprüfung der physischen Umgebung:
- Texturreichtum
Ist Ihre Testumgebung zu eintönig? Große Flächen mit weißen Wänden, glatten Böden oder Glasoberflächen können zu Fehlern oder Ausfällen beim visuellen Tracking führen. - Bewegte Objekte
Gibt es viele bewegte Objekte in der Umgebung (z.B. Menschenmengen, fahrende Fahrzeuge)? Dynamische Objekte können das visuelle Tracking stören, aber solche Probleme sind oft kurzlebig. - Szenenverwechslung
Gibt es leicht verwechselbare Bereiche in der Umgebung (z.B. ähnlich aussehende Aufzugsvorräume)? Visuell ähnliche Bereiche können die Lokalisierung beeinflussen und dazu führen, dass das Tracking-Ergebnis zwischen ähnlichen Bereichen hin und her springt. Solche Probleme können durch das vorherige Festlegen geeigneter Vorabinformationen vermieden werden.
- Texturreichtum
Überprüfung der Gerätehardware:
- Geräteüberhitzung
Wird das Gerät nach längerem Betrieb sehr heiß? Überhitzung kann zu einer Drosselung von CPU/GPU führen und die Tracking-Leistung des integrierten SLAM-Systems beeinträchtigen – eine häufige Ursache für anhaltendes Driften. - Geräteleistung
Auf älteren Geräten kann es aufgrund begrenzter Hardwareleistung und Sensorengenauigkeit leichter zu Maßstabsdrift kommen, was auch den virtuellen Inhalt driften lässt. Ein Vergleichstest auf einem anderen Gerät kann helfen zu beurteilen, ob das Problem durch die Gerätebeschränkungen selbst verursacht wird.
- Geräteüberhitzung
Schritt zwei: Analyse der karten- und lokalisierungsqualität (mit externen tools)
Verwendung von Mega Toolbox:
- Führen Sie die Mega Toolbox an derselben Position aus und beobachten Sie die Stabilität ihrer Lokalisierung.
- Wenn die Toolbox-Lokalisierung ebenfalls driftet/springt: Das Problem liegt bei der Karte selbst oder die aktuelle Umgebung ist für die Lokalisierung ungeeignet.
- Wenn die Toolbox-Lokalisierung stabil ist: Das Problem liegt in Ihrer Anwendung. Fahren Sie mit Schritt drei fort.
Verwendung der PC-Simulation mit EIF-Daten:
- Spielen Sie die vor Ort aufgezeichneten EIF-Daten (Experience Information File) auf dem PC wieder ab.
- Wenn die Wiedergabe ebenfalls driftet/springt: Dies deutet darauf hin, dass die Szene selbst für die Lokalisierung ungeeignet ist, oder die Karte selbst ein Problem hat, oder das Gerät, das die EIF-Daten aufgezeichnet hat, selbst Skalendrift im Bewegungstracking aufwies.
- Wenn die Wiedergabe stabil ist: Die Szene selbst ist lokalisationstauglich. Das Problem liegt wahrscheinlich an Faktoren wie Geräteüberhitzung oder Drosselung während des Echtzeitbetriebs Ihrer Anwendung.
Schritt drei: Überprüfung der internen anwendungslogik
Pose-Aktualisierung:
- Wenden Sie unnötige zusätzliche Glättung auf die Posendaten an (z.B. übermäßiges
LerpoderSmoothDamp)? Dies kann zu Latenz und einem Driftgefühl führen. - In der Regel ist die direkte Verwendung der rohen, von Mega zurückgegebenen Pose die stabilste Lösung.
- Wenden Sie unnötige zusätzliche Glättung auf die Posendaten an (z.B. übermäßiges
Koordinatensystemabgleich:
- Stellen Sie sicher, dass die Knotenbeziehungen Ihrer virtuellen Objekte, der Szenenkamera und des
MegaTrackerusw. korrekt sind und dass Sie die Werte derlocal transformder Knoten unterhalb vonMegaBlocksnicht manuell geändert haben. - Falsche Knoteneinstellungen können zu inkorrekten Koordinatentransformationen führen, was unvorhersehbare Rendering-Verhalten des Inhalts verursacht.
- Stellen Sie sicher, dass die Knotenbeziehungen Ihrer virtuellen Objekte, der Szenenkamera und des
Besonderer hinweis: Visuelle überlagerungsprobleme bei OST-headsets
Nachdem Sie die Lokalisierungs- und Renderinglogik überprüft haben, müssen Sie bei Verwendung von OST-Headsets (Optical See-Through) eine besondere Situation berücksichtigen.
Selbst wenn das Gerät selbst über gute 6DoF-Bewegungstracking-Fähigkeiten verfügt, kann es vorkommen, dass die "Passgenauigkeit" der Überlagerung virtueller Objekte mit dem physischen Raum unbefriedigend ist. Dies ist in der Regel kein Fehler des Mega-Lokalisierungsdienstes, sondern ein inhärentes Phänomen, das durch die Optik von OST-Geräten verursacht wird, z.B. optische Ausrichtungsfehler oder Kalibrierungsunterschiede des menschlichen Auges.
Eine detaillierte Erklärung und Methoden zur Diagnose solcher Probleme finden Sie in der Einführung unter Besondere Hinweise für OST-Geräte.
Zusammenfassung und bewährte praxis
Nach der vorangegangenen Fehlersuche sollten Sie die Grundursache für springenden oder driftenden Inhalt identifiziert haben. Zur schnellen Übersicht und Umsetzung fassen wir die häufigsten Problemerscheinungen, möglichen Ursachen und bewährten Praktiken in der folgenden Tabelle zusammen. Finden Sie basierend auf Ihren Ergebnissen die entsprechende Lösung.
| Problemtyp | Mögliche Ursache | Bewährte Praktiken |
|---|---|---|
| Geringfügiges Zittern | Sensorrauschen, Algorithmusgrenze | Dieses leichte Zittern ist normal und erfordert in der Regel keine besondere Aufmerksamkeit. |
| Drift nach schneller Bewegung | SLAM-Latenz, Algorithmuskorrektur | Benutzer können angewiesen werden, das Gerät gleichmäßig zu bewegen. Wenn es sich nicht schnell erholt, ist weitere Untersuchung nötig. |
| Anhaltendes großflächiges Driften | SLAM-Fehler, Geräteunterschiede | Führen Sie einen Kreuzvergleichstest mit einem anderen Gerät durch. |
| Starkes Springen/Flackern | Verwirrende Szene, ungeeignet für Lokalisierung | Setzen Sie unterstützende Vorabinformationen ein oder leiten Sie Benutzer an. |
| Inkonsistente Position relativ zum realen Objekt | Lokalisierungs-/Kartenfehler, Logikfehler im Code | Testen Sie aus mehreren Blickwinkeln, beobachten Sie die Position des virtuellen Objekts und beheben Sie mögliche Codefehler. |
Wenn Ihr Problem nach diesen Schritten weiterhin besteht, reichen Sie bitte einen detaillierten Bericht über Problembericht ein, ergänzt durch Bildschirmaufnahmen, aufgezeichnete EIF-Daten und detaillierte Protokolle.