Aller au contenu


Photo
- - - - -

Matrice changement de repère ou matrice de translation


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

#1 Telson

Telson

    Membre chevronné

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

Posté 13 janvier 2017 - 10:39

Hello les makers,

 

Alors je vais certainement en faire sourire plus d'un mais compte tenu que ma mémoire me fait défaut et que mon niveau en math actuellement ne me permets plus de comprendre les hiéroglyphes que l'ont trouve sur de nombreux tutoriels je vous pose directement la question suivante :

 

Comment déterminer la matrice de changement de repère ou de la matrice de translation  pour l'exemple suivant :

 

Dans mon repère d'origine ayant pour centre O(0,0,0), j'ai deux points :

 

- A (3,2,1)

- B (6,6,5)

 

J'aimerai trouver la matrice me permettant de trouver les coordonnées de B (6,6,5) dans le repère de centre A.....

 

 

Fichier joint  changement repere.png   17,77 Ko   66 téléchargement(s)

 

Si quelqu'un pouvait me rafraichir la mémoire ça serait super sympas....

 

Merci



#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 13 janvier 2017 - 11:14

Salut Telson !

 

En fait, ça dépend des axes du repère centré en A. Notons (O, xo, yo, zo) le référentiel O, composé de l'origine O et du repère représenté par xo (l'axe vert), yo (l'axe bleu) et zo (l'axe rouge). Si le repère (x1, y1, z1) du référentiel A =  (A, x1, y1, z1) sont alignés avec celui du référentiel O, alors le changement de référentiel entre O et A est une simple translation. Les coordonnées du point O dans A sont (-3, -2, -1). Les coordonnées du point B dans le référe"ntiel A sont (3,4,4).

Si par contre, le repère de A n'est pas aligné avec le repère de O, il faut prendre en compte les angles entre les deux. Si le repère de A peut être ré-aligné avec le repère de O en une rotation autour d'un axe du repère de O, un angle suffit à exprimer la tranformation entre les deux. Par exemple, une rotation autour de l'axe zo transforme xo en x1 et yo en y1, mais "zo = z1". L'angle theta correspondant à la rotation va t'être utile pour exprimer des relations du type :

xo = a * x1 + b * y1

yo = ...

(ou vice-versa)

 

Ces relations, que tu obtiens en projetant les coordonnées des vecteurs d'un repère sur les axes de l'autre, te permette de transformer les coordonnées (6,6,5) de B exprimées dans (xo,yo,zo) dans le repère (x1,y1,z1). Le repère dans lequel tu connais les coordonnées doit être à droite des égalités ci-dessus, le repère d'arrivée à gauche. Si tu veux exprimer les coordonnées de B dans A, il faut donc trouver les relations x1 = ..., y1 = ...

Ça c'est une méthode non-matricielle. Tu peux par contre exprimer ces transformations matriciellement, sachant que la matrice correspond à exprimer les coordonnées des vecteurs du repère d'arrivée dans le repère connu. Pour des translations ou des rotations, les matrices sont connues. Pour des mouvements plus complexes, tu peux composer translation et rotation en multipliant les matrices.

 

Pour les rappels matriciels, le début de ce pdf peut t'être utile : http://morpheo.inrialpes.fr/people/Boyer/Teaching/RICM/c3.pdf

 

J'espère que ça pourra t'aider, n'hésites pas à poser des questions si des points sont flous (et j'attends que Léon vienne pointer l'erreur grossière que j'aurais écrite :D).


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 Telson

Telson

    Membre chevronné

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

Posté 13 janvier 2017 - 11:26

Je crois que je me suis mis la rate au court bouillon pour peu de chose .....

 

au final j'aurai :

 

Fichier joint  matrice de translation.png   4,63 Ko   3 téléchargement(s)

 

 



#4 Oliver17

Oliver17

    Pilier du forum

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

Posté 13 janvier 2017 - 12:50

Hum, j'ai cru voir ça quelque part sur le net, cela me semblait intéressant mais trop fixer sur mes histoires de servos que j'ai un peu zapper ceci.

 

Donc pour m'éclairer un peu plus, c'est pour un objet en mouvement dans l'espace, et tu essayes de calculer le meilleur mouvement du point de départ au point d'arrivé demandé ?? (une translation).

 

Genre juste pour tes jambes de HumanOne, lorsque un pied doit se déplacer pouvoir agir sur les autres servomoteurs sans pour autant programmer un mouvement de A à Z ???

 

Ou j'ai tout faux ??? :)


signature_01.png -->

 

Mon Tipeee
 


#5 Telson

Telson

    Membre chevronné

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

Posté 13 janvier 2017 - 06:48

En fait, j'utilise les matrices (de translation et de rotation autour de X et/ou Y et/ou Z) pour pouvoir calculer les coordonnées des différentes articulations après un mouvement défini.

 

 

Par exemple, j'avance le pied jusqu'à ce qu'une condition soit validé en ayant fixé auparavant les coordonnées X/Y/Z du haut de ma jambe.

 

 

Les calculs des positions me permettent ensuite de déterminer tous les angles des servomoteurs de la jambe en mouvement.....Le plus dur étant d'effectuer les calculs avec les deux jambes en mouvement !!!

 

 

Pour le moment j'ai un programme qui me semblent pas trop mal mais il me faudra encore valider les différents calculs ......Autrement dit quand ce dernier sera implémenté dans HumaOne je vais rapidement voir ce que cela donne.....Comme d'habitude je m'attends à des surprises.....C'est le jeu !!

 

 

Ensuite la difficulté étant la précision des calculs bien sûr mais aussi la rapidité de calcul et la synchronisation des mouvements....Alors là !!! Je n'y suis pas encore .....

 

 

En même temps je ne suis même pas sûr d'utiliser la bonne méthode pour calculer les mouvements des différents segments des jambes du robot.....

 

 

Si quelqu'un à des informations je suis preneur.....

 

 

Et pendant ce temps HumaOne est au repos....Je n'ai pas énormément de temps à lui consacrer.....C'est un gros projet pour un débutant et heureusement que je ne suis pas pressé d'obtenir des résultats sinon cela serait un risque d'abandon.....C'est assez frustrant de passer autant de temps sans avoir beaucoup de résultat......Ce n'est pas grave cela m'amuse bien....



#6 Path

Path

    Made By Humans

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

Posté 13 janvier 2017 - 07:55

 

 

C'est un gros projet pour un débutant et heureusement que je ne suis pas pressé d'obtenir des résultats sinon cela serait un risque d'abandon.....C'est assez frustrant de passer autant de temps sans avoir beaucoup de résultat......Ce n'est pas grave cela m'amuse bien....

Courage !! T'es pas le seul dans ce cas. :D En tout cas, je suis attentivement vos avancées Oliver et toi.



#7 Telson

Telson

    Membre chevronné

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

Posté 13 janvier 2017 - 08:10

Pour le moment je ne décroche pas même si ma progression est lente, progression il y à......



#8 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 333 messages
  • Gender:Male

Posté 13 janvier 2017 - 09:21

Courage! Tu seras d'autant plus content quand ça fonctionnera!

#9 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 14 janvier 2017 - 07:03

je suis attentivement vos avancées Oliver et toi.

Moi aussi, même si je ne comprends rien... :ignat_02:

#10 Telson

Telson

    Membre chevronné

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

Posté 14 janvier 2017 - 09:04

Dès fois moi aussi j'y comprends rien...........


  • Oliver17 aime ceci

#11 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 janvier 2017 - 12:47

Juste pour dire que je compte repasser par là dès que j'aurais sortis la tête des cartons ! ( je suis en ce moment même en plein déménagement ^^ )


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  

 

 

 


#12 Telson

Telson

    Membre chevronné

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

Posté 14 janvier 2017 - 08:49

Avec plaisir ...Bon en-ménagement....



#13 yamovince

yamovince

    Membre passionné

  • Membres
  • PipPipPip
  • 300 messages

Posté 17 janvier 2017 - 03:13

Tu ne te la joue pas un peu avec tes matrices là ? ;) bon de mon côté j'ai plutôt une approche empirique en testant différents angles et vitesses jusqu'à ce que.. ça marche ! mais j'avoue que c'est un peu fastidieux...



#14 Oliver17

Oliver17

    Pilier du forum

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

Posté 17 janvier 2017 - 03:31

J'ai ça en tête, après je me doute que cela ne soit pas la meilleur des solutions.

 

Comme l'a dit Ashira, du moins pour la découpe de travail : 

 

- ce faire donc une sorte de bras avec plusieurs servos.

- l'aligner sur les 0 (angle départ), (genre un bras le long du corps) et donner les mini et maxi d'angle de chaque servos.

- tester de plusieurs façons (avec les matrices de rotation et de translation, puis Al-Kashi etc etc...) les différentes possibilités d'allez du point de départ à l'arrivée.

- inclure cette fameuse accélération et décélération de chaque servo pour que le mouvement soit cohérent :)

 

 

Question : ne faudrait il pas prendre en compte tôt ou tard cette fameuse possibilité d'attraper un objet, et de là, (mains ou pince n'importe) lui inclure une caméra ou autre, qu'il puisse reconnaître les forme, relief, profondeur etc etc etc

Car là, ça change la donne sur l'action et le calcul à effectuer, non ???

 

Entre déplacer une main du point A au point B car on connait les positions et voir une main se déplacer du point A au point B car elle doit effectuer une action sur un objet (ou autre), c'est différent.

Je dis peut être une connerie, mais j'ai l'impression qu'il faut prendre en compte se point.

 

Edit : Oups, quel égoïste je fais, je pensais surtout à un bras, je me doute que pour les jambes le travail ce ressemble tout de même, enfin pour les jambes, j'imagine certaines choses via la central inertiel...

je note ça de coter chaque chose en sont temps ^^

 

Merci :)


Modifié par Oliver17, 17 janvier 2017 - 03:36 .

signature_01.png -->

 

Mon Tipeee
 


#15 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 17 janvier 2017 - 09:36

J'aime pas faire ça, mais bon, teasing : d'ici fin février, je vous poste un tutoriel sur le contrôle en position d'un bras à partir des angles de ses servos. Je vois beaucoup de choses faites en 2D qui ne passent pas à l'échelle en 3D sans se casser la tête.

Rappelez-le moi d'ici là si rien ne se profile. :)


  • ashira et Path aiment ceci
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#16 Telson

Telson

    Membre chevronné

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

Posté 18 janvier 2017 - 08:11

D'ici fin février...tu m'étonnes que nous te le rappellerons si tu oublies.  Moi le premier car comme tu le dis on se casse la tête....Un tuto sur le calcul de mouvement en 3D.....trop du bonheur....

 

Bon alors, je vais essayer, sans trop me la péter :ignat_02: , de vous expliquer comment fais-je.....

 

1- je définis différentes phases : inclinaison_gauche; leve_pied_droit; avance_pied_droit; pose_talon_droit, pose_pied_droit, ....

 

2 - chacune des phases est ensuite reproduite sur freecad en 3D, avec les longueurs des différents segments, en utilisant l'intersection de cercle j'arrive à prédéfinir les différentes positions des articulations en X/Y/Z et les différents angles...c'est une première approche...Et cela me permet aussi de voir comment informatiquement je peux effectuer mes calculs.....

 

Fichier joint  Capture.PNG   37,2 Ko   2 téléchargement(s)

 

3- je développe des macros en VBA sous excel et je récupère les différentes positions X/Y/Z des articulations ainsi que les angles des 12 servomoteurs. Même si pour le mouvement suivant je n'ai pas besoin d'un angle ou d'une position je calcule quand même car sinon lorsque vient le moment d'utiliser l'information du coup manquante aie aie aie !!! Bobo la tête. Pour quoi excel? Et bien le VBA est super simple, un max d'info sur le net, un débugueur avec suivi des variables que j'aime bien ....

 

 

4 - je compare les résultats excel sous forme de tableau avec les dessins. Si les valeurs sont correctes je passe la cellule en vert, si la valeur est fausse je passe la police en rouge.....Ensuite je cherche à déterminer si c'est la macro qui est fausse ou le dessin....Généralement c'est la macro.....

 

Fichier joint  Capture.PNG   15,42 Ko   1 téléchargement(s)

 

Fichier joint  Capture.PNG   14,2 Ko   1 téléchargement(s)

 

Pour les calculs j'utilise l'intersection de cercles, Pyt et Gore, Al et Kashi sou-poudré d'un zeste de matrice de rotation......

 

C'est pas du très complexe n'y optimal en terme de vitesse de calcul mais j'arrive à définir mes mouvements.

 

Ah oui, j'allais oublié !! Prenons par exemple la phase :: leve-pied-libre (15 mm)......au départ j'effectue cette phase avec un pas de 5 ce qui me donne 3 positions. Sur ces 3 positions je valide mes calculs et ensuite il m'est tout à fait possible de définir un pas de 1....Comme ça les déplacements des servomoteurs sont bien plus fin et je pense plus synchronis"s les uns par rapport aux autres...Mais alors ça il va falloir le valider par des tests ......

 

Et bin j'ai pas le luc sorti des ronces !!!



#17 Oliver17

Oliver17

    Pilier du forum

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

Posté 18 janvier 2017 - 09:52

Waahhoouuu sacré recherche ^^

 

Très intéressant...

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#18 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 18 janvier 2017 - 02:08

La vache ! Ça fait mal aux yeux tellement c'est brillant ! :blink:



#19 Oliver17

Oliver17

    Pilier du forum

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

Posté 18 janvier 2017 - 04:05

Je suis actuellement entrain de lire ça :

 

https://fr.wikipedia...tion_des_robots

 

Si ça peux aider...


signature_01.png -->

 

Mon Tipeee
 


#20 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 18 janvier 2017 - 10:03

Je suis actuellement entrain de lire ça :

 

https://fr.wikipedia...tion_des_robots

 

Si ça peux aider...

Bonne lecture, c'est sur des parties de ça que je pense faire un tuto (va falloir que je révise aussi, hein :) ).


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot




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

0 members, 2 guests, 0 anonymous users