|
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’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
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
|
![]() |