Skip to content

Instantly share code, notes, and snippets.

@FerryT
Last active September 28, 2016 13:22
Show Gist options
  • Save FerryT/21f3e84d6f85834adb895b2f68db71e5 to your computer and use it in GitHub Desktop.
Save FerryT/21f3e84d6f85834adb895b2f68db71e5 to your computer and use it in GitHub Desktop.

#Notes Leap Motion is ontworpen om handen te tracken. Het gebruikt 3 infrarood LED's en twee monochrome infrarood camera's. De hand/arm informatie word aan de hand van verschillen in contrast in de twee camera beelden real time berekend. Ze claimen 0.7mm precisie te hebben maar dat zal wel onder de meest ideale omstandigheden zijn. De Leap Motion is ontworpen om vlak op een tafel te leggen waarbij het werkbare gebied een 3 dimensionaal rechthoekig gebied is boven de leap. Waarschijnlijk werkt het ook met andere oriëntaties zolang de handen zich maar in het gebied bevinden.

Ik heb de development kit (SDK) bekeken van de leap en daarin zit de anatomie vanaf de arm tot de hand. Naast dat kunnen ook de rauwe beelden van de camera's word opgevraagd. Er zit niet specifiek support in voor iets anders dan handen en dit zou je dan enkel aan de hand van de rauwe beelden moeten uitrekenen zover ik kan zien. De leap heeft ook last van storing als andere voorwerpen gebruikt worden; dit komt door occlusion maar een groter probleem is het gebrek aan contrast. Je zou voorwerpen moeten hebben die een duidelijk contrast hebben met handen gezien door een infrarood camera; eventueel afplakken. Het statische object waarmee we gaan testen tracken met de Leap word dus een uitdaging. Als we markers gebruiken moeten die dus:

  1. gezien kunnen worden door de infrarood camera
  2. niet storen met de handen in het beeld
  3. niet occluded zijn.

Het derde punt zou kunnen door het voorwerp groot genoeg te maken en de markers op de hoeken aan te brengen. Maar misschien is het gebruik van markers helemaal geen goed idee en zouden we iets anders (bv edge detection) moeten gebruiken.

Een andere optie is de leap niet te gebruiken voor het tracken van het voorwerp maar enkel voor de handen. We kunnen dan een tweede camera gebruiken om het voorwerp te tracken met tracking software. Als we augmented reality gebruiken hebben we al toegang tot deze camera en moeten we de interface projecteren op dit voorwerp softwarematig. Het probleem is vervolgens om de gegevens van de handen en het voorwerp in dezelfde ruimte te krijgen zodat we kunnen zien of het voorwerp word aangeraakt of niet. Het kan eventueel worden gesynchroniseerd door middel van markers.

Zie ook:

#Het technische verhaal In principe zijn er drie coördinatensystemen waarmee we te maken krijgen:

  1. De handen zoals geregistreerd door Leap Motion
  2. Het voorwerp (NB: zowel geregistreerd door leap of iets anders, het vraagt om extra processing)
  3. De interface, strikt virtueel

Deze drie coördinaten systemen moeten consistent zijn (niet teveel noise etc.) en omgezet worden in een gezamenlijk coördinatensysteem (gekalibreerd worden). Aan de hand daarvan moet:

  1. Het beeld wat de gebruiker te zien krijgt gerenderd worden (de interface, evt. token voor de handen in het geval geen AR)
  2. Gekeken worden of de interface bediend word en zo ja waar.

Als we de interface makkelijk houden (een 2d interface geprojecteerd in de ruimte) dan hebben we verder geen featurerijke engine nodig. Het verenigen van de coördinatensystemen en bediening van de interface is lineaire algebra en vraagt ook niet om uitgebreide libraries: makkelijk te doen in Python of andere programmeertalen. Het kalibreren van dit alles vraagt wel een hoop tijd... Het tracken van een voorwerp is minder makkelijk: hier moeten we wel libraries voor gebruiken denk ik. We moeten dan eerst weten welke methode het beste werkt: vraagt om wat experimenten vooraf wellicht. Ik hoop dat het met enkel de Leap kan omdat we het dan maar 1 keer hoeven te kalibreren omdat we dan dezelfde camera's gebruiken. Daar gaat dan misschien wat knutselwerk aan vooraf met karton en tape etc. zodat de camera's het zien. :P Een goedkope vorm van AR is de camera beelden van de Leap gebruiken maar die zijn monochroom en hebben een behoorlijke fisheye dus zijn niet echt geweldig.

#Het experiment De taak die onze proefpersonen moeten uitvoeren moet simpel zijn. Het indrukken van een knop bv. We kunnen dan die formule gebruiken (waarvan ik de naam niet meer weet en ook niet kan opzoeken omdat de slides nog niet online staan) waarbij de duur, afstand en de groote van het gebied waarmee interacted word factoren zijn. Just for fun zat ik aan picross ( https://nl.wikipedia.org/wiki/Nonogram ) te denken, 4x4 ofzo; maar ik weet niet of dat de meest ideale manier van testen is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment