mercredi 26 décembre 2012

Avancement fin décembre

Bonnes fêtes de fin d'année à tous !

J'espere que le Père Noël vous a tous gâté et que vous n'avez pas déjà vidé vos boîtes de chocolat !
Du côté d'Oleg, il n'a rien reçu d'autre qu'une guirlande électrique qu'il devrait porter en mai prochain.

En terme d'avancement, je profite d'une petite semaine de vacances pour avancer sur le robot principal :

Réglages & Corrections sur l'odométrie :
(Rappel : L'odométrie c'est ce qui permet au robot , à partir des roues folles, de se localiser sur le terrain)
L'an dernier le robot était très répétable d'un match à l'autre mais il fallait plusieurs 'tests' avant d'être sûr des trajectoires demandées au robot. Le problème provient du fait que l'entraxe des roues motrices n'est pas l'entraxe des roues folles et n'est pas au centre du robot non plus. Même si le robot est très bien réglé en terme de détermination du cap et de la distance parcourue, dès qu'il réalise un enchainement de courbes, de lignes droites et/ou de rotation sur lui-même, il y a un décalage entre les coordonnées supposées et les coordonnées réelles du robot.
C'était toujours le même décalage, il me suffisait donc de rentrer les valeurs de ces décalages dans le calcul de l'odométrie pour qu'il n'y en ait plus. Ainsi je n'aurais plus besoin de tester quarante fois chaque programme ! Mais pourquoi ne l'ai-je pas fais l'an dernier ?!

- Programmation de l'asservissement en PID :
(Rappel : Le PID ; Proportionnel Intégral Dérivé ; est un calcul qui permet d'atteindre le résultat demandé suite à une demande)
 
L'an dernier j'avais programmé le mode Avance tel qu'il est présenté ci-dessus. C'est à dire que j'utilisais le bloc "Avancer" du logiciel NXT, le robot tournait donc plus ou moins suivant que 'AlphaRC' (Ecart entre cap du robot et cap de la cible ) était plus ou moins élevé. C'était donc très facile à utiliser.
P : Malheureusement l'utilisation que j'en faisais ne représentait que le P (Proportionnel) de PID. Je déterminais le coefficient de sorte que le cap du robot arrive rapidement au plus près du cap de la cible, mais sans que cela ne fasse faire de zig zag au robot.
I : J'avais donc toujours un écart en régime établi (ligne droite). Cet écart est corrigé par le I (Intégral) qui rajoute un coefficient en fonction de l'écart AlphaRC qu'il y avait au précédent calcul.
D : Et enfin il y a le terme Dérivé qui nous permettra d'augmenter le coefficient P (vitesse d'atteinte de la consigne). Cela se traduira par un dépassement du cap cible et c'est le coefficient Dérivé qui attenuera ce dépassement.

Je profite de reprogrammer l'asservissement pour me séparer du bloc "Avancer" car celui-ci n'utilise pas à 100% la vitesse des moteurs. Je présenterais ce programme lorsqu'il sera testé et validé.
D'ici là, si vous avez des questions sur l'asservissement PID, voici deux pages très complètes :
- RCVA
- Telecom Robotic

- Montage du système d'empilage de verres :

Comme le dit si bien ma fille : "ça marche pas !". He bien non cela ne fonctionne pas, enfin, pas comme je le souhaite. Le système à un seul actionneur empile trois verres sans aucun soucis. Malheureusement dès qu'il faut en soulever trois pour les déposer sur un quatrième, le système glisse et les verres redescendent. A quatre verres soulevés et au delà c'est encore pire.
Il me fallait donc faire un choix :
- me contenter de piles de trois (objectif initial) et rester avec un seul actionneur
- faire évoluer le système avec plusieurs actionneurs pour empiler quatre verres ou plus

... Revenons à l'origine du projet :
Objectifs d'OLEG : Simplicité & Efficacité :
Faire qu'Oleg soit un robot efficace par rapport à son coût, au nombre de membres dans l'équipe, et bien entendu par rapport au nombre de points marqués ! Le but principal est de montrer qu'on peut faire quelque chose d'efficace avec peu si on s'y prend correctement !
J'ai deux briques Lego, soit je fais un robot avec 1+3=4 actionneurs, soit je fais deux robots avec 1 seul actionneur dans chacun de ces deux robots. Les deux cas ont les avantages et inconvenients en terme de simplicité.

En terme d'efficacité, si je fais deux robots, le premier empilerait les verres (deux colonnes de 3 donc : 48 points) et le second activerait les 4 bougies blanches (36pts) = 84 pts. L'intérêt serait d'avoir plus de chances de ne pas rencontrer l'adversaire. Par contre ensuite il ne se passe plus grand chose.
Si je fais un seul robot, il me faudrait activer les 4 bougies blanches en plus d'empiler les verres. Empiler 4 verres (au lieu de 3) + une tour de 2 ne donne que 4 points de plus (52 points). Par contre empiler 5 verres (60 points) permettrait d'atteindre (avec les 4 bougies) 96 points. Le robot est capable de plus de choses mais combien de temps aura-t-il pour réaliser toutes les actions ?

En bref, j'ai beaucoup réfléchi et je vais utiliser mes deux briques dans un seul robot ! Le défi est désormais d'empiler 5 verres sur le buffet puis d'activer les 4 bougies blanches en moins de 90 secondes. Quand c'est trop simple et/ou trop court on s'ennuie...

Le nouveau système d'empilage n'est pas encore terminé, je vous posterais une vidéo j'espere très rapidement.

Aucun commentaire:

Enregistrer un commentaire