maandag 28 september 2009

TUIO tracker implementaties

overzicht van de belangrijkste tracker implementaties gebruikmakend van TUIO en geschikt voor tabletops:
* Touchlib
* touché
* TISCH
* reacTIVision 1.4
* Community Core Vision (CCV, ook bekend als tbeta)
* Surface Tracker (website down?)
* BBTouch

In essentie doen deze libraries allemaal het volgende: Een camera bezorgt de tracker een videostream. Deze videostream wordt frame per frame doorzocht op blobs (bright luminescent objects) via bepaalde algoritmen. Wanneer zo'n blob gedetecteerd wordt, genereert de software TUIO-output met info over positie & rotatie (in het geval van objecten). Alle trackers, met uitzondering van TISCH, zijn op deze strategie gebaseerd. TISCH is gebaseerd op een 4-lagen structuur.
Waarin verschillen de trackers? Allereerst zullen waarschijnlijk de algoritmes om de blobs te detecteren verschillen, hoewel enkel papers te vinden zijn met de details over de reacTIVision-tracker. Verder ondersteunen niet alle trackers alle multitouch technologieën of types van camera's. Tenslotte bepaalt de gebruikte programmeertaal in welke mate de tracker draagbaar is over verschillende platformen. Een overzicht.
Touchlib & Community Core Vision werden beide ontwikkeld door NUI group, maar men raadt aan om met de laatstgenoemde library te werken omdat deze feitelijk de opvolger van touchlib is, meer multi-touch technologieën ondersteunt, meer mogelijkheden biedt, cross-platform zou moeten werken en gemakkelijker is in gebruik.
Touché ondersteunt ook de meeste optische multitouch technologieën, maar is geschreven in Cocoa en daardoor vooral gericht op MacOS-gebruikers.
De bekendste tracker, reacTIVision, heeft het nadeel dat het niet werkt voor een LLP-opstelling (laser light plane), de techniek die we gaan gebruiken.
BBTouch is opnieuw een vrij beperkte tracker omdat die enkel FTIR ondersteunt en geïmplementeerd werd in Cocoa.

zondag 27 september 2009

TUIO

TUIO is een protocol dat gebaseerd is op Open Sound Control (OSC) en definieert een communicatie-interface tussen de tabletopinterface en onderliggende applicatielaag. Bovendien maakt het ook communicatie mogelijk tussen totaal verschillende 'tangible user interfaces' (reacTable <--> tDesk). Het protocol laat toe informatie over positie & rotatie van objecten op het touchscreen uit te wisselen alsook positionering & beweging van vingers. TUIO werd oorspronkelijk ontwikkeld voor het reacTable project, maar wordt ondertussen al door een aantal andere projecten in het domein van multitouch interactie gebruikt. Momenteel zijn er implementaties beschikbaar voor C++, Java, C#, Processing, Pure Data, Max/MSP, Quartz Composer en Flash.
Wat is de meerwaarde van TUIO ten opzichte van OSC? OSC is een algemeen protocol dat de communicatie regelt tussen computers en multimedia-apparaten; algemeen in de zin dat het gebruikt kan worden in een zeer brede waaier van toepassingen. TUIO daarentegen spitst zich toe op de interactie tussen of met 'tangible surfaces' en definieert daarbij een aantal specifieke profielen (bv. voor een 2D of 3D interactief oppervlak).

Algemene werkwijze
tracker applicatie (ism computer vision) encodeert data (bv. coördinaat waar vinger het scherm raakt) volgens TUIO protocol --> client applicatie decodeert de info

Protocoldetails (v1.1, wordt binnenkort opgevolgd door de veel uitgebreidere v2.0)
-> 2 hoofdklassen van berichten: set & alive
set: wordt gebruikt om info over objecten door te sturen
alive: geeft de aanwezigheid van objecten aan
objecten worden geïdentificeerd adhv een sessionID
-> transport type: UDP --> pakketverlies mogelijk, maar wordt opgevangen door implementatie die redundante info meestuurt (in v2.0 gaan er ook alternatieven voor UDP bekeken worden)
-> elk bericht heeft een bepaald profiel dat het aantal parameters en type ervan definieert

vrijdag 25 september 2009

Verslag meeting 24/9

aanwezigen: Bram Vandeputte, Joris Klerkx, Jef Hermans
onderwerpen:
* planning: Er moet asap een planning, voorzien van milestones, opgesteld worden. Deze begint met een literatuurstudie en naarmate het jaar vordert, komen hier de iteraties van de ontwerpcyclus van een user interface nog bij.
* literatuurstudie: Best zoveel mogelijk lezen over recente onderzoeken en projecten in het domein: rapporteren en samenvatten op blog en eigen reflecties vermelden. Enkele pointers naar interessante projecten/libraries (Touche, Touchlib, TUIO, Reactable, ...) werden reeds bezorgd. Een verslag van de literatuurstudie moet eind oktober ingediend worden.
* Het vak 'Gebruikersinterfaces' wordt aangeraden om te volgen. Dit opnemen in het ISP ligt moeilijk want ik heb nu al 62 sp nog verplicht te volgen vakken en het vak wordt pas in het 2de semester gegeven. Er is geen echte cursus van, maar de slides zijn te vinden op slideshare van prof. Duval. De belangrijkste onderdelen van dit vak zijn de ontwerpcyclus van een user interface (Shneiderman) en de evaluatie ervan (Jakob Nielsen). Deze moeten asap doorgenomen worden, onder meer om in de eerste plaats een planning te kunnen opstellen.
* De tabletop wordt zelf gebouwd door Bram om niet gebonden te zijn aan een bepaalde technologie of programmeeromgeving (bv. .net bij Microsoft Surface). Voorlopig is de tabletop nog in aanbouw, maar dit hindert de thesis niet want tabletop kan geëmuleerd worden.
* In het vervolg zal er wekelijks even samengekomen worden (dit kan heel kort zijn), maar hiervoor moet er nog een moment afgesproken worden in samenspraak met Nik (best via mail).