Aller au contenu


Photo
- - - - -

[PROJET GYROPODE] Robot équilibriste : Magellan !


160 réponses à ce sujet

#1 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 06:43

Sujet en évolution ! ;)

Dernière mise à jour : 7 janvier 2010


En cours : J'ai décidé le nom du robot : Magellan ! (explications plus bas)

Choix de la partie purement mécanique (chassis en plexi, moteurs, ...) et dessins sur ordinateurs des pièces en plexi. (Je découvre les programmes de CAO qui tournent en natifs sur Ubuntu pour le moment...)

Le 3 janvier : Ajout d'une première ébauche de schéma sérieux.




Suite à la discussion sur l'orientation de mon nouveau projet, je lance ce sujet-ci pour parler du choix vers lequel je me dirige et des avancées déjà réalisées.





Le robot fonctionnera sur le principe du pendule inversé. Les exemples sont nombreux à l'heure actuelle. (vidéo, robot sur une balle, ... )



Ça va m'obliger à faire un asservissement béton au niveau des moteurs et aussi d'utiliser toute une série de capteurs rien que pour l'équilibre de la base mécanique.



Voilà, la base est lancée, le projet suit son cours, ça cogite ! ;)





J'ai un peu remis en forme les différents morceaux de posts.

Pour essayer d'augmenter la visibilité globale du sujet.

#2 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 07:29

Pour éviter de tout concentrer sur le premier post et éviter qu'il ne se transforme en un gros bordel illisible, j'ai décidé de partager les réflexions, recherches et solutions choisies en plusieurs catégories, répartie sur divers posts.



[/size]



Le tout sera dimensionné (épaisseur du plexi, moteurs, ...) pour un poids maximal de 10kg.

Il est très probable qu'au départ et peut-être même au final la mécanique soit légèrement voir clairement sur-dimensionnée. Mais comme je vise le côté évolutif, je préfère prévoir large dès le départ.



Chassis :




La base mécanique sera un cercle de 50cm de diamètre, en plexiglass, sur laquelle seront fixé deux moteurs (sans doute brushless) et donc deux roues.



Il y aura par la suite plusieurs "étages", pour séparer les différentes fonctionnalités du robot. (Contrôle de moteurs, ... )



Choix des moteurs :

Je m'oriente vers du moteur brushless, pour sa facilité d'entretien et son couple constant quelle que soit la vitesse.



Calculs de couple :

...

#3 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 07:31

II. Électronique



Bien évidemment, il est impossible de faire tenir un robot en équilibre sur deux roues sans une série de capteurs et une électronique bien ficelée ! Il va falloir prévoir une centrale inertielle. (Ou deux capteurs de lumière ou IR pour commencer et faire les premiers essais...)



Carte de contrôle des moteurs :

...



Choix des capteurs :

Centrale inertielle : J'ai vu sur le site de Jbot qu'il utilisait le CHR-6 dm pour la centrale inertielle.

Je regarde dans ce sens mais il a l'air assez complet. :)



On m'a parlé du filtre Kalman pour gérer la stabilisation. J'attends d'avoir du temps pour creuser plus

Pour ce que j'en ai déjà vu, le filtre de Kalman a l'air relativement complexe à mettre en place. Il est probable que dans un premier temps j'opte plutôt pour un "simple" asservissement PID, quitte à évoluer ensuite vers un filtre de Kalman..



Et ça, ce n'est que pour le faire tenir en équilibre, ensuite j'ajouterai divers capteurs qui lui permettront de "voir" les obstacles.



Field pour l'arduino :

...





#4 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 07:32

III. Programmation



Je possède déjà une Arduino Mega. Il est très probable qu'elle finisse sur le robot pour pouvoir servir enfin sérieusement. ;)

Il est probable que je fasse un shield spécial pour le robot. Afin de pouvoir récupérer l'Arduino facilement, au besoin.

#5 lordcuty

lordcuty

    Habitué

  • Membres
  • PipPip
  • 298 messages

Posté 01 janvier 2011 - 08:22

jolie début et bonne chance.... après il sera censé faire quoi une fois que il tient droit?

#6 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 08:36

Après, il y a encore énormément de choses à lui faire faire ! ;)
(C'est un côté que je veux mettre en avant, le côté évolutif...)

La première étape, c'est de le faire tenir droit, le plus stable possible.
Ensuite, le faire se déplacer. D'abord suivant des chemins préprogrammés, après lui intégrer des capteurs pour le laisser se balader de manière autonome. (Capteurs IR sans doute...)

Après ça, pourquoi ne pas lui intégrer un programme de cartographie ? ;)

L'ultime étape serait de rajouter sur le haut ( il faut déjà qu'il fasse une certaine hauteur ), ma tête CBN-002. Et donc il faut que je prévois la place pour mettre un ordinateur (j'ai un 12") ou bien un ordinateur mono-carte peut-être... Pour gérer les webcams avec OpenCV.

Enfin voilà, les possibilités sont infinies ! ;)

#7 lordcuty

lordcuty

    Habitué

  • Membres
  • PipPip
  • 298 messages

Posté 01 janvier 2011 - 08:48

arf oui sacrément évolutif... autonome ou dépendant de ton ordi?
et sinon au niveau des batteries?
après faut vraiment que se soit évolutif car ajouter comme sa un 12" c'est pas possible partout...


#8 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 09:04

Sacrément évolutif oui ! C'est un projet sur le long terme. ;)
J'aimerais que toute la partie motorisation, équilibre et déplacement (avec ou sans capteurs) soit gérée sur l'Arduino Mega.

Pour l'ordinateur, c'est juste que si je veux mettre ma tête CBN avec les deux webcams dessus, l'Arduino ne sera pas du tout suffisante... :D Mais un 12", c'est loin d'être énorme. (C'est le petit que j'avais à Caprica²)
Il pèse ~1,5kg et en taille, il fait ~30*20*4 cm. C'est facile à caser dans un robot, surtout qu'il y aura de la place...
Et il tient plus de 2h sans problèmes quand je travaille dessus, donc si j'éteins l'écran et qu'il tourne juste pour la cartographie et les webcams, il devrait tenir bien plus longtemps que les batteries du robot. (Sans doutes des Lithium (Lipo) )

50cm de diamètre, sur plusieurs étages, ça laisse de quoi rêver. ;)

#9 Robot33

Robot33

    Nouveau membre

  • Membres
  • 2 messages

Posté 01 janvier 2011 - 10:42


Sa de quoi rêver sa tu la dit mes après il faut tout installer et après faut voir parce que sur plusieurs étages sa va être difficil après qui ne tente rien a rien !

#10 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 01 janvier 2011 - 11:53

Pourquoi est-ce que cela serait difficile de faire plusieurs étages ?

(Je parle de quelque chose dans le genre de ce Ballbot quand je parle de plusieurs étages. Bien que je ne pense pas que j'irai aussi haut avec mon robot...)



Et puis, je ne suis pas pressé.

(Enfin si, j'ai hâte mais ce n'est pas pareil... ;) )

#11 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 02 janvier 2011 - 09:50

Bonjour. Chouette projet.

Avant de mettre une centrale inertielle, tu peux développer le pendule inversé avec de simples capteurs de lumière (un à l'avant, un à l'arrière) qui regardent le sol : une fois étalonnés, la différence des deux capteurs te donne ton assiette.

C'est ce que nous avons fait sur nos Legway et ça marchait bien. E-vo-lu-tif qu'y disait :) et surtout ça te sera utile pour calibrer ta centrale inertielle (voir comment elle réagit quand le robot se maintient en équilibre).

Plutôt que Kalman, on a utilisé des PID. C'est plus simple à mettre en œuvre.

#12 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 02 janvier 2011 - 10:12

Avant de mettre une centrale inertielle, tu peux développer le pendule inversé avec de simples capteurs de lumière (un à l'avant, un à l'arrière) qui regardent le sol : une fois étalonnés, la différence des deux capteurs te donne ton assiette.




J'avais pensé au départ à un principe dans ce genre là effectivement... C'est en voyant ce qui avait déjà été fait que j'ai pensé centrale inertielle... Mais pourquoi pas ? Je pourrais imaginer commencer par deux capteurs de lumières comme tu dis (tu as des références précises?). De toute façon, même si je mets au final une centrale inertielle, je pourrai les réutiliser plus tard, soit sur ce projet-ci soit pour un autre, ça ne sera jamais perdu !



[edit: J'ai été jeté un oeil sur ton site. Tu y donnes toi-même un des inconvénient de cette méthode :

"Le résultat est encourageant, mais comme initialement constaté, la solution à base de capteurs lumineux est très dépendante de l’ambiance lumineuse, et aussi de la couleur et de la réflectivité du sol."



Quid si le robot doit se déplacer sur un sol en pavé noirs et blancs ? As-tu testé cette possibilité ? J'ai l'impression qu'il risque juste de bien se planter... Même constat si le sol n'est pas parfaitement horizontal (il va essayer de s'orienter perpendiculaire au sol et risque donc de tomber...)



Corrige moi si je me trompe mais il me semble que c'est loin d'être une solution idéale. /fin edit]



[edit2: Effectivement, toujours sur ton site, tu confirmes :

"L’utilisation d’un gyroscope dans un robot équilibriste est la meilleure solution et même si son étude est techniquement complexe, les résultats sont à la hauteur des attentes et des efforts." /fin edit2]



Plutôt que Kalman, on a utilisé des PID. C'est plus simple à mettre en œuvre.




C'est VersatileRobot (le papa de R.E.G.I.S.) qui m'a parlé de Kalman. Pour ma part je ne connaissais pas et j'avais également pensé au PID que je vois et utilise à l'école...



Selon lui, Kalman c'est le plus efficace pour éviter les balancements et obtenir quelque chose le plus à l'équilibre possible.

Cependant, c'est peut-être plus compliqué et pas nécessaire ?



Dans tous les cas, je peux toujours travailler la partie mécanique (choix des moteurs, choix des contrôleurs moteurs, etc...) et je verrai à ce moment là pour le choix de l'asservissement. C'est toujours bien d'avoir différents avis ! ;) Merci pour la réponse.

#13 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 03 janvier 2011 - 10:16


Même si une solution a des inconvénients, il est toujours intéressant de l'étudier par soi-même quand elle est simple et peu onéreuse. Il faudra bien sûr travailler dans des conditions réduites : sol uniforme, éclairage non localisé (sans ombres).

Mais ce que tu découvriras te sera utile pour passer à une solution plus performante : ne serait-ce que de situer le centre de gravité de ton robot (y avais-tu pensé ?), observer sa façon de tomber (imaginais-tu qu'il puisse tomber plus ou moins vite de chaque côté selon la répartition des masses ?), modifier la mécanique, l'électronique et la programmation pour obtenir les accélérations nécessaires au rétablissement de l'équilibre (as-tu une intuition sur l'accélération nécessaire, plus rapide au début ou vers la fin de la chute ?).

Il faut être méthodique : la robotique, c'est facile, même parfois trop car si on néglige les étapes les plus simples, on perd son temps et on n'apprend finalement pas grand chose car la solution est souvent sur-dimensionnée parce qu'on n'a pas pris le temps de trouver une solution simple (changer la place du pack de batterie, mettre un simple coefficient multiplicateur, changer la fréquence de l'asservissement).


#14 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 03 janvier 2011 - 10:32

Merci pour ces réponses, c'est vraiment intéressant comme retour d'expérience ! :)

Pour le centre de gravité, j'y avais effectivement pensé. Je comptais répartir le poids au mieux pour essayer que le robot soit déjà le plus proche possible de l'équilibre sans rien faire, pour diminuer dans tous les cas les efforts demandés au moteurs.

Pour l'accélération, c'est également une bonne remarque... Je dirais, à l'intuitif, qu'on doit accélérer rapidement au départ puis décélérer de manière progressive jusqu'au point d'équilibre. Mais c'est vrai que ce n'est qu'une intuition et que je ne me base sur rien pour dire ça, juste sur ce que j'imagine.


Je vais peut-être reconsidérer la question sur l'utilisation de petits capteurs de lumière. ;) C'est vrai que le temps de rôder la mécanique, ça peut-être une solution suffisante. Bien qu'à terme, elle ne me semble pas assez efficace sur tout type de sol...


[Edit: Tant que je passais par là, j'ai ajouté le dessins que j'ai fais hier sur libreCAD (équivalent AutoCad sur Ubuntu) sur le premier post.

#15 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 07 janvier 2011 - 10:42

Bonjour à tous !



En buvant mon café tranquillement ce matin, je me suis demandé quel nom je pourrais bien donner à ce robot en construction progressive dans les méandres de ma boite crânienne. Je me suis dis qu'il fallait être vachement courageux pour oser se balader ainsi sur deux roues.



Si on me disait "tiens, voilà deux roues, débrouille-toi !"... Soit je flipperais, soit je me sentirais comme un aventurier, partant découvrir le monde sur mes deux roues. Une banane à roulette*, ouais! Je vois ça d'ici...



Un aventurier ? Mmmh, oui. Pourquoi pas... Ou un explorateur ? D'accord... Mais lequel ? Vous êtes ici dans mes réflexions profondes du réveil caféiné.



Que dis notre bon vieux google si je lui mets aventurier ? Ah... J'arrive sur http://www.jesuismort.com/ ... Ah tiens, C.Colomb ? Nan... J'entends les blagues vaseuses d'ici. Ah Magellan. Qu'est-ce qu'il a encore fait celui-là ? Le premier tour du monde en bateau, non ? Vérification rapide sur notre cher Wikipedia...



Alors, qu'est-ce que ça dit ?

"Fernand de Magellan... né aux environs de 1480... Il est connu pour être à l'origine de la première circumnavigation de l'histoire... "

Circumnavigation ? Qu'est-ce que c'est encore que cette bête là ? Bah, clique dessus et tu sauras, bêta ! :D



Effectivement, l'homme a bien fait le premier tour du monde. Explorateur digne de ce titre. Un bourgeois avec un petit "de" en plus... Un gars bien... Qui a dit "ironie" ?



Vendu ! Mon robot s'appellera Magellan !!





Pour ceux qui ont sauté une partie, voici le résumé :

Mon robot s'appellera Magellan !!





Merci à tous de continuer à lire mes délires matinaux. ;)



*Pour la Banane à roulette, c'est comme ça que mon père m'appelait quand je disais des conneries, étant gosse... :D

#16 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 07 janvier 2011 - 11:55


*Pour la Banane à roulette, c'est comme ça que mon père m'appelait quand je disais des conneries, étant gosse... :D




Je t'appellerais comme ça la prochaine fois que je te vois. :p

#17 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 07 janvier 2011 - 11:58

C'est pas là dessus que tu devais réagir... :D

#18 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 12 janvier 2011 - 06:04

Bonjour à tous !



Alors, quelques petites infos, parce que ça bouge quand même tout doucement.

Magellan est enfin présent sur Le Chipoteur de Brols, mon blog sur Cubernetes. (Voir l'article qui lui est dédié)



Ensuite, j'ai promis à certains d'avoir des choses à leur montrer pour le prochain workshop de l'Association Caliban, qui sera normalement début février. Du coup, il faut que je me bouge ! :D



Il reste des grosses questions en suspens actuellement.



1. Comment bien choisir mes moteurs brushless ?

Je suis pour l'instant un peu perdu dans la quantité des moteurs brushless vendus sur internet. Quelles sont les caractéristiques à regarder ? Je vois beaucoup de "kV", si je ne me trompe pas ça représente la vitesse obtenue par volt ?



D'après mon livre "Electrotechnique" de T.Wildi, j'ai cette formule :

C = k . I . B



k = constante en fonction des dimensions du moteur et du nombre de spire par bobine.

I = courant

B = densité du flux du champ magnétique



Comment savoir "k" ? Si je prends, au hasard, ce moteur là, comment calculer son couple ? Je vous avoue que je suis un peu perdu...





2. Vaut-il mieux acheter un contrôleur "tout fait" ou bien en faire un moi-même ? J'ai peur que finalement ça me coùte encore plus cher...

J'aimerais rester dans une fourchette acceptable pour les deux moteurs et les deux contrôleurs... (<100€ au grand grand max!)





3. Comment bien choisir la centrale inertielle ?

J'ai vu que Jbot utilisait une CHR-6 dm, est-ce que ça conviendrait ? Quelles sont les caractéristiques à vérifier ?



J'ai vu à divers endroits des centrales inertielles à 3 axes ou 6 axes ? Qu'est-ce que ça change ?





(Bon, je balance tout ça en vrac, un peu brouillon... Désolé... :s )



Merci d'avance



#19 Hexa Emails

Hexa Emails

    Membre passionné

  • Membres
  • PipPipPip
  • 439 messages
  • Gender:Male

Posté 12 janvier 2011 - 06:15

Pour ta question 1:
C=k*I
et V=k*Oméga (oméga en rad.s^-1)
le k est le même dans ce "cas"! Par contre c'est de la théorie hein, en régime établi avec un modèle simplifié de moteur... Ce que je ferais à ta place c'est prévoir un rapport de réduction énorme, c'est ce qui est utilisé quasiment partout et c'est pas pour rien: les moteurs électriques ne sont pas vraiment fait pour fournir du couple en tournant à basse vitesse.
Question 2:
Si tu peux le prendre tout fait, il n'y a (presque) que des avantages!
Peut être que c'est un peu plus cher, mais si on compte les composants qui grillent (dans mon cas^^) cela est peut être équivalent, avec moins de temps dépensé. Après ça peut faire partie de ce qui t'intéresse...
(N.B. moi je construit un contrôleur pour moteurs CC, car niveau puissance je ne trouve pas ce qui me convient à moins de 30€)

bon courage!

EDIT: j'ai dit des bêtises, c'est bien C(t)=k*I(t) mais c'est E(t)=k*Oméga
la différence:
U(t)= R*I(t)+L*di/dt +E(t)
Donc en gros je ne suis pas sur que mes formules t'avancent à grand chose.
Et cela concerne toujours un régime établi, dans un modèle simplifié de moteur (type RLE: résistance-inductance-source de tension)

EDIT²: j'ai regardé le lien du moteur, ils donnent la puissance; ce n'est pas la puissance électrique mais bien mécanique je crois: P=Couple*Oméga. Tu peux donc calculer le couple. je crois.

EDIT^3: promis j'arrête... oublie les formules, ça concerne les moteurs à balais :| par contre pour la puissance, je pense que c'est bien cela. ce serait tellement plus simple de trouver la doc technique...

#20 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 12 janvier 2011 - 10:24

Merci pour tes réponses. C'est vrai que ce serait plus simple avec de la bonne documentation. J'ai déjà un peu cherché mais je n'ai encore rien trouvé d'extraordinaire... Il y a quand même cette explication du moteur brushless assez bien faite ici.



Je continue de chercher...



Je commence aussi à me demander si c'est vraiment intéressant d'utiliser un moteur brushless. J'ai des moteurs à balais qui trainent chez moi, je pourrais les utiliser dans un premier temps, quitte à passer ensuite à des moteurs plus performants.



[edit : J'ai trouvé un pps sympa qui explique bien les moteurs brushless. cadeau !



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users