4. Integrazione di Ancoraggi nello spazio di Azure4. Integrating Azure Spatial Anchors

In questa esercitazione verrà spiegato come usare Ancoraggi nello spazio di Azure.In this tutorial, you will learn how to use Azure Spatial Anchors. Si archivierà la posizione di un oggetto tracciato come oggetto di Ancoraggi nello spazio di Azure.You will store the location of a Tracked Object as an Azure Spatial Anchor. Quando si esegue una query per l'ancoraggio, viene visualizzata una freccia che indica all'utente la posizione.Once you query for the anchor, an arrow will appear to guide you toward the location.

ObiettiviObjectives

  • Acquisire le nozioni di base su Ancoraggi nello spazio di Azure.Learn the basics of Azure Spatial Anchors.
  • Imparare a impostare la scena per l'uso di Ancoraggi nello spazio di Azure in questo progetto.Learn how to set up the scene to use Azure Spatial Anchors in this project.
  • Scoprire come integrare le posizioni di archiviazione e query.Learn how to integrate storing and querying locations.

Informazioni su Ancoraggi nello spazio di AzureUnderstanding Azure Spatial Anchors

Ancoraggi nello spazio di Azure fa parte della famiglia di Servizi cloud di Azure e viene utilizzato per salvare posizioni di ancoraggio.Azure Spatial Anchors is part of the Azure Cloud Services family and is used to save anchor locations. Le posizioni di ancoraggio salvate possono essere recuperate in base all'ID di ancoraggio dal cloud.The saved anchor locations can be retrieved based on the anchor ID from the cloud. Questa posizione di ancoraggio è condivisibile e accessibile da dispositivi multipiattaforma come i dispositivi HoloLens, iOS e Android.This anchor location can be shared and accessed by multi-platform devices like HoloLens, iOS, and Android devices.

Altre informazioni su Ancoraggi nello spazio di Azure.Learn more about Azure Spatial Anchors.

Preparazione di Ancoraggi nello spazio di AzurePreparing Azure Spatial Anchors

Prima di iniziare, è necessario creare una risorsa di ancoraggio nello spazio nel portale di Azure.Before you can start, you have to create a spatial anchor resource in your Azure portal. Vedere come creare una risorsa di Ancoraggi nello spazio.Learn how to make a spatial anchor resource.

Preparazione della scenaPreparing the scene

In questa sezione verrà illustrato come configurare la scena e apportare le modifiche necessarie.In this section, you will learn how to configure the scene and make the necessary changes.

Nella finestra Project (Progetto) passa a Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > ManagerIn the Project window, navigate to the Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager

Unity con il prefab AnchorManager selezionato

Dalla cartella Manager trascinare e rilasciare il prefab Anchor Manager (Gestione ancoraggi) nella gerarchia della scena.From the Manager folder, drag and drop the prefab Anchor Manager into the scene Hierarchy.

Selezionare il GameObject Anchor Manager nella gerarchia e nella sezione Inspector (Controllo) si noterà Spatial Anchor Manager (Script).Select Anchor Manager GameObject in the Hierarchy, and in the Inspector section, you will find Spatial Anchor Manager (Script). Trovare il campo ID account chiave e aggiungere le credenziali che create nel prerequisito nella fase precedente.Find account ID and key field and add the credentials which you had created in the prerequisite in the earlier stage.

Unity con il prefab AnchorManager appena aggiunto ancora selezionato

Ora trovare l'oggetto Scene Controller (Controllo scena) nella gerarchia della scena e selezionarlo.Now find the Scene Controller object in your scene Hierarchy and select it. Verrà visualizzata la finestra Inspector (Controllo) di Scene Controller (Controllo scena).You will see the Scene Controller Inspector.

Unity con il componente script SceneController configurato

Si osserverà che il campo Anchor Manager (Gestione ancoraggi) nel componente Scene Controller (Controllo scena) è vuoto. Trascinare Anchor Manager (Gestione ancoraggi) da Hierarchy (Gerarchia) nella scena, rilasciarlo nel campo e salvare la scena.You will observe that the Anchor Manager field in the Scene Controller component is empty, drag and drop the Anchor Manager from the Hierarchy in the scene into that field and save the scene.

Creare e distribuire l'app in un dispositivo HoloLens 2Build and Deploy the app to your HoloLens 2

Non è possibile eseguire Ancoraggi nello spazio di Azure in Unity. Pertanto, per testare la funzionalità di questo servizio devi distribuire il progetto nel tuo dispositivo.Azure Spatial Anchors can not run in Unity, so to test the Azure Spatial Anchors functionality, you need to deploy the project to your device.

Suggerimento

Per rivedere la procedura di compilazione e distribuzione di un progetto Unity in HoloLens 2, fare riferimento alle istruzioni riportate in [Compilazione dell'applicazione nel dispositivo HoloLens 2]((mr-learning-base-02.md#building-and-deploying-to-your-hololens-2).For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the [Building your application to your HoloLens 2]((mr-learning-base-02.md#building-and-deploying-to-your-hololens-2) instructions.

Eseguire l'app in HoloLens 2 e seguire le istruzioni in-appRun the app on your HoloLens 2 and follow the in-app instructions

Creare un ancoraggio per archiviare una posizioneCreate an anchor to store a location

In questa sezione verrà illustrato come salvare la posizione dell'oggetto.In this section you will see how to save the object location.

Eseguire l'applicazione e fare clic su Set Object (Imposta oggetto) nel menu principale dell'esperienza.Run the application and click on Set Object in the main menu of the experience.

Specificare il nome dell'oggetto da salvare e fare clic su Set Object (Imposta oggetto) per proseguire.Give the name of the object you want to save and click on Set Object to continue. Per aggiungere altre informazioni sull'oggetto, selezionare l'immagine e descrivere l'oggetto.To add more information about the object, select the image, and describe the object.

Per salvare la posizione, fare clic su Save Location (Salva posizione)To save the location, click on Save Location

Viene visualizzato un puntatore di ancoraggio che è possibile spostare e posizionare nella posizione da salvare.You will see an anchor pointer that you can move and place on the location you want to save. Successivamente, viene visualizzata una finestra popup di conferma.After that, you will get a confirmation popup. Se si vuole confermare e salvare la posizione, fare clic su Yes (Sì); in caso contrario, è possibile modificare la posizione facendo clic su No e selezionando nuovamente la posizione.If you want to confirm and save the location, click on Yes; otherwise, you can change the location by clicking on No and selecting the location again.

Dopo avere confermato la posizione facendo clic su Yes (Sì), la posizione e l'ID di ancoraggio verranno salvati nell'archiviazione cloud di Azure.Once you confirm the location by clicking on Yes, the location and the Anchor ID will be saved in the Azure cloud storage. Eseguito il salvataggio, verrà visualizzato il tag dell'oggetto nell'ancoraggio con il nome dell'oggetto.Once it is saved, you will see the Object tag in the anchor with the object's name.

A questo punto, la posizione dell'oggetto è salvata correttamente.Now the object location is saved successfully.

Query per trovare una posizione di ancoraggioQuery for finding an anchor location

Dopo avere salvato la posizione di ancoraggio, è possibile trovarla selezionando Search Object (Cerca oggetto) nel menu principale.Once after you successfully saved the anchor location, now you can find the anchor location by selecting Search Object in the main menu.

Facendo clic su Search Object (Cerca oggetto), viene visualizzata una nuova finestra in cui occorre specificare il nome dell'oggetto da cercare.After clicking on Search Object, a new window will pop up in which you should give the name of the object you want to search.

Immettere il nome dell'oggetto e fare clic su Search Object (Cerca oggetto).Enter the name of the object and click on Search Object. Se l'oggetto è stato salvato in precedenza ed è presente nel database, si otterrà la scheda dell'oggetto con tutti i dettagli che lo riguardano.If the object is saved previously and is found in the database, you will get the object card with all the details of the object you would have saved earlier.

A questo punto è possibile fare clic su Show Location (Mostra posizione) per trovare l'oggetto.Now you can click on Show Location to find the object. Dopo avere fatto clic su Show Location (Mostra percorso), il sistema eseguirà una query nella risorsa di archiviazione cloud alla ricerca dell'indirizzo dell'oggetto.Once you click on Show Location, the system will query the object address from the cloud storage.

Una volta recuperata a posizione, apparirà una freccia rivolta verso la posizione dell'oggetto.After successfully retrieving the location, an arrow will direct you towards the location of the object. Seguire il segno della freccia fino a trovare la posizione dell'oggetto.Follow the arrow mark until you find the location of the object.

Una volta trovato l'oggetto, nella parte superiore verrà visualizzato il nome dell'oggetto, il segno della freccia scomparirà e sarà possibile fare clic sul tag dell'oggetto per visualizzare i dettagli dell'oggetto.Once you find the object, the object name will appear at the top, and the arrow mark will disappear, and now you can click on the object tag to see the details of the object.

Lezione completataCongratulations

In questa esercitazione è stato illustrato come salvare e recuperare la posizione di un oggetto in HoloLens 2 con Ancoraggi nello spazio di Azure.In this tutorial, you learned how Azure Spatial Anchors could save and retrieve the object location on Hololense 2.

Nell'esercitazione finale si imparerà a usare il Servizio Azure Bot per aggiungere il linguaggio naturale come nuovo metodo di interazione per l'applicazione.In the final tutorial, you will learn how to use the Azure Bot Service to add natural language as a new interaction method for our application.