Guida introduttiva: Creare un'app HoloLens con Ancoraggi oggetti di Azure in Unity con MRTK

In questa guida introduttiva si creerà un'app HoloLens unity che usa Ancoraggi oggetti di Azure. Ancoraggi oggetti di Azure è un servizio cloud gestito che converte gli asset 3D in modelli di intelligenza artificiale che consentono esperienze di realtà mista con riconoscimento degli oggetti per HoloLens. Al termine, si avrà un'app HoloLens compilata con Unity in grado di rilevare gli oggetti nel mondo fisico.

Nello specifico:

  • Preparare le impostazioni di compilazione di Unity.
  • Esportare il progetto Visual Studio HoloLens.
  • Distribuire l'app ed eseguirla in un dispositivo HoloLens 2.

Prerequisiti

Per completare questa guida introduttiva, accertarsi di disporre di quanto segue:

  • Un oggetto fisico nell'ambiente e il relativo modello 3D (CAD o digitalizzato).
  • Un computer Windows con installato quanto segue:
    • Git per Windows
    • Visual Studio 2019 con il carico di lavoro di sviluppo piattaforma UWP (Universal Windows Platform) e il componente Windows 10 SDK (10.0.18362.0 o versione successiva)
    • Unity 2019.4
  • Un dispositivo HoloLens 2 aggiornato e in cui è abilitata la modalità sviluppatore.
    • Per aggiornare alla versione più recente per HoloLens, aprire l'app Impostazioni, scegliere Aggiornamento e sicurezza, quindi selezionare Verifica disponibilità aggiornamenti.

Creare un account di ancoraggi di oggetti

Prima di tutto, è necessario creare un account con il servizio Ancoraggi oggetti.

  1. Passare al portale di Azure e selezionare Crea una risorsa.

    Create a new resource

  2. Cercare la risorsa Ancoraggi oggetto .

    Cercare "Ancoraggi oggetto".

    Select the Object Anchors Resource

    Nella risorsa Ancoraggi oggetti nei risultati della ricerca selezionare Crea -> Ancoraggi oggetto.

    Create an Object Anchors Resource

  3. Nella finestra di dialogo Account di Ancoraggi di oggetti:

    • Immettere un nome di risorsa univoco.
    • Selezionare la sottoscrizione a cui collegare la risorsa.
    • Creare o usare un gruppo di risorse esistente.
    • Selezionare l'area in cui si vuole collocare la risorsa.

    Enter Object Anchors resource account details

    Selezionare Crea per iniziare a creare la risorsa.

  4. Creata la risorsa, selezionare Vai alla risorsa.

    Go to resource

  5. Nella pagina di panoramica:

    Prendere nota del dominio account. in quanto sarà necessario più avanti.

    Copy the account domain for your Object Anchors resource

    Prendere nota dell'ID account. in quanto sarà necessario più avanti.

    Copy the account ID for your Object Anchors resource

    Passare alla pagina Chiavi di accesso e prendere nota della chiave primaria. in quanto sarà necessario più avanti.

    Copy the account key for your Object Anchors resource

Configurare il dispositivo

Per distribuire le app in HoloLens, è necessario associare HoloLens al computer.

  1. In HoloLens passare a Impostazioni -> Aggiornamento e sicurezza -> Per sviluppatori.
  2. Fare clic su Associa e lasciare aperta la schermata fino a quando non si immette il PIN in Visual Studio durante la prima distribuzione.

Caricare il modello

Prima di eseguire l'app, è necessario rendere i modelli disponibili per l'app. Se non si ha già un modello di Ancoraggi oggetti, seguire le istruzioni in Creare un modello per crearne uno. Poi, torna qui.

Con holoLens acceso e connesso al dispositivo di sviluppo (PC), seguire questa procedura per caricare un modello nella cartella 3D Objects in HoloLens:

  1. Selezionare e copiare i modelli da usare premendo CTRL e C insieme (CTRL+C).

  2. Premere tasto Logo Windows e E insieme (Win + E) per avviare Esplora file. Nel riquadro sinistro dovrebbe essere elencato HoloLens con altre unità e cartelle.

    file explorer

  3. Toccare il collegamento HoloLens per visualizzare lo spazio di archiviazione nel dispositivo HoloLens nel riquadro destro.

    open HoloLens internal storage

  4. In Esplora file passare a Interno Archiviazione > oggetti 3D. È ora possibile incollare i modelli nella cartella 3D Objects premendo CTRL e V insieme (CTRL+V).

    paste models in 3D Objects folder

Aprire il progetto di esempio

Per clonare il repository di esempi, eseguire questo comando:

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

cd ./azure-object-anchors

Il passaggio successivo consiste nel scaricare il pacchetto Ancoraggi oggetti di Azure per Unity.

Individuare il pacchetto Ancoraggi di oggetti di Azure per Unity (com.microsoft.azure.object-anchors.runtime) qui. Selezionare la versione desiderata e scaricare il pacchetto usando il pulsante Scarica.

In Unity aprire il quickstarts/apps/unity/mrtk progetto.

Seguire le istruzioni riportate qui per importare il pacchetto Ancoraggi oggetti di Azure scaricato nel progetto Unity usando il Gestione pacchetti Unity.

Configurare le informazioni sull'account

Il passaggio successivo consiste nel configurare l'app per l'uso delle informazioni sull'account. Sono stati presi nota dei valori chiave dell'account, ID account e dominio account nella sezione "Creare un account di ancoraggi di oggetti".

Nel riquadro Progetto passare a Assets\AzureObjectAnchors.SDK\Resources.

Selezionare ObjectAnchorsConfig. Nel riquadro Inspector (Controllo) immettere Account Key come valore per Object Anchors Account Key (Chiave account ancoraggi oggetto), Account ID come valore per Id account ancoraggi oggetto e come Account Domain valore per Dominio account ancoraggi oggetto.

Compilare ed eseguire l'app

Compilare la scena di esempio

Nell'editor di Unity passare a Assets/MixedReality.AzureObjectAnchors/Scenes e aprire AOASampleScene e aggiungerlo all'elenco di compilazioni della scena.

Quando una finestra di dialogo "Utilità di importazione TMP" richiede di importare le risorse TextMesh Pro, selezionare "Import TMP Essentials" (Importa informazioni di base TMP) per eseguire questa operazione. Import TextMesh Pro resources

Selezionare File -> Compilazione Impostazioni. Selezionare piattaforma UWP (Universal Windows Platform) e quindi selezionare Cambia piattaforma. Se l'editor di Unity indica di dover prima scaricare alcuni componenti, scaricarli e installarli. Seguire lo screenshot seguente per configurare le impostazioni di compilazione. Assicurarsi che soloAOASampleScene abbia un segno di spunta accanto a esso: tutte le altre scene non devono essere incluse.

build settings

Selezionare Compila e selezionare una cartella di output. È ora possibile generare un progetto di Visual Studio nella cartella di output.

Compilare e distribuire l'app

Aprire il .sln file generato da Unity. Modificare la configurazione di compilazione come segue.

build configuration

Sarà quindi necessario configurare l'indirizzo IP del computer remoto per distribuire ed eseguire il debug dell'app.

Fare clic con il pulsante destro del mouse sul progetto App e scegliere Proprietà. Nella pagina delle proprietà selezionare Proprietà di configurazione -> Debug. Modificare il valore nome computer con l'indirizzo IP del dispositivo HoloLens e fare clic su Applica.

remote debug

Chiudere la pagina delle proprietà. Fare clic su Computer remoto. L'app deve iniziare a compilare e distribuire nel dispositivo remoto. Assicurarsi che il dispositivo sia attivo.

Dopo la schermata iniziale di Unity, verrà visualizzato un rettangolo di selezione bianco. È possibile usare la mano per spostare, ridimensionare o ruotare il rettangolo di selezione. Posizionare la casella per coprire l'oggetto da rilevare.

Aprire il menu a mano e selezionare Blocca ricercaArea per impedire un ulteriore spostamento del rettangolo di selezione. Selezionare Avvia ricerca per avviare il rilevamento degli oggetti. Quando viene rilevato l'oggetto, verrà eseguito il rendering di una mesh sull'oggetto . I dettagli di un'istanza rilevata verranno visualizzati sullo schermo, ad esempio il timestamp aggiornato e il rapporto di copertura della superficie. Selezionare Arresta ricerca per interrompere il rilevamento e tutte le istanze rilevate verranno rimosse.

Menu dell'app

È anche possibile eseguire altre azioni usando il menu a mano.

Menu principale
  • Avvia ricerca/Arresta ricerca : avvia o arresta il processo di rilevamento degli oggetti.

  • Attiva/Disattiva mapping spaziale: mostra/nascondi il rendering del mapping spaziale. Questa opzione può essere usata per eseguire il debug se l'analisi è stata completata o meno.

  • Tracker Impostazioni: attiva/disattiva l'attivazione del menu delle impostazioni del tracker.

  • Area di ricerca Impostazioni: attiva o disattiva l'attivazione del menu delle impostazioni dell'area di ricerca.

  • Avvia traccia : acquisisci i dati di diagnostica e salvali nel dispositivo. Per altri dettagli, vedere la sezione Debug dei problemi di rilevamento e Acquisizione diagnostica.

  • Carica traccia : carica i dati di diagnostica nel servizio Ancoraggi oggetti.

    Unity primary hand menu

Menu Delle impostazioni del tracciatore
  • Accuratezza elevata: funzionalità sperimentale usata per ottenere una posizione più accurata. L'abilitazione di questa opzione richiederà più risorse di sistema durante il rilevamento degli oggetti. Il rendering della mesh di oggetti verrà eseguito in rosa quando in questa modalità. Selezionare di nuovo questo pulsante per tornare alla modalità di rilevamento normale.

  • Allineamento verticale rilassato : se abilitato, consente di rilevare un oggetto in un angolo non verticale. Utile per rilevare gli oggetti sulle rampe.

  • Consenti modifica scala : consente al tracker di modificare le dimensioni dell'oggetto rilevato in base alle informazioni ambientali.

  • Dispositivo di scorrimento rapporto copertura: regola la proporzione di punti di superficie che devono corrispondere per il tracker per rilevare un oggetto. I valori inferiori consentono al tracker di rilevare meglio gli oggetti difficili da rilevare per i sensori HoloLens, ad esempio oggetti scuri o oggetti altamente riflettenti. Valori più elevati ridurranno la frequenza dei rilevamenti falsi.

    Unity tracker hand menu

Menu Impostazioni area di ricerca
  • Blocca area di ricerca : blocca il rettangolo di selezione dell'area per impedire lo spostamento accidentale delle mani.

  • Regola automaticamente l'area di ricerca: consente all'area di ricerca di riposizionare se stessa durante il rilevamento degli oggetti.

  • Mesh ciclo: scorre attraverso la visualizzazione delle mesh caricate all'interno dell'area di ricerca. Questa opzione consente agli utenti di allineare la casella di ricerca per individuare gli oggetti difficili da rilevare.

    Unity search area hand menu

Risoluzione dei problemi

Suggerimenti

Se l'oggetto non viene rilevato, è possibile provare i passaggi seguenti:

  1. Verificare di usare il modello corretto per l'oggetto.
  2. Visualizzare l'area di ricerca e assicurarsi che copre l'oggetto di destinazione.
  3. Provare a ridurre .MinSurfaceCoverage
  4. In Portale di dispositivi di Windows fare clic su Visualizzazioni -> Visualizzazioni 3D e verificare se l'analisi è stata completata.

Passaggi successivi