Synchronisation Humain NAO : Différence entre versions

De Wiki d'activités IMA
 
(12 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/pimasc/include/video-HumainNao-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 
== Introduction ==
 
== Introduction ==
 +
 
Nous avons eu la chance de pouvoir réaliser notre projet de quatrième année sur le robot NAO. Il s'agit d'un robot humanoïde programmable. Ses usages potentiels sont très vastes, on peut l'utiliser par exemple comme robot de compagnie.
 
Nous avons eu la chance de pouvoir réaliser notre projet de quatrième année sur le robot NAO. Il s'agit d'un robot humanoïde programmable. Ses usages potentiels sont très vastes, on peut l'utiliser par exemple comme robot de compagnie.
 +
  
 
== Présentation du projet ==
 
== Présentation du projet ==
 
 
=== Encadrant ===
 
Rochdi Merzouki
 
  
 
=== Objectifs ===
 
=== Objectifs ===
 +
[[Image:Nao-_Aldebaran_.jpg|100px|thumb|upright|Le robot NAO]]
 
Une collaboration existe avec l’école des sciences de l'art de Cambrais afin d'accompagner des danseurs professionnels en mouvements par des robots NAO.
 
Une collaboration existe avec l’école des sciences de l'art de Cambrais afin d'accompagner des danseurs professionnels en mouvements par des robots NAO.
  
Ligne 15 : Ligne 17 :
  
 
=== Matériel à disposition ===
 
=== Matériel à disposition ===
 +
 
* un robot NAO
 
* un robot NAO
 
* logiciels nécessaires à la programmation du NAO (Choregraphe, python sdk, ...)
 
* logiciels nécessaires à la programmation du NAO (Choregraphe, python sdk, ...)
Ligne 20 : Ligne 23 :
 
* une wimotte
 
* une wimotte
 
* un récepteur Bluetooth
 
* un récepteur Bluetooth
 +
  
 
== Bilan des séances ==
 
== Bilan des séances ==
 
  
 
=== Séance 1 (4/2/2013) ===
 
=== Séance 1 (4/2/2013) ===
Ligne 31 : Ligne 34 :
  
 
- Prise en main du logiciel Chorégraphe.
 
- Prise en main du logiciel Chorégraphe.
 
  
 
=== Séance 2 (7/2/2013) ===
 
=== Séance 2 (7/2/2013) ===
Ligne 40 : Ligne 42 :
  
 
- Tests fonctionnels sur le NAO (position debout, marche, … ).
 
- Tests fonctionnels sur le NAO (position debout, marche, … ).
 
  
 
=== Séance 3 (11/2/2013) ===
 
=== Séance 3 (11/2/2013) ===
Ligne 53 : Ligne 54 :
  
 
- Contact de l'entreprise Interface-z, nous fournissant les capteurs et la carte d'acquisition.
 
- Contact de l'entreprise Interface-z, nous fournissant les capteurs et la carte d'acquisition.
 
  
 
=== Séance 4 (14/2/2013) ===
 
=== Séance 4 (14/2/2013) ===
  
 
- Recherche de capteurs pour commencer à tester la fluidité des transferts de données ordinateur -> NAO.
 
- Recherche de capteurs pour commencer à tester la fluidité des transferts de données ordinateur -> NAO.
 
  
 
=== Semaine 9 (25-29/2/2013) ===
 
=== Semaine 9 (25-29/2/2013) ===
Ligne 65 : Ligne 64 :
  
 
- Récupération des valeurs des capteurs de la wiimote (accéléromètres) en temps réel sur l'ordinateur.
 
- Récupération des valeurs des capteurs de la wiimote (accéléromètres) en temps réel sur l'ordinateur.
 
  
 
=== Semaine 10 (4-8/3/2013) ===
 
=== Semaine 10 (4-8/3/2013) ===
Ligne 72 : Ligne 70 :
  
 
- On utilise une socket python pour que l'ordinateur en tant que client du serveur NAO envoie les données des capteurs en continu au NAO.
 
- On utilise une socket python pour que l'ordinateur en tant que client du serveur NAO envoie les données des capteurs en continu au NAO.
 
  
 
=== Semaine 11 (11-15/3/2013) ===
 
=== Semaine 11 (11-15/3/2013) ===
Ligne 79 : Ligne 76 :
  
 
- Réalisation d'un programme permettant d'envoyer des nombres via le terminal pour commander angulairement un moteur du NAO et en particulier les moteur "HEADYAW" et "HEADPITCH" contrôlant l'articulation de la tête.
 
- Réalisation d'un programme permettant d'envoyer des nombres via le terminal pour commander angulairement un moteur du NAO et en particulier les moteur "HEADYAW" et "HEADPITCH" contrôlant l'articulation de la tête.
 
  
 
=== Semaine 12 et 13(18-29/3/2013) ===
 
=== Semaine 12 et 13(18-29/3/2013) ===
Ligne 86 : Ligne 82 :
  
 
- On a finalement décidé avec l'accord de M. Merzouki de passer sous linux pour faciliter les transferts des données de la wimote en Bluetooth.
 
- On a finalement décidé avec l'accord de M. Merzouki de passer sous linux pour faciliter les transferts des données de la wimote en Bluetooth.
 
  
 
=== Semaine 14(1-12/4/2013) ===
 
=== Semaine 14(1-12/4/2013) ===
Ligne 93 : Ligne 88 :
  
 
- Sous LINUX, nous avons installé la librairie du NAO (NAOqi) pour réutiliser le programme déjà fait pour le contrôle du NAO. Nous avons eu de nouveaux problèmes de librairies.
 
- Sous LINUX, nous avons installé la librairie du NAO (NAOqi) pour réutiliser le programme déjà fait pour le contrôle du NAO. Nous avons eu de nouveaux problèmes de librairies.
 
  
 
=== Fin du projet (15/4/2013 -> 3/5/2013) ===
 
=== Fin du projet (15/4/2013 -> 3/5/2013) ===
Ligne 104 : Ligne 98 :
  
 
- Le résultat respecte la notion de temps réel, mais on a constaté qu'il y a des perturbations à corriger.
 
- Le résultat respecte la notion de temps réel, mais on a constaté qu'il y a des perturbations à corriger.
 +
  
 
== Améliorations possibles ==
 
== Améliorations possibles ==
  
 
Notre solution n'est pas optimale après ces trois mois de travail. En effet il faudrait améliorer le filtrage des données pour éviter des perturbations dans la réponse. Il faudrait également contacter Aldebaran Robotics pour obtenir une librairie fonctionnant avec linux 64bits et avoir un matériel moins imposant que celui de la solution sur laquelle nous nous sommes finalement tournés.
 
Notre solution n'est pas optimale après ces trois mois de travail. En effet il faudrait améliorer le filtrage des données pour éviter des perturbations dans la réponse. Il faudrait également contacter Aldebaran Robotics pour obtenir une librairie fonctionnant avec linux 64bits et avoir un matériel moins imposant que celui de la solution sur laquelle nous nous sommes finalement tournés.
 +
  
 
== Conclusion ==
 
== Conclusion ==
  
 
En conclusion, nous avons réussi à obtenir une solution quasi fonctionnelle, malgré le temps réduit du à de mauvais choix en début de projet. Ce projet a été satisfaisant, en plus de l'apport personnel des découvertes du langage python et du robot NAO. Les nombreux problèmes que nous avons rencontré nous ont en outre fait progresser et nous ont demandé beaucoup de temps de travail et de recherches pour continuer de progresser et atteindre les objectifs.
 
En conclusion, nous avons réussi à obtenir une solution quasi fonctionnelle, malgré le temps réduit du à de mauvais choix en début de projet. Ce projet a été satisfaisant, en plus de l'apport personnel des découvertes du langage python et du robot NAO. Les nombreux problèmes que nous avons rencontré nous ont en outre fait progresser et nous ont demandé beaucoup de temps de travail et de recherches pour continuer de progresser et atteindre les objectifs.
 +
 +
== Rapport ==
 +
[[Média:rapport_synchronisation_nao.pdf]]

Version actuelle datée du 29 mai 2013 à 11:24


Introduction

Nous avons eu la chance de pouvoir réaliser notre projet de quatrième année sur le robot NAO. Il s'agit d'un robot humanoïde programmable. Ses usages potentiels sont très vastes, on peut l'utiliser par exemple comme robot de compagnie.


Présentation du projet

Objectifs

Le robot NAO

Une collaboration existe avec l’école des sciences de l'art de Cambrais afin d'accompagner des danseurs professionnels en mouvements par des robots NAO.

Notre projet consistait à reproduire en temps réel certains mouvements articulaires humains par le robot NAO, ainsi on a dû trouver des solutions techniques pour que le NAO imite instantanément les mouvements d'un danseur.

Matériel à disposition

  • un robot NAO
  • logiciels nécessaires à la programmation du NAO (Choregraphe, python sdk, ...)
  • une borne wifi
  • une wimotte
  • un récepteur Bluetooth


Bilan des séances

Séance 1 (4/2/2013)

- Compréhension des objectifs à atteindre

- Découverte des robots NAO.

- Prise en main du logiciel Chorégraphe.

Séance 2 (7/2/2013)

- Découverte des robots NAO.

- Prise en main du logiciel Chorégraphe.

- Tests fonctionnels sur le NAO (position debout, marche, … ).

Séance 3 (11/2/2013)

- Rencontre avec Emmanuelle Grangier, notre contact de l'école des sciences de l'art de Cambrais.

-> Choix de capteurs pour acquérir les mouvements d'un bras.

- Constat que chorégraphe n'est pas adapté au temps réel.

-> En conséquence, approfondissement de la programmation de NAO en Python.

- Contact de l'entreprise Interface-z, nous fournissant les capteurs et la carte d'acquisition.

Séance 4 (14/2/2013)

- Recherche de capteurs pour commencer à tester la fluidité des transferts de données ordinateur -> NAO.

Semaine 9 (25-29/2/2013)

- Récupération d'une wiimote.

- Récupération des valeurs des capteurs de la wiimote (accéléromètres) en temps réel sur l'ordinateur.

Semaine 10 (4-8/3/2013)

- Programmation d'un serveur en python.

- On utilise une socket python pour que l'ordinateur en tant que client du serveur NAO envoie les données des capteurs en continu au NAO.

Semaine 11 (11-15/3/2013)

- Constat qu'un serveur n'est pas nécéssaire, en effet on peut directement envoyer les données au NAO via la borne wifi (en connaissant son adresse IP) par un programme python.

- Réalisation d'un programme permettant d'envoyer des nombres via le terminal pour commander angulairement un moteur du NAO et en particulier les moteur "HEADYAW" et "HEADPITCH" contrôlant l'articulation de la tête.

Semaine 12 et 13(18-29/3/2013)

- Difficultés dans la recherche de librairies permettant d'exploiter la wiimote sous windows.

- On a finalement décidé avec l'accord de M. Merzouki de passer sous linux pour faciliter les transferts des données de la wimote en Bluetooth.

Semaine 14(1-12/4/2013)

- Réalisation d'un programme fonctionnant sous linux avec la librairie "CWIID" et permettant de récupérer les angles "pitch" et "roll".

- Sous LINUX, nous avons installé la librairie du NAO (NAOqi) pour réutiliser le programme déjà fait pour le contrôle du NAO. Nous avons eu de nouveaux problèmes de librairies.

Fin du projet (15/4/2013 -> 3/5/2013)

- En raison du manque de temps restant, nous avons décidé pour avoir une solution présentable d'utiliser deux ordinateurs communicant par socket python, l'un sous windows commandant le NAO comme nous l'avions déjà fait, l'autre sous linux récupérant les données wiimote.

- Nous avons obtenu des résultats médiocres car la wiimote envoie trop de données, et le Nao ne peut les traiter en temps réel.

- Pour limiter les traitements, nous avons mis en place un traitement des données par paliers de 20 degrés.

- Le résultat respecte la notion de temps réel, mais on a constaté qu'il y a des perturbations à corriger.


Améliorations possibles

Notre solution n'est pas optimale après ces trois mois de travail. En effet il faudrait améliorer le filtrage des données pour éviter des perturbations dans la réponse. Il faudrait également contacter Aldebaran Robotics pour obtenir une librairie fonctionnant avec linux 64bits et avoir un matériel moins imposant que celui de la solution sur laquelle nous nous sommes finalement tournés.


Conclusion

En conclusion, nous avons réussi à obtenir une solution quasi fonctionnelle, malgré le temps réduit du à de mauvais choix en début de projet. Ce projet a été satisfaisant, en plus de l'apport personnel des découvertes du langage python et du robot NAO. Les nombreux problèmes que nous avons rencontré nous ont en outre fait progresser et nous ont demandé beaucoup de temps de travail et de recherches pour continuer de progresser et atteindre les objectifs.

Rapport

Média:rapport_synchronisation_nao.pdf