I Augmented Reality, genomskinliga HMDs superpose virtuella 3D-objekt på den verkliga världen. Denna teknik har potential att förbättra en användares uppfattning och interaktion med den verkliga världen. Många Augmented Reality-program kommer dock inte att accepteras förrän vi korrekt kan registrera virtuella objekt med sina verkliga motsvarigheter. I tidigare system uppnåddes en sådan registrering endast ur ett begränsat antal synvinklar, när användaren höll huvudet stilla. Detta dokument erbjuder förbättrad registrering på två områden. För det första, vårt system visar exakt statisk registrering över ett brett utbud av visningsvinklar och positioner. En optoelektronisk spårare ger önskad räckvidd och noggrannhet. Tre kalibreringssteg bestämmer visningsparametrarna. För det andra, dynamiska fel som uppstår när användaren flyttar huvudet minskas genom att förutsäga framtida huvud platser. Tröghetssensorer monterade på HMD-hjälpens huvudrörelseförutsägelse. Korrekt bestämning av förutsägelseavstånd kräver operativsystem med låg överkapacitet och eliminering av oförutsägbara latenskällor. I genomsnitt ger förutsägelse med tröghetssensorer fel 2-3 gånger lägre än förutsägelse utan tröghetssensorer och 5-10 gånger lägre än att inte använda någon förutsägelse alls. Framtida åtgärder som ytterligare kan förbättra registreringen beskrivs.  CR-kategorier och huvudmonterade bildskärmar (HMD) och virtuella miljöer har varit föremål för stort intresse under de senaste åren. Mindre uppmärksamhet har ägnats åt det relaterade området Augmented Reality, trots dess liknande potential. Skillnaden mellan virtuella miljöer och Augmented Reality är i deras behandling av den verkliga världen. Virtual Environments fördjupar en användare i en virtuell värld som helt ersätter den verkliga världen utanför. I kontrast, Augmented Reality använder genomskinliga HMDs som låter användaren se den verkliga världen runt honom. Genomsynliga HMD ökar användarens syn på den verkliga världen genom att överlagra eller sammanställa tredimensionella virtuella objekt med sina verkliga motsvarigheter i världen. Helst skulle det tyckas för användaren att de virtuella och verkliga objekt samexisterade. Eftersom Augmented Reality kompletterar, snarare än ersätter, den verkliga världen, öppnar det upp en annan klass av tillämpningar från dem som utforskas i virtuella miljöer. Augmented Reality program försöker förbättra användarens uppfattning och interaktion med den verkliga världen. Flera forskare har börjat bygga prototypapplikationer för att utforska denna potential. En grupp på Boeing använder en genomsynlig HMD för att vägleda en tekniker i att bygga en kabelsele som utgör en del av ett flygplans elektriska system [6] [33]. För närvarande använder tekniker stora fysiska styrtavlor för att konstruera sådana selar, och Boeing behöver flera lager för att lagra alla dessa tavlor. Ett sådant utrymme kan tömmas för bättre användning om detta program visar sig vara framgångsrikt. Andra bygg- och reparationsarbeten kan underlättas om instruktioner fanns att tillgå, inte i form av manualer med text och 2D-bilder, utan som 3D-ritningar överlag på verkliga objekt, som visar steg-för-steg de uppgifter som ska utföras. Feiner och hans grupp demonstrerade detta i ett underhållsprogram för laserskrivare [11]. Feiners grupp undersöker också att visa virtuella dokument i en sfär runt användaren, vilket ger en mycket större arbetsyta än en vanlig arbetsstation monitor. Medicinska tillämpningar kan också dra nytta av Augmented Reality. En grupp vid UNC skannade ett foster inuti en livmoder med en ultraljudssensor, visade sedan en tredimensionell representation av dessa data på samma fysiska plats som fostret [4]. Målet är att ge en läkare "röntgen vision", så att han kan titta direkt in i kroppen. Konceptuellt, något som inte kan detekteras av mänskliga sinnen men som kan upptäckas av maskiner kan överföras till något som vi kan känna och visas inuti en genomskinlig HMD. Robinett spekulerar i att Augmented Reality slutligen handlar om att öka människans uppfattningsförmåga, om att göra det osynliga synligt (eller hörbart, kännas, etc.) [29]................................................................. Även lovande, Augmented Reality är knappt i demonstrationsfasen idag, och dess fulla potential kommer inte att förverkligas förrän flera tekniska utmaningar har övervunnits. Ett av de mest grundläggande är registreringsproblemet. De verkliga och virtuella objekten måste vara rätt Tillstånd att göra digitala eller hårda kopior av del eller hela detta arbete eller personlig eller klassrum användning beviljas utan avgift, förutsatt att kopior inte görs eller distribueras för vinst eller kommersiella fördelar och att kopior bär detta meddelande och den fullständiga citering på första sidan. För att kopiera på annat sätt, för att återpublicera, för att posta på servrar, eller för att omfördela till listor, krävs tidigare specifik behörighet och/eller avgift. punkter och siktriktningar. Vi använder en anpassad optoelektronisk huvud tracker som ger tillräcklig räckvidd och noggrannhet. Vi utvecklade också kalibreringstekniker för att bestämma visningsparametrarna. Den robusta statiska registreringen visas av flera stillbilder tagna från en enda videosekvens där användaren gick 270 grader runt registreringsobjektet. Förbättrad dynamisk registrering: För att minska dynamiska fel orsakade av end-to-end latency i systemet använder vi prediktiva spårningstekniker som gissar var användarens huvud kommer att vara i framtiden. Vi utrustade den genomskinliga HMD med tröghetssensorer för att hjälpa headmotion förutsägelse. En metod för autokalibrering av sensorernas orientering på användarens huvud, tillsammans med andra parametrar, utvecklades. Minskningen av dynamiska fel för tre olika rörelserörelser listas i en tabell. Resten av tidningen är organiserad enligt följande: först ger vi en kort översikt över vårt system. Därefter beskriver och utvärderar vi det statiska registreringsförfarandet. Då gör vi samma sak för dynamisk registrering. Varje avsnitt beskriver problem som uppstått och pekar på begränsningar. Den intresserade läsaren kommer att hitta kompletterande material i CD-ROM-versionen av denna uppsats och många fler detaljer om vårt arbete i en teknisk rapport (den första författarens avhandling) som kommer att publiceras senare 1994 av UNC Chapel Hill. De viktigaste konsekvenserna av vårt arbete är: • Robust statisk registrering inom några mm är möjlig, men det kräver spårare med högre noggrannhet än Virtual Environment applikationer kräver. • Tröghetsbehjälpta prediktorer kan avsevärt minska dynamiska registreringsfel. I genomsnitt är tröghetsbaserad förutsägelse 5-10 gånger mer exakt än att inte göra någon förutsägelse och 2-3 gånger mer exakt än en representativ icke-inertiell prediktor. • Augmented Reality systems som använder prediktiv spårning kräver low-overhead operativsystem och eliminering av oförutsägbara källor till latency. Vårt system använder en optisk genomskinlig HMD. Dess position och orientering mäts med ett optoelektroniskt spårningssystem, och bilderna genereras av Pixel-Planes 5 grafikmotor. Avläsningar tagna från tröghetssensorer monterade på HMD digitaliseras av en A/D-tavla i en 486 PC. Figur 10 visar den totala installationen och figur 3 ger ett systemdiagram. Den optiska genomsynliga HMD [16] visas i figur 8. Optiska kombinatorer placerade framför båda ögonen överlagra bilder ovanpå användarens syn på den verkliga världen. Displayerna är färg LCD-skärmar som innehåller 340x240 pixlar vardera. Siktfältet i varje öga är ungefär 30 grader. Vi valde ett optiskt genomsynligt tillvägagångssätt eftersom det inte fördröjer användarens syn på verkligheten (se avsnitt 7). Spårning tillhandahålls av fyra optiska sensorer monterade på baksidan av HMD, som visas i figur 8. Dessa är riktade uppåt mot en rad infraröda lysdioder monterade i takpaneler ovanför användarens huvud. Genom att observera flera lysdioder, och med tanke på den kända geometrin hos sensorerna på huvudet och de kända platserna för fyrarna i taket, kan systemet beräkna positionen och orienteringen för användarens huvud. Datainsamlingen och behandlingen utförs av tre enkelbords 68030 och i860-baserade datorer installerade i VME chassit av en Sun4 värd [36]. Tröghetssensorerna består av tre Systron Donner QRS-11 vinkelgaller och tre Lucas NovaSensor NAS-CO26 linjära accelerometrar. gyron mäter vinkelhastigheter inom intervallet ±300 grader/sekund, och accelerometrarna detekterar acceleration inom ±2 g. En 12-bitars A/D-tavla (Nationella instrument AT-MIO-16D) i en 486 PC digitaliserar signalerna. För att minimera buller byggde vi speciella strömregleringskretsar, använd avskärmad tvinnad kabel, differentialläge A/D och analoga förfilter. En Bit3 bussförlängare skickar de digitaliserade avläsningarna till de optoelektroniska spårkorten i solen4. De virtuella bilderna genereras av Pixel-Planes 5 (Pxpl5), en mycket parallell grafik motor som består av i860-baserade grafikprocessorer (GP) att göra geometri omvandlingar och Renderer styrelser som rasterize primitiva [14]. En av GPs används för att köra vår förutsägelse rutin. De beräknade huvudet positioner och orienteringar från optoelektronisk tracker och de uppmätta tröghetssignaler matas till denna GP, som använder dem för att uppskatta framtida huvudet i linje med varandra, eller illusionen att de två samexistens kommer att äventyras. Detta är svårt att göra på grund av den precision som krävs. Det mänskliga visuella systemet är mycket bra på att upptäcka även små felregistreringar, på grund av upplösningen av fovea och känsligheten i det visuella systemet för skillnader. En mer dragbar gräns tillhandahålls av den relativt låga upplösningen av displayerna i moderna HMD. Fel på bara några få pixlar är märkbara. Vissa ansökningar har strikta krav för korrekt registrering. Tänk dig till exempel en kirurg som bär en genomskinlig HMD som visar virtuella objekt som identifierar var och var man inte ska göra snitt. Om registreringsfelen inte hålls under några millimeter är det inte troligt att kirurgen litar på utrustningen. Utan god registrering kan Augmented Reality aldrig accepteras i seriösa ansökningar. Vad orsakar registreringsfel? De viktigaste källorna är: • Förvrängning i HMD-optiken • Mekaniska avvikelser i HMD • Fel i huvudspårsystemet • Felaktiga visningsparametrar (vyfält, tracker-to-eye läge och orientering, interpupillary avstånd) • End-to-end system latency De första fyra kategorierna kan klassificeras som statiska fel, eftersom de orsakar registreringsfel även när användaren håller huvudet helt stilla. Den femte kategorin, end-to-end latency, kallar vi ett dynamiskt fel, eftersom det inte har någon effekt förrän användaren flyttar sitt huvud. Ingen har uppnått perfekt registrering med en genomskinlig HMD. Strömmen demonstrerade state-of-the-art, som rapporteras i texten och bilderna av [4][11][18] uppnår statiska fel i storleksordningen 0,5 inches för ett objekt på armlängds avstånd från HMD, från ett litet antal synpunkter. Dynamiska fel kan vara mycket större. Med en end-to-end system latens på 100 ms, och en måttlig huvudrotationshastighet på 100 grader / sek, den vinkeldynamiska felet kommer att vara 10 grader. På armlängds avstånd resulterar detta i registreringsfel på 5 inches. Detta dokument beskriver ett system som vi har byggt för att ta itu med tre av de viktigaste källorna till registreringsfel: huvudspåraren, bestämning av visningsparametrar och dynamiska fel orsakade av systemlatens. Vi visar förbättrad statisk och dynamisk registrering enligt följande: Förbättrad statisk registrering: Bilder och videor av befintliga Augmented Reality-system visar registrering från bara ett litet antal perspektiv. Användaren är inte tillåten att översätta eller rotera HMD mycket långt från den ursprungliga synvinkeln. Det finns två skäl till denna begränsning. För det första ger de flesta kommersiellt tillgängliga huvudspårsystem inte tillräcklig noggrannhet och räckvidd för att tillåta sådana rörelser utan att avsevärt öka de statiska registreringsfelen. För det andra är det mycket lättare att fastställa parametrar som fungerar ur ett enda perspektiv än att fastställa parametrar som fungerar ur många olika synvinklar. Vi visar att parametrar som ger god registrering ur en synvinkel kan leda till statiska fel på några centimeter i en annan synvinkel. Vårt system är kapabel till robust statisk registrering: hålla ett virtuellt och verkligt objekt nära i linje med många vitt skilda vyer- Registrering av verkliga och virtuella objekt är inte begränsad till genomsynliga HMD. Specialeffekter konstnärer sömlöst blanda datorgenererade bilder med livefilmer för filmer och annonser. Skillnaden är i tid och kontroll. Med film kan man tillbringa timmar på varje bildruta, justera för hand om det behövs, och varje bild är noggrant planerad. I Augmented Reality har vi ingen sådan kontroll: användaren tittar där han vill titta, och datorn måste svara inom tiotals millisekunder (ms). Deering [10] visade en imponerande registrering av en verklig och virtuell linjal i ett huvudspårat stereosystem. Registrering är en något enklare uppgift i head-tracked stereo vs. ett HMD-baserat system eftersom bilderna inte förändras nästan lika mycket för samma mängd huvudöversättning eller rotation [9]. En omfattande litteratur om kamerakalibreringstekniker finns i robotik- och fotogrammetrisamhällena (se referenser i [21] som en start). Dessa tekniker digitaliserar en eller flera bilder av ett objekt av fast och ibland okänd geometri, lokalisera funktioner på objektet, sedan använda matematiska optimerare för att lösa för visning parametrar. Det är dock inte klart hur man direkt tillämpar dessa tekniker på en optisk genomskinlig HMD, där det inte finns någon kamera. Att be en användare att identifiera platser för många olika punkter samtidigt samtidigt hålla huvudet fortfarande bedömdes alltför svårt att vara tillförlitlig. Vi har redan nämnt flera artiklar om Augmented Reality, men mest fokus på applikationer snarare än på detaljer om kalibrering och registrering. De enda undantagen är [6] [18]. Vi jämför våra resultat med deras i Avsnitt 4.4. Metoder som används för att kalibrera hjälmmonterade sikten på helikoptergevär gav den första inspirationen till vårt tillvägagångssätt. Vi minskar problemet till ett verkligt objekt, en uppsättning virtuella objekt, och en önskad registrering som länkar de två. Det verkliga föremålet är en träram (figur 1 ). De virtuella objekten är tre ömsesidigt ortogonala extruderade rutor som bildar ett koordinatsystem. Målet är att registrera skärningspunkten mellan de tre virtuella barer med den främre vänstra hörnet av ramen, där de tre stängerna löper längs kanterna som vidrör hörnet (figur 2 & 14). Denna uppgift är ett bra registreringstest eftersom det är lätt att upptäcka små positions- och orienteringsfel längs kanterna på ramen. Det är svårare än man först kan tro att fastställa parametrar som utför denna uppgift på ett robust sätt. Det naiva tillvägagångssättet, prövat av flera personer i vårt laboratorium, är följande: sätta ett verkligt objekt på en känd eller okänd position, bära den genomskinliga HMD, sedan manuellt justera visningsparametrarna och platsen för det virtuella objektet tills registreringen "tittar rätt". Detta ger sällan robust registrering, eftersom parametrar och platser som arbetar i en synvinkel kan generera stora registreringsfel på en annan. Figur 9 illustrerar detta. Bilden till vänster visar god registrering i det ursprungliga perspektivet. Men samma parametrar ger några centimeter av registreringsfel när de används i en annan synvinkel, som visas i bilden till höger. Platser. Förutsägelsen GP omvandlar också de förutsagda huvudplatserna till matriser som resten av Pxpl5 använder för att generera de grafiska bilderna som HMD-wearer ser. Eftersom den normala Pxpl5-programvaran är optimerad för maximal genomströmning och inte minimal latens, använder vi olika renderingsprogram skrivna av Mark Olano och Jon Cohen som minimerar Pxpl5 latency [8]. Man var särskilt noga med att använda snabba kommunikationsvägar och lowoverhead-operativsystem. Kommunikation mellan processorer sker genom delat minne, genom Bit3-bussförlängare eller genom 640 MByte/sec-ringnätet inom Pixel-Planes 5. UNIX undviks förutom för inledande installation och icke-tidskritiska uppgifter, som läsknappar. Detta diskuteras mer i avsnitt 5.3. Den end-to-end system latency varierar från 50-70 ms, med 15-30 ms kommer från spåraren, ~12 ms från prediktorn, och 16.67 ms från Pxpl5. Resten kommer från kommunikationsvägar och förseningar orsakade av den asynkrona naturen i vårt system. Inspelning av de bilder som användaren ser inuti HMD för att skapa bilderna i detta papper gjordes genom att montera en videokamera i höger öga av en byst. HMD var bunden till den här bysten och bars sedan runt. Eftersom kamerakalibreringstekniker verkade alltför svåra att tillämpa inom detta område, tänkte vi på sätt att direkt mäta visningsparametrarna med hjälp av enkla uppgifter som är beroende av geometriska begränsningar. Om uppgifterna är tillräckligt känsliga och vår spårare är tillräckligt noggrann, då kan detta enkla tillvägagångssätt fungera. Vi beskriver nu dessa förfaranden som systematiskt bestämmer visningsparametrarna. Stegen i ordning är: • Mät ramens läge • Bestäm den synliga mitten av den virtuella bilden • Mät omvandlingen mellan spårarutrymme och ögonutrymme • Mät synfältet (FOV) Vi använder bara höger öga av vår HMD, på grund av mekaniska avvikelser, färg missmatchningar mellan de två displaysystem, och eftersom en monocular display är tillräckligt för att visa registrering. En digitaliseringssond fäst vid en "hat" med fyra optiska sensorer returnerar 3D-positionen av sondens spets ( Figur 13 ). Vi mäter åtta punkter på ramkanterna där de röda och gröna stängerna kommer att ligga, passa ett par ortogonala linjer genom dessa punkter, och de bestämmer axeln som går ner den tredje kanten. 2) Synligt centrum för virtuell bild: Centrum för vår 640x512 NTSC rambuffert behöver inte vara centrum för den virtuella bilden sett av det högra ögat, kräver off-center projektioner för att korrekt återge bilderna [12]. Om vi antar att rambufferten täcker hela området synligt genom optiken, kan vi mäta detta centrum genom att rita en 2D, icke-head-tracked hårkors i rambufferten (Figur 4). Fyra siffror anger detta hårkors: (X,Y) centrum koordinat, och X och Y radieri. Användaren bestämmer centrum genom att justera X-centrumet och radien tills de vänstra och högra linjerna är jämnt fördelade från de yttersta synliga kanterna på skärmen. Detta testas genom att öka radien; båda linjerna bör försvinna samtidigt eller centrum är felaktig. Ett liknande förfarande bestämmer Y-centret. Vårt uppmätta centrum är (330, 255), som skiljer sig från rambuffertcentrum med cirka 10 pixlar. 3) Ögon->Tracker transformation: Detta mäts genom borrsyn operation, där en användare som bär HMD ser rakt ner i den vänstra övre kanten av ramen med hans högra öga (Figur 4). En 0,25" diameter rör sticker ut längs kanten (Figur 1 ) hjälper användaren rada upp exakt. Samtidigt centrerar han den virtuella hårkorset med hörnet av ramen och anpassar de horisontella och vertikala hårkorset linjer med kanterna på ramen (Figur 11 ). Då har ögonkoordinatsystemet samma orientering som ramkoordinatsystemet, och Z-axlarna sammanfaller. The boresight etablerar följande relation: Q wf = Q vi där vi definierar Q wf att vara den quaternion som roterar punkter och vektorer från Frame utrymme till Världsrymd, och Q vi roterar från Eye utrymme till Världsrymd [30]. Sedan den önskade Eye->Tracker orientering Q te beräknas av: Q te = Q tw * Q vi Q te = (Q wt ) -1 * Q wf där Q wt är vad huvud trackern returnerar, och Q wf är känd från steg 1. Öga->Trackerns positionsförskjutningar mäts med borrsynen och ytterligare en uppgift. Positionen för hörnet av ramen i världsrymden är känd, på grund av steg 1. Positionen för spårarens ursprung i världsrymden returneras av huvudspåraren. Därför kan vi rita en vektor i världsrymden från hörnet av ramen till figur 5: Side view of FOV kalibreringsresultat. För att mäta återstående variation, hade vi tre användare upprepa borrsyn och FOV steg fem gånger, flytta sina huvuden bort mellan varje mätning. De genomsnittliga standardavvikelserna i beräknad orientering, läge och FOV var 0,32 grader, 4,8 mm (mestadels längs Z offset) respektive 0,1 grader. Även om inte dödlig, innebär denna variation användare kan behöva prova förfarandena mer än en gång för att uppnå önskade resultat. Den statiska registreringen visas i figurerna 15-22 håller bara när användaren står still. När användaren flyttar och roterar huvudet, de virtuella objekten verkar "simma runt" de verkliga objekten, på grund av systemet latens. Systemet kräver tid för att mäta huvudets läge, beräkna motsvarande bilder för den platsen och visa dem i HMD. Denna fördröjning mellan mätning av huvudets läge och visning av motsvarande bilder innebär att bilderna kommer att vara felaktiga om användaren flyttar sitt huvud under denna fördröjning. De virtuella objekten verkar släpa efter sina verkliga motsvarigheter, vilket orsakar stora dynamiska registreringsfel. För att minska dessa dynamiska fel, förutspår vi huvudrörelse. Istället för att använda den rapporterade huvudplatsen för att generera de grafiska bilderna, förutspår vi var huvudet kommer att vara när displayerna blir uppdaterade. Om förutsägelsen är korrekt, kommer de beräknade virtuella bilderna att matcha verkligheten vid den tidpunkt de visas. Hur skiljer sig vårt system från tidigare arbete? En skillnad är ansökan. Vi använder förutsägelse för att underlätta registrering av verkliga och virtuella objekt i en genomskinlig HMD och utvärdera det i det sammanhanget, något som de andra systemen inte försökte. Vi använder också gyros och accelerometrar för att underlätta både orientering och positionsförutsägelse, vilket inget tidigare system gör. Vårt arbete bidrar också med följande: • Utvärdering av hur mycket tröghetssensorer hjälper • Mätning och styrning av förutsägelseavstånd • Autokalibrering av tröghetssensorparametrar Vi kör separata prediktorer för orientering och position. Var och en består av två delar: 1) en estimator som beräknar vår bästa gissning om nuvarande position, hastighet och acceleration, och 2) en prediktor som tar dessa gissningar och extrapolerar önskat avstånd in i framtiden. Varje gång en spårningsposition och orienteringsmätning anländer, tillsammans med motsvarande tröghetsmätningar, uppdaterar estimatorn sina gissningar. När Pxpl5 är redo att beräkna en ny scen skickar prediktorn en utgång som motsvarar den tid då scenen kommer att visas. Den estimator som används är Kalman filtret [19], som många tidigare verk också använder. Utrymmet tillåter inte en detaljerad beskrivning av filtret; läs [22] för det. Kalmanfiltret är en linjär estimator som minimerar det förväntade medel-kvadratfelet. För orientering använder vi en icke-linjär variant som kallas Extended Kalman Filter (EKF). Filtret kräver att vissa variabler uppskattas, enstaka bullriga mätningar av dessa variabler, och en modell av hur dessa variabler förändras med tiden i avsaknad av nya mätningar. Den är optimal endast om modellen är en korrekt återspegling av verkligheten och om osäkerheten i både modellen och mätningarna exakt representeras av additivt vitt buller. Även om spårare ursprung. Rotera denna vektor genom (Q te ) -1 *Q tw omvandlar den till ögonutrymme. Eftersom ögonrymden och ramrymden delar samma orientering och deras Z-axlar sammanfaller, är X- och Y-värdena för vektorn i ögonrymden X och Y Eye->Tracker offset, i ögonrymden. För att fastställa Z offset, behöver vi en operation till. Två spikar är på toppen av ramen, en på framsidan och en på baksidan (figurerna 1, 4, & 14). När du utför borrsynen måste användaren också placera sig så att den främre nageln täcker den bakre nageln. En röd LED monterad på den bakre nageln hjälper användaren att upptäcka när detta inträffar. De kända platserna för dessa två naglar identifierar ett visst avstånd längs ramens Z-axel där användarens öga måste vara. Subtrahera att från hörn->tracker vektorn i Eye utrymme ger Z-komponenten i Eye->Tracker offset. Användaren utför två borrsyner: en från några meter bort för större orienteringskänslighet, och en mindre än en fot bort (matcha de två naglarna) för större positionskänslighet. Det räcker att mäta FOV längs den vertikala Y-riktningen i skärmutrymme, eftersom skalning som genom rambuffertens proportion ger den horisontella FOV. Korshårets Y-radie är inställd på 125 pixlar så de övre och nedre linjerna är lätt synliga. Användaren står framför ramen och linjer upp de övre och nedre virtuella korshårslinjer med motsvarande verkliga linjer dras på ramens främre yta (Figur 12, 14). Detta tvingar Eye space X-axeln att vara parallell med Frames X-axel. Från informationen i steg 1, 2 och 3 kan vi beräkna platserna för de verkliga linjerna i Eye Space. Genom att korsa linjerna med X=0 planet i Eye utrymme, minskar vi geometrin till 2D, som visas i Figur 5. Vi kan alltid få rätvinklar för y1 och y2 genom att använda linjen Y=0 som grund. Därefter: ß1 = (-1,0) solbränna -1 (y1/z1) ß2 = solbränna -1 (y2/z2) z1 och z2 är positiva, y2 är positiv och y1 är negativ som dras. Detta fungerar fortfarande om användarens öga är över eller under båda de verkliga linjerna: tecknen på y1, y2, ß1 och ß2 ändras på lämpligt sätt. Eftersom hårkorset inte täcker hela rambufferthöjden (512 pixlar), måste vi skala resultatet för att beräkna den totala FOV ß: ß = (ß1+ß2)(512/(2*125)) De parametrar som mäts i steg 1-4 är tillräckliga för att genomföra registrering av de virtuella axlarna. Steg 1 talar om för oss var vi ska placera de virtuella axlarna. De andra parametrarna talar om för oss hur vi kan generera matriser för det högra ögat, givna rapporter från huvudspåraren. Den enda ovanliga aspekten är behovet av en off-center projektion. Dessa procedurer, som används med vår optoelektroniska spårare, genererar parametrar som fungerar bra från många olika synvinklar och positioner. För att visa detta spelade vi in en videosekvens, med bara en uppsättning parametrar, av en användare som gick runt och tittade på hörnet av ramen från många olika platser. Om utrymmet tillåter, kommer utdrag från detta att finnas på cd-rom. På flera ställen under körningen hölls HMD stilla. Dessa synpunkter identifieras av de numrerade cirklarna i figur 14, som motsvarar stillbilderna i figurerna 2 och 15-22. Den röda och gröna stången har 5x5 mm 2 tvärsnitt, medan den blå stången är 7x7 mm 2 eftersom det är svårare att se på långa avstånd. Observera att hörnen och kanterna vanligtvis håller sig inom bredden på de strängpressade rektanglarna i de statiska vinklarna, vilket placerar registreringen inom ±4 mm för de röda och gröna stängerna och ±5 mm för den blå stången. Hur jämförs dessa resultat med de två tidigare verken? Janin [18] intar en helt annan hållning. Han mäter parametrar direkt med instrument och kör en kamerakalibreringsoptimerare som kräver att användaren identifierar platsen för ~20 objektpunkter från flera olika synvinklar. Den bästa noggrannheten han uppnår är ±12 mm. Däremot liknar steg 3 i vårt förfarande Caudell's [6] registreringsplattform, som beräknar Eye->Tracker position och orientering offset genom att användaren rada upp två cirklar och två linjer. Han ger inte någon information om hur exakt hans statiska registrering är, och hans registreringsförfarande saknar motsvarigheter till våra steg 2 och 4. Registreringsnoggrannheten beror på hur framgångsrikt användaren kan slutföra registreringsförfarandena. Användarna rapporterade svårigheter med att hålla huvudet stilla under borrnings- och FOV-operationerna, på grund av vikten av HMD. För att kompensera, använder vi de senaste 60 tracker rapporter för att beräkna varje operation, i genomsnitt Eye utrymme orientering dessa antaganden är vanligtvis inte uppfyllda, Kalman filtret är fortfarande populärt eftersom det tenderar att prestera bra även med kränkta antaganden och dess rekursiva formulering gör det effektivt att beräkna. Att bygga ett Kalman-filter är enkelt. De svåra delarna bestämmer en lämplig modell och hittar bra bullerparametrar. För den senare uppgiften samlade vi in flera körningar av tracker- och tröghetsdata medan HMD-wearer utförde "typiska" huvudrörelser. Sedan körde vi Powells metod [27] för att söka efter parametrar som minimerade förutsägelsefel på ett bestämt förutsägelseavstånd. I praktiken kan denna heuristiska hitta ett ganska brett spektrum av parametrar som uppfyller detta mål. Vi beskriver nu orienteringsskattaren och prediktorn, som senare beskriver översättningsfallet med hur det skiljer sig från orienteringen. T där Q är en roterande quaternion punkter och vektorer från Tracker utrymme till världsrymd, W är omega, vinkelhastighet rotation i huvudet utrymme, och X är Nx1 tillstånd vektor, där N=10. P är en NxN kovariansmatris som representerar osäkerheten i X. Det initiala värdet av X håller startkvadreringen och har nollor för omega och dess derivat. P är initialt en diagonal matris med nollor i alla off-diagonala positioner, 1 för de första fyra diagonala termer (quaternion), och 50 för de återstående sex diagonala termer (omega och dess derivat). De initiala kovarianterna är stora så filtret kommer att ersätta det initiala X med nya mätningar när de anländer. X och P bibehålls vid den aktuella tiden t. När varje ny mätning anländer, t.ex. vid tidpunkten t1, utför filtret två operationer: 1) en tidsuppdatering som avancerar tillståndsvariablerna till tiden t1 baserat på modellen, och 2) en mätuppdatering som smälter in i de värden som uppmätts vid tidpunkten t1. 1) Tidsuppdatering: En fjärde ordningens Runge-Kutta ODE-lösare [27] integrerar derivat av X och P från tid t till t1. Derivat är: (1) där E är en NxN matris som representerar bruset i modellen, och A är NxN Jacobian matris av den ickelinjära funktion a() som returnerar derivat av X genom beräkning: där för derivatan av Q, multiplikationer är quaternion multiplikationer och W skrivs som en quaternion med noll w term [7].  Q m = Normalize(Q), W m = W och själva mätuppdateringen genererar ett nytt X och P givet Z enligt följande: där K är en NxF-matris som kallas Kalman-vinsten, är H FxN Jacobian-matrisen för den ickelinjära funktionen h(), och R är FxF-variansmatrisen som representerar bruset i mätningarna. I slutet av mätningsuppdateringen normaliserar vi uttryckligen quaternion-delen av X. Detta är inte standard, men utan det quaternion termer snabbt bli onormaliserade. Bullermatriserna E och R bestäms under offlineoptimeringen. Båda är diagonala matriser med nollor i alla icke-diagonala termer. De första sex diagonala termerna av E är inställda på 0,004452: en liten mängd buller läggs till den uppmätta quaternion och omega för att hjälpa stabiliteten i EKF. De återstående tre diagonala termerna är satta till 351.0. För R är de första fyra diagonala termerna 0,0001, som representerar Q m buller, och de återstående tre diagonala termerna är 0,005921, som representerar W m buller. Förutsägare: När scengeneratorn är redo att rita en ny bild baserar prediktorn sin extrapolering på de uppskattade värdena i X. Prediktorn är den slutna formen lösning för att integrera quaternion och omega under antagandet att derivatan av omega är konstant över integrationsintervallet t0 till t. Vi definierar en 4x4-matris M(t) som uppfyller: Q = (0.5)(Q)(W) = (M(t)(Q) där M(t) i huvudsak skriver om quaternion multiplikation som en matris multiplikation. Lösningen på detta är: där Q t0 är den ursprungliga quaternion vid tiden t0 och: Positionsuppskattningen använder tre separata linjära Kalman filter, en vardera för X, Y och Z. Eftersom de är identiska till formen, tittar vi bara på Y-fallet. Detta avsnitt listar skillnaderna från orienteringsfallet: De tröghetsutgångar måste roteras in i Tracker koordinatsystemet, eftersom tröghetssensorpaketen lutas med avseende på Tracker utrymme. För att utföra dessa rotationer måste vi känna till orienteringen för varje förpackning på HMD. Även om det är möjligt att mekaniskt bygga ett fäste som håller varje förpackning i en angiven riktning, är det lättare att montera förpackningarna på några stela, men okända, riktningar, sedan mäta dem. Vi vill också mäta andra sensorparametrar, som fördomar och skalor. Autokalibrering avser matematiska metoder som bestämmer sådana konstanta parametrar genom att tillämpa geometriska begränsningar på insamlade data. En demonstration av detta mätte lokaliseringen av fyrarna i panelerna på vår optoelektroniska spårare [15]. Två sådana metoder som vi använder med våra tröghetssensorer beskrivs i bilaga C på cd-rom. De är bra på att bestämma orientering och fördomar, men inte vågen. Ur användarens perspektiv ändrar förutsägelsen dynamisk registrering från att "simma runt det verkliga objektet" till att "hålla sig nära". Utan förutsägelse, registreringsfel är tillräckligt stora för att belasta illusionen att den verkliga och virtuella samexisterar. Med förutsägelse, de verkliga och virtuella objekt hålla sig nära tillräckligt att användaren uppfattar dem att vara tillsammans. Även om förutsägelsen inte är perfekt, det bevisligen förbättrar den dynamiska registreringen. Prediktorn kördes på tre registrerade rörelsedatauppsättningar som anses vara representativa för denna registreringsuppgift. Under varje rörelsesekvens håller användaren hörnet av ramen synligt i sitt synfält. I Walkaround-datasetet går användaren långsamt runt hörnet av ramen. Rotationsdatasetet har användaren som gungar, pitchar och kretsar runt huvudet medan han står på plats. Swing Dataset kombinerar snabb översättning och rotationsrörelse. Vi jämförde vår tröghetsbaserade prediktor på dessa tre datauppsättningar mot att göra inga förutsägelser och mot en prediktor som inte använder tröghetssensorer. Att direkt jämföra vår prediktor med tidigare arbete är svårt eftersom vårt system är unikt. Istället skrev vi en Kalman-filterbaserad prediktor som är representativ för många tidigare verk som inte använder tröghetssensorer. Vi körde det på dataseten och höll alla andra variabler konstanta. Tre felmått utvärderar noggrannheten hos de förutsagda utgångarna jämfört med de faktiska mätningarna av spåraren. Angular fel beräknas i grader enligt följande: [qw]) Position fel är avståndet mellan de förutsagda och faktiska översättningar. Skärmfel kombinerar orienterings- och översättningsfel genom att mäta skillnaden, i pixlar, mellan 2D-projektionen av den verkliga ramen och 2D-punkten där de tre virtuella axlarna skär på en hypotetisk 512x512-skärm. Det vill säga, det mäter fel i termer av vad användaren ser inuti en HMD. De maximala och genomsnittliga felen sammanfattas i figur 6. I genomsnitt är vår tröghetsbaserade prediktor 5-10 gånger mer exakt än att inte göra någon förutsägelse och 2-3 gånger mer exakt än förutsägelse utan tröghetssensorer. Bilaga B på cd-rom-skivan innehåller ytterligare material som visar resultaten av förutsägelser. Beroende på utrymmet allokering på CD-ROM, kan dessa omfatta feldiagram, rörelsedatauppsättningar, och en kort QuickTime video. Figur 7 visar hur de genomsnittliga skärmbaserade felen för rotationskörningen ändras då förutsägelsens avstånd varierar från 25-200 ms. Återigen hjälper tröghetssensorer tydligt. Men vad denna graf inte visar är att på förutsägelse avstånd av ~100 ms eller mer, jitter i de förutsagda utgångar ofta når obehagliga nivåer. I praktiken är den enda lösningen att hålla systemet latens på tolerabla nivåer, under ~80 ms. Förutsägelser kan därför inte kompensera godtyckliga latensmängder; för att vara effektiva måste de kombineras med insatser som minimerar systemfördröjningen. Se bilaga D på cd-romskivan. Därför att man inte exakt kan förutsäga utan att veta hur långt man kan förutsäga, kräver vårt system noggranna klockor och kontroll över latens. Vår spårare och grafikmotor kör asynkront, vilket kräver en uppskattning av prediktionsavståndet vid varje iteration. Felaktig beräkning av förutsägelseavståndet med så lite som 10 ms leder till synliga registreringsfel. Klockorna i spårbrädan och Pxpl5 är bra att under en millisekund. Synkronisering sker genom ett meddelande som tar mindre än 1 ms för att göra en rundresa av alla processorer. Eftersom klockor som skiljer sig med en sekund var sjätte timme förändras med 8,3 ms var tredje minut, utförs skev hastighetskompensation och tillfälliga återsynkroniseringar. Kontroll av latens innebär att ta bort alla oförutsägbara förseningar, så vi har direkta kommunikationsvägar som inte delas med andra användare, och vi kör ett lowoverhead-operativsystem som heter VxWorks. Processer som körs på UNIX kan drabbas av obegränsade förseningar. Pauser på 60-200 ms är vanliga händelser på vår Sun4 värd. Därför undviker vi UNIX för alla tidskritiska uppgifter, direkt injicera data från trackern till Pxpl5 utan att gå igenom Sun4 värd. Även om dessa steg minskar flexibiliteten och gör det svårare att felsöka systemet, de behövs för att försäkra korrekt förutsägelse. Bilaga E på cd-rom-skivan visar exaktheten i vår prognostiserade avståndsuppskattning. Augmented Reality kräver högre noggrannhet från huvudspårare än Virtual Environment applikationer gör [3]. Den största svårigheten med att duplicera vår demonstration av statisk registrering är att skaffa en huvudspårare som man kan lita på på på långa sträckor. Trälådor är lätta att bygga, och kalibreringstekniker är enkla och tillämpliga på alla spårningssystem eller genomskinlig HMD. Men många kommersiellt tillgängliga spårare som ofta används för virtuella miljöer ger inte tillräcklig prestanda. I vårt laboratorium ger till exempel de allmänt använda Polhemus magnetiska spårarna förvrängda utgångar på långa avstånd på grund av metallen i miljön. En medarbetare som experimenterade med vår optoelektroniska tracker upptäckte en förvrängning som, när trackern "hatar" 360 grader om sitt ursprung, orsakar de rapporterade positionerna att spåra en ellips ungefär en tum bred. Eftersom denna snedvridning verkar vara systematisk kunde vi kompensera för den. Det faktum att denna förvrängning var omöjlig att upptäcka i de virtuella miljöapplikationer vi kör men var ganska märkbar i Augmented Reality tjänar bara till att understryka den senares behov av korrekta, långdistansspårare. Behovet av att exakt mäta tid och undvika oförutsägbara latenskällor har allvarliga konsekvenser för utformningen av effektiva Augmented Reality-system. Spårarmätningar måste tidsbestämmas, en funktion som inte tillhandahålls av de flesta kommersiella spårare. Nästan alla interaktiva grafikprogram i vårt laboratorium använder UNIX på grund av dess bekväma programmeringsmiljö. Vi bygger applikationer till önskad komplexitet, sedan extraherar vi så mycket hastighet som möjligt. Flygsimulatorer och några andra forskare [20] tar det motsatta tillvägagångssättet: ange en minimal standard för prestanda, sedan se hur mycket komplexitet kan stödjas. Eftersom exakta förutsägelser kräver garanterad prestanda, kan framtida Augmented Reality applikationer behöva ta detta senare tillvägagångssätt. Mycket arbete återstår för att ytterligare förbättra den statiska registreringen. Vi matchar bara ett virtuellt objekt med ett verkligt objekt, där det verkliga objektet är själva kalibreringsriggen. Eftersom vår optoelektroniska tracker förlorar noggrannhet när sensorerna inte är riktade mot takfyrarna, kan vi inte flytta HMD långt bort från träramen, inte heller kan vi luta HMD långt från horisontellt. Vårt system är monokulärt; medan vårt statiska registreringsförfarande skulle kunna tillämpas på båda ögonen, innebär stereoskärmar ytterligare frågor som konvergens som vi inte har tagit itu med. Vi har inte kompenserat för den optiska förvrängningen i den genomskinliga HMD. Eftersom vår HMD har smalt synfält, är denna distorsion liten och detekterbar endast nära kanterna på skärmarna. Vi kan eliminera detta fel genom att kartlägga förvrängningen, sedan förvränga de grafiska bilderna innan de visas [31]. Mer sofistikerade prediktionsmetoder kan ytterligare minska dynamiska registreringsfel. Adaptiva metoder som anpassar sig till varierande huvudrörelse förtjänar mer utforskning. Att använda en icke adaptiv prediktor är som att försöka tävla en bil med konstant hastighet; sakta ner på kurvorna och snabba upp på rak-aways kommer att förbättra din tid. Analysera huvudet rörelse för igenkännliga mönster eller hög nivå egenskaper kan underlätta förutsägelse. Andra forskare har börjat göra detta [32] och Fitts lag har visat sig gälla huvudrörelse [2] [17]. Vårt arbete har inte handlat om videose-through HMDs, där en videokamera ger en bild av den verkliga världen och grafiken är sammansatt med de digitaliserade bilderna av den verkliga världen. Med denna klass av genomskinlig HMD, kunde standard kamerakalibrering tekniker bestämma visningsparametrarna. Och eftersom datorn har digitaliserat bilder av vad användaren ser, kan det vara möjligt att använda bildbehandling eller datorseende tekniker för att upptäcka funktioner i dessa bilder och använda dem för att underlätta registrering. Nackdelen med denna teknik är att videokameran och digitalisering hårdvaran medför inneboende förseningar på användarens syn på den verkliga världen. Därför, även om grafiken är perfekt registrerade med de digitaliserade bilderna, återstår ett problem: latensen i videoströmmen kommer att göra att användaren uppfattar både de verkliga och virtuella objekten att försenas i tid. Även om detta kanske inte är besvärande för små förseningar, är det ett stort problem inom det relaterade området för telenärvarosystem och kanske inte är lätt att övervinna.
Azuma använde tröghetssensorer för att förutsäga framtida huvudposition i kombination med en optoelektrisk spårare REF.
Improving static and dynamic registration in an optical see-through HMD
{'venue': "SIGGRAPH '94", 'journal': None, 'mag_field_of_study': ['Computer Science']}