Denavit-Hartenberg-Transformation

Beispiel einer kinematischen Kette anhand eines Roboters; mit Koordinatensystemen und DH-Parametern

Die Denavit-Hartenberg-Transformation (DH-Transformation) aus dem Jahr 1955 wurde nach Jacques Denavit und Richard S. Hartenberg benannt und ist ein mathematisches Verfahren, das auf der Basis von homogenen Matrizen und der sogenannten Denavit-Hartenberg-Konvention (DH-Konvention) die Überführung von Ortskoordinatensystemen (OKS) innerhalb von kinematischen Ketten beschreibt[1]. Dies wird vor allem in der Berechnung der direkten Kinematik (Vorwärtskinematik), der inversen Kinematik, als auch bei in der Kalibrierung von Industrierobotern gezielt ausgenutzt und gilt hierbei mittlerweile als das Standardverfahren im Bereich Robotik.

DH-Konvention

Folgende Voraussetzungen sind notwendig:

  1. die z n 1 {\displaystyle z_{n-1}} -Achse liegt entlang der Bewegungsachse des n {\displaystyle n} -ten Gelenks
  2. die x n {\displaystyle x_{n}} -Achse ist das Kreuzprodukt von z n 1 {\displaystyle z_{n-1}} -Achse und z n {\displaystyle z_{n}} -Achse ( e x n = e z n 1 × e z n {\displaystyle {\vec {e}}_{x_{n}}={\vec {e}}_{z_{n-1}}\times {\vec {e}}_{z_{n}}} ).
  3. das Koordinatensystem wird durch die y n {\displaystyle y_{n}} -Achse so ergänzt, dass es ein rechtshändiges System ergibt.

Für das erste Gelenk wird die x {\displaystyle x} -Achse vom zweiten Gelenk übernommen. Es ist weiter zu beachten, dass die nach der DH-Konvention modellierten Gelenke nicht an den gleichen Positionen liegen müssen wie ihre physischen Gegenstücke. Sofern die Verschiebung in einem der nachfolgenden Segmente der kinematischen Kette ausgeglichen wird, können Gelenke nach Belieben entlang ihrer Rotationsachse verschoben und um diese gedreht werden, ohne das Gesamtergebnis der Berechnung zu beeinflussen. Diese Eigenschaft wird gezielt ausgenutzt, um Gelenke so aneinander auszurichten, dass Rotationen und Verschiebungen entlang der y {\displaystyle y} -Achse vermieden werden und in der Folge die Anzahl der notwendigen Parameter zur Beschreibung der jeweiligen Transformationen von sechs auf vier reduziert werden kann.

Einen Sonderfall bilden Schubgelenke: Hier ist zusätzlich eine Translation orthogonal zum Schubvektor möglich, wodurch es in DH konformen Modellen - genau wie bei aufeinander folgenden, parallel ausgerichteten Gelenken - noch immer zu Redundanzen in den Modellparametern kommen kann. Um eine vollständige Kalibrierung zu ermöglichen, werden in der Theorie zudem zwei zusätzliche Freiheitsgrade zwischen dem letzten Gelenk und dem Endeffektor eines Roboters benötigt. Neueren Modellen wie dem S-Model[2], das complete and parametrically continuous kinematic (CPC) Model[3] und das Modifizierte CPC (MCPC) Model[4] ist es gelungen einzelne oder sogar alle Schwächen der DH-Konvention auszugleichen, jedoch haben diese Modelle nie eine ähnliche Bekanntheit wie die DH-Konvention erlangen können.

DH-Transformation

Die eigentliche DH-Transformation vom Objektkoordinatensystem (OKS) T n 1 {\displaystyle T_{n-1}} in das OKS T n {\displaystyle T_{n}} besteht in der Hintereinanderausführung folgender Einzeltransformationen:

  • einer Rotation θ n {\displaystyle \theta _{n}} (Gelenkwinkel) um die z n 1 {\displaystyle z_{n-1}} -Achse, damit die x n 1 {\displaystyle x_{n-1}} -Achse parallel zu der x n {\displaystyle x_{n}} -Achse liegt
Schritt 1 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Schritt 1 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Rot ( z n 1 , θ n ) = ( cos θ n sin θ n 0 0 sin θ n cos θ n 0 0 0 0 1 0 0 0 0 1 ) {\displaystyle \operatorname {Rot} (z_{n-1},\theta _{n})={\begin{pmatrix}\cos \theta _{n}&-\sin \theta _{n}&0&0\\\sin \theta _{n}&\cos \theta _{n}&0&0\\0&0&1&0\\0&0&0&1\\\end{pmatrix}}}
  • einer Translation d n {\displaystyle d_{n}} (Gelenkabstand) entlang der z n 1 {\displaystyle z_{n-1}} - Achse bis zu dem Punkt, wo sich z n 1 {\displaystyle z_{n-1}} und x n {\displaystyle x_{n}} schneiden
Schritt 2 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Schritt 2 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Trans ( z n 1 , d n ) = ( 1 0 0 0 0 1 0 0 0 0 1 d n 0 0 0 1 ) {\displaystyle \operatorname {Trans} (z_{n-1},d_{n})={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&1&d_{n}\\0&0&0&1\\\end{pmatrix}}}
  • einer Translation a n {\displaystyle a_{n}} (Armelementlänge) entlang der x n {\displaystyle x_{n}} -Achse, um die Ursprünge der Koordinatensysteme in Deckung zu bringen
Schritt 3 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Schritt 3 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Trans ( x n , a n ) = ( 1 0 0 a n 0 1 0 0 0 0 1 0 0 0 0 1 ) {\displaystyle \operatorname {Trans} (x_{n},a_{n})={\begin{pmatrix}1&0&0&a_{n}\\0&1&0&0\\0&0&1&0\\0&0&0&1\\\end{pmatrix}}}
  • einer Rotation α n {\displaystyle \alpha _{n}} (Verwindung) um die x n {\displaystyle x_{n}} -Achse, um die z n 1 {\displaystyle z_{n-1}} -Achse in die z n {\displaystyle z_{n}} -Achse zu überführen
Schritt 4 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Schritt 4 der Denavit-Hartenberg-Transformation. Koordinatensysteme und der zugehörige Denavit-Hartenberg Parameter
Rot ( x n , α n ) = ( 1 0 0 0 0 cos α n sin α n 0 0 sin α n cos α n 0 0 0 0 1 ) {\displaystyle \operatorname {Rot} (x_{n},\alpha _{n})={\begin{pmatrix}1&0&0&0\\0&\cos \alpha _{n}&-\sin \alpha _{n}&0\\0&\sin \alpha _{n}&\cos \alpha _{n}&0\\0&0&0&1\\\end{pmatrix}}}

Die beiden Rotation entsprechen hierbei den klassischen Euler Winkeln. In Matrixschreibweise lautet die Gesamttransformation dann (von links nach rechts zu interpretieren):

Koordinatensysteme und die zugehörigen Denavit-Hartenberg parameter
Koordinatensysteme und die zugehörigen Denavit-Hartenberg parameter
n 1 T n = Rot ( z n 1 , θ n ) Trans ( z n 1 , d n ) Trans ( x n , a n ) Rot ( x n , α n ) = ( cos θ n sin θ n cos α n sin θ n sin α n a n cos θ n sin θ n cos θ n cos α n cos θ n sin α n a n sin θ n 0 sin α n cos α n d n 0 0 0 1 ) . {\displaystyle {\begin{aligned}{}^{n-1}T_{n}=&\operatorname {Rot} (z_{n-1},\theta _{n})\cdot \operatorname {Trans} (z_{n-1},d_{n})\cdot \operatorname {Trans} (x_{n},a_{n})\cdot \operatorname {Rot} (x_{n},\alpha _{n})\\&\\=&{\begin{pmatrix}\cos \theta _{n}&-\sin \theta _{n}\cos \alpha _{n}&\sin \theta _{n}\sin \alpha _{n}&a_{n}\cos \theta _{n}\\\sin \theta _{n}&\cos \theta _{n}\cos \alpha _{n}&-\cos \theta _{n}\sin \alpha _{n}&a_{n}\sin \theta _{n}\\0&\sin \alpha _{n}&\cos \alpha _{n}&d_{n}\\0&0&0&1\\\end{pmatrix}}\,.\end{aligned}}}

Die Inverse dieser Matrix

n 1 T n 1 = Rot ( x n , α n ) Trans ( x n , a n ) Trans ( z n 1 , d n ) Rot ( z n 1 , θ n ) = ( cos θ n sin θ n 0 a n sin θ n cos α n cos θ n cos α n sin α n sin ( α n ) ( d n ) sin α n sin θ n sin α n cos θ n cos α n cos ( α n ) ( d n ) 0 0 0 1 ) = ( cos θ n sin θ n 0 a n sin θ n cos α n cos θ n cos α n sin α n d n sin α n sin α n sin θ n cos θ n sin α n cos α n d n cos α n 0 0 0 1 ) {\displaystyle {\begin{aligned}{}^{n-1}T_{n}^{-1}=&\operatorname {Rot} (x_{n},-\alpha _{n})\cdot \operatorname {Trans} (x_{n},-a_{n})\cdot \operatorname {Trans} (z_{n-1},-d_{n})\cdot \operatorname {Rot} (z_{n-1},-\theta _{n})\\&\\=&{\begin{pmatrix}\cos -\theta _{n}&-\sin -\theta _{n}&0&-a_{n}\\\sin -\theta _{n}\cos -\alpha _{n}&\cos -\theta _{n}\cos -\alpha _{n}&-\sin -\alpha _{n}&-\sin(-\alpha _{n})(-d_{n})\\\sin -\alpha _{n}\sin -\theta _{n}&\sin -\alpha _{n}\cos -\theta _{n}&\cos -\alpha _{n}&\cos(-\alpha _{n})(-d_{n})\\0&0&0&1\\\end{pmatrix}}\\&\\=&{\begin{pmatrix}\cos \theta _{n}&\sin \theta _{n}&0&-a_{n}\\-\sin \theta _{n}\cos \alpha _{n}&\cos \theta _{n}\cos \alpha _{n}&\sin \alpha _{n}&-d_{n}\sin \alpha _{n}\\\sin \alpha _{n}\sin \theta _{n}&-\cos \theta _{n}\sin \alpha _{n}&\cos \alpha _{n}&-d_{n}\cos \alpha _{n}\\0&0&0&1\\\end{pmatrix}}\end{aligned}}}

beschreibt die Transformation eines Punktes vom OKS T n {\displaystyle T_{n}} ins OKS T n 1 {\displaystyle T_{n-1}} . Entsprechend kann die ursprüngliche Matrix n 1 T n {\displaystyle {}^{n-1}T_{n}} auch als Transformation eines Punktes vom OKS T n 1 {\displaystyle T_{n-1}} ins OKS T n {\displaystyle T_{n}} interpretiert werden, wenn der Ortsvektor des Punktes von rechts an die Matrix multipliziert wird. Es ist zu beachten, dass die Matrizen-Multiplikation im Allgemeinen nicht kommutativ und somit die Berechnungsfolge der Gesamttransformation nicht vertauschbar ist.

Die Parameter θ n , d n , a n {\displaystyle \theta _{n},d_{n},a_{n}} und α n {\displaystyle \alpha _{n}} werden dabei auch Denavit-Hartenberg-Parameter genannt.

Bei offenen kinematischen Ketten sind θ n {\displaystyle \theta _{n}} und d n {\displaystyle d_{n}} variable Größen während der Bewegung des Roboters, abhängig von dessen spezieller Geometrie und Maßen. Bei einem rotatorischen Gelenk ist θ n {\displaystyle \theta _{n}} variant und d n {\displaystyle d_{n}} konstant, bei einem Schubgelenk umgekehrt. α n {\displaystyle \alpha _{n}} und a n {\displaystyle a_{n}} dagegen sind sowohl bei Rotations-, als auch bei Schubgelenken invariante Größen und müssen für die spätere Berechnung der direkten Kinematik nur einmal für jedes einzelne Armelement bestimmt werden.

Modifizierte DH-Parameter

Einige Bücher wie Introduction to Robotics: Mechanics and Control (3rd Edition) verwenden modifizierte DH-Parameter. Der Unterschied zwischen den klassischen DH-Parametern und den modifizierten DH-Parametern sind die Orte der Koordinatensystemanbindung an die Glieder und die Reihenfolge der durchgeführten Transformationen.

Im Vergleich zu den klassischen DH-Parametern werden die Koordinaten des Rahmens O i 1 {\displaystyle O_{i-1}} auf die Achse i 1 {\displaystyle i-1} gelegt, nicht auf die Achse i {\displaystyle i} in klassischer DH-Konvention. Die Koordinaten von O i {\displaystyle O_{i}} werden in klassischer DH-Konvention auf die Achse i {\displaystyle i} , nicht auf die Achse i + 1 {\displaystyle i+1} gelegt.

Ein weiterer Unterschied ist, dass nach der modifizierten Konvention die Transformationsmatrix durch die folgende Reihenfolge der Operationen gegeben ist:

n 1 T n = Rot x n 1 ( α n 1 ) Trans x n 1 ( a n 1 ) Rot z n ( θ n ) Trans z n ( d n ) {\displaystyle {}^{n-1}T_{n}=\operatorname {Rot} _{x_{n-1}}(\alpha _{n-1})\cdot \operatorname {Trans} _{x_{n-1}}(a_{n-1})\cdot \operatorname {Rot} _{z_{n}}(\theta _{n})\cdot \operatorname {Trans} _{z_{n}}(d_{n})}

Somit wird die Matrix der modifizierten DH-Parameter

n 1 T n = [ cos θ n sin θ n 0 a n 1 sin θ n cos α n 1 cos θ n cos α n 1 sin α n 1 d n sin α n 1 sin θ n sin α n 1 cos θ n sin α n 1 cos α n 1 d n cos α n 1 0 0 0 1 ] {\displaystyle \operatorname {} ^{n-1}T_{n}=\left[{\begin{array}{ccc|c}\cos \theta _{n}&-\sin \theta _{n}&0&a_{n-1}\\\sin \theta _{n}\cos \alpha _{n-1}&\cos \theta _{n}\cos \alpha _{n-1}&-\sin \alpha _{n-1}&-d_{n}\sin \alpha _{n-1}\\\sin \theta _{n}\sin \alpha _{n-1}&\cos \theta _{n}\sin \alpha _{n-1}&\cos \alpha _{n-1}&d_{n}\cos \alpha _{n-1}\\\hline 0&0&0&1\end{array}}\right]}

bzw. die Inverse:

n T n 1 = [ cos θ n sin θ n cos α n 1 sin θ n sin α n 1 a n 1 cos θ n sin θ n cos θ n cos α n 1 cos θ n sin α n 1 a n 1 sin θ n 0 sin α n 1 cos α n 1 d n 0 0 0 1 ] {\displaystyle \operatorname {} ^{n}T_{n-1}=\left[{\begin{array}{ccc|c}\cos \theta _{n}&\sin \theta _{n}\cos \alpha _{n-1}&\sin \theta _{n}\sin \alpha _{n-1}&-a_{n-1}\cos \theta _{n}\\-\sin \theta _{n}&\cos \theta _{n}\cos \alpha _{n-1}&\cos \theta _{n}\sin \alpha _{n-1}&a_{n-1}\sin \theta _{n}\\0&-\sin \alpha _{n-1}&\cos \alpha _{n-1}&-d_{n}\\\hline 0&0&0&1\end{array}}\right]}

In einigen Büchern wird die Transformationsreihenfolge für ein Paar aus aufeinanderfolgender Rotation und Translation (z. B. d n {\displaystyle d_{n}} und θ n {\displaystyle \theta _{n}} ) ersetzt. Da die Reihenfolge der Matrixmultiplikation für ein solches Paar jedoch keine Rolle spielt, ist das Ergebnis dasselbe. Ein Beispiel: Trans z n ( d n ) Rot z n ( θ n ) = Rot z n ( θ n ) Trans z n ( d n ) {\displaystyle \operatorname {Trans} _{z_{n}}(d_{n})\cdot \operatorname {Rot} _{z_{n}}(\theta _{n})=\operatorname {Rot} _{z_{n}}(\theta _{n})\cdot \operatorname {Trans} _{z_{n}}(d_{n})} .

Literatur

  • Hans-Jürgen Siegert, Siegfried Bocionek: Robotik, Programmierung intelligenter Roboter. Springer Verlag 1996, ISBN 3-540-60665-3.
  • Wolfgang Weber: Industrieroboter, Methoden der Steuerung und Regelung. Carl Hanser Verlag, München Wien, 2009, ISBN 978-3-446-41031-2.
  • Jorge Angeles: Fundamentals of Robotic Mechanical Systems. Springer Verlag, New York, 1997, ISBN 0-387-94540-7.
  • Friedrich Pfeiffer, Eduard Reithmeier: Roboterdynamik. Teubner Verlag, Stuttgart, 1987, ISBN 3-519-02077-7.
  • Miomir Vukobratvic: Introduction to Robotics. Springer Verlag, Berlin, 1989, ISBN 0-387-17452-4.
  • John J. Craig: Introduction to Robotics, Mechanics and Control. Pearson Prentice Hall, NJ 07458, 2005, ISBN 0-201-54361-3.
  • J.J. Craig, Introduction to Robotics: Mechanics and Control, 3rd ed., Pearson Prentice Hall, Upper Saddle River, NJ, 2004, ISBN 978-0201543612.
  • Chen-Gang, Li-Tong, Chu-Ming, J.-Q. Xuan und Xu, Sun-Han, Review on kinematics calibration technology of serial robots, International journal of precision engineering and manufacturing, 15(8):1759–1774, 2014.
Commons: Denavit-Hartenberg-Transformation – Sammlung von Bildern, Videos und Audiodateien
  • Eine Visualisierung zur Ermittlung der Denavit-Hartenberg-Parameter in englischer Sprache verfügbar unter:
    • Denavit-Hartenberg Reference Frame Layout auf YouTube
    • 1280x720 MPEG-4 (MP4; 49,8 MB),
    • 640x360 MPEG-4 (MP4; 19,2 MB)
  • 3D-Visualisierung zur Ermittlung der Denavit-Hartenberg-Parameter (Deutsch): Denavit-Hartenberg Parameter 3D Video Tutorial für einen KUKA Industrieroboter auf YouTube
  • Denavit-Hartenberg Parameters (englisch)

Einzelnachweise

  1. Jacques Denavit und Richard S. Hartenberg: A kinematic notation for lower-pair mechanisms based on matrices. 1955. 
  2. Stone, Henry W: Kinematic modeling, identification, and control of robotic manipulators. Springer Science & Business Media, 1987. 
  3. Zhuang, Hanqi and Roth, Zvi S and Hamano, Fumio: A complete and parametrically continuous kinematic model for robot manipulators. IEEE, 1992. 
  4. Zhuang, Hanqi and Wang, Luke K and Roth, Zvi S: Error-model-based robot calibration using a modified CPC model. Elsevier, 1993.