Thesis

Thesis document klaar

Thesis boekjes

Na enkele spannende dagen bij de drukkerij is de thesis eindelijk klaar en ingeleverd.

Een digitale versie vind je hier: Download thesis PDF

Thesis

Maak altijd backups

De thesis deadline nadert en het thesis blog is een tijd niet meer geupdate.

Ik was van plan om hier van alle projecten een logboek bij te houden, net zoals ik met MediaDesktop en LightWrite heb gedaan. De kladversie van dit log, dat op mijn desktop werd bewaard, is echter spoorloos verdwenen. Dit wil zeggen dat ik de enkele weken aan log gegevens ben kwijtgespeeld.

De oorzaak van deze verdwijnen is het downloaden van een bestand naar de desktop waar al een bestand met dezelfde naam stond. Dit bestand stond echter open, waardoor er een zwart gat is ontstaan en alles van de desktop is verdwenen :/ (Ik werk in MacOSX Leopard btw). Ik heb alles geprobeerd (Data Rescue II, etc) om het bestand terug te vinden, maar helaas.

Buiten het logboek zijn er ook nog andere bestanden verdwenen zoals foto’s en documenten met feedback uit coachings (hopelijk klinkt dit nie als een “Mijn hond heeft mijn huiswerk opgegeten”-verhaal).

Het goede nieuws is dat het thesis document klaar is en binnengebracht bij de printer.

Thesis

Project “MediaDesktop”

Beschrijving

Een 3D-ruimte met ‘objecten’ die met behulp van de IR-handschoen gemanipuleerd kunnen worden (positie over de 3 assen, rotatie,…).

Doel

MediaDesktopOp de proef stellen van mijn 2-camera setup voor de afstand tot het scherm te berekenen en het testen van 3D finger tracking voor desktop/multimedia toepassingen.

Status op 23/04/08:
Bestuderen van de Papervision 3D engine voor Flash; bekijken en aanpassen van voorbeelden.
___________________

Status op 24/04/08:
Creatie van basis omgeving waarbinnen de manipuleerbare objecten gepresenteerd worden.

Bedenken van een manier waarop ik de afstand afgelegd door een cursor op het scherm kan omzetten naar een op het scherm even lang ogende afstand eender waar in de 3D wereld. (Als de cursor een object versleept, en de cursor beweegt 300 pixels naar onder terwijl het object steeds onder de cursor blijft, dan wil het niet zeggen dat het object ook simpelweg 300 punten naar onder moet bewegen. Deze afstand is afhankelijk van de afstand tussen het object en de camera).

Implementatie van effecten om diepte aan te geven (lichtheid en wazigheid).

Implementatie van basic IR-led functionaliteiten (voorlopig enkel X en Y as, 2D dus).
___________________

Status op 25/04/08:
Optimaliseren van de code, invoeren van mijn algoritme om met 2 IR-camera’s de afstand van een IR-punt tot het scherm te berekenen.

Constateren dat er een enorme prestatievermindering is. Het selectief uitschakelen van functionaliteiten lijkt de prestaties niet te verbeteren > frustratie!
___________________

Status op 26/04/08:
Proberen de prestatie van het programma te verbeteren:
Het probleem lijkt te liggen bij de update-frequentie van de cursor-movieclip. Ik had de positie van deze cursor, voordat het prestatie probleem zich voordeed, minder vaak laten updaten in een poging de applicatie nog lichter te maken. De grotere sprongen die de cursor-movieclip hierdoor maakt lijkt echter negatief te werken op de framerate.
Vaker positie updaten = betere prestatie? Raar maar waar.
___________________

Status op 27/04/08:
De prestaties zijn er enorm op vooruit gegaan! Het beeld schokt niet meer wanneer de cursor beweegt. Het regelmatiger updaten van de cursorpositie heeft geholpen.

Nu is er een ander prestatieprobleem: als de applicatie een tijdje draait vertraagt hij aanzienlijk; één of andere variabele die te groot wordt?

Update:
Blijkbaar werd er teveel naar het output venster getraced. Als ik het tracen afzet gaat het een stuk vlotter.
Nieuw probleem: plots gaat de applicatie weer zeer traag zodra de cursors bewegen. Oudere versies gaan plots ook trager, dus de fout ligt niet bij de code. Dit probleem lijkt zich niet voor te doen wanneer ik de applicatie als flash projector file publish.

Hoera voor logica!

Thesis

Project “LightWrite”

Beschrijving

LightWrite laat je toe om realtime ‘lichtbanen’ te tekenen in de lucht. Net zoals men bij fotografie een lange belichtingstijd combineert met lichtbewegingen om zo met ‘licht te schrijven’.
Op je scherm krijg je een beeld van jezelf te zien en de lichtbanen worden gevormd tussen de 2 infrarood-leds die één enkele Wiimote worden getracked.

Doel

LightWrite- Uittesten van Wiiflash voor Mac
- Positie van de IR-Leds en hun oriëntatie ten opzichte van elkaar in beeld brengen.

Status op 21/04/08:
Eerste versie werkt; er wordt een spoor van lijnen getekend tussen de IR-leds en dit wordt over het webcam beeld geplaatst.
___________________

Status op 22/04/08:
De simpele lijnen die tussen de IR leds worden getekend zijn vervangen door een volwaardig, gekleurd ‘spoor’ waarvan de breedte bepaald wordt door de afstand tussen de IR-bronnen.

Het éénkleurige spoor wordt een ‘realistischer’ lichtspoor door middel van gradiënten. De rotatie van die gradiënten wordt bepaald door de oriëntatie van de verbinding tussen de laatste positie van de IR-leds en hun vorige positie.
___________________

Status op 23/04/08:
Een “LightSabre” modus werd toegevoegd: als je de Wii sensorbar in je handen neemt zie je jezelf op het scherm met een Lightsabre die je bewegingen volgt. Geeks rejoice!
Tevens werd het lichtspoort realistischer gemaakt door flash bitmap filters > vervagen naar alpha=0 en wegblurren.

Voorlopig einde van LightWrite experiment.

Thesis

Wiiflash voor MacOS (deel 2)

‘k Heb die Wiiflash voor MacOS ‘ns onder de loep genomen. Hij crashed niet meer om de zoveel keer gelukkig (maar dit zal ook het geval zijn bij de nieuwere Windows versie).

Het connecteren van de Wiimotes met de computer is ook verbeterd, maar verloopt nog steeds niet heel vlot. Je moet Wiiflash vaak herhaaldelijk opnieuw opstarten vooraleer het werkt.

Thesis

Wiiflash voor MacOS

Yay, Wiiflash voor MacOs is uit! Nu moet’k niet meer naar Windows overschakelen om te werken.

http://lab.tojio.com/2008/04/14/open-source-wiiflash-04-server-written-in-java-for-mac-os-x/

Er is een nieuwe versie van Wiiflash uitgekomen die stabieler is en (op mijn aanvraag) ook 4 IR-bronnen kan tracken in plaats van 2.

bron: Wiiflash.org

Maar nog beter nieuws! (Voor mij alleszins)
Er is gelijktijdig ook een Mac versie uitgebracht:
Wiiflash voor MacOS

Aangezien ik sinds kort een Macbook heb (m’n Acer heeft het begeven) en ik steeds naar Windows moest overschakelen om met Wiiflash te werken, was dit een aangename verrassing.

Thesis

Insight VR’s headtracking project

Insight VR is een team dat experimenteerd met virtual reality, lasers, webcams, games, etc. Eén van hun meest recente projecten maakt gebruik van de Wiimote head tracking methode die Johnny Chung Lee heeft uitgevonden.

Hier is een video van dat project, “WiiMote Head Tracking for Killing Marshie in 3D”:

Meer informatie vind je hier:
http://insightvr.com/

(met dank aan Ward Lemmens voor de link!)

Thesis

Finger tracking met 2 camera’s

Wanneer je met 1 infraroodcamera infraroodbronnen gaat tracken, kun je hoogstens de bewegingen over 2 assen volgen. De camera ziet niet hoe ver de bronnen zich van de camera begeven dus kunnen ze ook de beweging over de diepte-as niet registreren. (Als je slechts door één oog kijkt heb je ook geen dieptezicht.)

Dit heeft als gevolg dat ik met één camera (Wiimote) mijn doel van ware 3D input niet kan bereiken. Ik kan hoogstens wat onderzoek doen rond gebaren herkenning (gesture recognition), maar dit is niet wat ik wil bereiken.

Mijn idee is dus om met 2 camera’s (Wiimotes) te werken. Met hulp van een beetje trigonometrie kan ik aan de hand van twee 2D beelden de afstand van de infraroodbronnen tot de camera’s (en het scherm) berekenen. Op deze manier kan ik redelijk nauwkeurig de locatie van de infraroodbronnen in een 3D ruimte bepalen.

Thesis

De rollen omgedraaid

Infrarood handschoen diagramNa enkele experimenten bleek al snel dat de bewegingssensoren (accelerometers) in de Wiimotes niet geschikt zijn voor precisiewerk. Trage bewegingen worden namelijk niet geregistreerd en bij snelle bewegingen ontstaat er een soort slinger effect dat ervoor zorgt dat de bewegingen van de gebruiker niet natuurgetrouw vertaald kunnen worden.

Een bewijs hiervan vind je in de spellen die voor de Nintendo Wii worden gemaakt; geen enkel spel slaagt er in om bewegingen van de gebruiker accuraat om te zetten naar het beeld, ook al beloven de ontwikkelaars dit in een vroeg stadium van het ontwikkelingsproces (bv. Red Steel).

Dit feit in combinatie met mijn eigen ondervindingen hebben me doen besluiten om het op een andere manier aan te pakken. Bijkomende inspiratie kwam er in de vorm van het “finger tracking” experiment van Johnny Chung Lee, waarbij hij de rollen ging omdraaien en de infrarood leds (die normaal in de sensorbar zitten) ter handen nam en de Wiimote als camera gebruikte.

Ik ga vanaf nu zo goed als niet meer verder werken met de accelerometers, maar ga een finger tracking systeem uitbouwen (ala Johnny Chung Lee’s) en kijken welke applicaties baat hebben bij deze input methode en wat de voordelen en nadelen zijn. (zie de afbeelding rechtsboven voor een diagram van de infraroof handschoen die ik ga bouwen)

Thesis

Thesis coaching

Gisteren (9 jan ‘08) had ik een coaching sessie met mijn 2 promotoren; Lievn Menschaert en Thomas Laureyssens.

Ik toonde hen de voortgang die ik geboekt heb sinds mijn vorige coaching sessie en over het algemeen was de commentaar positief.

Enkele tips die ze gaven:
- documenteer elke stap
- kijk eens naar het werk van Johannes Taelman van Dorkbot die ook gebruik maakt van bewegingssensoren
- experimenteer, begin met kleine spelletjes te maken en leer uit ervaring
- probeer niet de “concept testing” (zoals aangekondigd in de planning in het propositiedocument) er tussen te forceren als dit niet nodig is