Schnellstart: Erstellen einer HoloLens-App mit Azure Object Anchors in Unity mit MRTK

In diesem Schnellstart erstellen Sie eine Unity HoloLens-App, die Azure Object Anchors verwendet. Azure Object Anchors ist ein verwalteter Clouddienst, der 3D-Ressourcen in KI-Modelle konvertiert, die objektbezogene Mixed Reality-Erlebnisse für HoloLens ermöglichen. Wenn Sie fertig sind, verfügen Sie über eine HoloLens-App, die mit Unity erstellt wurde und Objekte in der physischen Welt erkennen kann.

Sie lernen Folgendes:

  • Vorbereiten von Unity-Buildeinstellungen
  • Exportieren des HoloLens-Visual Studio-Projekts
  • Bereitstellen und Ausführen der App auf einem HoloLens 2-Gerät.

Voraussetzungen

Stellen Sie für diese Schnellstartanleitung sicher, dass Sie über Folgendes verfügen:

  • Ein physisches Objekt in Ihrer Umgebung und das zugehörige 3D-Modell (CAD oder gescannt)
  • Ein Windows-Computer mit folgender Installation:
  • Ein HoloLens 2-Gerät, das aktuell und für das der Entwicklermodus aktiviert ist.
    • Öffnen Sie zum Aktualisieren auf das neueste HoloLens-Release die App Einstellungen, navigieren Sie zu Update und Sicherheit, und wählen Sie dann Nach Updates suchen aus.

Erstellen eines Object Anchors-Kontos

Zunächst müssen Sie ein Konto mit dem Object Anchors-Dienst erstellen.

  1. Wechseln Sie zum Azure-Portal, und wählen Sie Ressource erstellen aus.

    Create a new resource

  2. Suchen Sie nach der Object Anchors-Ressource.

    Suchen Sie nach „Object Anchors“.

    Select the Object Anchors Resource

    Wählen Sie in der Object Anchors-Ressource in den Suchergebnissen Erstellen > Object Anchors aus.

    Create an Object Anchors Resource

  3. Führen Sie folgende Aktionen im Dialogfeld Object Anchors-Konto aus:

    • Geben Sie einen eindeutigen Ressourcennamen ein.
    • Wählen Sie das Abonnement aus, an das die Ressource angefügt werden soll.
    • Erstellen Sie eine Ressourcengruppe, oder verwenden Sie eine vorhandene.
    • Wählen Sie die Region aus, in der Sie die Ressource platzieren möchten.

    Enter Object Anchors resource account details

    Wählen Sie Erstellen aus, um mit der Ressourcenerstellung zu beginnen.

  4. Nachdem die Ressource erstellt wurde, wählen Sie zu Ressourcen wechseln aus.

    Go to resource

  5. Wechseln Sie zur Übersichtsseite:

    Notieren Sie sich die Kontodomäne. Sie benötigen die Information später.

    Copy the account domain for your Object Anchors resource

    Notieren Sie sich die Konto-ID. Sie benötigen die Information später.

    Copy the account ID for your Object Anchors resource

    Wechseln Sie zur Seite Zugriffsschlüssel, und notieren Sie sich den Primärschlüssel. Sie benötigen die Information später.

    Copy the account key for your Object Anchors resource

Einrichten des Geräts

Zum Bereitstellen von Apps für HoloLens müssen Sie Ihr HoloLens-Gerät erst mit Ihrem Computer koppeln.

  1. Navigieren Sie in Ihrer HoloLens zu Einstellungen –> Update & Sicherheit –> für Entwickler.
  2. Klicken Sie auf Pair (Koppeln), und lassen Sie den Bildschirm bis zur Eingabe der PIN bei Ihrer ersten Bereitstellung in Visual Studio geöffnet.

Hochladen des Modells

Bevor Sie die App ausführen, müssen Sie Ihre Modelle für die App verfügbar machen. Wenn Sie noch nicht über ein Object Anchors-Modell verfügen, befolgen Sie die Anweisungen unter Erstellen eines Modells, um eines zu erstellen. Kehren Sie dann hierher zurück.

Wenn Ihr HoloLens-Gerät eingeschaltet und mit dem Entwicklungsgerät (PC) verbunden ist, führen Sie die folgenden Schritte aus, um ein Modell in den Ordner 3D-Objekte auf Ihrem HoloLens-Gerät hochzuladen:

  1. Wählen Sie die Modelle aus, die Sie verwenden möchten, und kopieren Sie sie, indem Sie STRG+C drücken.

  2. Drücken Sie WINDOWS+E, um den Datei-Explorer zu starten. Ihr HoloLens-Gerät sollte mit anderen Laufwerken und Ordnern im linken Bereich aufgeführt werden.

    file explorer

  3. Tippen Sie auf den HoloLens-Link, um den Speicher auf dem HoloLens-Gerät im rechten Bereich anzuzeigen.

    open HoloLens internal storage

  4. Navigieren Sie im Datei-Explorer zu Interner Speicher > 3D-Objekte. Jetzt können Sie Ihre Modelle in den Ordner 3D-Objekte einfügen, indem Sie STRG+V drücken.

    paste models in 3D Objects folder

Öffnen des Beispielprojekts

Klonen Sie das Beispielrepository, indem Sie die folgenden Befehle ausführen:

git clone https://github.com/Azure/azure-object-anchors.git

cd ./azure-object-anchors

Der nächste Schritt besteht darin, das Azure Object Anchors-Paket für Unity herunterzuladen.

Suchen Sie hier nach dem Azure Object Anchors-Paket für Unity (com.microsoft.azure.object-anchors.runtime). Wählen Sie die gewünschte Version aus, und laden Sie das Paket über die Schaltfläche Download herunter.

Öffnen Sie das Projekt quickstarts/apps/unity/mrtk in Unity.

Befolgen Sie diese Anweisungen, um mithilfe von Unity Package Manager die Azure Object Anchors-Pakete zu importieren, die Sie in das Unity-Projekt heruntergeladen haben.

Konfigurieren der Kontoinformationen

Im nächsten Schritt wird die App zur Verwendung der Kontoinformationen konfiguriert. Sie haben die Werte von Account Key (Kontoschlüssel), Account ID (Konto-ID) und Account Domain (Kontodomäne) im Abschnitt "Erstellen eines Object Anchors-Kontos" beachtet.

Navigieren Sie im Bereich Projekt zu Assets\AzureObjectAnchors.SDK\Resources.

Wählen Sie ObjectAnchorsConfig aus. Geben Sie im Bereich PrüfungAccount Key als Wert für den Object Anchors-Kontoschlüssel, Account ID als Wert für die Object Anchors-Konto-ID und Account Domain als Wert für die Object Anchors-Kontodomäne ein.

Erstellen und Ausführen der App

Erstellen der Beispielszene

Navigieren Sie im Unity-Editor zu Assets/MixedReality.AzureObjectAnchors/Scenes, öffnen Sie AOASampleScene, und fügen Sie das Element der Liste für die Szenenerstellung hinzu.

Wenn Sie durch ein Dialogfeld „TMP Importer“ zum Importieren von TextMesh Pro-Ressourcen aufgefordert werden, wählen Sie „Import TMP Essentials“ (TMP Essentials importieren) aus. Import TextMesh Pro resources

Wählen Sie Datei -> Buildeinstellungen aus. Wählen Sie Universelle Windows-Plattform und dann Plattform wechseln aus. Wenn vom Unity-Editor gemeldet wird, dass Sie zunächst einige Komponenten herunterladen müssen, müssen Sie diese herunterladen und installieren. Folgen Sie dem Screenshot unten, um die Buildeinstellungen zu konfigurieren. Stellen Sie sicher, dass nur neben AOASampleScene ein Häkchen verfügbar ist. Alle anderen Szenen sollten nicht eingeschlossen werden.

build settings

Wählen Sie Build und dann einen Ausgabeordner aus. Sie können jetzt ein VS-Projekt im Ausgabeordner generieren.

Erstellen und Bereitstellen der App

Öffnen Sie die von Unity generierte .sln-Datei. Ändern Sie die Buildkonfiguration wie folgt.

build configuration

Als Nächstes müssen Sie die IP-Adresse des Remotecomputers konfigurieren, um die App bereitzustellen und zu debuggen.

Klicken Sie mit der rechten Maustaste auf das App-Projekt, und klicken Sie anschließend auf Properties (Eigenschaften). Navigieren Sie auf der Eigenschaftenseite zu Configuration Properties -> Debugging (Konfigurationseigenschaften -> Debuggen). Ändern Sie den Wert für Machine Name (Computername) in die IP-Adresse Ihres HoloLens-Geräts, und klicken Sie auf Apply (Übernehmen).

remote debug

Schließen Sie die Eigenschaftenseite. Klicken Sie auf Remote Machine (Remotecomputer). Die Erstellung und Bereitstellung der App auf Ihrem Remotegerät sollte nun beginnen. Stellen Sie sicher, dass Ihr Gerät aktiv ist.

Nach dem Unity-Begrüßungsbildschirm sollte ein weißer Begrenzungsrahmen angezeigt werden. Sie können Ihre Hand verwenden, um den Begrenzungsrahmen zu verschieben, zu skalieren oder zu drehen. Platzieren Sie den Rahmen so, dass das Objekt bedeckt ist, das Sie erkennen möchten.

Öffnen Sie das Handmenü, und wählen Sie Lock SearchArea (SearchArea sperren) aus, um jede weitere Bewegung des Begrenzungsrahmens zu verhindern. Wählen Sie Start Search (Suche starten) aus, um die Objekterkennung zu starten. Wenn das Objekt erkannt wird, wird ein Gittermodell für das Objekt gerendert. Details zu einer erkannten Instanz werden auf dem Bildschirm angezeigt, z. B. der aktualisierte Zeitstempel und das Verhältnis der Oberflächenbedeckung. Wählen Sie Stop Search (Suche beenden) aus, um die Nachverfolgen zu beenden. Alle erkannten Instanzen werden entfernt.

Die App-Menüs

Sie können mit dem Handmenü auch weitere Aktionen ausführen.

Primäres Menü
  • Start Search/Stop Search (Suche starten/Suche beenden) : Startet oder beendet den Objekterkennungsprozess.

  • Toggle Spatial Mapping (Räumliche Zuordnung umschalten) : Rendering der räumlichen Zuordnung anzeigen/ausblenden. Diese Option kann unabhängig davon zum Debuggen verwendet werden, ob der Scan beendet ist.

  • Tracker Settings (Einstellungen für die Nachverfolgung) : Schaltet die Aktivierung des Menüs mit den Einstellungen für die Nachverfolgung um.

  • Search Area Settings (Einstellungen für den Suchbereich) : Schaltet die Aktivierung des Menüs mit den Einstellungen für den Suchbereich um.

  • Start Tracing (Ablaufverfolgung starten) : Erfassen von Diagnosedaten und Speichern dieser Daten auf dem Gerät. Weitere Informationen finden Sie im Abschnitt Debuggen von Erkennungsproblemen und Erfassen von Diagnosen.

  • Upload Tracing (Ablaufverfolgung hochladen) : Hochladen von Diagnosedaten in den Object Anchors-Dienst.

    Unity primary hand menu

Menü für Nachverfolgungseinstellungen
  • High Accuracy (Hohe Genauigkeit) : Ein experimentelles Feature, das verwendet wird, um eine genauere Position zu erzielen. Wenn Sie diese Option aktivieren, werden während der Objekterkennung mehr Systemressourcen benötigt. Das Objektgittermodell wird in diesem Modus in rosa gerendert. Wählen Sie diese Schaltfläche erneut aus, um zurück in den normalen Nachverfolgungsmodus zu wechseln.

  • Relaxed Vertical Alignment (Gelockerte vertikale Ausrichtung) : Wenn diese Option aktiviert ist, kann ein Objekt in einem nicht vertikalen Winkel erkannt werden. Nützlich zum Erkennen von Objekten auf Rampen.

  • Allow Scale Change (Skalierungsänderung zulassen) : Ermöglicht der Nachverfolgung das Ändern der Größe des erkannten Objekts basierend auf Umgebungsinformationen.

  • Coverage Ratio Slider (Schieberegler für das Abdeckungsverhältnis) : Passt den Anteil der Oberflächenpunkte an, die übereinstimmen müssen, damit die Nachverfolgung ein Objekt erkennt. Niedrigere Werte ermöglichen der Nachverfolgung eine bessere Erkennung von Objekten, die für die HoloLens-Sensoren schwierig zu erkennen sind, z. B. dunkle Objekte oder stark reflektierende Objekte. Höhere Werte verringern die Häufigkeit falscher Erkennungen.

    Unity tracker hand menu

Menü für Suchbereichseinstellungen
  • Lock Search Area (Suchbereich sperren) : Begrenzungsrahmen des Sperrbereichs, um eine versehentliche Bewegung durch die Hände zu verhindern.

  • Auto-Adjust Search Area (Suchbereich automatisch anpassen) : Ermöglicht dem Suchbereich, sich selbst während der Objekterkennung neu zu positionieren.

  • Cycle Mesh (Gittermodell durchlaufen) : Durchläuft die Visualisierung der geladenen Gittermodelle innerhalb des Suchbereichs. Mit dieser Option können Benutzer das Suchfeld für schwer zu erkennende Objekte ausrichten.

    Unity search area hand menu

Problembehandlung

Tipps

Wenn Ihr Objekt nicht erkannt wird, können Sie die folgenden Schritte ausprobieren:

  1. Überprüfen Sie, ob Sie das richtige Modell für das Objekt verwenden.
  2. Visualisieren Sie den Suchbereich, und stellen Sie sicher, dass er das Zielobjekt abdeckt.
  3. Versuchen Sie, MinSurfaceCoverage zu verringern.
  4. Klicken Sie im Windows-Geräteportal auf Views -> 3D Views (Ansichten > 3D-Ansichten), und vergewissern Sie sich, dass die Überprüfung beendet ist.

Nächste Schritte