Master thesis

News

26 Jan Foto's finale opstelling

2009-01-26 Jonathan

Ondertussen is mijn thesis bijna gedrukt en helemaal afgeraakt. Dit zijn nog enkele foto's van de finale opstelling.

Je kunt goed zien dat het beeld altijd overeenkomt met de positie waar geprojecteerd wordt. Alle foto's hieronder zijn genomen zonder de projector of spiegel handmatig te verdraaien. De calibratie is nog niet 100%, maar uiteindelijk ben ik daar maar een kleine namiddag mee bezig geweest.

-> Bekijk een filmpje van de projectie in actie (mpeg2, avi container)

Lees verder om de rest van de foto's en een elektrisch schema te zien.

Continue...

14 Dec Recursive rendering and LCD output

2008-12-14 Jonathan

In deze post beschrijf ik twee zaken.

Ten eerste heb ik een LCD schermpje gemaakt dat de huidige pan- en tilthoek van een bepaalde projector toont. Hiermee toon ik aan dat de output volledig geabstraheerd is. De microprocessor die dit schermpje bestuurt zou bijvoorbeeld net zo goed een servo motor kunnen besturen.

LCD display toont Pan en Tilt

Ten tweede heb ik vandaag de beeld-output van de renderer ook een klein beetje geabstraheerd. De renderer is nu zelf een UserControl. Applicaties die binnen de ED draaien, kunnen nu voor een projector uit het model een instantie van de renderer aanvragen. In de catergorie "because it can" heb ik dan een mini-applicatie gemaakt die die renderer terug aan het systeem aanbiedt als 'Window'. Hiermee verkrijg je een leuke recursive rendering zoals de mensen van QT in mijn vorige post demonstreerden. Als ik binnenkort mijn render engine uitbreid met de manipulatietools van de 3dtools bibliotheek van Codeplex, dan gaat het zelfs mogelijk zijn om deze geneste render engine te manipuleren met de muis.

Renderen van de ene projector binnen de andere
Geneste rendering

Renderen van een projector binnen zichzelf
Geneste rendering

Continue...

05 Dec Widgets enter the third dimension: WolfenQt

2008-12-05 Jonathan

An alternative approach to .NET WPF what I'm using now is Qt, they have a really nice demo of rendering widgets in 3d

Continue...

18 Nov Video brush

2008-11-18 Jonathan

Met een MediaElement control in WPF kan je video embedden in een WPF window. Volgende code gebruik ik om een Video applicatie te maken.

<UserControl x:Class="EverywhereExampleApplications.VideoWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="600" Width="800">
    <!-- This requires at least Windows Media Player 10 -->
    <MediaElement ScrubbingEnabled="True" LoadedBehavior="Play" x:Name="_media" />
</UserControl>

Doordat de render engine een VisualBrush gebruikt waar deze UserControl aan wordt gekoppeld, wordt de video op de muur geprojecteerd.

Hier wordt "Astérix et les Viking" in high definition (720p) gespeeld, zonder merkbare vertraging in het beeld.

Continue...

17 Nov Byebye Windows Forms

2008-11-17 Jonathan

Enkele dagen terug had ik besloten om Managed DirectX in te ruilen voor WPF. Nu kan ik vertellen dat alle functionaliteit die ik eerst al in de engine had, geport is naar WPF. Ook een testapplicatie voor de ED werkt hier al in.

De interface voor applicaties is ook lichtjes aangepast. Applicates zijn nu geen Windows Forms meer, maar wel WPF UserControls. Dit heeft als grote voordeel dat elke applicatie over 3d versnelling beschikt voor zijn rendering. Om een voorbeeld te geven: nu kan ik een video speler maken die op een muur in de ED draait, door een WPF usercontrol aan te maken en deze te vullen met behulp van een VideoBrush.

De komende dagen zal ik meer resultaten laten zien van de mogelijkheden van deze nieuwe engine. Maar eerst moet de 'Pong' kloon en enkele utilities nog geport worden.

Lees verder voor een grotere screenshot

Continue...

15 Nov WPF

2008-11-15 Jonathan

Bij het testen van de huidige implementatie op verschillende computers bleek dat de everywhere display lang niet overal evengoed werkte. Een computer gaf zelfs een totaal onbegrijpbare abstracte vorm. Terwijl ik op zoek was naar de reden hiervoor ontdekte ik dat Managed DirectX eigenlijk al verouderd is, en niet meer onderhouden wordt. Het alternatief is nu Windows Presentation Foundation (wat intern eigenlijk ook een laag bovenop DirectX vormt.)

Ik heb dus beslist om de rendering engine te herschrijven en WPF in plaats van Managed DirectX te gebruiken. WPF werkt blijkbaar zelfs erg goed voor ons doel. Je kan elk Visual object als Brush gebruiken, zo is het mij gelukt om een tabblad als brush te gebruiken voor een 3d vlak. Hoewel lang niet alle low-level details van DirectX verborgen blijven, handelt WPF bijna alle details zelf af zodat het programmeren ook aangenamer blijft en de kans groter is dat het in een willekeurige opstelling werkt.

Lees verder voor de bron code achter dit tabblad.

Continue...

10 Nov Pong

2008-11-10 Jonathan

Vandaag heb ik nog wat vooruitgang gemaakt.

Ten eerste kan een venster de focus vragen. Dit betekent dat alle beschikbare projectors naar de lokatie van dat venster gericht worden. Op dit te demonstreren heb ik een applicatie gemaakt die over alle muren in de ruimte kan bewegen, en de projector volgt altijd deze beweging.

Mijn eerste 'nuttige' toepassing is ook klaar. Het is het spel Pong. De huidige configuratie maakt het mogelijk dat twee toetsenborden (lokaal of op een andere pc) verbonden worden via mijn TCP remotekeyboard client, en zo de de twee balkjes van de spelers kunnen besturen. Het balletje gaat net zoals bij het echte spel op en neer, en wanneer een speler er niet in slaagt om de bal te vangen, dan zal de bal via de aangrenzende muur verder vliegen. Op de linkermuur wordt de huidige score getoond.

Lees verder om een grotere screenshot te zien.

Continue...

20 Oct Rendering Windows in 3d space

2008-10-20 Jonathan

Het is gelukt om een standaard .NET venster in de 3d ruimte van de everywhere display projectie te renderen.

Continue...

18 Oct Everywhere Display Software status

2008-10-18 Jonathan

De laatste dagen ben ik bezig geweest met het bruikbaar maken van een rendering engine om de projectors te besturen en een goede abstractielaag voor de applicaties die de projectie moeten kunnen gebruiken.

Lees verder om de uitwerking te zien.

Continue...

10 Oct DML-1200 en Ellipscan

2008-10-10 Jonathan

Barco maakt een stuurbare projector welke ideaal zou zijn voor onze opstelling, alleen kost die een beetje te veel. (Foto na de break.)

Continue...

09 Oct Terug in actie

2008-10-09 Jonathan

Na een lange grote vakantie begin ik nu terug aan mijn thesis. Ik ben net terug begonnen met de implementatie.

Continue...

27 Dec Ok, laten we even de lengte van die draden berekenen

2007-12-27 Jonathan

Als we verder gaan met de uitvoering van mijn idee van gisteren zullen we de lengte van elke draad moeten berekenen aan de hand van een gegeven pan en tilt hoek.

Continue...

26 Dec Custom hardware (de doe het zelf methode)

2007-12-26 Jonathan

Laat me eerst even uitleggen hoe ik nu denk zelf een spiegel te laten kunnen draaien. We hangen een spiegel op aan drie draadjes welke in een gelijkzijdige driehoek bevestigd zijn aan de achterkant van de spiegel. Het spiegeloppervlak wijst naar onder. Door de lengte van de draden te wijzigen kunnen we dan de spiegel een bepaalde hoek laten aannemen.
Deze drie draden worden elk verbonden met een soort cylinder. Door die cylinder rond te draaien zullen dan de touwen op- of afrollen. Dat ronddraaien gebeurt door een servo motor (geen stappenmotor). Servomotors kunnen erg nauwkeurig gepositioneerd worden (En kunnen sterk en snel zijn).

Continue...

22 Dec Op zoek naar hardware (3)

2007-12-22 Jonathan

Met dank aan Dominique heb ik nu informatie gekregen over de pan/tilt sturing welke in bewakingscamera's wordt gebruikt.

Volgens de website is de draaiingssnelheid eerder klein.

Horizontal fixed speed 6 degrees/s, vertical fixed speed 3 degrees/s

Mogelijk zijn er ergens betere camera mounts beschikbaar.

het merendeel van deze motoren zou aanstuurbaar zijn met behulp van het Telco protocol (wat vrij te gebruiken zou zijn), dit protocol werkt via een seriele verbinding (RS 485).

Pan/tilt motor voor binnencamera - 24V AC

Continue...

15 Dec Op zoek naar hardware (2)

2007-12-15 Jonathan

Enkele dagen terug ben ik ook nog eens in een sound en light winken in Hasselt geweest (in de straat van de provinciale bibliotheek).

Hier kreeg ik het volgende advies:

Continue...

11 Dec Op zoek naar hardware

2007-12-11 Jonathan

Na mijn laatste afspraak met de begeleiding ben ik op zoek gegaan naar geschikte hardware. Als eerste heb ik contact opgenomen met Videocenter.be. Zij raadden me aan om "R&D international in Landen" te contacteren. Rndinternational.com antwoordt met de volgende e-mail:

Continue...

24 Nov Self correcting projector

2007-11-24 Jonathan

Over de paper: A self correcting Projector, Ramesh Raskar en Paul Beardsley

Hierin wordt uitgelegd hoe een projectie schuine softwarematig gecorrigeerd kan worden om toch een rechthoekig beeld te projecteren.

Continue...

22 Nov Nieuwe papers

2007-11-22 Jonathan

Gisteren heb ik een kopie ontvangen van de paper Towards Ambient Projection for Intelligent Environments. Deze was interessant, maar bevatte minder technische details dan ik had gehoopt. Er wordt wel verwezen naar andere nuttige papers.

Continue...

27 Oct Enkele ideeen

2007-10-27 Jonathan

Door gebrek aan tijd heb ik nog niet veel kunnen werken aan de thesis. Wel heb ik hier regelmatig aan gedacht en enkele van de ideeen welke ik nu heb schrijf ik hier even neer.

Continue...

04 Oct Een gerichte projectie

2007-10-04 Jonathan

De projectierichting van een baemer kan op ruwweg twee manieren gemanipuleerd worden:

  1. door de projector zelf te laten bewegen, of
  2. door de projectiestraal te manipuleren.

In het EDM zijn reeds experimenten uitgevoerd waarbij de projector door middel van een motor kan laten rondgedraaid worden. Het gewicht van de baemer vormt hier echter een bottleneck waardoor het ronddraaien niet erg snel en nauwkeurig kan gebeuren.

Continue...

19 Feb Schets

2007-02-19 Jonathan

Dit is een eenvoudige schets van de opstelling. De drie wielen in het bovenste gedeelte draaien in het horizontale vlak en zijn gemonteerd op de servo-motors. Afhankelijk van de draaihoek zal hierdoor de lengte van de draden verschillen.

Continue...

17 Feb Nog een paper

2007-02-17 Jonathan

The Dancing Marionette - An Interdisciplinary Capstone Design Experience for Engineering Technology and Computer Science Students.

Verder ben ik begonnen aan een inhoudsopgave. Hier moet echter nog veel aan gebeuren. Ook zou ik nog een paar schetsen on-line plaatsen, dat is voor volgende dagen.

Continue...

11 Feb Eerste test met servo's

2007-02-11 Jonathan

Vandaag heb ik een test gedaan met de Phidgets servo controller. Alles is zeer eenvoudig om te gebruken langs de software zijde. Hieronder een stuk van mijn code:

Continue...