Robots humanoïdes 2013 groupe I

De Wiki de Projets IMA
Révision datée du 30 mars 2014 à 20:19 par Papperce (discussion | contributions) (Présentation du projet :)

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 :

Voici les principales fonctions que nous devrons créer :

-Repérer un objet

-Se placer correctement par rapport à l’objet et à l’opposé du deuxième NAO
-Attendre la synchronisation avec le deuxième NAO
-Réaliser le travail collaboratif pour soulever l’objet

-Déplacer le l'objet jusqu’à un point donné

Afin de le programmer nous utiliserons le logiciel Chorégraphe fournit avec le NAO.
Ce logiciel permet de réaliser une programmation graphique à l’aide de blocs, notre projet consiste alors à réaliser nos propres blocs codés en C++ et les intégrer dans la bibliothèque.


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
-Découverte des librairies
-Découverte des blocs sous Choregraphe et réalisations de mouvements simples à l'aide de ces blocs (déplacement,position...)

-Vérification du bon fonctionnement des capteurs (avec Monitor)

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
- S’arrêter
- Se mettre accroupi et prendre l’objet dans ces mains
- Se relever

- Marcher

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 :

Nous utilisons à présent des « NaoMack ».
NaoMak N° 119

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 troisième ils se relèvent,

-au dernier ils effectuent leur déplacement.

Problèmes rencontrés:

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