Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
NAONECT
Contrôler un robo...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Objectifs (de manière gén...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Objectifs (de manière con...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Aldebaran NAO
Corps versi...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Microsoft Kinect V2
Une c...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Simulateur...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Contrôle d...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Modèle Cho...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Script Cho...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Contrôler NAO Script Pyt...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
SDK NAO
SDK Python fourn...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Driver/SDK Kinect V2
Pas...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Skeleton
Skeleton détecté...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Quaternion de rotation
ve...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Quaternion de rotation P...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Système d'axe de NAO
Idée...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Calcul d'angle
Exemple : ...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données vena...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données vena...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage des données vena...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Filtrage de l'ouverture d...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Que le haut du corps ?
Mo...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Travaux Futurs Contrôle ...
Introduction
Matériel et logiciels utilisés
Utilisation des données
Travaux futurs
Démonstration
Questions et Démo
Des que...
of 24

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

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
Published on: Mar 3, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - 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

Related Documents