Vanliga frågor och svar
Definitioner som används i den här dokumentationen:
Pose – en position och orientering.
Hologram – ett synligt virtuellt objekt.
Verklig värld - den fysiska världen.
Fysisk värld - den verkliga världen.
Virtuell värld – syntetiskt genererad och simulerad värld som presenteras via elektroniska medier.
Virtuell världsmarkör – en pose i det virtuella koordinatsystemet (modellering). Det är allt, bara en referensposition och orientering.
Verklig markör – en pose i förhållande till den verkliga miljön och kameran som motsvarar en virtuell världsmarkör. Den verkliga markörens pose upprättas genom en kombination av avkännad data.
Synliga funktioner – Funktioner i den fysiska världen som är visuellt igenkännliga.
Vad gör World Locking Tools?
Med tanke på inkonsekvenser mellan virtuella och verkliga markörer ger World Locking Tools ett stabilt koordinatsystem och kamerajustering som minimerar de synliga inkonsekvenserna.
På ett annat sätt låser den hela scenen med en delad pool med fästpunkter, i stället för att låsa varje grupp med objekt med gruppens egen individuella fästpunkt.
Varför är markörer i den virtuella och verkliga världen inkonsekventa?
Bland de många fantastiska teknikerna bakom Microsoft Mixed Reality är möjligheten att spåra headsetets pose i den fysiska världen i realtid, utan hjälp av externa enheter, särskilt fantastisk.
Huvudspårningssystemet är anmärkningsvärt korrekt när det gäller att fastställa huvudets pose i förhållande till kända virtuella referenspunkter i den fysiska miljön. För den här diskussionen kallas dessa virtuella referenspunkter för "synliga funktioner".
När du lämnar en position känd i förhållande till omgivande synliga funktioner, till exempel om användaren går runt i rummet och sedan återgår till samma position, kommer systemet att känna igen många av dessa synliga funktioner. Den kan också bestämma poserna för de synliga funktionerna i förhållande till den aktuella huvudställningen och göra det med överraskande noggrannhet.
Nu vet trackersystemet var dessa funktioner och huvudet är i förhållande till varandra, men det vet inte i absoluta termer vad koordinaterna är för antingen huvud eller funktioner. Eftersom den fysiska världen inte har något absolut koordinatsystem finns det inget rätt svar. Spårningssystemet tilldelar därför koordinater som är konsekventa med den senaste historiken, men som kan vara inkonsekventa i hela historiken. Det innebär att när huvudet återgår till exakt samma pose kan det nu ha andra koordinater än när det lämnades. Detta är en form av sensordrift.
Men om de nya virtuella huvudpositionskoordinaterna har förskjutits mot positivt X, till exempel, flyttas nu alla hologramobjekt som är stationära i det virtuella koordinatsystemet mot negativt X i förhållande till huvudet. Det innebär att till observatören som bär huvudspåraren kommer de att flyttas i förhållande till den verkliga världen jämfört med deras placering före promenaden.
Kan Unity hantera detta?
Ja, med begränsningar. Unity är en utmärkt mekanism för att hantera detta, så kallade spatiala fästpunkter. Om det virtuella utrymmet har flyttats i förhållande till fysiskt utrymme, genom att hålla reda på underliggande synliga funktioner, vet en rumslig fästpunkt att flytta sig i virtuellt utrymme för att förbli låst i fysiskt utrymme. Allt som är kopplat till den rumsliga fästpunkten dras också genom Unitys virtuella utrymme för att förbli stationärt i fysiskt utrymme.
Begränsningarna är relaterade till det faktum att synliga funktioner blir opålitliga när de är långt från huvudspårarens kameror. Det här är inte förvånande. Synliga funktioner som inte är synliga gör att referenspunkterna är dåliga.
Ett rumsligt fästpunkts användbara intervall är därför begränsat till 3 meter. Beroende på programmets noggrannhetskrav kan det användbara intervallet vara mindre.
Det verkar ganska bra, vad är problemet?
Det är bortom gott, det är helt enkelt fantastiskt. Men det finns situationer, viktiga situationer, där rumsliga fästpunkter inte ger en tillfredsställande lösning.
För det första rör sig varje rumslig fästpunkt genom Unitys virtuella koordinatutrymme oberoende av varandra och försöker förbli stillastående i den fysiska världen. Det innebär att objekt som fästs separat flyttas i förhållande till varandra när de försöker stanna kvar i sina fysiska positioner. För ett program som försöker underhålla en exakt layout kan det vara ett stort problem.
För det andra ger ett enda rumsligt fästpunkt inte bra resultat för enskilda objekt som är större än det användbara intervallet för den rumsliga fästpunkten. Medan punkterna på objektet nära den rumsliga fästpunkten kommer att förbli väl världslåst, på grund av hävstångsarmeffekten, kommer punkter längre och längre från det rumsliga ankaret att drabbas av ständigt ökande fel. Detta lämnar ett objekt, eller en samling objekt, större än en mätare eller så utan en robust lösning för världslåsning.
Vad mer kan gå fel?
När du återvänder till en tidigare upptagen pose har World Locking Tools tillräckligt med information för att återställa det virtuella koordinatsystemet där det var i förhållande till den fysiska världen. Detta håller hologram som är stationära i den virtuella världen också stationära i den fysiska världen.
Men drift kan inträffa på en enkelriktad resa, liksom en tur och retur.
Som ett konkret exempel bör du överväga att mäta 10 meter mellan två QR-koder placerade i ett fysiskt rum och därför modellera två rutor i det virtuella rummet som 10 meter från varandra. Men vid körning, på grund av drift av huvudet pose i det virtuella utrymmet, går de 10 meter mellan QR-koder flyttar 11 meter genom virtuellt utrymme.
Programmet kan välja en funktion i World Locking Tools för att åtgärda detta genom att tillhandahålla information som kalibrerar avstånd i virtuellt utrymme till avstånd i fysiskt utrymme. Det beteende som World Locking Tools tillhandahåller är att om du står över den första QR-koden och tittar nedåt visas den första rutan. När de 10 meterna går genom den fysiska världen absorberas den extra mätaren i virtuellt utrymme tyst, vilket lämnar huvudet rört 10 meter i virtuellt utrymme också. Så när du når den andra fysiska QR-koden och tittar nedåt kommer den andra virtuella rutan att finnas där som förväntat.
Observera att motsvarande justeringar görs för alla fästpunkter som inte har grund sanningsdata, eftersom de skickas på sökvägen mellan de två QR-koderna. Den justeringen tillämpas naturligtvis smidigt för att minimera dess uppfattning.
Tänk om de verkliga markörer inte är stabila?
Om de verkliga markörer uppdateras dynamiskt kan World Locking Tools dessutom justera sin rumsliga ram och kamerajustering för att optimalt matcha den aktuella konfigurationen.
Till exempel på HoloLens om de verkliga markörer är spatiala fästpunkter, kommer de att glida över tid. De kommer också att gå vidare med ometablering (t.ex. stängning av loopar) och under andra omständigheter. När deras poser uppdateras kompenserar World Locking Tools genom att justera kameran som tidigare för att minimera de upplevda inkonsekvenserna mellan de avkända rumsliga fästpunkterna och deras virtuella motsvarigheter.
Observera att den här kompensationen för uppdateringar i fästpunktspositioner kan inträffa även i avsaknad av mark sanningsdata om markörer. De underförstådda grundsanningsdata är att de aktuella relationerna mellan verkliga markörer är (mer) korrekta.
Vad händer om inkonsekvenserna blir riktigt dåliga?
World Locking Tools kan identifiera flera scenarier där inkonsekvenserna mellan verkliga och virtuella markörer är stora och kan förbättras. Mer information kan till exempel erhållas som etablerar den rumsliga relationen mellan två tidigare isolerade pooler med markörer. Eller så kan loopstängning föreslå en förskjutning av markörer längs vägen så att slutpunkterna kan uppfyllas.
I dessa fall meddelar World Locking Tools klienten för den potentiella korrigeringen, och på klientens testamente utför korrigeringen och meddelar klienten om justeringar som den ska göra i sina objekt som spårar virtuella markörer. Tills klienten begär en sådan korrigering (om någonsin) fortsätter World Locking Tools att minimera de upplevda inkonsekvenserna.