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

24

Transcript of NAONECT: Contrôler un robot humanoïde par des gestes en temps réel

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