Aller au contenu


Photo
- - - - -

Bras robotisé qui écrit


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

#1 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 26 octobre 2010 - 11:56

Bonsoir a tous et a toutes !

Je suis en train de réfléchir a une solution pour faire écrire un bras robotiser .
je m'explique ! je chercher un algorithme ou un truc dans le genre qui me permettré d'envoyer des trames a mon bras en séries mais de façon automatique!!
En fet, il faudrait que en fonction d'un caractère( ASCII ) a écrire par le bras un programme définisse les valeurs a envoyer au contrôleur de servos pour reproduire le caractère avec le bras.

mon module est équiper d'un bras de type AL5D de chez lynxmotion et d'un contrôleur ssc32.
Le problème est que je suis a cour d'idée !

Quelqu'un pourrait-il m'aider ? :rolleyes:

#2 Jbot

Jbot

    Membre chevronné

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

Posté 27 octobre 2010 - 08:36

Salut,

J'avais fais quelque chose dans ce genre à une époque (http://kriegel.joffrey.free.fr/?p=65 dans la 2eme partie de la vidéo).

En fait moi j'avais calculé a l'avance pour chaque lettre les offset (x,y,z) à faire. Et ensuite quand j'envoyais une un caractere (lettre) sur le port série, le robot reproduisait la lettre suivant les offsets prédéfinis. C'est la méthode la plus simple. Aprés tu peux peut etre faire un programme qui te calcule lui meme les offsets a faire pour chaque lettre mais bon, je n'ai pas de solution la ^^

(Par contre la qualité de l'écriture n'etait pas géniale a cause des servos qui n'etais pas trés puissant et du bras fait en bois donc pas précis du tout :D )


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#3 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 11:20

Bonjour Jbot !

Tout dabord merci pour ta réponse ! je suis aller voir ton site ! il est super!
Pour ce qui est du bras, c'est une bonne idée d'avoir calculer les offset préalablement!
Moi j'utilise une foxboard LX832 pour executer le programe et apré un SSC32 pour controler les servo ( je ne sait pas si tu connai ces cartes)
Pour ce qui est du bras, c'est un AL5D de chez lynxmotion assez précis!
Par contre, étant donné que je suis débutant en programmation, pourrait tu me donner un exemple d'offset ?
En fonction des lettre que tu veux écrire , tu envoi des trame prérégler en fait ?
Cela t'as pris combien de temps a trouver les offset ?

#4 Jbot

Jbot

    Membre chevronné

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

Posté 27 octobre 2010 - 12:12

Moi j'avais utilisé une SSC32 aussi pour piloter les moteurs avec un microcontrolleur ATmega.
Les offsets etaient stockés dans le microcontrolleur qui communiquait directement avec la SSC32 et le pc.
Lorsque j'envoyais un caractere depuis le pc vers le microcontrolleur, il allait chercher les offsets a faire pour cette lettre et donnait les ordres a la SSC32.
Par exemple pour le "A", si l'axe X est cette direction -->
et l'axe Y cette direction
/\
|
|

on aura :
(X, Y, Z) On considere le bras en position levée (le stylo ne touche pas le tableau de base)
(0, 0, 2) pour que ton bras positionne le stylo contre le tableau
(0.5, 2, 2)
(1 , 0 , 2) On a fait la partie principale du A, il manque la barre au milieu
(1, 0, 0) On leve le stylo
(0.75, 1, 0)
(0.75, 1, 2) On commence la barre
(0.25, 1, 2) On fini la barre
(0.25, 1, 0) Fini !

Pour trouver tout l'alphabet ca va te prendre 1H en gros, c'est assez chiant mais pas compliqué. Tu trace chaque lettre sur du papier quadrillé c'est le plus simple.


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#5 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 12:25

parfait !

mais aprés pour envoyer les trames au ssc32 ( #1P1500 ... ) comment sa ce passe?

C'est en fonction de la position de x, y et z que le µc fourni au ssc32 les trames ?

#6 Jbot

Jbot

    Membre chevronné

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

Posté 27 octobre 2010 - 12:54

C'est en fonction de la position de x, y et z que le µc fourni au ssc32 les trames ?


Ouep, avec la cinématique inverse du bras, tu sais que tel (x, y, z) se fait grace à telle position des servomoteurs.


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#7 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 01:37

très bien ! merci !

Je vais essayer sa !

#8 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 02:00

Par contre, je viens de penser, quand on a des courbes ( comme le B par exemple ) comment sa se passe pour définir les coordonnées ???

#9 Jbot

Jbot

    Membre chevronné

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

Posté 27 octobre 2010 - 02:26

Par contre, je viens de penser, quand on a des courbes ( comme le B par exemple ) comment sa se passe pour définir les coordonnées ???


Ha ben les courbes tu peux pas trop, ou alors faut faire plein de petits segments d'affilé mais ca devient vite chiant. Vaut mieux que t'essaies de faire des caractere carré ou du moins avec que des segments droits.
._
|.. \
|. . |
|_. /
|.. \
|. . |
|_./

Sans les ptits points ca ressemble a un B :P


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#10 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 02:39

Lol merci des conseil Jbot !

Je vais y travailler !

Merci !

#11 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 04:44

Jbot,

en quel langage tu avait programmer ces offset ??

Il y a quelque chose que j'ai mal compris ! c'est comment les coordonnées ( x,y,z) peuvent être converti en trame pour le ssc 32 ... :blush:

#12 Thot

Thot

    Membre passionné

  • Membres
  • PipPipPip
  • 327 messages
  • Gender:Male
  • Location:Toulouse
  • Interests:Artiste Roboticien, prendre les dernières techno et les mettre sur scène... telle est ma devise.
    Gestuelle et conscience artificielle.
    Bipédie et quadrupédie

Posté 27 octobre 2010 - 09:12

Salut,

La difficulté que tu as dans ce que tu veux faire c'est que tu sais que tu veux mettre la pince de ton robot aux coordonnées (X,Y,Z) par exemple au centre de la feuille (0,0,0).

Pour cela, il faut que tu donnes à tes servomoteurs des ordres de position. Ces ordres sont des positions angulaires.

Il faut donc connaitre les angles à donner aux servomoteurs de façon à se que la pince du robot soit (0,0,0). Il faut connaitre la fonction (theta1,theta2,theta3) = f(x,y,z). La fonction f est ce que l'on appelle pompeusement en robotique le modèle géométrique inverse. Pour le calculer il y a de nombreuses manières :

- on calcule à la main en faisant de la géométrie, et de la trigonométrie en faisant attention aux multiples solutions, c'est un excellent exercice de géométrie. C'est abordable si tu connais ce qu'est un cosinus/sinus/tangente inverse (arccos, arcsin, arctan) (boutons cos-1 d'une calculatrice).

- Si tu as moyen de mesurer les angles de tes servomoteurs, ou si tu pilotes ton bras manuellement, tu peux quadriller ta feuille avec une grille par exemple carrés de 5 cm de côtés. Tu places ton stylo sur les différents points de la grille et tu sauvegardes les ordres que tu as donné aux servomoteurs pour chaque point. Tu obtiens une grosse table de correspondances. Du coup pour aller sur un point voulu, tu va regarder directement dans la table, et tu envois l'ordre. Et puis pour aller par exemple au milieu de deux points enregistrés, du prend la moyenne des ordres donnés pour aller à ces deux points. Si tu es assez loin de l'embase (si ton bras est bien déplié) l'approximation faite est plus que raisonnable. (c'est une conversion grossière entre des coordonnées polaires et des coordonnées cartésiennes)

- par tatonnements (ici, l'écriture risque d'être tremblante). Il faut d'abord calculer la fonction qui permet d'avoir les coordonnées du stylo à partir des angles des servomoteurs (c'est le modèle géométrique direct ici) c'est à dire (x,y,z)=g(theta1,theta2,theta3). Il faut faire ici de la trigonométrie mais c'est en général beaucoup plus simple que le premier point (modèle géométrique inverse) il faut juste savoir ce qu'est un cosinus, sinus, tangente.
Ainsi, tu sais quelles sont les coordonnées de ton stylo si tu connais les angles de tes servomoteurs. Du coup, si tu est à (7,5,2) et que tu veux aller à (7,5,3), le principe c'est de rajouter complètement au pif sur les angles de tes servomoteurs + ou - 1deg (ou moins si tu veux être plus précis)=> tu calcules les nouvelles coordonnées de ton stylo=> tu calcules si tu t'es rapproché du point cible=> si oui tu valides et tu bouges - si non tu retires au hasard des petits écarts et tu recommences. Petit à petit, après plusieurs essais/erreur, ton stylo va se rapprocher de là ou tu veux aller.

Il doit y avoir d'autres solutions astucieuses en tous les cas. sachant que bien sûr la solution la plus rapide au niveau temps de calcul est la première.

"Il n'y a rien de plus étrange pour l'homme que son image" RUR, Karel Capek
Caliban Midi - Art - Terroir et Robotique


#13 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 27 octobre 2010 - 10:19

Bonsoir Thot ,

Tout dabord grand merci pour tes explication ! J'avais commencer a calculer les coordonnées de chaque lettre ( x, y, z ) .Le problémes est que jaimerais savoir comment je peut convertir ces coordonnée en trame pour envoyer au ssc32 ... Si non je pense que cela peut etre amusant de calculer tous les angles comme tu le précise dans la premiere solution !
actuellement, je n'ai pas le bras sous la main :lol: mais dés la rentré, je devrai le recevoir ! étant donnée que je suis lycéen, je suis restreint par mes horaires de cours ... ( c'est nul )
Donc je me rattrape en travaillant chez moi ! et donc je commence a prévoir comment je ferai pour faire écrire ce bras !

Donc une fois que j'ai mes coordonnées, qu'est que je doit en faire ?

ensuite, je me demander quel parti du bras doit bouger ? parce que sur le bras il y a 6 servomoteurs ! voir par ici
je vous joint mon schéma du bras ( pas exelent mai je le comprend ^^) Fichier joint  schéma bras.jpg   300,09 Ko   108 téléchargement(s)
Je penser faire bouger les servos B C et D pour faire bouger le stylo ! quand le bras écrit , la pince ne bouge pas !
Vous en pensez quoi ?

Merci !

Thomas

#14 Jbot

Jbot

    Membre chevronné

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

Posté 28 octobre 2010 - 08:43

Pour le début, je te conseil de mettre C, D, E, F sur la meme droite et de ne pas faire bouger D, E, F. Ca te simpliefira la vie dans un premier temps (C'est la configuration qu'avait mon bras robotisé). Du coup tu auras 3 degrés de liberté A, B, C pour 3 axes, donc 1 solution par point dans ton cas. Si tu rajoute des degrés de liberté, tu vas te retrouver avec un nombre de solutions infinie et c'est un peu plus compliqué.


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#15 thomas

thomas

    Membre

  • Membres
  • 11 messages

Posté 28 octobre 2010 - 03:11

bonjour Jbot

tu ne pense pas que je vais quand même être obliger de faire bouger le servo D pour placer le stylo sur le tableau ???

Sinon pour en revenir a la programmation, peut tu m'expliquer comment je doit procéder pour convertir les coordonnées en trames ?

est-il possible de faire un programme qui va générer des trame de la lettre que je lui demande d'écrire ? c'est a dire que en fonction des coordonnée que j'ai préalablement calculer, le programme défini la bonne trame a envoyer au ssc32 .


merci

#16 Dr.Calvin

Dr.Calvin

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Female

Posté 30 octobre 2010 - 05:30

J'arrive trois plombes après le début du sujet faute d'avoir eu le temps, mais mieux vaut tard que jamais :wacko:

thomas (tout d'abord bienvenu du coup :blush: ), je ne change rien à tes précédents posts, mais fais attention à l'orthographe et s'il te plaît, corrige les précédents, le sujet en sera d'autant plus intéressant et agréable à lire !

sur ce, bonne continuation...:ph34r:

#17 skyhack

skyhack

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 885 messages
  • Gender:Male
  • Location:Racourt et Flaba (08)
  • Interests:Synthé, modélisation mécanique, bricolage divers, VTT enduro

Posté 11 décembre 2010 - 01:08

juste pour te dégouter :P :



skyhack.
" Monsters are real. Ghosts are real too.
They live inside us and sometimes they win."
-------------Stephen King.------------------

" le fait que les extraterrestres étaient amis avec les Mayas ne signifie pas qu'ils sont nos amis ... "
-------------------------------------Stephen Hawking----------------------------------------------------

#18 roboxx

roboxx

    Membre

  • Membres
  • 18 messages

Posté 03 janvier 2011 - 07:39

Bonjour, :)
C'est possible de faire un bras qui écrit en langage PBasic?
merci d'avance :D




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

0 members, 0 guests, 0 anonymous users