Aller au contenu


Photo
- - - - -

Robot Stabilisé sur Roues


3 réponses à ce sujet

#1 widrekj

widrekj

    Nouveau membre

  • Membres
  • 2 messages
  • Gender:Male

Posté 07 août 2018 - 10:27

Bonjour,

Avec un ami nous nous lançons dans la réalisation d'un robot stabilisé sur roue. L'objectif est dans le faire tenir à le verticale de façon autonome. Nous nous inspirons de certaines vidéos sur Youtube ( https://www.youtube....h?v=EwrQEsFmL4E ). Cependant l'objectif est d'en apprendre par nous même ! 

 

Pour la construction du robot, nous avons pris deux planches en bois, de 10x20cm et de quelques centimètres d'épaisseur que nous relions l'une à l'autre par deux tiges filetées et le tout est fixé à l'aide de boulons. 

Pour la motorisation nous avons utilisé 2 GM256370CA avec des encodeurs et le support qui va avec ainsi que les roues vendues dans le kit sur RobotMaker. On utilise un L298 pour la commande et un Arduino pour notre micro-contrôleur. 

 

38732706_1750565328389871_4262881695570591744_n.jpg

 

Pour obtenir l'inclinaison du robot nous utilisons un MPU6050 avec un filtre complémentaire. Pour l'alimentation nous avons d'abord utilisé un transformateur USB (5V), nos moteurs étaient donc sous-alimentés mais nous avions un premier résultat.

Ensuite nous avons utilisé un transfo 12V, malheureusement le MPU6050 ne fonctionnait plus ( c'était déjà arrivé une première fois, du à une mauvaise soudure... mais là je pense qu'il est définitivement mort, peut-être à cause d'une fausse manip! ).  

 

Nous attendons donc maintenant : 

Un module Bluetooth pour l'arduino

Un kit pile Lipo 12V pour permettre une alimentation plus pratique 

De nouveaux accéléromètres et gyroscope.

 

Nous utilisons un asservissement PID, cependant la réelle difficulté est de régler les coefficients de ces derniers. On à essayé d'y aller à tâtons, mais il est difficile de trouver un juste milieu entre l'asservissement et la saturation. Aussi, on remet en cause le fait que le robot puisse "se rattraper" quand il tombe d'un côté, nous n'avons pas spécialement dimensionné les moteurs et l'inertie du robot... Pour l'instant il ne s'est jamais stabilisé :(

 

En attendant de pouvoir retester de nouveaux coefficients (mais comment les régler ? d'après nos cours de prépa, il serait logique de régler le Kp (proportionnel), puis le Ki et le Kd mais il n'est pas évident d'observer les résultats puisque le système est instable.. ), nous envisageons de rentrer l'asservissement dans Scilab et d'essayer de déduire les Kp, Ki et Kd théoriques. Cependant nous n'avons aucune information sur le moteur (la doc est très faible à ce niveau), que ce soit sur les caractéristiques électriques ou mécaniques. Il faudrait envisager des protocoles pour trouver ces valeurs, mais nous ne sommes pas sur d'avoir ni le matos, ni la précision requise (avec le codeur, dont nous n'avons pas non plus la résolution. Expérimentalement, on trouve 1 degrès un peu près). 

 

Pour l'instant notre difficulté réside donc en le réglage des coefficients du PID. 

 

 

 



#2 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 07 août 2018 - 10:47

Pour l'instant notre difficulté réside donc en le réglage des coefficients du PID. 

Comme je compatis. :)



#3 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 07 août 2018 - 11:25

Bonjour,

Avec un ami nous nous lançons dans la réalisation d'un robot stabilisé sur roue. L'objectif est dans le faire tenir à le verticale de façon autonome. Nous nous inspirons de certaines vidéos sur Youtube ( https://www.youtube....h?v=EwrQEsFmL4E ). Cependant l'objectif est d'en apprendre par nous même ! 

 

Pour la construction du robot, nous avons pris deux planches en bois, de 10x20cm et de quelques centimètres d'épaisseur que nous relions l'une à l'autre par deux tiges filetées et le tout est fixé à l'aide de boulons. 

Pour la motorisation nous avons utilisé 2 GM256370CA avec des encodeurs et le support qui va avec ainsi que les roues vendues dans le kit sur RobotMaker. On utilise un L298 pour la commande et un Arduino pour notre micro-contrôleur. 

 

attachicon.gif38732706_1750565328389871_4262881695570591744_n.jpg

 

Pour obtenir l'inclinaison du robot nous utilisons un MPU6050 avec un filtre complémentaire. Pour l'alimentation nous avons d'abord utilisé un transformateur USB (5V), nos moteurs étaient donc sous-alimentés mais nous avions un premier résultat.

Ensuite nous avons utilisé un transfo 12V, malheureusement le MPU6050 ne fonctionnait plus ( c'était déjà arrivé une première fois, du à une mauvaise soudure... mais là je pense qu'il est définitivement mort, peut-être à cause d'une fausse manip! ).  

 

Nous attendons donc maintenant : 

Un module Bluetooth pour l'arduino

Un kit pile Lipo 12V pour permettre une alimentation plus pratique 

De nouveaux accéléromètres et gyroscope.

 

Nous utilisons un asservissement PID, cependant la réelle difficulté est de régler les coefficients de ces derniers. On à essayé d'y aller à tâtons, mais il est difficile de trouver un juste milieu entre l'asservissement et la saturation. Aussi, on remet en cause le fait que le robot puisse "se rattraper" quand il tombe d'un côté, nous n'avons pas spécialement dimensionné les moteurs et l'inertie du robot... Pour l'instant il ne s'est jamais stabilisé :(

 

En attendant de pouvoir retester de nouveaux coefficients (mais comment les régler ? d'après nos cours de prépa, il serait logique de régler le Kp (proportionnel), puis le Ki et le Kd mais il n'est pas évident d'observer les résultats puisque le système est instable.. ), nous envisageons de rentrer l'asservissement dans Scilab et d'essayer de déduire les Kp, Ki et Kd théoriques. Cependant nous n'avons aucune information sur le moteur (la doc est très faible à ce niveau), que ce soit sur les caractéristiques électriques ou mécaniques. Il faudrait envisager des protocoles pour trouver ces valeurs, mais nous ne sommes pas sur d'avoir ni le matos, ni la précision requise (avec le codeur, dont nous n'avons pas non plus la résolution. Expérimentalement, on trouve 1 degrès un peu près). 

 

Pour l'instant notre difficulté réside donc en le réglage des coefficients du PID. 

 

 

 

 

Oui on a eu des erreurs sur la fiche produit elle doit être refaite. 
Des tests vont être refait sur le moteurs pour aider au mieux... Mais cela ne peut pas être fait pour le moment.

 

En attendant : 

Un sujet en cours qui peut vous aider  : http://www.robot-maker.com/forum/204-servomoteur-intelligent-homemade/

C'est un projet qui utilise le même moteur =). Donc ce qui y est dit peut vous être utile =)


En attendant les tests je vais donner des valeurs de mémoire qu'il faut prendre avec des pincettes... 

 

Rapport de réduction : 1/21
Nombre de pulses par tour : 11 

résolution max  = 4 * 11 * 21 = 924 ticks / tours de roue  En prenant les fronts rising et falling de chaque voie. 

 

Autre astuce vu le projet utilisé serait de faire un pilotage en mode locked antiphase,  ça permet de faire que le moteur continue d'exercer un couple même lorsqu'il n'est pas alimenté et de garder en réactivité sur le moteur... ( choses qu'on a pas besoin avec un robot à 4 roues ... ) 

Le locked antiphase, pour être à l'arrêt il faut mettre 50% de PWM en marche avant et 50% de PWM en marche arrière. 
Une avance lente c'est par exemple 55% marche avant et 45% marche arrière ... 

Du coup par contre il faut mettre les PWM sur les broches de sens et pas sur le /enable du L298... et ça consomme plus de PWM ... 

ça + le fait de vouloir avoir la résolution max sur les codeurs, prendre une arduino mega peut être un bon plan, ou bien une arduino m0 car plus de PWM et d'entrées en interruptions... 
 

Perso j'utilise ces moteurs sur mon robot Robil avec succès mais je n'ai jamais réalisé de robots équilibristes avec ces moteurs ... ( D'ailleurs je me demande si un rapport de réduction plus élevé ne serait pas plus judicieux pour un robot équilibriste ... ) 

 

Les paramètres PID que j'utilise pour l'asservissement en vitesse  sont : 
4 pour le proportionnel, 1/2 pour l'intégrale et 1 pour le dérivé ... 

Mais ces valeurs sont à prendre avec des pincettes car je n'ai pas le même PID sur mon robot Robil que sur un robot équilibriste ... 
Donnée très importante ? Quelle est votre fréquence d'échantillonnage ? à quelle fréquence s'exécute le PID? 
vous faite directement l'angle mesuré par le giro qui rentre dans le PID pour influencer sur la vitesse des moteurs ? 

Savez vous utiliser arduino en mode plotter série pour afficher des courbes ? 





 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#4 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 08 août 2018 - 06:37

Pour l'instant notre difficulté réside donc en le réglage des coefficients du PID.

Bienvenus au club !



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users