Sdílet prostřednictvím


Koncepty world locking tools

Problém

V každodenním fyzickém světě je prostor dobře popsán statickým souřadnicovým systémem. Pohyblivý objekt v statickém souřadnicovém systému bude nadále mít stejné souřadnice navždy. Tuto konfiguraci zachová skupina objektů rozložených v konkrétní konfiguraci. Dva objekty pohybující se s identickými rychlostmi zůstanou na pevném posunu od sebe.

Tyto a podobné zákony jsou tak základní součástí existence, že když už nejsou v držení, intuitivní o světě se stane nespolehlivým.

Předchozí řešení

Globální souřadnicový prostor a prostorové kotvy Unity řeší různé aspekty problémů způsobených nepřesnostmi senzorů a posunem.

Globální souřadnicový prostor Unity poskytuje stabilní rámec odkazu, ve kterém holografické objekty zůstávají pevné vzhledem k sobě navzájem. I když se objekty v tomto prostoru budou chovat konzistentně vzhledem k sobě, není zaručena konzistence s fyzickým světem ani obecně. Nekonzistence se budou vyvíjet zejména v případech, kdy se uživatel pohybuje.

Prostorové kotvy Unity můžou udržovat pozici hologramu ve fyzickém světě, když je uživatel mobilní, ale obětuje sebekonzistenci ve virtuálním světě. Různé kotvy se neustále pohybují vzhledem k sobě. Procházejí také globálním souřadnicovým prostorem, takže jednoduché úkoly, jako je rozložení obtížné, a simulace fyziky jsou problematické.

Zdroj problému

Diskuzi zde se zaměříme na technologii HoloLens, ale tyto koncepty se obecně vztahují na techniky sledování bez značek, zejména rozšířené inerciálními systémy.

HoloLens je úžasný při určování, kde je relativní vzhledem k viditelným rysům v jeho okolí. Rozšířením je také úžasné umístit další virtuální objekty na základě stejných viditelných funkcí. Když uživatel sedí nebo stojí v zhruba konstantní poloze, zařízení je skvělé při zachování virtuálních objektů registrovaných viditelnými fyzickými referenčními body. Virtuální šálek umístěný na fyzickém stole zůstane většinou na stejném místě na povrchu stolu.

To je v případě, že je HoloLens omezen na stejný malý objem, s konstantní sadou viditelných funkcí v zobrazení pro referenci. Existují ale i další zajímavé scénáře.

Když se uživatel dostane nahoru a přesune se o místnost nebo dokonce mezi místnostmi, HoloLens musí přepínat mezi starými funkcemi, které opouštějí zobrazení, a nové funkce, které přicházejí do zobrazení. Aniž byste se museli zabývat podrobnostmi implementace, je jasné, že během přenosu bude přesnost sledování velmi degradovaná.

Tady je zjednodušený scénář kontextu.

Ilustrace

Uživatel je v bodě A. Hledáte kolem, existuje mnoho dobrých viditelných referenčních funkcí, takže kvalita sledování hlavy je vynikající a všechny hologramy budou umístěny.

Uživatel pak provede 10 metrů ve fyzickém prostoru k bodu B. Sledování během přenosu má ale nižší věrnost, takže jakmile uživatel dosáhne bodu B, zařízení zaregistruje, že cestuje pouze 9 metrů. Jedná se o velké sudé množství pro ilustraci, ale je konzistentní se specifikacemi zařízení, které v takovém případě umožňují chybu +-10% vzdálenosti.

Při pohledu zařízení v bodě B se zaznamenávají dobré viditelné funkce. Sledování a stabilita hologramů v bodě B je také vynikající.

Zatímco uživatel je v určitém okamžiku, věci kolem tohoto bodu vypadají skvěle. Ale existuje nekonzistence. 10 metrů mezi body A a B ve fyzickém prostoru je jen 9 metrů ve virtuálním prostoru. To se často označuje jako "problém se škálováním", i když "problém vzdálenosti" může být přesnější. Brzy se na tento problém podíváme.

Zpět k našemu scénáři: Pro další akci uživatel přejde zpět na bod A. Tentokrát chyby sledování činí 10 metrů chůze od B do A ve fyzickém prostoru až 10,5 metrů ve virtuálním prostoru. To znamená, že úplná procházka od A do B do A se sčítá do čisté vzdálenosti 1,5 metrů, kdy by měla být 0,0 metrů. Jedná se o jasný problém. Hologram umístěný v bodu A před procházkou se nyní zobrazí 1,5 metrů od bodu A.

Tady můžou pomoct prostorové kotvy. Po procházce do B a zpět systém rozpozná, že je zpátky v bodu A, ale souřadnice Unity hlavy se změnily o 1,5 metrů. Pokud ale hologram v bodě A má připevněnou prostorovou kotvu, prostorová kotva si může myslet, že jsem v bodě A, hlava je v bodě A, ale moje souřadnice se liší od souřadnic hlavy o 1,5 metrů. Jen změním souřadnice o 1,5 metrů, abychom byli opět v dohodě." A prostorové ukotvení v bodě C, měřič nalevo od uživatele, prochází stejným procesem. Prostorová kotva v podstatě neustále předefinuje, kde bod A je v prostoru Unity, aby souřadnice hlavy byly vždy správné. Každá prostorová kotva tuto úpravu provádí nezávisle na svém místě ve fyzickém světě.

World Locking Tools for Unity

World Locking Tools udržuje interní zásobu prostorových ukotvení, které se šíří, když se uživatel pohybuje kolem. Analyzuje souřadnice kamery a prostorové kotvy každého rámu. Zjistí, kdy se všechny tyto prostorové kotvy pohybují přes 1,5 metrů tak, aby odpovídaly souřadnicím hlavy, a říká "Hmm, místo změny souřadnic všeho na světě, aby se vykompenzovala hlava s různými souřadnicemi, než kdy byla naposledy tady, jen opravím souřadnice hlavy."

To znamená, že místo toho, aby prostorové ukotvení muselo přetáhnout hologram přes prostor Unity, aby zůstal pevně ve fyzickém prostoru, je celý svět Unity uzamčený na fyzický prostor. Pokud je hologram v prostoru Unity bez pohybu, zůstane bez pohybu vzhledem k fyzickým prvkům světa kolem něj. A stejně důležité je, že zůstane pevně relativní vzhledem k virtuálním funkcím kolem něj.

Očividně je to složitější pod kapotou než to. Mějte například na paměti, že problém s prostorovými kotvami spočívá v tom, že se pohybují nezávisle, takže se navzájem neshodují vždy. Základní FrozenWorld engine rozhoduje tyto nesouhlasy přijít s nejvýraznější opravou kamery, a dělá to každý snímek.

Problém se škálováním znovu

Pokud uživatel přejde z bodu A do bodu B a zpět do bodu A, systém má dostatek informací k opravě posunu, ke kterému došlo při přenosu. Nemusí vědět, kde bod B je (a obecně neví přesně, kde je bod B relativní k bodu A), ale ví, jestli je v bodě A nebo ne. Když se vrátí zpátky na bod A, očekává, že věci budou skoro tak, jak je opustily. Pokud tomu tak není, systém to může udělat.

Ale co v bodě B? Myslelo se, že 10 metrů chůze je jen 9 metrů. A nemá žádný způsob, jak zjistit, zda je 9 metrů správný, a pokud není, kolik je vypnuto. Prostorové kotvy tady nepomáhají. Prostorové kotvy mají stejný problém, který dělá sledování hlavy; každý ví, kde je ve fyzickém světě (vzhledem k viditelným rysům), ale jedno prostorové ukotvení nezná nic o jiném prostorovém ukotvení. Konkrétně prostorové kotvy neví, jak daleko jsou.

To může být v mnoha formách nevhodné, ale stává se blokující problém, když jsou objekty nebo systémy objektů větší než měřič nebo tak. Představte si model místnosti, budovy nebo sady psacích stolů nebo dokonce auta. I když prostorové ukotvení může udržovat jeden konec modelu zaregistrovaný ve fyzickém světě, v době dosažení druhého konce modelu může dojít k významné chybě. Druhý konec nebude správně zarovnaný. A chyba se bude lišit od zařízení po zařízení a možná i mezi spuštěními na stejném zařízení.

Zatím v této diskusi nebyly zavedeny minimální informace potřebné k vyřešení problému.

Nástroje World Locking Tools řeší tento problém s rozhraním API Space Pins , které aplikaci umožňuje poskytnout dostatek informací týkajících se fyzického světa a holografického světa, aby opravila chyby ve vzdálenosti. To umožňuje, aby se velké hologramy zobrazovaly v souladu s fyzickým světem po celém světě.

Pohled na základní systém

Když jsme teď měli přehled konceptů World Locking Tools, pojďme se vrátit zpět a podívat se na základní systém. Pochopení služeb, které operace směrného plánu dělá a neposkytuje, vám pomůže určit správné použití pokročilých konceptů později a zda jsou tyto pokročilé techniky dokonce nutné pro konkrétní aplikaci.

Viz také