Aller au contenu


Photo
- - - - -

Matrice changement de repère ou matrice de translation


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

#21 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 19 janvier 2017 - 02:08

OUPS !!! Punaise !!!



#22 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 19 janvier 2017 - 11:19

Bon, un ptit résumé, comme la Souligné Ashira commencer par des tests "simple" pour comprendre le fonctionnement d'un point pouvant se déplacer avec deux servomoteurs pour allez à un autre point, ok.

 

Je vais peut être un peu vite, mais c'est juste pour savoir ou je vais au final. (sans pour autant mettre la charrue avant les bœufs).

Dites moi si je me plante, il nous faut pour déplacer un point dans l'espace, connaitre ou se servir : 

 

- Les angles d'Euler (ça peux aider, avoir le même sens des coordonnées cartésienne avec les angles et autre directions d'Euler, non ?).

- Cinématique du point. (je trouve ça intéressant).

- Les vecteurs de positions sur des coordonnées cartésienne.

- Al-Kashi (Telson, ton fichier PDF est bien sympathique je trouve sur le mouvement de 5 servo, merci).

- Matrices symétrique et de translation, rotation (symétrique par rapport au bras et à la jambe opposé) ^^ (pour la translation on est bien d'accord que cela permet d'affiner des positions sans avoir un mouvement linéaire ???).

- et comme la souligné Budet connaitre les différentes vitesse, accélération (et décélération j'ai envie de dire) de chaque servo pour avoir celle de la main.

 

Infos : 

 

https://fr.wikipedia.../Angles_d'Euler

https://fr.wikipedia...ki/Cinématique

https://fr.wikipedia...ecteur_position

https://fr.wikipedia...tion_des_robots

https://www.lyceedad...rices_cours.pdf

https://tel.archives...503210/document

http://www.robot-maker.com/forum/index.php?app=core&module=attach&section=attach&attach_id=5880

 

Si j'ai oublié quelque chose....???


Modifié par Oliver17, 19 janvier 2017 - 06:46 .

signature_01.png -->

 

Mon Tipeee
 


#23 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 20 janvier 2017 - 08:34

Oui !!

 

Une dizaine de cruche de café et une boîte de patator !!

 

Vous êtes des grands malades !!!



#24 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 20 janvier 2017 - 10:51

Lol, ben perso j'apprend aussi toutes ces math que je ne connais pas, ceci dis je m'aventure peut être un peu loin, aucune idée, mais tous ces points me semble correspondre à ce que l'on veut faire, non ? :)


signature_01.png -->

 

Mon Tipeee
 


#25 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 20 janvier 2017 - 02:50

Erf, avec tous ça je ne sais pas par quoi commencer ^^

 

Je lis, je lis, je lis....

 

En fait, là je reste un peu bloqué sur la position de mes servos, (-90 . 90 ou 0 . 180 et dire que 90 c'est le centre), le truc c'est que dans un mouvement (je garde toujours l'exemple d'un bras) il y a des angles qui vont vers le négatif, et je bloque sur se truc (me faut pas grand chose).

 

Pour un servo à rotation continue je me doute que cela ne pose pas de problème et mettre dans les conditions les limites dont j'aurai besoin, mais là, je veux essayer d'avoir une tite base sympa pour voir ce que j'arrive à en faire :)

 

Si je prend l'exemple du servo de 0 . 180 je fais comment pour lui dire que sur l'axe y que la rotation négative sera de -30° et que dans le positif +45° (c'est juste pour l'exemple).

Alors que si je cale les servos dont j'ai besoin en -90 . 90, on sait directement que les servos sont en position 0° et donc plus facile pour lui donner une valeur par la suite en négatif et positif ...

 

Ou alors pour le 0 . 180 je cale sur le 90 pour le centre, et lorsque je veux faire bouger le bousin avec un - et + je lui dis, par exemple, fais une rotation de -35 ce qui emmènera le servo à -55 pour sa position (en partant du 90 neutre) ??

Ou je me plante carrément et je me prend trop la tête avec ça ??? 

Mais je pense qu'il faut directement poser ça...

 

C'est là que je me triture un peu le cerveau pour un truc tout bête. :'(

 

Hum (je te pourri pas trop le post Telson j'espère.?)

 

Edit : je viens de tester en mettant comme valeur 0 . 180 et lui indiquant (servo placé à 90) que l'angle se déplace de -35° ça ne fonctionne pas :(

Il faut bien indiquer des le départ -90 . 90 pour que ça fonctionne.

Bon bon bon......


Modifié par Oliver17, 20 janvier 2017 - 03:24 .

signature_01.png -->

 

Mon Tipeee
 


#26 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 20 janvier 2017 - 11:50

Sans schéma difficile de comprends tes histoires d'angles ???

 

Pour en revenir au matrice et bien qu'ayant trituré toutes ces jolies formules il y a plus de 20 ans je suis moi aussi maintenant déconnecté...Et dire que j'en ai bouffé des matrices, des torseurs, des équa. Diff.............Jamais utilisé dans ma vie professionnelle..............

 

Sinon pour en revenir à nos moutons je comprends bien comment calculer la rotation/translation d'un segment mais ensuite tous les autres segments des jambes doivent suivre et là ............................



#27 Path

Path

    Made By Humans

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

Posté 20 janvier 2017 - 11:56

Pour en revenir au matrice et bien qu'ayant trituré toutes ces jolies formules il y a plus de 20 ans je suis moi aussi maintenant déconnecté...Et dire que j'en ai bouffé des matrices, des torseurs, des équa. Diff.............Jamais utilisé dans ma vie professionnelle..............

+1



#28 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 janvier 2017 - 10:18

Sans schéma difficile de comprends tes histoires d'angles ???

 

 

Mes histoires de -90 . 90 et 0 . 180 ??

 

Ben il n'y a pas vraiment besoin de dessin, c'est juste pour placer le servo à ça position de départ.

Sois il part de 0 à 180 (articulation du coude ou du genoux par exemple), sois pouvoir le placer pour faire en sorte que sont 0 soit entre -90 0 90, comme ça, il peut allez dans le négatif et positif (articulation de l'épaule d'avant en arrière sur la rotation, comme l'articulation de la cuisse).

 

PS : déjà je me fais un montage de bras, on verra bien. :)


signature_01.png -->

 

Mon Tipeee
 


#29 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 21 janvier 2017 - 11:06

Pour mes jambes, position initiale du genou_G = 0, genou_D=180....Et tous les autres servo sont en position initiale à 90°....Mais en fonction du système et du débattement horaire/anti-horaire tu peux choisir d'autres positions initiales....



#30 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 janvier 2017 - 01:38

Ok, donc j'ai l'impression que je m'emmerde pour rien :'(

 

Je vais essayer de faire à ta façon, car là je viens de tester et un truc ne fonctionne bref, normal quoi la loi de LEM :)

 

;)

 

Edit : Hum, bon ben j'ai positionné les servomoteurs et pour ceux qui doit être centré sur (entre 0 et 180) ils sont à 90 sur la position, reste plus qu'à gérer tous ça en prog pour pas que ça parte en live ^^


signature_01.png -->

 

Mon Tipeee
 


#31 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 22 janvier 2017 - 06:18

Ok........
 
Edit : Hum, bon ben j'ai positionné les servomoteurs et pour ceux qui doit être centré sur (entre 0 et 180) ils sont à 90 sur la position, reste plus qu'à gérer tous ça en prog pour pas que ça parte en live ^^


C'est effectivement au niveau de la programmation que cela est un peu plus compliqué....
Attention aussi quand tu as un membre gauche et droite car généralement les servomoteurs sont montés en opposè et par conséquent le calcul de l'angle ou du moins la conversion de l'angle du servo par rapport à sa position initiale est inversé

#32 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 22 janvier 2017 - 06:41

pour ce genre de chose il faut mapper différemment les servomoteurs...  De sorte à simplifier les commande plutôt que de toujours devoir savoir qui est dans quel sens.

Exemple concret :  
Pour des raisons que j'ignore ( surement une question de montage ) mon humanoïde a ses genoux qui sont pas pareil. 
Pour que mon robot soit debout, je dois mettre l'angle du genoux droit à 0° et l'angle du genoux gauche à 180°  ( bizarrement c'est exemple pris complètement au hazard me rappel quelque chose ... Vous avez dit bizarre ?  ) 
En fait garder ça en l'état n'est super pas pratique ... il serait bien plus pratique que les deux soit tout les deux à 0° ou bien à 180° au choix, mais les deux pareille ... 

On peut me dire, oui mais mon robot est moté comme ça mécaniquement c'est plus pratique je veux pas changer. 
Et bien vous savez quoi ? Aucun problème =) 

Il suffit simplement de faire l'équivalent de ce qu'on appel un changement de variable en mathématique ;) 

Comment on fait ? Il y a plusieurs méthode =) Mais le principe réside dans le fait d'ajouter des fonctions qui sont masqué au vu de l'utilisateur. 
Arduino fait déjà ça pour vous quand vous écrivez sur un port ! =) 
Quand vous faite digitalWrite(1, HIGH); savez vous combien y a t il de fonction qui sont caché derrière ? =) ( Je vous laisse creuser le sujet si vous êtes curieux ;) )

Je vais néanmoins donner un exemple abstrait pour le genoux. 
Imaginons que vous ayez une fonction ; 

moveServo( ServoGenou_G, 180 ) ; // moveServo étant une fonction valable pour tout les servomoteurs 
Eh bien vous pouvez par exemple créer n fonctions pour chaque servo qui sera par exemple : 

moveServoGenou_G ( 0) ;    avec moveServoGenou_G ( x ) = moveServo( ServoGenou_G, 180-x )  ; 
 

Autre méthode, une fonction convertisseur : 

moveServo ( ServoGenou_G, AngleServoGenou(0) );     avec AngleServoGenou(x) = return ( 180-x) ; 

Et il y a encore deux trois astuces du styles qui sont encore envisageable ... 
Mais au moins je pense que maintenant vous avez l'idée =) 

L'important c'est de simplifier au maximum le contrôle. Moins vous y réfléchirez et plus facilement vous pourrez piloter votre robot ;) 


 


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  

 

 

 


#33 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 22 janvier 2017 - 06:46

C'est exactement ça...Et je m'aperçois que je peux encore simplifier mon programme car je me suis mis la rate au cours bouillon en utilisant une seule fonction :

C'est un exemple hein....

If (membre = gauche) alors
{
angle = 180 - angle
}
else if (membre = droite) alors
{
angle = 90 + angle
}

#34 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 22 janvier 2017 - 10:51

Hum humm (mode boulet on) suis sur pyttthhhooonnnn (mode boulet off).

 

J'ai pas tout capter (suis réveillé depuis peu), perso (sur le final) tel que je le conçois, je me suis fais un fichier avec plusieurs fonction réunissant toutes les infos de chaque servomoteur, ce qui donne :  

def epdroitey (self, degres): 
   anglemin = -100
   anglemax = 200
   servomin = 98
   servomax = 545
   self.degres = degres
   servo = 5
   result = int((self.degres -anglemin) * (servomax - servomin) / (anglemax - anglemin) + servomin)
   return servo, result

Sur cette fonction je renvoi les infos nécessaire pour faire fonctionner le servo visé avec toutes ces données.

Le bras est aligné le long du corps, se qui fait que si je fais appel à 0° le bras se retrouve le long du corps, si j'ai besoin d'effectuer un mouvement en arrière je suis dans le négatif (-100°) et donc en avant dans le positif avec sont maxi à (200°)

Mais comme on peut le constater c'est l'axe de l'épaule qui lui permet de basculer le bras d'avant en arrière de + telle position à - telle position. (ma fameuse histoire du -90 . 90)

 

Voilà comment je voyais la chose, mais je me suis aperçu que si j'essaye d'utiliser cette méthode avec le temps, ça ne fonctionne pas dans le négatif :(

Il est clair que je me plante quelque part, mais là....

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#35 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 08 avril 2017 - 03:15

J'en reviens aux matrices et j'ai un énorme doute sur la représentation des repères liés à chacun des corps de mon robot......
 
Concernant donc le positionnement des repères X:Y:Z
 
Dans la vidéo suivante à 1:24:05:
 
Les deux hypothèses de D.H sont :
 


Fichier joint  infos-vidéo.png   113,86 Ko   1 téléchargement(s)
 

 
Dans le document pdf : http://icube-avr.unistra.fr/fr/img_auth.php/7/78/Cours_rob_2_2012.pdf
 
Les deux hypothèses de D.H sont :
 
 

Fichier joint  infos-PDF.png   398,55 Ko   2 téléchargement(s)

 
 
Et dans sous Wiki : https://fr.wikipedia...avit-Hartenberg
 
 

Fichier joint  infos-wiki.jpg   55,56 Ko   2 téléchargement(s)

 
  Fichier joint  image-wiki.png   34,88 Ko   2 téléchargement(s)

 

 

Bon alors finalement c'est quoi les deux hypothèses ...Est ce que L'axe Zn-1 doit être par l'axe de la liaison reliant le corps Cn-1 au corps Cn. (Zn du corps Cn est donc porté par l'axe de la liaison reliant le corps Cn au corps Cn+1).....Et .....

 

Merci par avance....

 

++



#36 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 avril 2017 - 12:23

Me revoici Me revoilà tjrs avec ces histoires de matrices , de repères, ....
 
Avant de continuer à phosphorer pour rien je souhaiterais savoir si quelqu’un pourrait confirmer la position et les valeurs an, dn, αn, θn, des repères du schéma ci-dessous :

 

Fichier joint  placement repère.PNG   158,57 Ko   52 téléchargement(s)

 

Même image mais en pdf : Fichier joint  placement repere.pdf   1,15 Mo   87 téléchargement(s)

 

Pour réaliser ce schéma je me suis basé sur la documentation répertoriée dans le fichier suivant :

 

Fichier joint  documentation.pdf   215,83 Ko   147 téléchargement(s)

 

 

Après validation du schéma nous verrons pour les étapes suivantes ....

 

Merci par avance .

 

++

 

 



#37 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 14 avril 2017 - 05:05

De peur de dire une connerie, mais je me lance tout de même, vu que ton robot va marcher, j'aurais mis le "référentiel du monde" au sol comme l'explique le livre, qui eux bossent sur des humanoïdes et non des bras articuler, je pense que cela à une grande importance, surtout lorsque le pied ne touche plus le sol comme ça déjà tu sais à quel hauteur il peut être par rapport au référentiel.

 

Là (ce que je crois comprendre) cela me fait penser à une sorte de bras fixé sur un point (socle, mur ou autre).

 

Et tous t'on système de coordonnées local devrait être orienté de la même façon que le référentiel du monde.

 

Voilou j'ai dis ma connerie, c'est juste mon avis perso, mais je pense que les pros pourront beaucoup plus t'éclairer. :)

 

PS : c'est volontaire d'avoir placé x0 y0 z0 dans ce sens là ?

 

Perso je fais de sorte à avoir x pour le sens de marche, y latéral et z la hauteur.

 

Fichier joint  xyz-2170076_960_720.png   72,48 Ko   2 téléchargement(s)

oups désolé pour la taille de l'image.

 

"HumaOne Powerrrr !!!!!:yahoo:  :yahoo:


signature_01.png -->

 

Mon Tipeee
 


#38 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 avril 2017 - 07:54

Pas de problème Olivier l'échange ne peut être que bénéfique


Ici il s'agit d'une jambe qui va se déplacer et il est vrais que j'ai choisi de placer mon repère R0 au niveau de l'articulation de la hanche....

Concernant l'orientation des repères j'ai appliqué les conditions de DH donc pas vraiment possible, sauf erreur, de l'orienter de la même façon qu'habituellement enfin c'est ce qu'il me semble avoir compris.....

Pour positionner les repères je me base sur la très rapide synthèse du fichier documentation.pdf
 

Fichier joint  DH.JPG   63,36 Ko   0 téléchargement(s)

 

il faudrait comme tu l'indiques rajouter un repère au niveau du sol et de ce fait R0 deviendrait  R1, .....ça me parait évident maintenant ....



#39 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 avril 2017 - 09:11

Me revoici Me revoilà tjrs avec ces histoires de matrices , de repères, ....
 
Avant de continuer à phosphorer pour rien je souhaiterais savoir si quelqu’un pourrait confirmer la position et les valeurs an, dn, αn, θn, des repères du schéma ci-dessous :

 

attachicon.gifplacement repère.PNG

 

Même image mais en pdf : attachicon.gifplacement repere.pdf

 

Pour réaliser ce schéma je me suis basé sur la documentation répertoriée dans le fichier suivant :

 

attachicon.gifdocumentation.pdf

 

 

Après validation du schéma nous verrons pour les étapes suivantes ....

 

Merci par avance .

 

++

 

 

 

J'ai pas compris la question ... 


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  

 

 

 


#40 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 avril 2017 - 10:44

ha, et bien je souhaiterais savoir si les positions que je donne à mes différents repères sont conformes aux condition de D.H et si les calculs des valeurs an, dn, αn, θn sont justes ....

 

Désolé je ne vois pas pour le moment comment mieux définir ma question.....Si ce n'est tjrs pas clair j'essayerai de reformuler.

 

 

++






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

0 members, 0 guests, 0 anonymous users