{{tag>Poppy Project poppy-kine Kinect}} ====== Poppy-Kine : Stage d'été 2017 PoppyImitatesKinect ====== ===== Introduction ===== Les objectifs principaux est travail portera sur la conversion et l’imitation de mouvements humains capturés à l’aide d’une Kinect en mouvements robots joués par Poppy. \\ - Conversion de l’orientation et la position des jointures en angles moteur de Poppy \\ - Simulation sur // Vrep // ---- ===== Comment l'utiliser ===== - : Installation de // V-rep // - : Voir [[poppy-kine:poppy-kine-2015-s5|Poppy-Kine : S5 project 2015-2016]] - : Capture les données via Kinect en utilisant l'outil de Poppy-Kine-S5 project 2015-2016 - : faire la conversion - : Simulation sur // V-rep // ==== Première étape: obtenir les données de quaternion==== {{:tag:ic584403.png?200|}} * Connectez le Kinect * Capture les données via Kinect en utilisant l'outil de Poppy-Kine-S5 project 2015-2016 \\ Cliquez **save.bat** \\ Entrez le //nom d'exercice// dans le shell. \\ Une nouvelle fenêtre, avec la vidéo capturé par le Kinect caméra et le squelette de la personne. \\ Les mouvements sont séparés par des pressions sur // espace //. \\ \\ Par exemple: * //espace// : Commence la capture du premier mouvement, * Faire le mouvement... * //espace// : Arrête la capture du premier mouvement, * //espace// : Commence la capture du second mouvement, * etc Les mouvements sont sauvegardés dans **⁄exercices⁄/** dossier, .txt fichier. \\ x commence à zéro (Premier mouvement. \\ Pour finir de capturer les mouvements, fermez la fenêtre. * Enregistrez le fichier sur le dossier // mouvement_kinect // et le mettez json fichier. ==== Deuxième étape: obtenir la position en angles moteur et la simuler==== Le code est sur git https://redmine.telecom-bretagne.eu/projects/poppyimitateskinect - : ouvrir le // V-rep // - : lancer la prgrammation // Main.py // et entrer le // nom de fichier // de quaternion dans le terminal. Entrer // python Main.py nom_fichier // \\ Par exemple : \\ // python Main.py 20170825_0 // \\ \\ L'éntré : Le fichier de quaternion capturé par Kinect doit être enregistré dans le dossier // mouvement_kinect //. \\ Lorsque la programmation est lancé, nous obtenons deux fichiers json: \\ \\ Le dossier // mouvement_filtre // enregitre les données de quaternion filtrés par un filtre de Butterworth. \\ Le dossier // mouvement_poppy // enregitre les données de angle de moteur de Poppy. \\ __**NB : **__ * Lorsque la programe est lancé, la figure de la réponse du filtre et les figures des résultats sont affichées. * Il faut fermer les fenêtres de figure pour que la progrme avance. * La Simulation est dans le logiciel // V-rep //. ==== Fonction de Code ==== \\ // butterworth.py et filtre.py // est le filtre de butterworth. \\ Les fonctions de // Main.py // : \\ // creatPoppyData(ex) : // Conversion de quaternion à l'angle. // ex // est le nom d'exercice. \\ // runSimu(PoppyData) : // Exécuter la simulation sur V-rep. // PoppyData // est les données des angles qui sont enregistré sur le dossier // mouvement_poppy // . ---- ===== Comment avancer ===== {{:tag:conversion-quaternion-agnle.png?650|}} ==== filtrer les quaternion capturé par le Kinect ==== Nous utilisons le filtre // Butterworth // pour filtrer les quaternions. \\ // Filtre passe-bas \\ Ordre : 5 \\ fs : 30Hz \\ cutoff : 0.2 // \\ {{:tag:freq_reponse.png?500|}} ==== Conversion de quaternion à l'angle de moteur ==== La structure de json fichie dans le dossier // mouvement_poppy // { "positions": { "": { "": [angle,0], "": [angle,0] }, "": { "": [angle,0], "": [angle,0] } } } ==== filtrer les angles ==== \\ Parceque il y a les points discontinu sur les angles. Nous ajoutons un filtre pour assurer que les angles sont lissés. \\ Le filtre est la même que le dernier. C'est le résultat(angles filtrés) \\ {{:tag:angle_filtre.png?500|}} \\ ---- ===== Résultat et Amélioration ===== \\ {{:tag:kinect.png?600|}} \\ Le résultat est pas mal pour les postures humaines statiques. \\ Pour les postures humaines dynamique les angles obtenu ne sont par très précis. \\ Nous n'avons pas détecter la faisabilité de mouvment. Il y a les cas où le poppy ne peut pas faire le mouvment humaines. \\ De plus, c'est mieux d'ajouter la gestion de l'équilibre