Table of Contents

EasyAR Unity Headset-Erweiterungspaket

Dieses Dokument beschreibt das Konzept, die Fähigkeiten und Grenzen sowie das Hintergrundwissen, das für die Erstellung eines Headset-Erweiterungspakets erforderlich ist.

Vor dem Start

Was ist das EasyAR Unity Headset-Erweiterungspaket?

Das EasyAR Unity Headset-Erweiterungspaket ist ein Unity-Paket mit einer Reihe von Code und Beispielen, die Ihnen helfen, die Funktionen von EasyAR Sense auf Ihrem Headset-Gerät zu verwenden. Mit diesem Erweiterungspaket können Sie die meisten EasyAR-Sense-Funktionen, wie z. B. Bildtracking und dichte Raumkarten, in Ihr Gerät integrieren und so die leistungsfähigen AR-Funktionen von EasyAR nutzen.

Die Verwendung des EasyAR Unity Headset-Erweiterungspakets ist eine von mehreren Möglichkeiten, die EasyAR-Headset-Unterstützung zu realisieren. 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      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 zeigt zwei typische Unterstützungswege für Headsets: die Anbindung des Geräte-SDKs über das Unity-Headset-Erweiterungspaket (Device A) und die direkte Anbindung des Geräte-SDKs in der EasyAR-Sense-Bibliothek (Device B). Dieses Dokument beschreibt hauptsächlich den ersten Weg.

Kann ich mein eigenes Headset-Erweiterungspaket erstellen?

Derzeit gibt es in der AR/VR/MR/XR-Branche noch keine vollständig einheitliche Schnittstellenlösung. OpenXR ist zwar ein guter Kandidat, aber die Entwicklung der Spezifikation und die industriellen Implementierungen brauchen noch Zeit. Deshalb ist es normalerweise nicht einfach, ein handelsübliches Gerät direkt mit EasyAR auszuführen, da sehr wahrscheinlich Daten-Schnittstellen fehlen. Mit der Weiterentwicklung der Branche können auch neue Geräte gute Schnittstellenunterstützung bieten. So hat Apple 2024 beispielsweise die Schnittstellen für Vision Pro geöffnet, und diese reichen bereits aus, um EasyAR auszuführen. Die Nutzung erfordert aber weiterhin Fachwissen.

Wenn Sie sich nicht sicher sind, empfehlen wir, den Hardwarehersteller oder den EasyAR-Vertrieb zu kontaktieren, um die 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 die folgenden Dokumente als Grundlage verwenden, um ein Headset-Erweiterungspaket zu erstellen und so die meisten EasyAR-Funktionen auf Ihrem Gerät lauffähig zu machen. Dieses Dokument liefert Daten- und Schnittstellenspezifikationen, schränkt aber die Implementierungsdetails nicht ein. Jede Implementierungsweise oder Schnittstellendefinition kann besprochen werden. Bitte kontaktieren Sie uns über die Vertriebswege.

Die in diesem Dokument behandelte Hardware sollte selbst Bewegungsverfolgung oder SLAM unterstützen. EasyAR-Funktionen müssen auf einer guten Geräteverfolgung aufbauen. Es wird normalerweise nicht empfohlen, die Geräteverfolgung mit EasyAR-Funktionen verbessern zu wollen, da dies zu einer zyklischen Abhängigkeit führt und die Fehler theoretisch vergrößert und das Gesamtsystem instabil machen kann. Wenn das Gerät selbst keine Bewegungsverfolgung besitzt, ist dieses Dokument dafür nicht zuständig. Bei Bedarf können Sie sich über die Vertriebswege mit uns abstimmen.

Fähigkeiten und Grenzen des Headset-Erweiterungspakets

Das Ziel des Headset-Erweiterungspakets ist es, die meisten EasyAR-Sense-Funktionen auf Ihrem Gerät lauffähig zu machen. Um dieses Ziel zu erreichen, müssen Sie die Grenzen des Pakets verstehen.

Enthaltene Inhalte

Die Erweiterung, die Sie implementieren, ist:

  • Eine Reihe von Code, die Custom Camera verwendet, um Daten aus Ihrer Geräte-API zu erfassen und an EasyAR Sense zu senden.
  • In Unity verwendet die Headset-Erweiterung External Frame Source und einen Datenfluss, der von EasyAR Sense Unity Plugin definiert wird, um die Entwicklung der Custom Camera zu vereinfachen.
  • In Unity ist die Headset-Erweiterung ein Unity-Paket mit Laufzeitskripten, Editor-Skripten und einem erweiterten Sample, das Sie oder EasyAR an nachgelagerte Nutzer verteilen können.
Tipp

Wenn Sie die Integrationsdetails nicht nach außen geben möchten, können Sie dies mit EasyAR besprechen. Eine direkte Anbindung über eine C-Schnittstelle innerhalb von EasyAR Sense ist möglich und hat bereits Vorläufer.

Bei der Implementierung können Sie möglicherweise:

  • das Schnittstellendesign und die interne Implementierung Ihres SDKs ändern
  • mit Ihrem Team über die Datengewinnung und Nutzung diskutieren
  • viel Zeit mit der Prüfung der Datenkorrektheit verbringen, statt Code zu schreiben

Nach Abschluss der Erweiterung werden Sie feststellen:

  • Die meisten EasyAR Sense-Funktionen sind auf Ihrem Gerät nutzbar und verwenden die Bewegungsverfolgung des Geräts.
  • Die in EasyAR Sense unterstützten EasyAR-Cloud-Dienste sind auf Ihrem Gerät nutzbar.
  • Es kann nur die EasyAR-XR-Lizenz verwendet werden. Personal-, Professional- und Classic-Lizenzen können auf Ihrem Gerät nicht verwendet werden.
  • Alle Lizenzbeschränkungen von EasyAR beim Einsatz der Custom Camera gelten auf Ihrem Gerät in derselben Weise.

Nicht enthaltene Inhalte

Die Erweiterung kann nicht unabhängig von EasyAR Sense verwendet werden:

  • Sie läuft nicht eigenständig. Als Abhängigkeit wird auch EasyAR Sense benötigt. In Unity muss EasyAR Sense Unity Plugin verwendet werden.
  • Sie ruft nicht direkt die APIs der EasyAR-Cloud-Dienste auf, zum Beispiel den EasyAR-Mega-Lokalisierungsdienst. Diese Aufrufe werden intern in EasyAR Sense ausgeführt.
  • In Unity ruft sie die Schnittstellen von AR-Funktionen, zum Beispiel Bildtracking, nicht direkt auf. Diese werden innerhalb von EasyAR Sense Unity Plugin ausgeführt.
  • In Unity verändert sie nicht die transform von Objekten oder Tracking-Zielen in der Szene. Das geschieht innerhalb von EasyAR Sense Unity Plugin.

Die Erweiterung kann nicht unabhängig vom SDK Ihres Geräts verwendet werden:

  • In Unity verändert die Headset-Erweiterung oder EasyAR Sense Unity Plugin nicht die transform der Kamera in der Szene. Das muss durch Ihr Geräte-SDK oder einen davon abhängigen Pfad erfolgen.

Einige EasyAR-Funktionen sind über die Headset-Erweiterung weiterhin nicht nutzbar:

  • Oberflächen-Tracking ist nicht verfügbar.
  • Das eigene Bewegungsverfolgungssystem von EasyAR ist nicht verfügbar.
  • Ebenenerkennung, ein Teil der EasyAR-Bewegungsverfolgung, ist nicht verfügbar.

Wie verwende ich Mega auf meinem Gerät?

Die Ausführung von Mega auf dem Gerät ist für viele Nutzer ein wichtiges Thema. In Unity ist der Mega-Dienst ein Funktionsmodul, das auf vielen Grundfunktionen von EasyAR Sense aufbaut. Wenn Ihr Gerät EasyAR Sense vollständig unterstützt, wird auch Mega unterstützt.

Im Allgemeinen wird nicht empfohlen, gleich zu Beginn ein Mega-Sample direkt auf dem Gerät auszuführen, um die Unterstützung zu prüfen. Mega nutzt alle Eingabedaten gemeinsam und ist bei deren Fehlern relativ tolerant. Ein direkt ausgeführtes Mega-Sample kann daher leicht wegen nicht zusammenpassender Schnittstellen oder schlechter Datenqualität ein unbrauchbares Ergebnis liefern, ohne dass klar ist, wo das Problem liegt. Das erschwert die spätere Fehlersuche erheblich.

Wichtig

Der Mega-Dienst stellt gewisse Anforderungen an die Bewegungsverfolgung des Geräts. Wenn die Bewegungsverfolgung schlecht ist, leidet auch die Mega-Qualität. In großen AR-Szenen muss außerdem besonders auf Unterschiede zwischen Innen- und Außenbereichen geachtet werden.

Wichtig

Mega dient typischerweise großen Räumen. Daher sollten Sie der Anzeige von weit entfernten Objekten sowie Objekten außerhalb des Blickzentrums und bei Kopfbewegungen besondere Aufmerksamkeit schenken. Wenn das Anzeigesystem des Geräts größere Fehler aufweist, wirkt es für den Nutzer so, als würden virtuelle Objekte nicht korrekt mit realen Objekten übereinstimmen, selbst wenn Mega selbst korrekt läuft.

Benötigtes Hintergrundwissen und Teamaufstellung

Die Erstellung eines Headset-Erweiterungspakets ist keine einfache Aufgabe. Sie erfordert, dass Sie und Ihr Team in mehreren Bereichen tiefgehend arbeiten. In der Regel sind für eine Headset-Erweiterung neben Unity-Entwicklung auch weitere Teammitglieder außerhalb der Unity-Entwicklung nötig. Da Standards fehlen, reicht eine reine Änderung auf der 3D-Engine-Ebene normalerweise nicht aus. Es wird empfohlen, Systemingenieure und SDK-Entwickler schon ab dem ersten Tag einzubinden.

Für die Entwicklung von AR/VR-Geräten ist Fachwissen erforderlich. Entsprechend benötigen Sie oder Ihr Team beim Betrieb und der Validierung von EasyAR Sense Kenntnisse in den folgenden Bereichen:

  • Physische Struktur und Render-System Ihres Geräts
  • Kamerasystem-Geometrie
  • SDK-Entwicklung
  • Allgemeine Android-Debug-Fähigkeiten, z. B. adb (Festlandchina, international)

Wenn Sie mit Unity arbeiten, sollten Sie außerdem Folgendes kennen:

Außerdem helfen Ihnen Kenntnisse in diesen Bereichen, das System besser zu verstehen, insbesondere wie die richtigen Daten an EasyAR gesendet werden:

  • Android-Entwicklung (Festlandchina, international)
  • Computergestützte Geometrie und Vision, insbesondere Bildabgleich und 3D-Rekonstruktion

Nächste Schritte

In den folgenden Artikeln erfahren Sie den vollständigen Ablauf zur Erstellung eines Headset-Erweiterungspakets:

Verwandte Themen