Accueil
Robot 2008
Web cam
Photos
Vidéo
Helb Inraci
Autres équipes
Robot pendulaire

Funambule à balancier inversé

           

                                              

 

 

Principe général

 

 

Le principe est simple, il suffit de maintenir aligné le point de contact des roues au sol avec le centre de gravité du robot. Dés que le robot  bascule dans un sens, il faut faire tourner les roues de façon à ramener les deux points dans le même axe vertical. On parle alors d’un pendule inversé, puisque le point de rotation est en dessous et le bras du pendule au dessus.

Plus le centre de gravité est haut par rapport au centre de rotation, plus la période du pendule est grande, la régulation en est facilitée car le robot à le temps de réagir. Toutes les réalisations sur le net placent les masses en haut du robot. Mais pourquoi faire simple quand on peut faire compliqué, j’ai donc décidé de placer les batteries sous le robot, la période du pendule est réglée par le déplacement d’une masselotte sur une tige. Cela donne un pendule à fréquence élevée difficile à régler (c’est plus sportif) mais à l’esthétique, à mes yeux, plus réussie.

 

 

 

 

Exemples de réalisation

 

C’est Maggie, lors de la coupe Eurobot 2007, qui m’a donné l’idée de réaliser FBI. Quelques recherches plus loin, Joe de l’Epfl et surtout Nbot de David Anderson m’ont aidés à la conception de FBI.

 

 

Les capteurs

 

Un accéléromètre mesure l’accélération du robot [x,y], un gyroscope  donne la vitesse angulaire du pendule [w]et les codeurs en quadrature des moteurs fournissent des impulsions proportionnelles au déplacement du robot[a,b].

 

 

 

 

Le traitement des signaux capteurs

 

 

L’information du gyroscope w donne la vitesse angulaire en °/s. Cette information est dérivée et intégrée pour donner q gyro et dq gyro/dt. q est l’angle formé par le robot par rapport à l’horizon. Le soucis est la dérive de q gyro en fonction du temps qui peut rapidement atteindre 1° après quelques secondes. Il faut donc disposer d’une deuxième information permettant de rafraîchir le calcul de q gyro.

 

 

 

L’accéléromètre fourni deux potentiels proportionnels à l’accélération statique terrestre et dynamique du robot. Ces signaux vont servir à calculer q acc et dq acc/dt. Comme il est impossible de séparer les accélérations statique et dynamique, le calcul de q acc est faussé par les accélérations dynamiques du robot. Pour en limiter les effets, la bande passante du capteur est réduite à 10 Hz, les deux canaux x et y sont additionnés pour linéariser sa réponse et la mesure n’est validée que pour des vitesses angulaires faibles, ce qui est souvent le cas pour de faibles inclinaisons. Lorsque q acc vaut 0, q gyro est remis à 0.

 

 

 

Le traitement numérique de tous ces signaux permet de calculer l’inclinaison du robot. Une méthode souvent utilisée est le filtre de Kalman qui introduit un facteur correctif et surtout un facteur prédictif sur l’évolution de l’inclinaison. Une autre approche pour créer ce facteur prédictif est d’introduire dans le calcul de la nouvelle inclinaison, une portion de l’ancienne inclinaison ainsi que sa dérivée. Le facteur correctif consiste simplement à remettre à 0 q gyro lorsque q acc vaut 0.

Le traitement numérique fait appel à toute la panoplie de la régulation avec de l’écrêtage, de la moyenne et de la moyenne mobile.

 

Le codeur moteur fourni deux trains d’impulsions a et b qui permettent de déterminer la vitesse signée, sa dérivée et la distance parcourue.

 

 

L'asservissement

 

 

Une première boucle à 5ms mesure la vitesse angulaire et les accélérations x et y.

Une deuxième boucle à 10ms calcule les moyennes arithmétiques des mesures et calcule l’inclinaison.

Le couple appliqué au moteur est calculé suivant la formule suivante :

 

Pwm=k1*i+k2*ii+k3*w+k4*p+k5*v

 

i : inclinaison

ii : intégrale de i

w : vitesse angulaire

p : dérivée de vitesse

v :vitesse *inclinaison

 

Cette valeur calculée est appliquée par tiers aux roues grâce à une moyenne mobile.

 

 

Les moteurs

 

 

Ce sont des maxons de récupération 5W avec réducteurs 14 :1 et encodeurs 16 impulsions par tour. Cela donne 500gr de couple sur chacune des roues .C’est un peu juste pour l’application surtout que les moteurs sont toujours à très bas régime voire à l’arrêt. Il vaut mieux des moteurs à couple important à bas régimes. Il faut également penser à inclure dans le calcul du pwm, un facteur qui compense les frictions de démarrage du moteur.

 

 

 

 

Le schéma de principe

 

 

 

 

Fidèle aux traditions du club, nous retrouvons une architecture « classique » articulée autour d’un Pic.

Le choix s’est porté sur un 30F4011 car il dispose d’un nombre de I/O suffisant en regard de l’application, de sorties pwm symétriques avec « dead time »et d’une grande puissance de calcul ( 20Mpis @16 bits). De plus, il offre 4 ccp qui reçoivent les différents signaux à compter.

Dans son environnement, on retrouve la liaison série avec un Ds276 comme adaptateur de niveau, un Icsp pour la première programmation du boot, un clavier 3 touches, quelques leds de debug/contrôle et un Lcd piloté en 4 bits.

L’alimentation est assurée par le Ba05 et toutes les alimentations sont découplées avec soin sur chaque boîtier. Un deuxième régulateur invisible sur le schéma assure le 7.2V en provenance du pack de 8x 1.2 NiMh AA.

Le pont en H L6225 est une nouveauté en provenance de chez ST avec quelques composants annexes pour la pompe de charge et 2 interrupteurs pour mettre le pont hors circuit.

L’accéléromètre et le gyroscope sont montés sur des pcb séparés et placés sur l’axe de rotation.

Comme on peut le constater, ce n’est pas le hard le plus compliqué en robotique mais bien le soft et la mécanique.

 

 

Conclusions

 

A ce jour FBI fonctionne sur le mode «  je reste debout ». C’est un bon début. La suite consistera à lui ajouter toute l’artillerie lourde du club : odomérie, positionnement, déplacement vectorisé et spline.

 

Juillet 2007