Aller au contenu


Photo
- - - - -

[Maximus] Un empileur de pions !


161 réponses à ce sujet

#1 Jbot

Jbot

    Membre chevronné

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

Posté 15 décembre 2010 - 04:12

Salut !



Etant donné que je vois que des gens commencent à parler de Maximus sur d'autres threads, je crée ce thread histoire de pas polluer celui des autres ^^

Donc me voila avec un nouveau projet (enfin ça fait deux mois que je travail dessus ;) ) !



Le but de ce robot est de participer à la coupe Eurobot2011 (uniquement la coupe de France etant donné que seuls les 3 premiers participent à la coupe européenne).

Une partie dure 1min30, le robot doit être autonome et capable de déplacer des pions sur les cases de sa couleur ainsi que d'empiler les pions. (le règlement se trouve ici : Règlement ).



J'ai donc commencé par faire la partie déplacement du robot, et c'est pratiquement terminé.



L'électronique de la partie déplacement se compose de 2 "cartes" de contrôle :

- Une carte RoboClaw qui fait un asservissement en vitesse (PID) sur les moteurs

- Un ATmega162 qui fait le calcul de position et l'asservissement en position (PD) du robot

Voici un schéma illustrant l'asservissement (pas très compréhensible pour quelqu'un qui n'aurait jamais fait d'automatique je pense ^^)

Image IPB





J'ai aussi mis en place un module ROS (Robot Operating System) permettant de récupérer les informations du robot et de les afficher sur un environnement graphique, ce qui permet de le débugger plus facilement.



Ce robot finira surement comme robot personnel autonome se baladant dans mon appart, mais ça sera sa 2ème vie ca ^^



Maintenant il faut que je m'attaque à la mécanique et à la préhension des pions.



Mon site web qui sert de fil rouge à ce projet :

Le blog du robot Maximus





Et voici une première vidéo de l'interface graphique et du robot :





J'ai ensuite fait un premier prototype de base mécanique pour le robot qui permet uniquement de prendre des pions et de les déplacer, il ne peut pas encore les empiler.

Image IPB

Je n'ai pas encore eut l'occasion de tester le bon fonctionnement de la chose, il me manque encore des composants et surtout il faut que je code un "cerveau" au robot pour qu'il cherche les pions et les attrape.



Au passage, j'ai implémenté l'asservissement que j'avais fait sur une carte arduinoMega pour permettre la réutilisation facile du code par un peu n'importe qui. Le code est disponible ICI. Il y a eut pas mal de modifications à faire pour que ca marche sur l'arduino mais bon, maintenant ca semble fonctionner (sauf qu'il faut que je change mes constantes de PID étant donné que la fréquence des timers a changé !).



Voici maintenant une petite vidéo du robot en autonome. Ce test est surtout fait pour l'homologation et un début de match. Le but est de prendre un pion est d'aller le mettre directement en zone protégée pour s'assurer 10 points à tous les matchs.





Ensuite une petite vidéo ou le robot est en mode "dés que tu trouve un pion, tu le mets sur une case bleu (y a juste B sur les cases :p)":





J'ai ensuite recu les arduinos que j'avais commandées.

Image IPB



Du coup, j'ai pu créer divers modules séparés (Un module assevissement deja fait, un module A.I., un module LCD pour choisir la couleur de départ). J'ai aussi créé un petit module pour allumer et eteindre le robot et qui possede aussi un arret d'urgence obligatoire pour la coupe.

Au passage j'ai fais une nouvelle version de la mécanique, permettant d'ajouter des étages facilement.

Une petite vidéo du LCD et de l'arret d'urgence :



Etant donné que j'ai grillé la carte de contrôle des moteurs de propulsion, j'ai installé la courroie qui va permettre de faire monter et descendre les pions. C'est beaucoup plus rapide que la technique de la tige filetée que j'avais testé précédemment.



Une petite vidéo

Voici l'ancien test que j'avais fait avec une tige filetée.



Pour guider l'elevateur, je me suis tourné vers les coulisses à bille de tirroir. C’est une solution pas chère et plutot efficace pour faire uniquement un mouvement rectiligne.



J’ai donc commencé a bricoler un peu le robot pour pouvoir lui mettre ses deux glissieres :

Image IPB



Il fallait ensuite un moyen d’attacher la pince à la courroie. J’ai décidé de faire un petit systeme de fixation avec 2 vis qui vont venir pincer la courroie et ainsi fixer le portique à la courroie :

Image IPB



Et voici une première vidéo du fonctionnement. Ce n’est pas encore tout à fait au point mais ça devrait plutot bien marcher en bidouillant un peu :

=> La vidéo <=



Fiouuu, ça a été beaucoup plus long que prévu !

J'ai fais une petite pause robotique, du coup j'ai pris du retard.



Voici les nouvelles :



J'ai fais une nouvelle base mécanique pour les roues et l'ascenseur.

Face Avant :

Image IPB

Face Arrière (il y aura les cartes électronique dessus) :

Image IPB



Cette fois c'est une base tout en métal donc ça sera la dernière version.

L'ascenseur est fait toujours avec les glissières de tiroir. On peut les voir sur cette image :

Image IPB

Il y a de petit micro-rupteur en haut et en bas pour arrêter automatiquement l'ascenseur :

Image IPB



La vidéo de test.



Ensuite, j'ai rajouté des encodeurs séparé des roues motrice pour permettre de se positionner même si les roues motrices dérapent.

Image IPB



Bon, après une petite aprem à installer l'électronique, j'ai pu avancer un peu.

Image IPB

Image IPB



C'est un bon gros tas de cable mais bon c'est ça qu'on aime ! :D



J'avais déjà mis une p'tite image sur les asservissements que je fais sur ce robot mais je vais reprendre ici ;)

Image IPB



Comme on peut le voir, il y a un double asservissement:

- A droite : un PID en vitesse pour chaque moteur qui est fait par la carte RoboClaw

- A gauche : un asservissement polaire PD fait par une arduino



L'asservissement polaire consiste à asservir l'angle et la distance du robot.

En fait on asservit 2 moteurs virtuel, un qui représente la distance ( = (distance_gauche + distance_droite) / 2 ) et un qui représente l'angle ( = distance_droite - distance_gauche).

Aprés ça reste des PID et PD basique donc il faut régler les gains et c'est chiant :p



Lien d'une petite vidéo de test faite ce soir ;)



Bon, pour ce qui est de l'estimation de position c'est pas encore ça, je cherche pourquoi c'est si peu précis :s



Une grande partie de la théorie peut etre trouvé ici : Lien



Voici une petite vidéo de l'estimation de position. ca marche plutot pas mal. Je lui fais faire des rectangle pour voir si il sait toujours ou il est, et il n'y a pas trop de déviation.



La vidéo de démo.



Voila, c'est tout pour le moment, j'updaterais au fur et à mesure que je progresse ;)

#2 roboner-RX

roboner-RX

    Membre

  • Membres
  • 36 messages

Posté 15 décembre 2010 - 04:24

Jolie projet, sa fait déjà un mois que je suis ton projet et je trouve que tu avance vide

Tes arduinos tu l'ai a pris sur qu'elle site?

#3 Jbot

Jbot

    Membre chevronné

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

Posté 15 décembre 2010 - 04:39

Sur ebay :D
C'est beaucoup moins cher meme si ce n'est que les version 2009. (moitier prix)

#4 arthael

arthael

    Membre passionné

  • Membres
  • PipPipPip
  • 479 messages
  • Gender:Male

Posté 15 décembre 2010 - 05:04

il est vraiment bien ce robot. bien joué ;)

#5 Esprit

Esprit

    Pilier du forum

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

Posté 15 décembre 2010 - 05:12

Content de voir un peu plus d'infos sur Maximus, bien qu'il y ait déjà pas mal de choses sur ton blog.

Dis moi, à part baver sur ce que tu as déjà fait et te dire que j'aime beaucoup l'asservissement des moteurs avec les boucles de régulation, j'ai une question. Comment est-ce qu'il repère les cases "bleues" ? Il fait la différence entre le R et le B ou bien il compte assez bien pour savoir où il est à chaque instant et où se trouvent les cases et donc les déplacements à faire ?

#6 Jbot

Jbot

    Membre chevronné

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

Posté 16 décembre 2010 - 09:53

Il compte assez bien pour savoir à chaque instant ou il est (avec 1mm de précision en gros), et l'endroit ou se trouvent les cases est connu. Donc il calcul la distance la plus proche entre sa position et toutes les cases bleus et il pose sur la plus proche.

C'est d'ailleurs grace au fait qu'il connaisse en permanence sa position que je peux le visualiser sur l'interface graphique.

#7 Esprit

Esprit

    Pilier du forum

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

Posté 16 décembre 2010 - 08:03

1mm de précision, c'est assez impressionnant !

Et plus tu fais de mouvement plus tu décales ou tu as un systèmes qui recalcule régulièrement la position ? Très intéressant en tout cas !

#8 Jbot

Jbot

    Membre chevronné

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

Posté 16 décembre 2010 - 08:10

Plus je me déplace et plus je décale, par contre je peux me recaler contre un mur si nécessaire (pas encore fait la fonction mais c'est très utilisé cette méthode)

#9 Jbot

Jbot

    Membre chevronné

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

Posté 05 janvier 2011 - 11:12

Hop une petite news !

Etant donné que j'ai grillé la carte de contrôle des moteurs de propulsion, j'ai installé la courroie qui va permettre de faire monter et descendre les pions. C'est beaucoup plus rapide que la technique de la tige filetée que j'avais testé précédemment.



Une petite vidéo



Voici l'ancien test que j'avais fait avec une tige filetée.

#10 Hexa Emails

Hexa Emails

    Membre passionné

  • Membres
  • PipPipPip
  • 439 messages
  • Gender:Male

Posté 06 janvier 2011 - 02:20

Ouh les jolis arcs électriques! :D
Je n'ai pas compris comment mécaniquement tu comptes t'y prendre pour faire monter les pions avec la courroie?
J'ai lu les articles de ton site avec attention, et je dois dire que ça m'impressionne pas mal!
La carte que tu as grillé c'est un Shield Arduino?
Bon courage et bonne continuation en tout cas!

P.S.: le bouton d'arrêt d'urgence c'est vraiment trop la classe, ça me fait rêver :p

#11 Jbot

Jbot

    Membre chevronné

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

Posté 06 janvier 2011 - 02:33

[quote"MrAlexis44600"]
Je n'ai pas compris comment mécaniquement tu comptes t'y prendre pour faire monter les pions avec la courroie?[/quote]
Ben je vais fixer une "pince" a la courroie et lorsque j'attrappe un pion, je le monte. :p

[quote"MrAlexis44600"]
La carte que tu as grillé c'est un Shield Arduino?[/quote]
Non c'est une carte indépendante qui permet de piloter les moteurs de 10A avec des encodeurs.

[quote"MrAlexis44600"]
P.S.: le bouton d'arrêt d'urgence c'est vraiment trop la classe, ça me fait rêver :p [/quote]
C'est important d'avoir un arret d'urgence quand on fait un robot lol.


#12 Jbot

Jbot

    Membre chevronné

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

Posté 12 janvier 2011 - 10:13

Voici une petite mise à jour à propos de l'elevateur du robot :D



Pour guider l'elevateur, je me suis tourné vers les coulisses à bille de tirroir. C’est une solution pas chère et plutot efficace pour faire uniquement un mouvement rectiligne.



J’ai donc commencé a bricoler un peu le robot pour pouvoir lui mettre ses deux glissieres :

Image IPB



Il fallait ensuite un moyen d’attacher la pince à la courroie. J’ai décidé de faire un petit systeme de fixation avec 2 vis qui vont venir pincer la courroie et ainsi fixer le portique à la courroie :

Image IPB



Et voici une première vidéo du fonctionnement. Ce n’est pas encore tout à fait au point mais ça devrait plutot bien marcher en bidouillant un peu :

=> La vidéo <=

#13 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 12 janvier 2011 - 11:31


Ben je vais fixer une "pince" a la courroie et lorsque j'attrappe un pion, je le monte. :p


OK je comprend nettement mieux avec la vidéo maintenant ;)

en regardant les première vidéos, j'avais imaginé en faite, un système de vis sans fin + écrous ( a la maniéré de cette photo )



Image IPB



(oui je sais j'ai trop d'imagination :tare: )





ps : mécaniquement ça a l'aire de coincer un peu au niveau de tes glissière de tiroir

en tous cas bon boulot !!!





#14 Jbot

Jbot

    Membre chevronné

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

Posté 12 janvier 2011 - 01:11

Ben à la base j'avais en effet pensé à un systeme comme ca avec une tige filetée mais c'etait trop lent à monter et descendre ^^

J'avais fais un ptit test.

#15 Esprit

Esprit

    Pilier du forum

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

Posté 12 janvier 2011 - 01:56

Salut Jbot, c'est toujours chouette de voir tes avancées. :)

Mais dis-moi, j'ai l'impression que tes "coulisses à billes" vibrent pas mal ? Tu as déjà envisagé une solution pour ça ? J'imagine que mettre une structure qui les rendrait solidaire l'un de l'autre pourrait les stabiliser un peu, non?


#16 Jbot

Jbot

    Membre chevronné

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

Posté 12 janvier 2011 - 02:17

Oui je pense que je vais faire un bloc en une piece d'alu pliée pour faire le dessous et les deux cotés du robot. Du coup ca devrait etre un peu mieux. Je vais voir ca cette semaine ou la semaine prochaine.

Je vais aussi refaire la pince je pense.

Toute idée est d'ailleurs la bienvenue :D

#17 Esprit

Esprit

    Pilier du forum

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

Posté 12 janvier 2011 - 07:44

Pour refaire la pince ?
Les pions que tu dois saisir sont circulaire comme le bout de tuyau en PVC que tu utilises dans une vidéo j'imagine ?

Peut-être prévoir des pinces plus larges et avec des anti-antidérapants ? (genre des carrés de caoutchouc collé sur la pince...)



#18 Jbot

Jbot

    Membre chevronné

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

Posté 05 mars 2011 - 12:31

Fiouuu, ça a été beaucoup plus long que prévu !

J'ai fais une petite pause robotique, du coup j'ai pris du retard.



Voici les nouvelles :



J'ai fais une nouvelle base mécanique pour les roues et l'ascenseur.

Face Avant :

Image IPB

Face Arrière (il y aura les cartes électronique dessus) :

Image IPB



Cette fois c'est une base tout en métal donc ça sera la dernière version.

L'ascenseur est fait toujours avec les glissières de tiroir. On peut les voir sur cette image :

Image IPB

Il y a de petit micro-rupteur en haut et en bas pour arrêter automatiquement l'ascenseur :

Image IPB



La vidéo de test.



Ensuite, j'ai rajouté des encodeurs séparé des roues motrice pour permettre de se positionner même si les roues motrices dérapent.

Image IPB



Voila en gros les news !

Objectif du week-end, tester les roues codeuses et le positionnement.

#19 robocop

robocop

    Membre passionné

  • Membres
  • PipPipPip
  • 357 messages
  • Gender:Male

Posté 05 mars 2011 - 01:36

Très propre. Bravo !



#20 Esprit

Esprit

    Pilier du forum

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

Posté 05 mars 2011 - 05:39

Team : SMART... :D

C'est cool tout ça dit-moi ! C'est propre, ça brille, ça marche nickel. Rien à dire ! ;)
On attend patiemment la suite.

Et dis-moi, tu fais un PID sur tes moteurs pour tes déplacements ? Si oui, tu penses que tu pourrais détailler un peu ? Ou me donner quelques pistes/documents/liens ? :)



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users