Differences
This shows you the differences between two versions of the page.
tag:stage_d_ete_2017_poppyimitateskinect [2017/08/30 08:57] s4poppy2017 |
tag:stage_d_ete_2017_poppyimitateskinect [2019/04/25 14:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{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 | ||
- | <hidden> | ||
- | \\ Click **save.bat** | ||
- | \\ Enter the //name of the exercise// as asked by the shell. | ||
- | \\ A new window should appear, with the video captured by the Kinect camera, and the skeleton of the person in front of it (The first time, it can take a while... be patient). | ||
- | \\ Movements are separated by //space key// pressures. | ||
- | \\ | ||
- | \\ For example: | ||
- | * //space key// : starts the capture of the first movement, | ||
- | * do the movement... | ||
- | * //space key// : stops the capture of the first movement, | ||
- | * //space key// : starts the capture of the second movement, | ||
- | * etc | ||
- | The movements are then saved in **⁄exercices⁄<name_of_the_exercise>/** folder, in <name_of_the_exercise_x>.txt file. | ||
- | \\ x starts from zero (first movement). | ||
- | \\ To finish capturing the movements, just close the window (click on the red cross..). | ||
- | </hidden> | ||
- | * Enregistrez le fichier sur le dossier // mouvement_kinect // | ||
- | ==== Deuxième étape: obtenir la position des jointures en angles moteur de Poppy==== | ||
- | 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 // | ||
- | <code> | ||
- | { | ||
- | "positions": { "<time1>": { "<moteur1>": [angle,0], "<moteur2>": [angle,0] }, "<time2>": { "<moteur1>": [angle,0], "<moteur2>": [angle,0] } } | ||
- | } | ||
- | </code> | ||
- | ==== filtrer les angles ==== | ||
- | La même que le filtre dernier. | ||
- | \\ {{:tag:angle_filtre.png?500|}} | ||
- | ---- | ||
- | ===== Amélioration ===== | ||
- | \\ 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 |