naonect: contrôler un robot humanoïde par des gestes en temps réel

24

Upload: tom-mens

Post on 14-Apr-2017

415 views

Category:

Technology


3 download

TRANSCRIPT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

NAONECTContrôler un robot humanoïde par des gestes en temps réel

Rouneau Anthony

sous la direction de Tom Mens

1 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Objectifs (de manière générale)

Donner goût à la recherche scienti�que, approcher

l'éventualité d'une thèse de doctorat.

Se familiariser avec les domaines de recherche de la robotique

et l'interaction homme-machine.

2 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Objectifs (de manière concrète)

Programmer un robot humanoide

(NAO) pour reproduire en temps

réel les gestes e�ectuées par un

humain.

Les gestes seront détectées et

analysées à l'aide d'une camera 3D

(Kinect)

3 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Aldebaran NAO

Corps version H25, tête version V5.

c©Aldebaran

ATOM Z530 1.6 GHz

CPU, 1GB Ram, 2Gb

mémoire �ash.

25 degrés de liberté

Mains préhensiles, tête

amovible.

2 caméras, 2 sonars,

capteurs tactiles,

2 bumpers, 2 micros,

2 haut-parleurs, ...

4 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Microsoft Kinect V2

Une camera couleur en Full-HD a 30FPS

Une caméra de profondeur en 512 x 424 à 30FPS.

5 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Contrôler NAO � Simulateur Choregraphe

6 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Contrôler NAO � Contrôle des jointures

7 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Contrôler NAO � Modèle Choregraphe

8 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Contrôler NAO � Script Choregraphe

9 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Contrôler NAO � Script Python

10 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

SDK � NAO

SDK Python fournit par Aldebaran.

Préféré au SDK C++ par connaissance du langage.

NAOqi 2.1 for Python 2.7

11 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Driver/SDK � Kinect V2

Pas de driver open source stable pour le moment...

Wrapper Python du SDK o�ciel du Kinect V2.

PyKinect2 : mapping d'une partie du SDK 2.0 o�ciel.

C++ =⇒ Python.

Quelques limitations : ne pas pouvoir suivre les mouvements de la

tête, alors que le SDK C++ le permet.

12 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Skeleton

Skeleton détecté par Kinect V2.

13 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Quaternion de rotation

vecteurs 4D de rotation :

(a, b, c , d)→ a + bi + cj + dk

Axes de rotation pour jointure humaine :

14 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Quaternion de rotation � Problème

Maintenant voyons l'épaule de NAO par exemple :

15 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Système d'axe de NAO

Idée : partir du système d'axes de Kinect vers un nouveau.

=> Multiplication par une matrice de transformation A

16 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Calcul d'angle

Exemple : Pitch de l'épaule droite

Transformer toutes les coordonnées par la matrice A.

Translater la jointure "Spine_Mid" pour qu'elle se situe en

dessous de l'épaule. => modi�edJoint

Prendre le vecteur entre la jointure "Right_Shoulder" et

"Spine_Shoulder". => joint8, 20

La base de comparaison (angle 0) sera le produit vectoriel

entre modi�edJoint et joint8, 20. => basis

On abandonne la composante "x" dans nos vecteurs, et notre

angle est le cos−1 du produit scalaire du vecteur épaule-coude

et de basis.

(Tous les vecteurs sont normalisés à chaque étape)

17 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Filtrage des données venant de la Kinect

18 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Filtrage des données venant de la Kinect

19 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Filtrage des données venant de la Kinect

Filtre à prédiction de données : Holt-Winters

20 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Filtrage de l'ouverture de la main

Théoriquement : 0 = Fermé, 1 = Ouvert

〈0, 0, 1, 0, 0, 1, 0〉 = Ferme

〈1, 1, 1, 0, 1, 1, 0〉 = Ouvert

21 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Que le haut du corps ?

Module équilibre de NAO : OFFLINE...

→ Besoin d'un module d'équilibre ONLINE

22 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Travaux Futurs � Contrôle total

Améliorer la précision de l'orientation de la main

Contrôler le clignement des yeux

Contrôler par la voix

Contrôler l'orientation du regard

...

23 / 24 Rouneau Anthony NAONECT

IntroductionMatériel et logiciels utilisés

Utilisation des donnéesTravaux futursDémonstration

Questions et Démo

Des questions avant la démonstration ?

24 / 24 Rouneau Anthony NAONECT