Aller au contenu


Photo
- - - - -

Crabeel : Self-balancing robot avec balancier.

Makeblock SelfBalancing

  • Veuillez vous connecter pour répondre
47 réponses à ce sujet

#1 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 26 novembre 2016 - 05:18

Avec le kit Ultimate 2.0 de makeblock, il y a la possibilité de monter un petit robot auto-equilibré très sympatique.

En partant de cette base et avec juste le contenu du kit, j'ai tenté de monter un robot auto-équilibré un peu plus grand, avec un mécanisme pour se remettre droit après un échec d'équilibrage.

 

Ca donne cela :

DSC02270.JPG

 

DSC02273.JPG

 

Le mécanisme pour remonter le robot fonctionne bien, mais il déplace le centre de gravité vers l'une des roues, ce qui oblige a un contrôle asymétrique des roues pour tenter de se déplacer tout droit.

Avec en plus l'ajout de poids, la taille du robot ne permet plus de s'auto-équilibrer avec les moteurs fournis et les roues utilisée. Il faut trop vite envoyé la puissance maximum au roues et même cela ne suffit pas.

Un peu de tweeking tu PID permet de le maintenir quelques secondes, mais le moindre déviation de plus de 1 degré n'est pas rattrapée par les moteurs même en puissance max.

 

Je vais donc changer d'approche, en remplacant les deux bras par un seul mécanisme de balancier, je vais aussi remonter le centre de gravité, de ce que j'ai lu ça facilite l'auto-équilibrage, et je vais essayer de le garder plus proche du mileu des deux roues.

 

Suite au prochain numéro.

 



#2 Oliver17

Oliver17

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 425 messages
  • Gender:Male
  • Location:LR
  • Interests:Glenn

Posté 27 novembre 2016 - 10:04

Délire ^^



#3 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 661 messages
  • Gender:Male
  • Location:Paris

Posté 27 novembre 2016 - 12:32

Makeblock c'est comment au niveau mécanique ?
On dirait un mix entre lego et mecano. Ça semble très propre.

#4 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 27 novembre 2016 - 12:47

Au niveau mécanique c'est vraiment très propre, c'est très solide.  Ce sont des méccanos en plus évolué :

C'est de l'alu, et les profils des éléments sont plus complexes.

Bonus, les trous sont compatibles lego, donc tu peux vraiment combiner les deux.

 

Même coté électronique c'est vraiment bien foutu, leur MegaPi (un dérivé compatible de l'arduino Mega) est vraiment bien faite pour la partie motorisation, bluetooth et 4 extension pour moteur avec encodeur sont présent de base dans la kit.

Pour la partie 'sensors', la connectique a base de RJ, je suis un peu moins fan, plus difficile a faire évoluer soit meme, mais je peux toujours rétirer le shield associé pour avoir directement acces au pin de leur méga.

Je n'ai pas encore tester mais ca il y a la connectique pour en faire un joli 'hat' d'un raspberry pi.

 

En tout cas j'en suis super satisfait, pour bidouiller et tester des choses c'est vraiment sympatique, c'est vraiment le meccano pour les grand :)



#5 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 867 messages
  • Gender:Male

Posté 27 novembre 2016 - 01:14

Petite parenthèse, Makeblock, oui moi aussi je trouve les produits makeblock plutôt bien foutu aussi ;) On va essayer de les référencer sur la boutique donc si vous avez un kit ou des pièces en particulier que vous souhaitez voir n'hésitez pas à nous en faire part sur le sujet dédié au référencement des produits makeblock ! 

 

Sinon je reviens dans le sujet : 

 

Du coup si je comprend bien ton robot " écarte " plus ou moins ses deux "bras " pour rester en équilibre c'est ça ?


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 


#6 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 27 novembre 2016 - 01:30

Celui-là n'ecarte pas les bras pour l'equilibre, il utilise les bras pour se remettre 'droit', donc pour 'reprendre' son equililbre.

Le nouveau que je veux faire va effectivement utiliser ses bras pour participer à l'équilibrage, en particulier pour essayer de s'équilibrer sans bouger les roues, et n'utiliser les roues qu'en cas de nécéssité.

On va voir si c'est possible !



#7 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 06 décembre 2016 - 09:58

Quelques nouvelles de Crabeel.

 

J'ai modifie son bras, pour cette fois-ci être un 'bras' sur un axe. Ca semble faire office de balancier, mais en pratique le déplacement du centre de gravité, lié au déplacement du moteur ne change la position de stabilité que de moins de 1 degré. C'est donc plus utile pour se relever tout seul que pour s'équilibré.

 

Voici la nouvelle version :

 

DSC02282.JPG

 

 

Et voici ce qu'actuellement ça donne, du point de vue équilibre :

 

 

Les moteurs sont un peu juste pour compenser la taille du robot, il sont un peu trop vite au maximum, et donc incapable de rattraper un écart de plus de 1 degré, ce qui est peu.

 

J'ai joué avec le bras, et on voit un peu le potentiel :

 

 

Il y a une séquence d'initialisation automatique pour trouver la position médiane du bras tout seul, puis un positionnement proche de la vertical ( pour l'instant télécommandé), et ensuite un départ ... raté.

 

Pour la suite je vais faire jouer le bras pour tenter de participer à l'équilibre, mes premiers essais montre que ca aide pour le démarrage automatique, mais pour l'équilibre ça n'aide pas, mais ça rend le robot  plus vivant, balbutiant comme un nourrisson qui cherche son premier équilibre.



#8 Oliver17

Oliver17

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 425 messages
  • Gender:Male
  • Location:LR
  • Interests:Glenn

Posté 07 décembre 2016 - 11:11

YYEESSSS c'est sympa :)



#9 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 10 janvier 2017 - 08:55

Une petite update de Crabeel.

Il fait ses premiers pas tout seul :

 

 

 

Comparé au précédent j'ai fait les améliorations suivantes :

 

Matériel :

  • Le robot est moins haut
  • Le centre de gravité est remonté avec les piles en hauteurs
  • Retrait du 'bras', n'apportant pas grand chose
  • Utilisant d'un BNO055 comme IMU

Logiciel :

  • Localisation grace aux encoders et à l'IMU
  • Ajout d'une séquence de retour à la position de départ
  • Ajout d'une séquence d'autodémarrage du balancement, avec une accélération suivi d'un arret des moteurs.

Les contrôles ( en bluetooth, avec les retours debug), consiste simplement en trois commandes au choix:

  • Démarrage du balancement
  • Retour à la position initiale
  • STOP. ( ca c'est quand une des deux actions précedentes par en vrille :)

 

Les prochaines amélioration prévues sont l'ajout d'un écran LCD (celui du magasin de robot-maker), pour montrer son état. et surtout l'implémentation d'un algorithme de selection génétique pour permettre au robot de trouver tout seul le jeu de paramètre qui lui permet de balancer le plus longtemps en moyenne.

Dans mon cas les paramètres sont au nombre de 6 :

  • La valeur d'accélération et le temps d'accélération de la séquence de démarrage
  • Les coéfficients P,I et D du contrôleur d'équilibre
  • La valeur de l'angle d'équilibre ( ce n'est jamais parfaitement 0)

Pour chaque nouvelle configuration le robot va faire surement 10 tentatives. En retirant les 2 meilleurs, les 2 pires et moyennant les 6 valeurs restantes on obtient le 'score' de cette configuration.

 

Ensuite le principe c'est de prendre 10 configurations aléatoires, consistant en notre génération 0.

On évalue le score de chaque configurations.

On crée la génération 1, par exemple on garde les 4 meilleurs et on les combines 2 à 2 pour créer 6 enfants. On ajoute un peu de mutation aléatoire.

Et on est repartie on evalue la génération 1 et on crée la génération 2.

 

Bien évidemment la difficulté pour obtenir quelque chose qui s'améliore c'est le dosage entre le nombre de configuration par génération, le choix des reproducteurs, l'algo de reproduction, le pourcentage de mutation et l'algo de mutation.

Autant dire que les chances d'aboutir à un robot en équilibre pendant 20s à chaque fois sont plutôt proche de 0, mais c'est l'aventure qui me motive !

 



#10 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 867 messages
  • Gender:Male

Posté 10 janvier 2017 - 09:13

cool ! un algo génétique ! =) 

 

Tu fais ça sur une arduino ? 


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 


#11 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 10 janvier 2017 - 10:16

Oui je fais ca sur le MegaPi de Makeblock, qui est compatible Arduino Mega.



#12 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 661 messages
  • Gender:Male
  • Location:Paris

Posté 10 janvier 2017 - 11:06

Excellent !! Je vais suivre ça avec beaucoup d'attention. ;)

#13 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 867 messages
  • Gender:Male

Posté 10 janvier 2017 - 11:19

J'ai encore rien lu sur la mise en place d'un algo génétique en C =) Jusqu'à présent pour ce genre de chose j'ai uniquement utilisé matlab et ses toolbox =). 
Bon j'ai jamais eu à en utiliser jusqu'à maintenant aussi mais je suis curieux de voir comment ce que tu vas faire. Moi aussi je vais suivre avec attention ;) 

D'ailleurs si tu as des liens que tu utilises pour ton projet ou autre ou mieux encore si l'envie te prend de faire un tuto je suis preneur!  :whistle2:


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 


#14 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 11 janvier 2017 - 09:56

Je vous tiens au courant.

Mais je vais vraiment juste suivre l'algorithme que j'ai decrit.

 

Tout le code de ce robot est la :

https://github.com/Bobox214/Crabeel

 

( et en parallele le code des autres robots que j'ai commence.)



#15 Oliver17

Oliver17

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 425 messages
  • Gender:Male
  • Location:LR
  • Interests:Glenn

Posté 11 janvier 2017 - 12:11

Je trouve ça excellent :)



#16 Oliver17

Oliver17

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 425 messages
  • Gender:Male
  • Location:LR
  • Interests:Glenn

Posté 12 janvier 2017 - 12:53

En visionnant des vidéos sur les sonars suis tombé là dessus.

 

 

Bien sympathique :)



#17 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 661 messages
  • Gender:Male
  • Location:Paris

Posté 12 janvier 2017 - 01:02

C'est ma référence en self balancing !! Mais c'est sans avoir vu celui de bobox :)

#18 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 12 janvier 2017 - 04:50

Crabeel n'est pas une référence, loin de la :)

Il est nativement pas très stable, ce qui rend encore plus difficile son contrôle. A la main, si je le met a son point d’équilibre, sans moteurs actif, il tombe en moins d'une seconde. Il va falloir un contrôle réactif sans overshoot.

On va voir ce que la génétique me trouve ! :) , si elle trouve quelquechose.



#19 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 29 janvier 2017 - 11:01

Bon, quelques petites nouvelles, elles ne sont malheureusement pas toute bonne.

 

La gestion des Configurations et des Generations est faite, l'algorithme de procréation est écrit.

Pour tester ce que ça donne ,j'ai fait une fausse fonction de 'scoring' d'une configuration basée sur ses paramètres, et après une trentaine de génération ça converge, le meilleur configuration de chaque génération à un score de plus en plus élévé qui s'approche doucement du score maximum.

 

Voici les choix de paramétrage de l'algorithme génétique que j'ai choisi:

Une génération consiste en 10 configurations.

J'évalue le score de chaque génération, puis je trie les configurations du plus grand score au plus petit score.

Je garde les 3 meilleurs configurations (1,2,3)

Je fais 2 enfants par couples de configuration suivante :  1 avec 1 , 1 avec 2, 1 avec 3. (oui il y a un peu de parthénogénèse :)

     Pour faire un enfant, je prend pour chaque paramètres au hasard celui du parent 1 ou celui du parent 2 puis je le varie au hasard de +- 10%

J'ai donc 6 enfants.

Pour la dernière entrée, je prends une configuration entièrement au hasard, puis je lui fait faire un enfant avec la conf 1. C'est pour rajouter un peu de sang neuf.

J'ai mes 10 configurations pour la prochaine génération, mais  je vais rajouter un peu de mutation.

Je prends 4 configurations au hasard ( sauf la 1, la meilleur que je ne veux pas toucher), et je 'mute' 2 parametres au hasard.

     J'ai décidé qu'une mutation consistait à modifer un paramètre de +- 50% au hasard.

 

Voilà ma toute nouvelle génération prète à affronter son environement, et à être scorée.

 

 

Mais là je suis tombé sur le 'reality check'. 

En voulant maintenant vraiment faire le scoring de chaque configuration sur le robot lui-même, et voir ce que ça donne en vrai, et bien je viens de voir que la board du robot 'reset' toute seule sur certains chocs.
Et rien à y faire pour l'instant. J'ai changé le connecteur de batterie, j'ai mis un peu de 'mousse' pour amortir. Les chocs ne semblent pas violents, mais ça finit par rebooter au bout d'un certain de nombre de test de balancement.....

 

J'ai tout ce qu'il faut sur le robot pour sauvegarder l'avancement des générations, mais comme ca plante assez vite, ca va etre laborieux de tester et recharger.

 

Je ne sais pas si je vais donner suite sur cette version du robot.



#20 Oliver17

Oliver17

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 425 messages
  • Gender:Male
  • Location:LR
  • Interests:Glenn

Posté 29 janvier 2017 - 11:23

A zut, bizarre ça quelle reboot du à des chocs :(

 

Bon, je vais surement dire une bêtise (une fois de plus), ta carte a bien 4 points de fixation (maintenue par 4 vis ?) ne serait il pas possible de placer à chaque points une sorte de suspension, un ptit ressort, ou amortisseur de modèle réduit ???

 

Tu es bien parti sur ton projet, il serait dommage de bloquer là dessus, un détail, même si il a sont importance.







Aussi étiqueté avec au moins un de ces mots-clés : Makeblock, SelfBalancing

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

0 members, 0 guests, 0 anonymous users