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
Le code est sur git https://redmine.telecom-bretagne.eu/projects/poppyimitateskinect
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 :
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 .
Nous utilisons le filtre Butterworth pour filtrer les quaternions.
Filtre passe-bas
Ordre : 5
fs : 30Hz
cutoff : 0.2
La structure de json fichie dans le dossier mouvement_poppy
{ "positions": { "<time1>": { "<moteur1>": [angle,0], "<moteur2>": [angle,0] }, "<time2>": { "<moteur1>": [angle,0], "<moteur2>": [angle,0] } } }
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)
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