IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Changement de repère


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Changement de repère
    Bonjour,

    Je planche sur un problème depuis quelques jours sans en venir à bout (mes connaissances mathématique ne sont pas assez importante, je le craint), j'explique.

    Dans l'industrie une pièce est contrôlée et un fichier contenant la localisation des défauts (exprimés dans le repère de la machine de contrôle) est créé. Ses défauts doivent être reporté sur le modèle CAO de la pièce (qui se trouve dans son propre repère).

    Les informations à notre disposition sont les coordonnées de 3 points dans les 2 systèmes de coordonnée tel que :

    3 points Pt1, Pt2, Pt3 dont,
    Les valeurs des coordonnées dans le systeme CAO sont Pt1A(X1a,Y1a,Z1a), Pt2A(X2a,Y2a,Z2a), Pt3A(X3a,Y3a,Z3a)
    Les valeurs des coordonnées dans le systeme Machine sont Pt1M(X1m,Y1m,Z1m), Pt2M(X2m,Y2m,Z2m), Pt3M(X3m,Y3m,Z3m)

    Je pense à une matrice de passage mais ne sais pas poser le problème.

    Si une âme charitable à la réponse à ma question et saurait m'expliquer de façons simple (pas très fort le gars ) ce serait gentil.

    Je reste à disposition pour toutes questions éventuelles.

    Merci.

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Citation Envoyé par aupawi Voir le message
    Je pense à une matrice de passage mais ne sais pas poser le problème.
    Tu détermines:
    • ta matrice de passage Mglob-CAO repère global > repère CAO
    • ta matrice de passage Mglob-Mac repère global > repère Machine
    • tu en déduis ta matrice de passage MMac-CAO = Mglob-CAO*inv(Mglob-Mac) repère Machine > repère CAO


    pour tes matrices de passage du repère global vers les autres, sers-toi des vecteur x=pt1->pt2, z=(pt1->pt2)*(pt1->pt3) (* = produit vectoriel), et y=z*x (en normalisant tout ça)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci pour la réponse, je vais essayer de poser les matrices, même si comme je l'ai dit je ne suis pas mathématicien, mais développeur de petites applications dans mon entreprise.

    Je me permettrait de revenir vers vous si je bloque quelque part (il y a de forte probabilité que cela se produise ).

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je viens de mettre au point une fonction de changement de repère en 3D.
    On a un certain nombre de points, au moins 4, connus dans un système "ancien" et dans le système nouveau. (Système de départ et d'arrivée).
    La fonction calcule les 12 paramètres de la transformation affine qui minimisent la somme de carrés des écarts. Naturellement, s'il n' y a que 4 points, il n'y a qu'une solution, donc, pas de calcul de minimisation.
    Si les 4 points de base forment deux figures rigoureusement semblables, il n'y aura pas de déformation.
    Je pense que cette fonction peut vous intéresser. Elle est écrite en C compatible C++.
    Cordialement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    J'ai essayer de résoudre mon problème avec ta solution. Mais je n'ai pas réussi. Je te donne le détails de mes calculs pour que tu puisse me dire ou je me suis trompé. D'après ce que j'ai compris, je trouve :

    matrice de passage Mglob-CAO = [X|Z|Y]
    Avec X = |x2a-x1a
    |y2a-y1a
    |z2a-z1a

    Z = [X]^[pt3-pt1]

    et Y = [X]^[Z]

    J'ai fait de même pour la matrice de passage Mglob-Mac

    Ensuite je détermine la matrice de passage avec :

    MMac-CAO = Mglob-CAO*inv(Mglob-Mac)

    et pour vérifier mon calcul j'ai tenté de transformer un point CAO en point Machine en faisant:

    |Point1machine| = |MMac-CAO| * |Point1CAO|
    Et c'est la que tout bascule.

    Si tu pouvais regarder car je sais pas si je me suis trompé ou si j'ai mal compris ce que tu voulais me dire...

    Merci.

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Il doit y avoir une petite translation d'origine à rajouter dans les explications que j'ai données précédemment...

    Plutôt que de mettre ça par écrit, je joins une feuille de calcul (fichiers excel et OpenOffice ods dans le zip)

    changement_repere.zip
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Plegat.
    J'ai regardé votre fichier excel.
    Dans l'exemple que vous présentez, il ne s'agit de points situés dans le plan horizontal.
    Est-ce vraiment un changement de repère en 3D?
    Que se passe-t-il si les figures formées par les 3 points ne sont pas semblables?
    Cordialement.

  8. #8
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Dans l'exemple que vous présentez, il ne s'agit de points situés dans le plan horizontal.
    Est-ce vraiment un changement de repère en 3D?
    Avec 3 points, on ne peut définir qu'un plan de toute façon.
    Qu'il soit horizontal est juste mon choix, c'était plus pratique pour définir des coordonnées. La procédure n'en dépend pas, ça fonctionnera également pour un plan non horizontal.


    Citation Envoyé par Pierre Dolez Voir le message
    Que se passe-t-il si les figures formées par les 3 points ne sont pas semblables?
    Rien de particulier.
    Il faut juste que les pt1 soit les mêmes, et que les axes pt1-pt2 soit alignés.
    Sinon ça va complexifier le problème si les points de référence du contrôle ne sont pas les mêmes entre la CAO et la machine. De toute façon, la pièce à controler doit être positionnée sur des références, donc des points connus en CAO.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Invité
    Invité(e)
    Par défaut
    Oui, mais je me demande si ce n'est pas un peu plus compliqué que ça.
    Pour faire un changement de repère, il faut une translation T(Tx,Ty,Tz), une homothétie H telle que Hx=Hy=Hz, et 3 rotations autour des 3 axes Rx=Ry=Rz.
    Je suis sûr que si les triangles correspondants aux trois points de base ne sont pas semblables, cet ensemble de transformations n'est pas réalisable. On aura bien une transformation mais elle ne correspondra pas à ce que l'on souhaite.
    Il faut juste que les pt1 soit les mêmes, et que les axes pt1-pt2 soit alignés.
    Naturellement les points de référence doivent être la mêmes, mais avec quelle précision?
    Je ne comprend pas de quoi il s'agit : axes ... alignés

    Le gros avantage d'avoir 4 points ou plus est, outre le contrôle (une faute de frappe peut toujours arriver), une façon efficace d'apprécier la précision de la mesure.
    La formule générale de changement de repère comporte 12 paramètres, avec 3 points on ne peut calculer que 9 paramètres, sachant que certains seront identiques (au signe près).

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Pour faire un changement de repère, il faut une translation T(Tx,Ty,Tz), une homothétie H telle que Hx=Hy=Hz, et 3 rotations autour des 3 axes Rx=Ry=Rz.
    Je suis sûr que si les triangles correspondants aux trois points de base ne sont pas semblables, cet ensemble de transformations n'est pas réalisable.
    Je me suis limité à un changement de repère physique, sans homothétie (vu que je suppose que le système d'unité de la CAO correspond au système réel), et en supposant que les points CAO correspondent aux points contrôle (même si ce n'est pas forcément nécessaire).

    Citation Envoyé par Pierre Dolez Voir le message
    Naturellement les points de référence doivent être la mêmes, mais avec quelle précision?
    Ca dépend de comment ils sont créés (ou fabriqués, si on peut dire).
    La localisation des défauts se fera ensuite à une certaine tolérance près, à définir avec les chaines de côtes et tout ce qui va avec. Tout ça par rapport aux points de référence.

    Citation Envoyé par Pierre Dolez Voir le message
    Je ne comprend pas de quoi il s'agit : axes ... alignés
    les axes pt1-pt2 sur la CAO et sur la machine de controle doivent être les mêmes.

    Citation Envoyé par Pierre Dolez Voir le message
    Le gros avantage d'avoir 4 points ou plus est, outre le contrôle (une faute de frappe peut toujours arriver), une façon efficace d'apprécier la précision de la mesure.
    La formule générale de changement de repère comporte 12 paramètres, avec 3 points on ne peut calculer que 9 paramètres, sachant que certains seront identiques (au signe près).
    On est dans des repères orthonormés ici (ok, c'est implicite), donc 3 points suffisent. Un pour l'origine, le second pour l'axe Ox, le troisième pour le plan Oxy. L'axe Oz se déduit des autres données automatiquement.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    ça fait plaisir que mon problème donne lieu à une joute verbale (cela prouve que le sujet n'intéresse pas que moi !).

    Pour répondre aux quelques questions posées :
    - Les repères sont orthonormés.
    - Les figures représentées par les trois points sont identiques.
    - Les systèmes d'unité sont identiques.

    La solution de Plegat (que je remercie au passage pour passer du temps sur le sujet) me plait bien (c'est en fait le calcul mathématique de ce que j'ai fait en graphique via la CAO) mais je n'arrive pas à l'appliquer.

    Je ne comprend pas bien ou le fichier excel s'arrète dans le calcul. Je comprend bien les 2 matrices de passage, l'inverse de la matrice ainsi que le delta origine, mais pas ce qui suit.

    J'ai essayé de refaire les calculs avec mes points d'exemple (que j'ai repris de la CAO) sans succès.

    Je joint les points d'exemples que j'ai, pour que vous puissiez expliquer à un néophyte tel que moi.

    Exemple :
    Les 3 points dans le systeme CAO sont :
    Pt1a(-11.809,90,10)
    Pt2a(40,36.765,2.059)
    Pt3a(-7.5,0,-20)

    Les 3 points dans le systeme machine sont :
    Pt1m(461.015,73.224,17.55)
    Pt2m(425.416,138.885,15.984)
    Pt3m(476.321,162.218,46.948)


    Les coordonnées des points suivants sont des points exemples exprimés dans les 2 systèmes (le but étant de passer du systeme machine vers le systeme CAO).

    part machine

    x 40 425,416
    y 36,765 138,885
    z 2,059 15,984

    x -7,5 462,587
    y 36,765 122,14
    z 2,059 40,36

    x -7,5 476,321
    y 0 162,218
    z -20 46,948

    x -55 494,815
    y 50 90,968
    z 10 62,363


    Encore merci à vous deux.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour aupawi,
    Je cherche à résoudre le problème avec 3 points, mais dans un premier temps, ça m'intéresserait d'avoir un quatrième point non coplanaire avec les 3 autres.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Je n'avais pas vu que les points indiqués après les 3 premiers étaient aussi dans les deux systèmes.
    Donc, tout va bien, j'ai pu vérifier sur un cas réel.
    Ci dessous les 12 paramètres et la transformation faite à partir des 5 premiers points, c'est à dire les 3 points de base, et les 2 premier points de la liste.
    Affine Tx=464.89 Ty=160.91 XX= -0.782547 XY=-0.300187 YX= 0.352526 YY=-1.037889
    Le Z Tz=48.86 ZZ= -1.439980 XZ= 1.389808 YZ=0.989180 ZX= -0.513179 ZY=-0.255216
    Pt1 X=461.015 Y=73.224 Z=17.550
    Pt2 X=425.416 Y=138.885 Z=15.984
    Pt3 X=476.321 Y=162.218 Z=46.948
    Pt4 X=425.416 Y=138.885 Z=15.984
    Pt5 X=462.587 Y=122.140 Z=40.360
    Pt6 X=442.966 Y=138.478 Z=81.508
    Pt7 X=506.821 Y=99.514 Z=49.923

    Les points 6 et 7 ne correspondent pas aux données.
    Par ailleurs, on remarque que les figures formées par les 5 points, système machine et système CAO, sont semblables, puisque le calcul ne donne aucune déformation. Les 12 paramètres sont différents les uns des autres, et il n'apparait pas que certains soient suffisamment voisins de 1 ou 0 pour pouvoir être ignoré. J'en tire pour conclusion que trois points ne suffisent pas pour déterminer le changement de repère.

    Mais naturellement, la discussion reste ouverte.

    J'ai fait une erreur dans mon affirmation.
    Les homothéties-rotation forment un corps. Cela signifie que pour tout couple de figures semblables, il existe une homothétie-rotation et une seule, pour passer de l'une à l'autre.
    Si on rajoute une translation (les trois paramètres supplémentaires), il existe une infinité de transformations Translation+Homothétie+Rotation.
    Donc, 3 points suffisent pour faire un changement de repère.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Effectivement les points donnés en exemple sont exprimé dans les 2 repères mais seulement pour l'exemple, il est bien entendu que dans le cas de production le il n'existe que 3 points exprimés dans les 2 repères et une multitude de point donnés seulement dans le repère machine.

    Je suis convaincu que 3 points suffisent pour faire le changement de repère car j'ai pu le réaliser à l'aide de la CAO (à la main si on peut dire !).

    C'est pour ça que la solution de Plegat me convient même si pour l'instant je n'ai pas su la mettre en œuvre.

    Ceci dis je te remercie pour ta participation à ce sujet, je pense que c'est en discutant à plusieurs qu'on avance

  15. #15
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par aupawi Voir le message
    C'est pour ça que la solution de Plegat me convient même si pour l'instant je n'ai pas su la mettre en œuvre.
    Ci-joint l'application avec les points que tu as fournis: changement_repere_v2.zip
    (au passage, une petite correction apportée pour le calcul des matrice de passage, avec une normalisation des vecteurs qui n'y était pas dans la version précédente... vu que je bossais avec des vecteurs normés...)

    Je ne sais pas si ça sera plus clair, mais regarde la partie basse de la feuille de calcul, c'est la mise en application.

    En gros, les étapes sont (dans les deux sens CAO>controle et controle>CAO):
    • calcul du vecteur pt1-pt de calcul (ou translation pour amener l'origine au pt1)
    • multiplication par la matrice de passage pour avoir le nouveau vecteur pt1-pt de calcul
    • translation inverse pour ramener l'origine à 0


    Normalement ça devrait être bon, je m'en sors avec 0.04% d'erreur max (en-dessous du niveau de précision des valeurs numériques fournies, donc ok)!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Alors là je dis Monsieur !!!

    ça marche très bien et c'est exactement ce que je cherchais.
    Je pense que ce topic pourras servir à beaucoup de monde.

    Merci.

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fonction de changement de repères sur plus de 4 points
    Bonjour,

    Je viens de visiter ce forum à la recherche d'une fonction de changement de repère en 3D.
    Je suis trés intéressé par cette fonction qui gère plus de 4 points communs pour minimiser les écarts.
    Si vous pouviez me communiquer votre fonction, je vous en serai reconnaissant.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MATH] Matrice de changement de repère.
    Par Mr Meuble dans le forum Moteurs 3D
    Réponses: 6
    Dernier message: 27/11/2008, 11h05
  2. Changement de repère
    Par Virgile le chat dans le forum 2D
    Réponses: 4
    Dernier message: 16/06/2007, 10h26
  3. Changement de repère
    Par Bloodista dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/04/2007, 23h23
  4. URGENT : Zoom et changement de repère
    Par poca10 dans le forum MFC
    Réponses: 5
    Dernier message: 28/05/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo