NAONECT: Contrôler un robot humanoïde par des gestes en temps réel
-
Upload
tom-mens -
Category
Technology
-
view
415 -
download
3
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