Concetti relativi a Strumenti di blocco globale
Problema
Nel mondo fisico quotidiano, lo spazio è ben descritto da un sistema di coordinate stazionario. 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 manterrà tale configurazione. Due oggetti che si spostano con velocità identiche rimarranno a un offset fisso l'uno dall'altro.
Queste e simili leggi sono una parte fondamentale dell'esistenza che quando non sono più in possesso, l'intuizione sul mondo diventa inaffidabile.
Soluzioni precedenti
Lo spazio di coordinate globale e gli ancoraggi nello spazio di Unity affrontano aspetti diversi dei problemi causati da imprecisioni e deviazioni dei sensori.
Lo spazio di coordinate globale di Unity fornisce un frame stabile di riferimento in cui gli oggetti olografici rimangono fissi l'uno rispetto all'altro. Mentre gli oggetti in questo spazio si comportano in modo coerente l'uno rispetto all'altro, la coerenza con il mondo fisico non è garantita né generalmente fornita. Le incoerenze si svilupperanno soprattutto quando l'utente si muove.
Gli ancoraggi nello spazio 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 l'uno rispetto all'altro. Si stanno anche spostando attraverso lo spazio di coordinate globale, rendendo semplici attività come il layout difficile e la simulazione fisica problematico.
Origine del problema
La discussione qui è incentrata sulla tecnologia HoloLens, ma questi concetti si applicano in genere alle tecniche di rilevamento senza marcatori all'interno, soprattutto come aumentata dai sistemi inerziali.
HoloLens è incredibile per determinare dove è relativo alle caratteristiche visibili nell'ambiente circostante. Per estensione, è anche sorprendente posizionare altri oggetti virtuali in base a queste 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 punto sulla superficie del tavolo.
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 forse anche tra le stanze, HoloLens deve passare tra le vecchie funzionalità che lasciano la visualizzazione e le nuove funzionalità che vengono visualizzate. Senza entrare nei dettagli di implementazione, è chiaro che mentre è in transito, l'accuratezza del rilevamento sarà molto degradata.
Ecco uno scenario semplicistico per il contesto.
Illustrazione
L'utente è al punto A. Guardando intorno, ci sono molte buone caratteristiche di riferimento visibili, quindi la qualità del tracciamento della testa è eccellente, e qualsiasi ologramma posizionato rimarrà messo.
L'utente cammina quindi a 10 metri nello spazio fisico fino al punto B. Ma il tracciamento 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. Si tratta di una grande quantità pari per l'illustrazione, ma è coerente con le specifiche del dispositivo, che consentono un errore di distanza +-10% in questo caso.
Mentre il dispositivo guarda intorno al punto B, vengono registrate funzionalità visibili valide. Anche il rilevamento e la stabilità degli ologrammi nel punto B sono eccellenti.
Mentre l'utente è in un determinato punto, le cose intorno a quel punto sembrano eccezionali. Ma c'è un'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 scala", anche se "il problema di distanza" potrebbe essere più accurato. Questo problema verrà esaminato a breve.
Tornare allo 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 netta 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 apparirà ora a 1,5 metri di distanza dal punto A.
In questo caso gli ancoraggi nello spazio possono essere utili. Dopo aver camminato verso B e indietro, il sistema riconosce che è tornato al punto A, ma le coordinate unity della testa sono cambiate di 1,5 metri. Ma se l'ologramma al punto A ha un ancoraggio spaziale collegato, l'ancoraggio spaziale può pensare "Sono al punto A, la testa è al punto A, ma le mie coordinate differiscono dalle coordinate della testa di 1,5 metri. Cambierò le mie coordinate di 1,5 metri in modo che siamo di nuovo in accordo." E un ancoraggio spaziale al punto C, un metro a sinistra dell'utente, sta attraversando lo stesso processo. In sostanza, l'ancoraggio nello spazio ridefinisce costantemente dove il punto A si trova nello spazio Unity in modo che le coordinate della testa siano sempre corrette. E ogni ancoraggio spaziale esegue questa regolazione in modo indipendente per il suo posto nel mondo fisico.
Strumenti di blocco globale per Unity
World Locking Tools mantiene una fornitura interna di ancoraggi nello spazio che si diffonde quando l'utente si sposta intorno. Analizza le coordinate della fotocamera e gli ancoraggi nello spazio di ogni fotogramma. Rileva quando tutti questi ancoraggi spaziali si spostano su 1,5 metri per trovare la corrispondenza con le 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, invece correggerò le coordinate della testa".
Ciò significa che, invece di dover disporre di un ancoraggio nello spazio spaziale, trascinare un ologramma attraverso lo spazio Unity in modo che rimanga fisso nello spazio fisico, l'intero spazio globale Unity è bloccato nello spazio fisico. Se un ologramma è immobile nello spazio unity, rimarrà immobile rispetto alle caratteristiche del mondo fisico intorno a esso. E altrettanto importante, rimarrà fisso rispetto alle funzionalità virtuali intorno a esso.
Ovviamente è più complicato sotto il cofano di quello. Si ricordi, ad esempio, che un problema con gli ancoraggi nello spazio è che si spostano in modo indipendente, quindi non sempre sono d'accordo l'uno con l'altro. Il motore FrozenWorld sottostante arbitra quei disaccordi per venire con la correzione della fotocamera più percettivamente corretta, e lo fa ogni fotogramma.
Problema di scalabilità di nuovo
Se l'utente passa dal punto A al punto B e al punto A, il sistema dispone di informazioni sufficienti per correggere la deriva che si è verificata in transito. Potrebbe non sapere dove il punto B è (e in genere non sa esattamente dove qualsiasi punto B è relativo al punto A), ma sa se è al punto A o meno. Quando torna al punto A, si aspetta che le cose siano praticamente come le ha lasciate. In caso contrario, il sistema può farlo.
Ma che ne dici al punto B? Pensava che la passeggiata di 10 metri fosse solo di 9 metri. E non ha modo di sapere se quel 9 metri è corretto, e se non è, quanto è fuori. Gli ancoraggi nello spazio non aiutano qui. Gli ancoraggi nello spazio hanno lo stesso problema che lo strumento di tracciamento della testa fa; ognuno sa dove si trova nel mondo fisico (rispetto alle funzionalità visibili), ma un ancoraggio spaziale non conosce nulla di un altro ancoraggio spaziale. In particolare, gli ancoraggi nello spazio non sanno quanto sono distanti.
Ciò può risultare scomodo in molte forme, ma diventa un problema di blocco quando gli oggetti, o i sistemi di oggetti, sono più grandi di un metro o così via. Si consideri un modello di una stanza, un edificio o un set di scrivanie o persino un'auto. Anche se un ancoraggio nello spazio può mantenere una fine del modello registrato con una funzionalità fisica, al raggiungimento dell'altra estremità del modello, potrebbe essere stato accumulato un errore significativo. L'altra estremità non verrà allineata correttamente. E l'errore sarà diverso dal dispositivo al dispositivo e probabilmente 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 Space Pins , che consente all'applicazione di fornire informazioni sufficienti relative al mondo fisico e all'ambiente olografico per correggere gli errori a distanza percorsa. In questo modo, gli ologrammi di grandi dimensioni vengono visualizzati allineati al mondo fisico in tutto il mondo.
Un'occhiata al sistema di base
Ora che è stata fornita una panoramica dei concetti relativi agli strumenti di blocco globale, è possibile tornare indietro e esaminare il sistema di base. Comprendere quali servizi fa l'operazione di base e non fornisce consente di determinare l'uso corretto dei concetti avanzati in un secondo momento e se tali tecniche avanzate sono anche necessarie per un'applicazione specifica.