Concetti relativi a Strumenti di blocco mondiale

Problema

Nel mondo fisico quotidiano lo spazio è ben descritto da un sistema di coordinate stazioni. Un oggetto senza movimento in un sistema di coordinate stazioni continuerà a avere le stesse coordinate per sempre. Un gruppo di oggetti disposti in una configurazione specifica gestirà tale configurazione. Due oggetti che si spostano con velocità identiche rimangono in corrispondenza di un offset fisso tra loro.

Queste e simili leggi sono una parte di base dell'esistenza che, quando non sono più presenti, l'intuizione sul mondo diventa inaffidabile.

Soluzioni precedenti

Lo spazio di coordinate globale e gli ancoraggi spaziali di Unity si indirizzano a diversi aspetti dei problemi causati da errori del sensore e deriva.

Lo spazio di coordinate globale di Unity offre un frame stabile di riferimento in cui gli oggetti olografici rimangono fissi tra loro. Mentre gli oggetti in questo spazio si comportano in modo coerente rispetto l'uno all'altro, la coerenza con il mondo fisico non è garantita né generalmente fornita. Le inconsistenze si svilupperanno soprattutto quando l'utente si sposta in giro.

Gli ancoraggi spaziali di Unity possono mantenere la posizione di un ologramma nel mondo fisico quando l'utente è mobile, ma al sacrificio della coerenza automatica all'interno del mondo virtuale. Gli ancoraggi diversi si spostano costantemente rispetto all'altro. Stanno anche passando attraverso lo spazio di coordinate globale, rendendo semplici attività come il layout difficile e la simulazione fisica problematico.

Origine del problema

La discussione qui descrive la tecnologia HoloLens, ma questi concetti si applicano in genere alle tecniche di rilevamento senza marcatori all'interno, soprattutto come aumentata dai sistemi inertiali.

HoloLens è incredibile per determinare dove è relativo alle caratteristiche visibili nell'ambiente circostante. Per estensione, è anche incredibile posizionare altri oggetti virtuali in base a quelle stesse funzionalità visibili. Quando l'utente è seduto o in piedi in una posizione approssimativamente costante, il dispositivo è ideale per mantenere gli oggetti virtuali registrati con punti di riferimento fisici visibili. Una tazza virtuale posizionata su un tavolo fisico rimarrà principalmente nello stesso posto sulla superficie della tabella.

Questo è quando HoloLens è limitato allo stesso volume piccolo, con un set costante di funzionalità visibili in vista per riferimento. Ma ci sono altri scenari interessanti.

Quando l'utente si alza e si sposta sulla stanza, o eventualmente anche tra le camere, HoloLens deve passare tra le funzionalità precedenti che lasciano la vista e le nuove funzionalità che vengono visualizzate. Senza entrare nei dettagli dell'implementazione, è chiaro che durante il transito, l'accuratezza del rilevamento sarà molto degradata.

Ecco uno scenario semplicistico per il contesto.

Illustrazione

L'utente è a un punto A. Guardando intorno, ci sono molte funzionalità di riferimento visibili, quindi la qualità del rilevamento head è eccellente e qualsiasi ologramma posizionato rimarrà messo.

L'utente cammina quindi da 10 metri nello spazio fisico per puntare B. Ma il rilevamento in transito ha una fedeltà inferiore, quindi di conseguenza, dopo che l'utente raggiunge il punto B, il dispositivo registra che ha viaggiato solo 9 metri. Questa è una grande quantità anche per l'illustrazione, ma è coerente con le specifiche del dispositivo, che consentono un errore di distanza +-10% in questo caso.

Man mano che il dispositivo guarda intorno al punto B, vengono registrate funzionalità visibili buone. Anche il rilevamento e la stabilità degli ologrammi a punto B è eccellente.

Mentre l'utente è in un particolare punto, le cose intorno a quel punto sembrano grandi. Ma c'è una incoerenza. I 10 metri tra i punti A e B nello spazio fisico sono solo 9 metri nello spazio virtuale. Questo è spesso definito "problema di scalabilità", anche se "il problema di distanza" potrebbe essere più accurato. Presto esamineremo questo problema.

Tornare al nostro scenario: per l'azione successiva, l'utente torna al punto A. Questa volta gli errori di rilevamento rendono la passeggiata di 10 metri da B a A nello spazio fisico aggiungere fino a 10,5 metri nello spazio virtuale. Ciò significa che la passeggiata completa da A a B a A aggiunge fino a una distanza netto di 1,5 metri, quando dovrebbe essere 0,0 metri. Si tratta di un problema ovvio. Un ologramma posizionato al punto A prima della passeggiata ora apparirà 1,5 metri lontano dal punto A.

Questo è il luogo in cui gli ancoraggi spaziali possono aiutare. Dopo aver camminato verso B e indietro, il sistema riconosce che è tornato al punto A, ma le coordinate unity della testa sono state modificate da 1,5 metri. Ma se l'ologramma a punto A ha un ancoraggio spaziale collegato, l'ancoraggio spaziale può pensare "Sono a punto A, la testa è a punto A, ma le mie coordinate differiscono dalle coordinate della testa di 1,5 metri. Cambierò solo le mie coordinate per 1,5 metri in modo che siamo di nuovo in accordo." E un ancoraggio spaziale al punto C, un contatore a sinistra dell'utente, sta passando attraverso lo stesso processo. In sostanza, l'ancoraggio spaziale ridefine costantemente dove punto A è nello spazio Unity in modo che le coordinate della testa siano sempre corrette. E ogni ancoraggio spaziale esegue questa regolazione indipendentemente per il suo posto nel mondo fisico.

Strumenti di blocco mondiale per Unity

Gli strumenti di blocco mondiale mantengono un'offerta interna di ancoraggi spaziali distribuiti quando l'utente si sposta in giro. Analizza le coordinate della fotocamera e quelle ancoraggi spaziali ogni fotogramma. Rileva quando tutti questi ancoraggi spaziali si spostano su 1,5 metri per corrispondere alle coordinate della testa, e dice "Hmm, invece di modificare le coordinate di tutto il mondo per compensare la testa con coordinate diverse rispetto all'ultima volta che era qui, io correggerò invece le coordinate della testa".

Ciò significa che, anziché dover avere un ancoraggio spaziale trascinare un ologramma attraverso lo spazio Unity in modo che rimanga fisso nello spazio fisico, l'intero spazio mondiale Unity è bloccato nello spazio fisico. Se un ologramma è in movimento nello spazio Unity, rimarrà inattiva rispetto alle caratteristiche del mondo fisico intorno a esso. E così come importante, rimarrà fisso rispetto alle funzionalità virtuali intorno a esso.

Ovviamente è più complicato sotto il cappuccio di quello. Ad esempio, ricorda che un problema con gli ancoraggi spaziali è che si spostano in modo indipendente, quindi non sempre sono d'accordo tra loro. Il motore FrozenWorld sottostante arbitra tali disaccordi per venire con la correzione della fotocamera più corretta e lo fa ogni fotogramma.

Il problema di scalabilità di nuovo

Se l'utente cammina dal punto A al punto B e indietro al punto A, il sistema dispone di informazioni sufficienti per correggere la deriva che si è verificata in transito. Potrebbe non sapere dove punto B è (e in genere non sa esattamente dove qualsiasi punto B è relativo al punto A), ma sa se è a punto A o meno. Quando torna al punto A, si prevede che le cose siano piuttosto come le ha lasciate. In caso contrario, il sistema può renderlo così.

Ma che ne dici a punto B? Pensava che la passeggiata di 10 metri era solo 9 metri. E non ha modo di sapere se quel 9 metri è corretto, e se non è, quanto è fuori. Gli ancoraggi spaziali non aiutano qui. Gli ancoraggi spaziali hanno lo stesso problema che il localizzatore head fa; ognuno sa dove si trova nel mondo fisico (rispetto alle caratteristiche visibili), ma un ancoraggio spaziale non conosce nulla di un altro ancoraggio spaziale. In particolare, gli ancoraggi spaziali non sanno quanto sono lontani.

Questo può essere scomodo in molte forme, ma diventa un problema di blocco quando oggetti o sistemi di oggetti, sono più grandi di un contatore o così via. Si consideri un modello di una stanza, o un edificio, o un set di scrivanie o anche un'auto. Anche se un ancoraggio spaziale può mantenere una fine del modello registrata con una funzionalità del mondo fisico, al momento in cui l'altra fine del modello viene raggiunta, potrebbe essere stato accumulato un errore significativo. L'altra fine non sarà allineata correttamente. E l'errore sarà diverso dal dispositivo al dispositivo e possibilmente anche tra le esecuzioni nello stesso dispositivo.

E finora in questa discussione, le informazioni minime necessarie per risolvere il problema non sono state introdotte.

World Locking Tools risolve il problema con l'API Pins space , che consente all'applicazione di fornire informazioni sufficienti relative al mondo fisico e al mondo olografico per correggere gli errori in viaggio a distanza. Ciò consente agli ologrammi di grandi dimensioni di apparire allineati al mondo fisico in tutto il mondo.

Un'occhiata al sistema di base

Ora che abbiamo avuto una panoramica dei concetti di World Locking Tools, è possibile tornare indietro e esaminare il sistema di base. Comprendere i servizi che l'operazione di base esegue e non fornisce consente di determinare l'uso appropriato dei concetti avanzati in un secondo momento e se tali tecniche avanzate sono anche necessarie per un'applicazione specifica.

Vedi anche