Table of Contents

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

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>&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 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 Sense zu 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 das EasyAR Sense Unity Plugin definiert 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 Sense unterstü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 Sense benötigt. In Unity muss das EasyAR Sense Unity Plugin verwendet 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 Plugins abgewickelt.
  • 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 Plugin die 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:

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:

Verwandte Themen