mardi 6 décembre 2011

Difficultées et conseils pour la Localisation

En pratique, programmer et utiliser un robot Lego avec le kit de base Mindstorm afin qu'il vous donne ses coordonnées et son cap n'est pas chose facile !

Difficultées de Programmation :

- La brique ne fonctionne qu'avec des nombres entiers : il faudra prévoir dans quelles mesures on utilisera les diffèrents paramètres.
- La brique ne connait pas PI (heureusement on peut s'en passer)
- La brique ne connait pas SIN ou COS (heureusement il y a Hitechnic)
- La brique ne connait pas la fonction RACINE (pour l'instant vous n'en avez pas besoin mais ça va arriver)

Difficultées de Mécanique :

- Les servo moteurs ont des codeurs intégrés mais il y a beaucoup de jeu ce qui provoquera des écarts dus à ce jeu.
- Les roues sont molles et larges, elles s'aplatiront plus ou moins suivant l'accélération ou le freinage & le centre de rotation variera suivant la vitesse ce qui engendrera encore des écarts.
- Plus il y aura d'éléments mécaniques en LEGO de fixation entre les deux moteurs des roues Droite et Gauche, plus il y aura d'écarts sur le centre de rotation et sur le diamètre des roues.
- Le capteur intégré au servo moteur ne comprend que 360 points.

Faire les bons choix :

Autant en terme de programmation, avec un peu de persévérance, on finit par avoir quelque chose qui fonctionne correctement. De plus, si vous me le demandez gentiment, je vous envoie mon bloc de calcul Xr, Yr et AlphaR ... (version 1.05 ; il vous faudra de plus le bloc Hitechnic SinCos)

Mais ! Attention, toute votre imprécision se jouera sur votre mécanique. Ainsi vous n'obtiendrez jamais la précision des équipes finalistes si vous récupérez les données des servo moteurs avec les roues fournies dans le kit et si en plus vous faites beaucoup de déplacement à grande vitesse !
Une fois encore il faudra faire le choix de ce que vous êtes 'prêt' à investir en fonction de l'objectif que vous vous êtes fixés.

Mode 'Kit Mindstorm' :
- Vous participez occasionnellement et ne souhaitez pas investir : Vous pouvez utiliser les roues et les servos moteurs du kit Mindstorm mais il vous faudra faire peu de déplacement et à accélération douce. Vous pouvez aussi régulièrement vous 'recaler' contre une bordure pour réinitialiser X ou Y et AlphaR.

Recalage à 36' de la Team BRICKBOT


Mode 'Bricoleur' :
- Vous participez occasionnellement mais êtes prêt à mettre quelques € pour avoir une meilleure précision : Je vous invite simplement à positionner des joints toriques sur les 'poulies' du kit et de mettre ces nouvelles 'roues' sur les servomoteurs. Vous aurez des roues beaucoup plus petites, donc une vitesse maxi plus faible, mais une bien meilleure précision. Vous pouvez aussi achetez des roues Lego grandes et étroites. Dans cette configuration vous aurez une meilleure précision mais en cas de glissement de la roue (à l'acceleration ou en cas de choc) le robot se retrouvera décalé dans son calcul.

Exemple de roue sur codeur (Team Amare)

Mode 'Lego +' :
- Vous comptez bien participer plusieurs fois mais avez un budget limité et souhaitez conserver la brique Lego et son environnement : Dans ce cas je vous invite à investir environ 100€ dans 2 capteurs de rotation (un pour chaque roue) de chez Hitechnic (certifié par LEGO) et d'y fixer une petite roue étroite en direct ou par l'intermédiaire d'engrenages. Ici le type de roue (diamètre, largeur, adhérence) utilisé pour le déplacement sera bien dissocié du système de localisation, cela améliorera grandement votre précision et ne réduira en rien les performances mécanique de votre robot. Pensez à installer un système de ressort qui plaquera constamment les roues dites folles au sol.
A l'heure actuelle, Oleg se trouve dans cette configuration.


Mode 'Sans limite' :
- Vous avez un budget bien plus élevé que 100€ et vous n'êtes pas limité à l'environnement LEGO : Je vous invite à faire vos propres recherches car les possibilités sont très très larges et cela dépasse mon experience !

4 commentaires:

  1. Sympa ton (votre?) blog !

    Alban (Brickbot)

    RépondreSupprimer
  2. Merci ! Tu dis ça parce que tu as retrouvé une de tes petites bêtes ? ^^

    Pour le moment c'est 'mon' blog vu que je suis tout seul :)

    RépondreSupprimer
  3. ... non, c'est cool de partager les infos, de voir la recherche effectué et je pense que tu es sur la bonne voie.
    Le seul hic c'est que tu utilise le NXT-G, c'est ton choix mais perso je me vois mal faire un robot pour la coupe dans ce language, d'ailleurs très peu (ou pas) de team LEGO l'utilisent. Prend le NXC gratuit, ou le robotc plus simple (30$).
    Euh, il te faut aussi un équipier pour la coupe, sinon c'et mort, fait gaffe !
    Nous en avions tout de même fait plus pour assurer : sponsors, table d'essai à domicile.
    Sans une moitié de table c'est très dur de faire un robot qui marche, faut être très pointilleux pour y arriver.

    RépondreSupprimer
  4. Pour l'instant le NXT-G ne me pose pas de problème. On verra à plus long terme mais c'est aussi volontaire de rester en NXT-G pour le côté pédagogique, pour les non initiés quoi !

    RépondreSupprimer