Robots humanoïdes 2013 groupe I : Différence entre versions
(→Présentation du projet :) |
(→Présentation du projet :) |
||
Ligne 3 : | Ligne 3 : | ||
[[Image:NAO.png|upright |thumb|alt = NAO|droite|NAO]]<br> | [[Image:NAO.png|upright |thumb|alt = NAO|droite|NAO]]<br> | ||
L’objectif de ce projet est de faire coopérer deux NAO afin qu’ils réalisent de façon synchrone une action. On souhaite leur faire réaliser une action qu'il ne pourrait pas faire seul (objet trop grand ou trop lourd). Les NAO ne pouvant pas soulever beaucoup de poids, nous sommes partis sur l'idée d'une boite en carton relativement grande (de la taille d'un NAO).Pour cela nous allons écrire un programme avec le logiciel Chorégraphe, qui permettra aux deux NAO de repérer la boite puis de ce déplacer vers celle-ci. Ils se positionneront de chaque coté. Une fois positionner et synchroniser (par l'intermédiaire du réseau), il soulèveront la boite et la déplaceront. | L’objectif de ce projet est de faire coopérer deux NAO afin qu’ils réalisent de façon synchrone une action. On souhaite leur faire réaliser une action qu'il ne pourrait pas faire seul (objet trop grand ou trop lourd). Les NAO ne pouvant pas soulever beaucoup de poids, nous sommes partis sur l'idée d'une boite en carton relativement grande (de la taille d'un NAO).Pour cela nous allons écrire un programme avec le logiciel Chorégraphe, qui permettra aux deux NAO de repérer la boite puis de ce déplacer vers celle-ci. Ils se positionneront de chaque coté. Une fois positionner et synchroniser (par l'intermédiaire du réseau), il soulèveront la boite et la déplaceront. | ||
+ | <br><br><br><br><br><br><br><br> | ||
=='''<span style="color:blue">Cahier des charges :</span>'''== | =='''<span style="color:blue">Cahier des charges :</span>'''== |
Version du 2 avril 2014 à 19:23
Présentation du projet :
L’objectif de ce projet est de faire coopérer deux NAO afin qu’ils réalisent de façon synchrone une action. On souhaite leur faire réaliser une action qu'il ne pourrait pas faire seul (objet trop grand ou trop lourd). Les NAO ne pouvant pas soulever beaucoup de poids, nous sommes partis sur l'idée d'une boite en carton relativement grande (de la taille d'un NAO).Pour cela nous allons écrire un programme avec le logiciel Chorégraphe, qui permettra aux deux NAO de repérer la boite puis de ce déplacer vers celle-ci. Ils se positionneront de chaque coté. Une fois positionner et synchroniser (par l'intermédiaire du réseau), il soulèveront la boite et la déplaceront.
Cahier des charges :
Lors de ce projet, la programmation des NAO se ferra à l'aide du logiciel Chorégraphe. Ce logiciel est développé par Aldébaran.
Il comprend deux types de programmations. De la programmation graphique et de la programmation en python.
Nous allons devoir employer ces deux types de programmation afin de développer les fonction suivantes.
- Repérer un objet dans une pièce
- Déplacer le l'objet jusqu’à un point donné
- Se placer correctement les deux NAO par rapport à l’objet (face à face)
- Utiliser le signal de synchronisation de l'autre projet "NAO"
- Soulever l’objet
Nous devrons développer nos propres blocs (en python) pour la programmation. Nous développerons en parallèle un complément de la bibliothèque. Ceci dans le but de l'enrichir et de faciliter l'utilisation des NAO prour de travaux pratiques ou des projets.
Avancement du projet :
Semaine 1
Lors de cette première semaine, nous avons effectué des recherches sur le NAO afin d'effectuer les premiers réglages et de mieux comprendre son fonctionnement:
-Mise à jour des NAO
-Installation et découverte des logiciels Monitor et Choregraphe
-Vérification du bon fonctionnement des capteurs (avec Monitor)
-Découverte des librairies
-Découverte des blocs sous Choregraphe et réalisations de mouvements simples à l'aide de ces blocs (déplacement,position...)
Problèmes rencontrés:
-Problème d'équilibre du NAO
-Pas de bloc pour les opérations logique (AND,OR,IF....)
Objectifs pour la semaine 2:
-Régler les problèmes d'équilibre du NAO
-Réaliser des timelines afin de créer des mouvements pour que le NAO attrape un objet
-Faire marcher le NAO avec un objet dans les mains
Semaine 2
Lors de cette deuxième semaine , nous avons réalisé les objectifs fixés lors de la première semaine
Le NAO est maintenant capable de:
-Se baisser pour prendre un objet
-Se relever sans perdre l'équilibre
-Marcher avec l'objet dans les mains
Problème rencontré:
-Le NAO ne peut pas prendre un objet en le serrant entre ses deux mains. En effet s'il n'atteint pas la position finale alors il s'arrête
Objectifs pour la semaine 3:
-Détecter un objet dans la pièce
-Récupérer les coordonnées de l'objet pour que le NAO puisse aller le chercher
-Réaliser la synchronisation des deux NAO à l'aide de Chorégraphe
Semaine 3
Lors de cette troisième semaine, nous avons réalisé une partie des objectifs fixés la semaine précédente. Nous sommes capables de faire avec le Nao le scénario suivant :
- Reconnaissance de l’objet devant lui
- Aller vers l’objet
- Marcher
- S’arrêter
- Se mettre accroupi et prendre l’objet dans ces mains
- Se relever
Il y a cependant quelques imprécisions. Au niveau de la reconnaissance, il faut que la couleur soit unie et suffisamment différente du milieu ambiant. Le passage de la position debout à marcher n’est pas fluide (« crispation » du Nao)
Problèmes rencontrés:
1 ) La détection d’une boite est trop aléatoire, elle est mal reconnue par le Nao.
2 ) Le déplacement du Nao n’est pas fluide
Solution envisagée:
- Nous avons décidé d'utiliser des marques spéciales pour le Nao appelées NaoMark
Objectifs pour la semaine 4:
-Repérer un objet ou une marque qui ne soit pas face au Nao
-Se diriger vers l’objet précédemment repéré
-Synchroniser deux Nao sur chorégraphe.
Semaines 4 et 5
Nous avons mené deux taches de front durant ces deux semaines. D’un coté la recherche et le déplacement vers une cible, de l’autre la synchronisation et l'amélioration durant les phases de prise et de déplacement avec un objet. L’objet avec lequel nous faisons nos tests est une boite en polystyrène (50x30x15 cm).
Recherche de cible :
Ces cibles sont facilement reconnaissables par le Nao. Chaque marque est interprétée par le Nao comme un nombre ce qui permet de les différencier. Le Nao peux ainsi savoir de quel coté de la boite il se trouve et connaitre les dimensions de celle-ci.
La recherche de NaoMark passe par deux étapes :
1) Il se met debout et sa tête balaye l’espace de gauche à droite (il couvre ainsi 50% de la pièce) à la recherche de NaoMark.
2) Une fois qu’il a détecté la marque, il pivote sur lui même en direction de la marque. Puis, se dirige vers elle.
Synchronisation :
On souhaite synchroniser les Nao afin qu’ils prennent la boite en même temps pour ne pas la faire tomber de son support. Puis ils se déplaceront à la même vitesse d’abord sur le coté pour se dégager du support puis en avant ou en arrière, avant de relâcher la boite.
-Création d'un menu pour sélectionner les actions que le Nao doit effectuer (facilité de gestion)
En attendant une synchronisation informatique (envoi d’un message par le réseau), on fait synchroniser les Nao avec un pic sonore (claquement de mains).
Les Nao sont face à la boite :
-au premier claquement ils s’accroupissent,
-au second ils tendent leurs mains sous la boite,
-au dernier ils effectuent leur déplacement.
-au troisième ils se relèvent,
Problèmes rencontrés:
Lors de la semaine 4 nous avons eu au gros problème logiciel avec un des NAO. Ce problème nous a considérablement ralenti pendant 3 séances (mauvais fonctionnement du NAO).
Lorsque le Nao doit se diriger ver la NaoMark qui se trouve sur l'objet qu'il doit déplacer, il ne s'arrête pas devant l'objet mais continu d'avancer jusqu'à atteindre la NaoMark. Ce qui pose un problème car il vient se heurter à la boite en équilibre sur le support.
La synchronisation des Nao fonctionne, mais les mouvements saccadés leur font perdre la boite. De plus ils ne se déplacent pas de la même façon (ils n’avancent ou ne reculent pas droit et pas sur les mêmes distances).
Nous pensons avoir atteint les limites des blocs du logiciel chorégraphe. En effet dès que l’on crée des programme plus conséquents l’ensemble devient très vite illisible et les conditions imposées rarement respectées (temps entre deux mouvements, déplacement position et angle). Nous allons donc nous concentrer sur les scripts (en python).
Objectifs pour la semaine 6:
-Résoudre le problème de la collision entre le Nao et l'objet
-Assembler tous les programmes
-Amélioré la stabilité de la boite lors des déplacements
Semaines 6
Maintenant que nous avons une bonne base pour notre programme final, nous avons décidé d'assembler les programmes nécessaires qui permettrons de remplir les objectifs que l'on s'était fixé.
Objectifs pour la semaine 7:
-Résoudre le problème de la collision entre le Nao et l'objet
Semaines 7