Leap Motion
Les Composants du SDK
Les Classes
Les classes de l'API Leap Motion sont :
- Controller : La principale interface agissant avec le controller
- Listener : il permet la gestion des événements avec l’application
- Frame : il permet d’instancier les différents éléments de suivi
- Finger, Hand, Pointable, Tool : Ces classes gèrent les différents éléments suivi
- Gesture : elles comprennent les différentes gestures possibles, swipe, keytap, screentap…
- Config : Permet la configuration a l’acces des données leap
- Device : C’est la connexion physique
- FloatArray : c’est une passerelle permettant de transmettre les tableaux au système sans gérer d’allocation dynamique
- InteractionBox : c’est la région comprise par le champ de vision de l’appareil
- Matrix : Il permet les transformations matricielle
- Vector : Elle gère les vecteurs a 3 dimensions.
Les Frames
Les Frames ont un role de conteneur, il fournit des liste de données de suivi décrivant les mouvements effectué dans le champ de vision.
Il existe 2 méthodes de récupération des données :
- Polling: le plus simple, récupération de données avec un taux de rafraichissement standard. Si le mouvement est lent, l’image se double ou si le mouvement est trop rapide, il y a un saut dans les données. Pour éviter de retraiter des données, la Frame sauvegarde l’id de la derniere image traité.
- Callbacks: il passe par l’utilisation d’un Listener permettant l’obtention des données suivant la cadence de capture du controller. I Indépendant car ils sont multi-threadé. Les callbacks utilisent un système similaire au polling.
Les Données de Suivi
La Frame permet de récupéré les données de suivis.
Leap ne distingue pas la main droite, de la main gauche. De plus, il peut detecter plus de 2 mains. Cependant, il est conseillé de mettre au maximum 2 mains dans le champ de vision du controller. Pour ne pas surcharger le système, si la main est fermé, les données concernant les doigts ne seront pas analysés.
La main dispose des attibuts qui permettent de réaliser des mouvements et des interactions avec l’application.
- L’origine du repere de la main permettant son suivi.
- Sa vitesse en mm/sec, la normal a la main.
- Un vecteur pointant du centre de la paume vers les doigts.
- Centre de la sphère.
- Sphère Distance (variation avec la forme de la main ).
Les Pointables : Ils regroupent les doigts, les outils et les éléments orientables (plusieurs doigts) que l’ont peut être amené à utiliser. Ils disposent de nombreux attributs décrivant ces caractéristiques propres. Avec ces informations, on peut définir sa position au sein du repère du controller.
On peut accéder à ces éléments qu’au travers de l’objet mains ou de leurs ID. Si nous n’avons pas besoin de différencier l’outil du doigt, on utilise les pointables.
Le controller différencie les doigt des outils en fonction de leur longueur et de leur finesse. Il récupére les positions de l’objet pour pouvoir reconnaitre un mouvement et réalisée des actions au niveau de l’application.
Les caractéristiques de ces objets sont:
- Longueur - La longueur de la partie visible de l'objet , Largeur - La largeur moyenne de la partie visible de l'objet.
- Direction - un vecteur de direction de l' unité de pointage dans la même direction que l'objet (à savoir à partir de la base au sommet ).
- Position en mm
- Vitesse en mm/sec
Les Gestures
Leap Motion reconnait des schémas de mouvement prédéfinis, comme ils détectent les pointables, ils détectent les déplacements. Ils sont accessibles de la même façon que les autres données de suivis via le Frame.
Lorsque Leap Motion considére que l’un des mouvements effectués est une gestures, il l’ajoute dans la liste.Pour intégrer les gestures dans une application, il faudra les activer au niveau du Controller.
La reconnaissance du mouvement commence au moment ou l’utilisateur effectue un mouvement continu dans un sens et il se termine si l’utilisateur ralenti sa vitesse de déplacement ou si il change de direction. Les données sont mises a jour à partir du moment ou le mouvement a commencé.
Leap peut reconnaitre un mouvement de balayage a l’aide de la classe SwipeGesture.
Leap peut reconnaitre un mouvement circulaire de l’index a l’aide de la classe CircleGesture.
Leap Motion reconnait 2 types de toucher:
Les Key Taps : qui est un mouvement vers le bas.Ce mouvement est similaire à une pression sur un clavier d’ordinateur,il est gére par la classe KeyTapGesture.
Les Screen Taps : qui est un mouvement vers l’écran.Ce mouvement est similaire à une pression tactile sur l’écran,il est gére par la classe ScreenTapGesture.