T7 Embedded Linux: Bert Tilmans, Joris van Rooij, Niels Keeman, Ruud Jansen,
Ruud van Heugten.
Aan dit document kunnen geen rechten ontleend worden. Vrijgegeven onder de CCPL
BY-SA 3.0 licentie.
Dit document beschrijft hoe in theorie een touch screen en/of hand gesture interface gemaakt kan worden voor een groot oppervlak, gebruik makende van bestaande technologie. Het is het resultaat van een korte bespreking tussen enkele van de projectleden en Ruud Ermers op 8 september 2008.
Deze technologie kan onder andere gebruikt worden voor nieuwe interface-oplossingen voor het aansturen van apparatuur, besturen van applicaties en zelfs interactieve multimediatoepassingen in het klaslokaal.
Het idee achter deze opstelling is dat een persoon voor het scherm bewegingen kan maken, en door middel van deze bewegingen kan interfacen met de applicatie die op het scherm wordt weergegeven. De simpelste manier om dit apparaat te omschrijven is door het een ”projectie-tv met bewegingssensor” te noemen.
Zoals in de volgende afbeelding is weergegeven bestaat het systeem uit enkele basiscomponenten.
Het scherm heeft in dit systeem twee functies, gescheiden door de lichtrichting. Het licht dat van de optics vandaan komt, verantwoordelijk voor de user interface, zal door het scherm diffuus moeten worden doorgelaten. Hoe effectiever de verspreiding van het licht is, hoe groter de kijkhoek wordt. Het licht dat op het scherm valt van buitenaf moet zo veel mogelijk onverhinderd doorgelaten moeten worden. Dit licht draagt immers de beelden met zich mee waaruit de positie van de gebruiker bepaald moet worden.
Er zijn meerdere mogelijkheden waarop dit opgelost kan worden. De meest voor de hand liggende oplossing is het zoeken naar, of het ontwikkelen van, een polymeer met deze eigenschappen. Een andere optie is gebruik maken van een liquid crystal polymeer. Deze stof kan in een dunne film aangebracht worden op een glasplaat waarna deze diffuus reflecterend wordt. Wanneer er een spanning overheen gezet wordt, wordt deze glasplaat doorzichtig. Als deze film wordt aangesloten op een blokspanning die in fase loopt met de verversingssnelheid van de MoCap camera, en de projector in tegenfase ververst, wordt hetzelfde effect bereikt.
Motion Capturing (MoCap) is een technologie die het mogelijk maakt om van bewegende beelden datastructen te maken die de beweging van een object in deze beelden vastleggen. MoCap wordt veel gebruikt in film- en animatiestudio’s, proefopstellingen (Euro NCAP e.d.) en bepaalde spelcomputers.
Door middel van een Digital Signal Processor wordt het MoCap beeld geanalyseerd. Er wordt gezocht naar herkenningspunten waaruit vervolgens coördinaten op het 2-dimensionaal vlak berekend kunnen worden. Aan de hand van deze gegevens kan er een Human Interface Device (HID) driver aangestuurd worden. Door gebruik te maken van de mogelijkheden die Linux biedt op dit gebied kan veel werk bespaard worden. De hele HID stack is immers al beschikbaar.
Er zal op een of andere manier beeld gegenereerd moeten worden op een vrij hoge resolutie, het gaat hier om vrij grote beeldoppervlakken. Een breed scala aan Grapics Processing Units (GPU’s) is beschikbaar voor het Linux-platform. Hoe krachtiger de GPU wordt, hoe fraaier de user interface kan worden. Door middel van een Direct Rendering Manager (DRM) kunnen veel grafische operaties door de GPU overgenomen worden. Met de laatste generaties aan GPU’s kunnen bijvoorbeeld bewegende beelden op 3D-oppervlakken weergegeven worden terwijl deze al bewegend over het scherm geschoven worden. Deze user interface technologieën zijn vrij te gebruiken vanuit het Linux-platform.
De taak van de Linux kernel in dit geheel is die van een algemeen platform. Door zo veel mogelijk gebruik te maken van bestaande standaard Linux-gerelateerde technologieën hoeft het welbekende wiel niet telkens opnieuw te worden uitgevonden. Aangezien dit een goed gestandardiseerd en geaccepteerd platform betreft kunnen externe softwareleveranciers gemakkelijk applicaties ontwikkelen voor deze opstelling.
De applicaties leveren de user interface voor deze opstelling. Het scherm verandert van een tekenbord naar een multimedia-manager door het opstarten van een andere applicatie.
Doordat dit systeem user input aanlevert als HID data, een standaard Linux-platform aanbiedt en een GPU aan boord heeft kan functionaliteit eenvoudig uitgebreid worden met nieuwe applicaties. Naast het zelf specifieke applicaties ontwikkelen voor dit platform, kan er ook gekozen worden voor het gebruiken van bestaande applicaties. Het Linux-platform kent een van de grootste collecties aan vrije software waaruit gekozen kan worden. De toepasbaarheid van deze opstelling wordt op deze manier significant breder.
De volgende afbeelding geeft een globaal beeld van de benodigde optica.
Een prismatisch polymeer zorgt voor de scheiding tussen inkomend en uitgaand licht. Het uitgaande licht mag alleen van de projector afkomstig zijn, terwijl het inkomende licht naar de MoCap camera gestuurd zal gaan worden.
In plaats van een prismatisch polymeer is het mogelijkerwijs goedkoper en/of eenvoudiger een set prisma’s te gebruiken.
Wellicht is het mogelijk MoCap te realiseren zonder kunstmatige referentiepunten (DSP2). Er moet gekeken worden of er één of meerdere punten worden getrackt. En als het er meerdere zijn, ondersteunt X11 wel meerdere mouse pointers?
Dit is een hele grote maar. Alletwee de oplossingen die aangedragen zijn in dit voorstel zijn misschien onuitvoerbaar. Totdat er zekerheid is over de beschikbaarheid van een oplossing is de uitvoerbaarheid van dit project onzeker.