19. Januar 2019, 14:21:28
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] Hilfe bei Transformationsberechnung


normal_post Autor Thema: [offen] Hilfe bei Transformationsberechnung  (Gelesen 1556 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

31. Mai 2018, 11:31:43
Gelesen 1556 mal
Offline

Hugoboss28


Hallo Leute,
ich bin dabei eine Base-Base und Tool-Tool Transformation in VB zu realisieren. eine Base-Base Transformation habe ich schon halbwegs geschafft. Die Punkte die ich auf die neue Base Transformiere sind in x,y,z exakt die gleichen wie die errechneten Punkte mit OrangeEdit. Allerdings habe ich mit den abc Winkeln noch probleme.
In diesem Forum habe ich was gefunden das aber schon länger her ist:


Zitat
Moin,

ich kann dir erklären, wie ich das auf dem PC mache, falls dir das weiterhilft. In C# oder VB.net geht das mit einer Handvoll Zeilen:

Man braucht das Koordinatensystem (z.B. dein Base) und die 6D-Position (z.B. dein TCP) als homogene Matrizen. Unter Windows z.B. in dieser Form
http://msdn.microsoft.com/de-de/library/system.windows.media.media3d.matrix3d.aspx

Die X,Y,Z-Koordinatenachsen von Punkt und Koordinatensystem findet man in den oberen 3 Elemtenten der drei ersten Spalten der Matrix als Einheitsvektoren. Wenn man jetzt den Winkel zwischen zwei dieser Achsen haben will, packt man die entsprechenden Spalten in je einen Vektor. Dann kann man eine Formel benutzen, um den Winkel zwischen den beiden Vektoren zu berechnen, oder z.B. direkt diese Funktion aufrufen:
http://msdn.microsoft.com/de-de/library/system.windows.media.media3d.vector3d.anglebetween%28v=VS.100%29.aspx

Wie man von einer Roboterposition zu Matrizen und zurück kommt, wurde hier sehr schön beschrieben.
http://www.roboterforum.de/roboter-forum/kuka_roboter/formel_fuer_geometrischen_operator-t3303.0.html;msg13660#msg13660

Hoffe ich habe dich jetzt nicht zu sehr verschreckt  icon_mrgreen

  Urmel


Könnte mich vieleicht da jemand unterstützen?
  • gefällt mir    Danke

Heute um 14:21:28
Antwort #1

Werbung

Gast

04. Juni 2018, 04:07:39
Antwort #1
Offline

panic mode


Hmmm... Drehfolge ist wichtig...

Keine Ahnung was Microsoft Entschiedung war fuer DotNET 3D Funktionen aber - es gibt 12 verschiedene Drehfolgen, die in Zwei Gruppen verteilt sind. Sechs Varianten ohne Achsen Wiederholung sind auch als "Tait-Brian" Transformationen bekant:

https://en.wikipedia.org/wiki/Euler_angles


Kuka nutzt Rz(A)*Ry(B)*Rx(C).

Bentzte Abkuerzungen sind:
c1 = COS(A)
c2 = COS(B)
c3 = COS(C)
s1 = SIN(A)
s2 = SIN(B)
s3 = SIN(C)




« Letzte Änderung: 04. Juni 2018, 04:09:58 von panic mode »
  • gefällt mir    Danke

05. Juni 2018, 08:12:14
Antwort #2
Offline

Urmel

Global Moderator
Wichtig wäre noch zu erwähnen, dass bei der .net Matrix gegenüber der üblichen mathematischen Schreibweise Zeilen und Spalten vertauscht sind.

Grüße

  Urmel
  • gefällt mir    Danke

13. Juni 2018, 20:33:54
Antwort #3
Offline

Hugoboss28


Danke für eure hilfreichen Infos. Vermutlich habe ich mich aber nicht richtig ausgedrückt.
Ich will eine Base zu Base Transformation in VB realisieren. Ich habe schon die neuen koordinaten eines vorgegebenen Punktes bezogen auf die neue Base ausrechnen können. Und das errechnete X,Y, Z passt mit der Transformation vom OrangeEdit exakt überein. Die Koordinaten des alten Punktes bezüglich der neuen Base also habe ich in VB realisiert.
Der Punkt hat aber auch a,b,c Winkel (Flansch bzw. Toolstellung bezüglich der Basis1). Wie aber werden diese Winkel bezüglich der Basis2 berechnet? Wäre sehr dankbar wenn mich da jemand von Euch unterstützen könnte.
  • gefällt mir    Danke

13. Juni 2018, 21:10:15
Antwort #4
Offline

Hugoboss28


Die Rotationsmatritzen habe ich ausprobiert. sowohl die Tait Bryan als auch die GeerNickRoll. Beide haben bei mir das gleiche Ergebnis gebracht (xyz des neuen Punktes bezüglich der neuen Basis).
Wie aber komme ich auf die neuen abc winkel des neuen Punktes?
  • gefällt mir    Danke

Heute um 14:21:28
Antwort #5

Werbung

Gast

13. Juni 2018, 21:16:20
Antwort #5
Offline

Urmel

Global Moderator
Hier sind beide Richtungen beschrieben, von (Kuka-) ABC in Matrix und von Matrix in ABC:
https://www.roboterforum.de/roboter-forum/kuka-roboter/3/formel-fur-geometrischen-operator/3303/msg13640#msg13640

Ich weise nochmal darauf hin, dass bei der .net Matrix Zeilen und Spalten vertauscht sind, siehe hier unter Hinweise:
https://msdn.microsoft.com/de-de/library/system.windows.media.media3d.matrix3d.aspx

Grüße

  Urmel
  • gefällt mir    Danke

21. Juni 2018, 22:37:42
Antwort #6
Offline

Hugoboss28


@ Urmel

Du hast vollkommen recht! Fällt das noch unter homogenen Matritzen?
Namespace:   System.Windows.Media.Media3D
O9sirztjfTUAAAAASUVORK5CYIIA
ich beschreibe ich die Matritzen  (Namespace system.Numerics) manuell.


  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH