Relazioni di ancoraggio e ricerca di metodi negli ancoraggi spaziali di AzureAnchor relationships and way-finding in Azure Spatial Anchors

Usando le relazioni di ancoraggio, è possibile creare ancoraggi connessi in uno spazio, quindi porre domande simili alle seguenti:By using anchor relationships, you can create connected anchors in a space and then ask questions like these:

  • Sono presenti ancoraggi nelle vicinanze?Are there anchors nearby?
  • Quanto sono lontani?How far away are they?

EsempioExamples

È possibile usare ancoraggi connessi in casi come i seguenti:You could use connected anchors in cases like these:

  • Un thread di lavoro deve completare un'attività che prevede la visita di diverse località in una factory industriale.A worker needs to complete a task that involves visiting various locations in an industrial factory. La Factory dispone di ancoraggi spaziali in ogni posizione.The factory has spatial anchors at each location. Un HoloLens o un'app per dispositivi mobili consente di guidare il lavoro da una posizione all'altra.A HoloLens or mobile app helps guide the worker from one location to the next. L'app richiede prima di tutto gli ancoraggi spaziali adiacenti e quindi Guida il thread di lavoro alla posizione successiva.The app first asks for the nearby spatial anchors and then guides the worker to the next location. L'app mostra visivamente la direzione generale e la distanza alla posizione successiva.The app visually shows the general direction and distance to the next location.

  • Un museo crea ancoraggi spaziali in visualizzazione pubblica.A museum creates spatial anchors at public displays. Insieme, questi ancoraggi formano una panoramica di un'ora per le visualizzazioni pubbliche essenziali del Museo.Together, these anchors form a one-hour tour of the museum's essential public displays. In una visualizzazione pubblica, i visitatori possono aprire l'app per la realtà mista del Museo sul proprio dispositivo mobile.At a public display, visitors can open the museum's mixed reality app on their mobile device. Quindi, puntano alla fotocamera del telefono attorno allo spazio per visualizzare la direzione generale e la distanza per le altre visualizzazioni pubbliche del tour.Then they point their phone camera around the space to see the general direction and distance to the other public displays on the tour. Man mano che un utente si avvicina a una visualizzazione pubblica, l'app Aggiorna la direzione generale e la distanza per aiutare l'utente.As a user walks toward a public display, the app updates the general direction and distance to help guide the user.

Configurare la modalità di ricercaSet up way-finding

Un'app che usa la direzione della linea di visione e la distanza tra gli ancoraggi per fornire indicazioni sta usando la modalità di ricerca.An app that uses line-of-sight direction and distance between anchors to provide guidance is using way-finding. La modalità di ricerca è diversa dalla navigazione turn-by-turn.Way-finding is different from turn-by-turn navigation. Nell'esplorazione a turni, gli utenti sono guidati intorno alle pareti, attraverso le porte e tra i piani.In turn-by-turn navigation, users are guided around walls, through doors, and between floors. Con il metodo di ricerca, l'utente ottiene suggerimenti sulla direzione generale della destinazione.With way-finding, the user gets hints about the general direction of the destination. L'inferenza o la conoscenza dello spazio consente inoltre all'utente di spostarsi tra la struttura e la destinazione.But inference or knowledge of the space also helps the user navigate through the structure to the destination.

Per creare un'esperienza di ricerca, prima di tutto preparare uno spazio per l'esperienza e sviluppare un'app con cui gli utenti interagiranno.To build a way-finding experience, first prepare a space for the experience and develop an app that users will interact with. Questi sono i passaggi concettuali:These are the conceptual steps:

  1. Pianificare lo spazio: decidere quali posizioni all'interno dello spazio faranno parte dell'esperienza di ricerca.Plan the space: Decide which locations within the space will be part of the way-finding experience. In questi scenari, il responsabile della fabbrica o il coordinatore del tour del Museo può decidere quali posizioni includere nell'esperienza di ricerca.In our scenarios, the factory supervisor or the museum tour coordinator might decide which locations to include in the way-finding experience.

  2. Connetti ancoraggi: visitare le località selezionate per creare ancoraggi spaziali.Connect anchors: Visit the chosen locations to create spatial anchors. Questa operazione può essere eseguita in modalità di amministrazione dell'app per l'utente finale o in un'altra app completamente.You can do this in an admin mode of the end-user app or in a different app entirely. Ogni ancoraggio verrà connesso o correlato alle altre.You'll connect or relate each anchor to the others. Il servizio gestisce queste relazioni.The service maintains these relationships.

  3. Avviare l'esperienza dell'utente finale: gli utenti eseguono l'app per individuare un ancoraggio, che può trovarsi in qualsiasi posizione scelta.Start the end-user experience: Users run the app to locate an anchor, which can be in any of the chosen locations. La progettazione complessiva dovrebbe determinare le posizioni in cui gli utenti possono accedere all'esperienza.Your overall design should determine the locations where users can enter the experience.

  4. Trova ancoraggi vicini: dopo che l'utente ha trovato un ancoraggio, l'app può richiedere ancoraggi adiacenti.Find nearby anchors: After the user finds an anchor, the app can request nearby anchors. Questa procedura restituisce una posa tra il dispositivo e questi ancoraggi.This procedure returns a pose between the device and these anchors.

  5. Guida dell'utente: l'app può usare la disposizione per ognuno di questi ancoraggi per fornire indicazioni sulla direzione e sulla distanza generali dell'utente.Guide the user: The app can use the pose to each of these anchors to give guidance about the user's general direction and distance. Ad esempio, il feed della fotocamera nell'app potrebbe mostrare un'icona e una freccia per rappresentare ogni potenziale destinazione, come illustrato nella figura seguente.For example, the camera feed in the app might show an icon and arrow to represent each potential destination, as the following image shows.

  6. Perfezionare le linee guida: quando l'utente esegue l'esercitazione, l'app può calcolare periodicamente una nuova forma tra il dispositivo e l'ancoraggio di destinazione.Refine the guidance: As the user walks, the app can periodically calculate a new pose between the device and the destination anchor. L'app continua a perfezionare gli hint per le linee guida che consentono all'utente di arrivare alla destinazione.The app continues to refine the guidance hints that help the user arrive at the destination.

    Un esempio di come un'app può mostrare le linee guida per trovare la strada

Connetti ancoraggiConnect anchors

Per creare un'esperienza di ricerca, è prima di tutto necessario inserire gli ancoraggi nelle posizioni selezionate.To build a way-finding experience, you first need to place the anchors in the chosen locations. In questa sezione si presuppone che l'amministratore dell'app abbia già completato il lavoro.In this section, we'll assume the app's admin has already finished this work.

Connetti ancoraggi in una singola sessioneConnect anchors in a single session

Per connettere ancoraggi:To connect anchors:

  1. Passare alla prima posizione e creare Anchor A usando un CloudSpatialAnchorSession.Walk to the first location and create Anchor A by using a CloudSpatialAnchorSession.
  2. Passare alla seconda posizione.Walk to the second location. La piattaforma MR/AR sottostante tiene traccia dello spostamento.The underlying MR/AR platform tracks the movement.
  3. Creare l'ancoraggio B utilizzando lo stesso CloudSpatialAnchorSession.Create Anchor B by using the same CloudSpatialAnchorSession. Gli ancoraggi A e B sono ora connessi.Anchors A and B are now connected. Il servizio ancoraggi spaziali gestisce questa relazione.The Spatial Anchors service maintains this relationship.
  4. Continuare la procedura per gli ancoraggi rimanenti.Continue the procedure for the remaining anchors.

Connetti ancoraggi in più sessioniConnect anchors in multiple sessions

È possibile connettere ancoraggi spaziali su più sessioni.You can connect spatial anchors over multiple sessions. Utilizzando questo metodo, è possibile creare e connettere alcuni ancoraggi alla volta e successivamente creare e connettere più ancoraggi.Using this method, you can create and connect some anchors at one time and then later create and connect more anchors.

Per connettere ancoraggi su più sessioni:To connect anchors over multiple sessions:

  1. L'app crea alcuni ancoraggi (ancoraggi A e B) in un CloudSpatialAnchorSession.The app creates some anchors (Anchors A and B) in one CloudSpatialAnchorSession.
  2. In un momento diverso, l'app individua uno di questi ancoraggi (ad esempio, ancoraggio A) usando un nuovo CloudSpatialAnchorSession.At a different time, the app locates one of these anchors (for example, Anchor A) by using a new CloudSpatialAnchorSession.
  3. Passare a una nuova posizione.Walk to a new location. La piattaforma di realtà mista o di realtà aumentata sottostante tiene traccia dello spostamento.The underlying mixed-reality or augmented-reality platform tracks the movement.
  4. Creare Anchor C utilizzando lo stesso CloudSpatialAnchorSession.Create Anchor C by using the same CloudSpatialAnchorSession. Gli ancoraggi A, B e C sono ora connessi.Anchors A, B, and C are now connected. Il servizio ancoraggi spaziali gestisce questa relazione.The Spatial Anchors service maintains this relationship.

È possibile continuare questa procedura per ulteriori ancoraggi e altre sessioni nel tempo.You can continue this procedure for more anchors and more sessions over time.

Verificare le connessioni di ancoraggioVerify anchor connections

L'app può verificare che due ancoraggi siano connessi inviando una query per gli ancoraggi adiacenti, operazione eseguita impostando NearAnchorCriteria su CloudSpatialAnchorWatcher .The app can verify that two anchors are connected by issuing a query for nearby anchors, which you do by setting the NearAnchorCriteria on a CloudSpatialAnchorWatcher. Quando il risultato della query contiene l'ancoraggio di destinazione, viene verificata la connessione di ancoraggio.When the query's result contains the target anchor, the anchor connection is verified. Se gli ancoraggi non sono connessi, l'app può provare a connetterli nuovamente.If the anchors aren't connected, the app can try to connect them again.

Ecco alcuni motivi per cui i ancoraggi potrebbero non riuscire a connettersi:Here are some reasons why anchors might fail to connect:

  • La realtà mista sottostante o la piattaforma di realtà aumentata ha perso il rilevamento durante il processo di connessione di ancoraggi.The underlying mixed-reality or augmented-reality platform lost tracking during the process of connecting anchors.
  • A causa di un errore di rete durante la comunicazione con il servizio di ancoraggio spaziale, non è stato possibile salvare in maniera permanente la connessione di ancoraggio.Because of a network error during communication with the Spatial Anchors service, the anchor connection couldn't be persisted.

Trovare codice di esempioFind sample code

Per trovare il codice di esempio che illustra come connettere ancoraggi e per eseguire query nelle vicinanze, vedere app di esempio di ancoraggi spaziali.To find sample code that shows how to connect anchors and to do nearby queries, see Spatial Anchors sample apps.