EasyAR Unity headset-Erweiterungspaket
Dieses Dokument führt in das Konzept und die Fähigkeitsgrenzen des EasyAR Unity headset-Erweiterungspakets ein und beschreibt das erforderliche Hintergrundwissen für die Erstellung eines headset-Erweiterungspakets.
Vorbereitung
- Lesen Sie EasyAR's Head-Mounted-Display-Unterstützung, um zu verstehen, welche Arten von Head-Mounted-Displays von EasyAR unterstützt werden und welche EasyAR-Funktionen auf Head-Mounted-Displays ausgeführt werden können.
- Lesen Sie EasyAR Head-Mounted-Display-Unterstützung in Unity, um die Gesamtarchitektur der EasyAR Head-Mounted-Display-Unterstützung in Unity zu verstehen.
Was ist das EasyAR Unity headset-Erweiterungspaket
Das EasyAR Unity headset-Erweiterungspaket ist ein Unity-Paket, das eine Reihe von Code und Beispielen enthält, um Ihnen bei der Nutzung der Funktionen von EasyAR Sense auf Ihrem Headset-Gerät zu helfen. Mit diesem Erweiterungspaket können Sie die meisten Funktionen von EasyAR Sense (wie Bildverfolgung, dichte Raumkarte usw.) in Ihr Gerät integrieren und so die leistungsstarken AR-Funktionen nutzen, die EasyAR bietet.
Die Verwendung des EasyAR Unity headset-Erweiterungspakets ist eine der Möglichkeiten zur Unterstützung von EasyAR-Headsets. Die folgende Abbildung zeigt die Gesamtarchitektur von EasyAR in Unity und die Position des headset-Erweiterungspakets darin.
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Device A<br>App"]
space
App2["EasyAR<br>App"]
space
App3["EasyAR + Device B<br>App"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
space
end
block:groupSensePlugin
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupDeviceAUnity
columns 1
DeviceAUnity["Device A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Device B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Native Library"]
block:groupSystemWrapper
space
DeviceA["Device A<br> Library "]
space
space
DeviceB["Device B<br> Library "]
space
end
end
SensePluginExtension --> App1
SensePlugin --> App1
SensePlugin --> App2
SensePlugin --> App3
ARF --> App3
XRI --> App1
XRI --> App3
groupSense --> SensePlugin
groupDeviceAUnity --> SensePluginExtension
SensePlugin --> SensePluginExtension
DeviceA --> groupDeviceAUnity
DeviceA --> XRSDK
XRSubsystem --> ARF
XRSubsystem --> XRI
DeviceB --> MDeviceB
DeviceB --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style DeviceAUnity fill:none,stroke:none,stroke-width:0px
style Sense fill:none,stroke:none,stroke-width:0px,color
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class SensePluginExtension EasyAR
Die Abbildung listet zwei typische Methoden zur Headset-Unterstützung auf: Integration über das Geräte-SDK mittels des Unity headset-Erweiterungspakets (Device A) und die direkte Integration des Geräte-SDK in der EasyAR Sense-Bibliothek (Device B). Dieses Dokument konzentriert sich hauptsächlich auf Ersteres.
Kann ich mein eigenes headset-extension-paket erstellen?
Derzeit gibt es in der AR/VR/MR/XR-Branche noch keine sehr einheitliche Schnittstellenlösung. Obwohl OpenXR ein guter Kandidat ist, benötigen die Weiterentwicklung der Spezifikation und die branchenweite Implementierung noch Zeit. Daher ist es normalerweise nicht so einfach, kommerziell erhältliche Geräte direkt mit EasyAR zu betreiben. Es besteht eine hohe Wahrscheinlichkeit, dass Datenschnittstellen fehlen. Mit der Entwicklung der Branche könnten einige neuere Geräte eine gute Schnittstellenunterstützung bieten. Beispielsweise öffnete Apple im Jahr 2024 die relevanten Schnittstellen für das Vision Pro. Diese Schnittstellen sind bereits ausreichend, um den Betrieb von EasyAR zu ermöglichen, erfordern jedoch dennoch einige Fachkenntnisse für die Nutzung.
Wenn Sie sich unsicher sind, wird empfohlen, sich an den Hardwarehersteller oder den EasyAR-Vertrieb zu wenden, um entsprechende Geräteunterstützung zu erhalten.
Wenn Sie ein Hardwarehersteller sind und EasyAR-Funktionen auf Ihrem Gerät unterstützen möchten, können Sie sich an die folgenden Dokumentationen halten, um ein headset-extension-paket zu erstellen. Dies ermöglicht den Betrieb der meisten EasyAR-Funktionen auf Ihrem Gerät. Dieses Dokument stellt Daten- und Schnittstellenspezifikationen bereit, ohne jedoch alle Implementierungsdetails festzulegen. Jede Implementierungsmethode oder Schnittstellendefinition kann diskutiert werden. Wir freuen uns über Kontaktaufnahme über Geschäftskanäle.
Die in diesem Dokument behandelte Hardware muss selbst über Bewegungsverfolgung oder SLAM-Fähigkeiten verfügen. Die Funktionen von EasyAR benötigen eine gute Geräteverfolgungsfähigkeit als Grundlage. Es wird generell nicht empfohlen, die Verfolgungsleistung des Geräts durch EasyAR-Funktionen zu optimieren, da dies zu einer zyklischen Abhängigkeit führt, die theoretisch Fehler verstärkt und das gesamte System instabil machen kann. Wenn das Gerät selbst keine Bewegungsverfolgungsfähigkeit besitzt, liegt der Unterstützungsansatz außerhalb des Rahmens dieses Dokuments. Bei Bedarf kann über Geschäftskanäle kommuniziert werden.
Fähigkeitsgrenzen des Headset-Erweiterungspakets
Das Ziel des Headset-Erweiterungspakets ist es, den Großteil der Funktionen von EasyAR Sense auf Ihrem Gerät lauffähig zu machen. Um dieses Ziel zu erreichen, müssen Sie die Fähigkeitsgrenzen des Headset-Erweiterungspakets verstehen.
Was das headset-Erweiterungspaket enthält
Die Erweiterung, die Sie implementieren werden, umfasst:
- Code, der die benutzerdefinierte Kamerafunktion nutzt, um Daten von Ihrer Geräte-API zu erfassen und in
EasyAR Sensezu senden. - In Unity vereinfacht die headset-Erweiterung die Entwicklung benutzerdefinierter Kameras durch die Verwendung einer externe Bilddatenquelle und eines Datenstroms von
EasyAR Sense, der durch dasEasyAR Sense Unity Plugindefiniert wird. - In Unity ist die headset-Erweiterung ein Unity-Paket, das Laufzeitskripte, Editor-Skripte und ein Beispiel für die Erweiterung enthält. Sie oder EasyAR können es an Endbenutzer weitergeben.
Tipp
Wenn Sie nicht möchten, dass die Integrationsdetails in externen Systemen sichtbar sind, können Sie EasyAR kontaktieren, um dies zu besprechen. Eine direkte Integration innerhalb von EasyAR Sense über die C-Schnittstelle ist möglich und hat Präzedenzfälle.
Bei der Implementierung Ihrer Erweiterung könnten Sie:
- Das Interface-Design und die interne Implementierung Ihres SDKs ändern.
- Mit Ihrem Team die Datenerfassungs- und Nutzungsstrategie besprechen und bestätigen.
- Viel Zeit für die Validierung der Datenkorrektheit aufwenden, anstatt Code zu schreiben.
Nach Abschluss der Erweiterung werden Sie Folgendes sehen:
- Die meisten
EasyAR Sense-Funktionen können auf Ihrem Gerät genutzt werden. Diese Funktionen nutzen die Bewegungstracking-Fähigkeiten Ihres Geräts. - Die in
EasyAR Senseunterstützten EasyAR-Cloud-Dienste können auf Ihrem Gerät genutzt werden. - Es kann nur eine EasyAR XR-Lizenz verwendet werden. Personal-, Professional- oder Classic-Lizenzen können auf Ihrem Gerät nicht verwendet werden.
- Alle Lizenzbeschränkungen von EasyAR bei Verwendung einer benutzerdefinierten Kamera gelten in gleicher Weise für Ihr Gerät.
Was das headset-erweiterungspaket nicht enthält
Diese Erweiterung kann nicht ohne EasyAR Sense verwendet werden:
- Diese Headset-Erweiterung läuft nicht eigenständig. Als Abhängigkeit wird auch
EasyAR Sensebenötigt. In Unity muss dasEasyAR Sense Unity Pluginverwendet werden. - Sie ruft nicht direkt die EasyAR Cloud Service APIs auf (z.B. den EasyAR Mega Positioning Service). Diese Aufrufe erfolgen intern in
EasyAR Sense. - In Unity ruft sie nicht direkt die Schnittstellenmethoden für AR-Funktionen auf (z.B. Bild-Tracking). Diese werden innerhalb des
EasyAR Sense Unity Pluginsabgewickelt. - In Unity modifiziert sie nicht die Transform-Komponenten von Objekten in der Szene oder von Tracking-Zielen. Dies geschieht intern im
EasyAR Sense Unity Plugin.
Diese Erweiterung kann nicht ohne Ihr Geräte-SDK verwendet werden:
- In Unity modifizieren weder die Headset-Erweiterung noch das
EasyAR Sense Unity Plugindie Transform-Komponente der Szenenkamera. Dies muss in Ihrem Geräte-SDK oder dessen Abhängigkeitspfad erfolgen.
Über die Headset-Erweiterung bleiben einige EasyAR-Funktionen unzugänglich:
- Oberflächen-Tracking-Funktionalität wird nicht verfügbar sein.
- Das eigenständige Bewegungs-Tracking von EasyAR wird nicht verfügbar sein.
- Ebenenerkennung (Teil des EasyAR Bewegungs-Trackings) wird nicht verfügbar sein.
Wie verwende ich mega auf meinem gerät?
Die Ausführung von Mega auf dem Gerät ist eine Frage, die viele Benutzer beschäftigt. In Unity ist der Mega-Dienst ein Funktionsmodul, das auf vielen grundlegenden Funktionen von EasyAR Sense läuft. Solange Ihr Gerät EasyAR Sense vollständig unterstützt, wird also auch Mega unterstützt.
Generell wird nicht empfohlen, zunächst direkt die Mega-Beispiele auf dem Gerät auszuführen, um die Unterstützung für Mega zu überprüfen. Mega nutzt alle Eingabedaten umfassend und toleriert größere Ungenauigkeiten in diesen Daten. Das direkte Ausführen der Mega-Beispiele könnte aufgrund von Schnittstelleninkompatibilitäten oder schlechter Datenqualität dazu führen, dass keine sinnvollen Ergebnisse erzielt werden. Es wäre dann schwierig festzustellen, wo genau das Problem liegt, was die spätere Fehlersuche erheblich erschweren würde.
Wichtig
Der Mega-Dienst stellt gewisse Anforderungen an die Bewegungsverfolgungsfähigkeit des Geräts. Wenn die Bewegungsverfolgungsfähigkeit des Geräts schlecht ist, wird auch die Leistung von Mega beeinträchtigt. In großflächigen AR-Szenarien muss besonders auf Leistungsunterschiede zwischen Innen- und Außenbereichen geachtet werden.
Wichtig
Mega dient in der Regel großräumigen Szenarien. Daher muss besonders auf die Darstellungs-Effekte von Objekten in großer Entfernung sowie beim Drehen des Kopfes oder Bewegen geachtet werden. Wenn das Anzeigesystem des Geräts große Ungenauigkeiten aufweist, wird der Benutzer das Gefühl haben, dass virtuelle Objekte nicht korrekt an realen Objekten haften, selbst wenn Mega selbst ordnungsgemäß funktioniert.
Erforderliches Hintergrundwissen und Teamkonfiguration
Die Erstellung eines Headset-Erweiterungspakets ist keine einfache Aufgabe und erfordert von Ihnen und Ihrem Team vertiefte Arbeit in mehreren Bereichen. Um eine Headset-Erweiterung zu realisieren, ist in der Regel neben der Beteiligung von Unity-Entwicklern auch der Einsatz von Teammitgliedern außerhalb der Unity-Entwicklung notwendig. Aufgrund fehlender Standards reichen Änderungen nur auf der 3D-Engine oft nicht aus. Es wird empfohlen, von Anfang an auch Systemingenieure und SDK-Ingenieure, also Entwickler für die Low-Level-Programmierung, einzubeziehen.
Die Entwicklung von AR/VR-Geräten erfordert spezifisches Domänenwissen. Ähnlich verhält es sich mit dem Betrieb und der Verifizierung von EasyAR Sense auf Ihrem Gerät. Sie oder Ihr Team sollten Experten in folgenden Bereichen sein:
- Die physische Struktur und das Rendering-System Ihres Geräts
- Die Geometrie des Kamerassystems
- SDK-Entwicklung
- Allgemeine Android-Debugging-Kenntnisse, wie z.B. adb (Festlandchina, International)
Wenn Sie mit Unity arbeiten, benötigen Sie zusätzlich Kenntnisse in:
- Unity-Entwicklungsgrundlagen und Package-Nutzung
- Unity-Package-Entwicklung
- Grundlagen der C#-Sprache, einschließlich IDisposable usw.
Darüber hinaus wird Wissen in diesen Bereichen Ihnen helfen, das System besser zu verstehen, insbesondere wie die korrekten Daten an EasyAR gesendet werden:
- Android-Entwicklung (Festlandchina, International)
- Geometrisches Sehen (Geometric Vision), insbesondere Bildabgleich (Image Matching) und 3D-Rekonstruktion
Nächste Schritte
In den folgenden Artikeln erfahren Sie den vollständigen Prozess zur Erstellung eines Headset-Erweiterungspakets:
- Unterstützung von EasyAR für Headsets hinzufügen beschreibt, wie Sie eine neue Headset-Erweiterung mithilfe einer Vorlage erstellen und die grundlegende Eingabeerweiterung entwickeln.
- Bring-up-Verfahren (bring-up) erklärt, wie Sie die Eingabeerweiterung auf dem Gerät validieren.
- Erweiterungspaket veröffentlichen zeigt, wie Sie das Headset-Erweiterungspaket packen und an Endnutzer verteilen.