Présentation par Anthony Rouneau (étudiant Master 1 Sciences Informatiques) sur son projet d'été 2015: comment contrôler un robot humanoide NAO à l'aide de l'interaction gestuelle, détecté par un Microsoft Kinect V2. Sous la direction de Tom Mens, Service de Génie Logiciel, Faculté des Sciences, Université de Mons (UMONS), Belgique
Empirically Analysing the Socio-Technical Health of Software Package Managers
NAONECT: Contrôler un robot humanoïde par des gestes en temps réel
1. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
NAONECT
Contrô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
2. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Objectifs (de manière générale)
Donner goût à la recherche scientique, 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
3. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Objectifs (de manière concrète)
Programmer un robot humanoide
(NAO) pour reproduire en temps
réel les gestes eectué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
4. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
5. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
6. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Simulateur Choregraphe
6 / 24 Rouneau Anthony NAONECT
7. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Contrôle des jointures
7 / 24 Rouneau Anthony NAONECT
8. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Modèle Choregraphe
8 / 24 Rouneau Anthony NAONECT
9. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Script Choregraphe
9 / 24 Rouneau Anthony NAONECT
10. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Script Python
10 / 24 Rouneau Anthony NAONECT
11. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
12. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Driver/SDK Kinect V2
Pas de driver open source stable pour le moment...
Wrapper Python du SDK ociel du Kinect V2.
PyKinect2 : mapping d'une partie du SDK 2.0 ociel.
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
13. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Skeleton
Skeleton détecté par Kinect V2.
13 / 24 Rouneau Anthony NAONECT
14. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
15. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Quaternion de rotation Problème
Maintenant voyons l'épaule de NAO par exemple :
15 / 24 Rouneau Anthony NAONECT
16. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
17. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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. = modiedJoint
Prendre le vecteur entre la jointure Right_Shoulder et
Spine_Shoulder. = joint8, 20
La base de comparaison (angle 0) sera le produit vectoriel
entre modiedJoint 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
18. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données venant de la Kinect
18 / 24 Rouneau Anthony NAONECT
19. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données venant de la Kinect
19 / 24 Rouneau Anthony NAONECT
20. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données venant de la Kinect
Filtre à prédiction de données : Holt-Winters
20 / 24 Rouneau Anthony NAONECT
21. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage de l'ouverture de la main
Théoriquement : 0 = Fermé, 1 = Ouvert
0, 0, 1, 0, 0, 1, 0 = Ferm´e
1, 1, 1, 0, 1, 1, 0 = Ouvert
21 / 24 Rouneau Anthony NAONECT
22. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Que le haut du corps ?
Module équilibre de NAO : OFFLINE...
→ Besoin d'un module d'équilibre ONLINE
22 / 24 Rouneau Anthony NAONECT
23. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Dé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
24. Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Questions et Démo
Des questions avant la démonstration?
24 / 24 Rouneau Anthony NAONECT