# Conveni de Denavit-Hartenberg

El conveni de Denavit-Hartenberg, o notació de DH, és un mètode sistemàtic d'analitzar la cinemàtica directa d'un robot.
Aquest algoritme permet trobar la posició i orientació final del terminal d'un robot industrial, respecte un sistema de coordenades de referència, coneixent els valors de les articulacions i els paràmetres geomètrics dels elements del robot. El mètode usa una matriu de transformació homogènia per descriure la relació entre els sòlids rígids adjacents, relacionant, en global, l'extrem del robot amb el sistema de coordenades de la base.
Aquesta solució matricial va ser desenvolupada el 1955 per Jacques Denavit i Richard Hartenberg com una manera sistemàtica d'establir un sistema de coordenades lligat a cada element {S$_i$}, que mitjançant 4 transformacions bàsiques permet determinar les equacions cinemàtiques de la cadena completa.

## Procediment

Un manipulador robòtic, o una cadena cinemàtica en animació, és una cadena de sòlids rígids, anomenats elements (o links en anglès), connectats per una sèrie d'articulacions (o joints en anglès). Les articulacions són dues superfícies lliscant la una sobre l'altra relativament. En total hi ha sis parells cinemàtics, o articulacions, possibles: prismàtiques, de revolució, cilíndriques, de vis, esfèrques i planars. Generalment, en un robot, només es fan servir prismàtiques i de revolució.
En una cadena oberta, per cada articulació i 2 elements s'afegeix un grau de llibertat. Així, per n articulacions hi ha n graus de llibertat. El primer element de la cadena, juntament amb la base, estableix la base de l'eix de coordenades per l'anàlisi d'un robot industrial. Per altra banda, l'últim element acomoda el terminal, una eina o pinça que no es considera part del manipulador robot.
Els passos que s'han de seguir per determinar la posició del terminal respecte la base de l'eix de coordenades són:
* Numerar els elements començant des de 1, primer sòlid rígid de la cadena mòbil, i acabant en n. S'enumerarà com a element 0 a la base fixa del robot.
* Numerar cada articulació començant per 1, corresponent al primer grau de llibertat, i acabant en n.
* Localitzar l'eix de cada articulació. Si aquesta és rotativa, l'eix serà el seu propi eix de gir. Si és prismàtica, serà l'eix sobre el qual es faci el desplaçament.
* Per a i de 0 a n-1 situar l'eix z$_i$ sobre l'eix de l'articulació i+1.
* Situar l'origen del sistema de la base {S$_0$} en qualsevol punt de l'eix z$_0$. Els eixos x$_0$ i y$_0$ se situaran de manera que compleixin amb la regla de la mà dreta amb z$_0$ (sistema dextrogir).
* Per a i de 1 a n-1, situar el sistema {S$_i$}, solidari a l'element i, en la intersecció de l'eix z$_i$ amb la línia normal comú a z$_{i-1}$ i z$_i$. Si tots dos eixos es tallessin se situaria {S$_i$} al punt de tall. Si fossin paral·lels {S$_i$} se situaria a l'articulació i+1.
* Situar x$_i$ en la línia normal comú a z$_{i-1}$ i z$_i$.
* Situar y$_i$ de manera que es formi un sistema dextrogir amb x$_i$ i z$_i$.
* Situar el sistema {S$_n$} a l'extrem del robot de manera que z$_n$ coincideixi amb la direcció z$_{n-1}$ i x$_n$ sigui normal a z$_{n-1}$ i z$_n$.
* Obtenir θ$_i$ com a angle que ha de girar al voltant de z$_{i-1}$ perquè x$_{i-1}$ i x$_i$ quedin paral·lels.
* Obtenir d$_i$ com la distància, de llarg de z$_{i-1}$, que s'hauria de desplaçar {S$_{i-1}$} perquè x$_i$ i x$_{i-1}$ quedessin alineats.
* Obtenir a$_i$ com la distància mesurada de llarg de x$_i$ (que ara coincidiria amb x$_{i-1}$) que hauria de desplaçar-se el nou {S$_{i-1}$} perquè el seu origen coincidís amb {S$_i$}.
* Obtenir α$_i$ com l'angle que hauria de girar al voltant de x$_i$ (que ara coincidiria amb x$_{i-1}$) perquè el nou S$_{i-1}$ coincidís totalment amb S$_i$.
* Obtenir les matrius de transformació $^{i-1}$A$_i$.
* Obtenir la matriu de transformació que relaciona el sistema de la base amb la de l'extrem del robot $^0$T$_n$=$^0$A$_1$,¹A₂,$^{n-1}$A$_n$.
* La matriu T defineix l'orientació (submatriu de rotació) i posició (submatriu de translació) de l'extrem referit a la base en funció de les n coordenades articulars.
Exemples d'aquest procediment són presentats a l'apartat de cinemàtica dels articles del robot articulat, cilíndric, esfèric i SCARA.

## Paràmetres de Denavit-Hartenberg

Els quatre paràmetres de Denavit-Hartenberg (θ$_i$, d$_i$, a$_i$, α$_i$) depenen únicament de les característiques geomètriques de cada element i de les articulacions que els uneixen. En concret representen:
* θ$_i$ o l'angle de l'articulació. És l'angle que formen els eixos x$_{i-1}$ i x$_i$, mesurat en un pla perpendicular a l'eix z$_{i-1}$, usant la regla de la mà dreta. Es tracta d'un paràmetre variable en articulacions giratòries.
* d$_i$ o desplaçament d'element. És la distància al llarg de l'eix z$_{i-1}$ des de l'origen del sistema de coordenades (i-1)èssim fins a la intersecció de l'eix z$_{i-1}$ amb l'eix x$_i$. Es tracta d'un paràmetre variable en articulacions prismàtiques.
* a$_i$ o llargada d'element. És la distància al llarg de l'eix x$_i$ que va desde la intersecció de l'eix z$_{i-1}$ amb l'eix x$_i$ fins a l'origen del sistema i-èssim, en el cas d'articulacions giratòries. En el cas d'articulacions prismàtiques, es calcula com la distància més curta entre els eixos z$_{i-1}$ i z$_i$.
* α$_i$ o gir d'element. És l'angle de separació de l'eix z$_{i-1}$ i l'eix z$_i$, mitjançant un pla perpendicular a l'eix x$_i$, usant la regla de la mà dreta.

## Matrius de transformació

Seguint la convenció de Denavit-Hartenberg cada transformació homogènia A es pot representar com un producte de quatre transformacions bàsiques:
$A_{i}=Rot_{z,\theta _{i}}\cdot Trans_{z,d_{i}}\cdot Trans_{x,a_{i}}\cdot Rot_{x,\alpha _{i}}$
$Rot_{z,\theta _{i}}$
$Trans_{z,d_{i}}$
$Trans_{x,a_{i}}$
$Rot_{x,\alpha _{i}}$
$A_{i}={\begin{bmatrix}c_{\theta _{i}}&-s_{\theta _{i}}&0&0\\s_{\theta _{i}}&c_{\theta _{i}}&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}}\cdot {\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&d_{i}\\0&0&0&1\end{bmatrix}}\cdot {\begin{bmatrix}1&0&0&a_{i}\\0&1&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}}\cdot {\begin{bmatrix}1&0&0&0\\0&c_{\alpha _{i}}&-s_{\alpha _{i}}&0\\0&s_{\alpha _{i}}&c_{\alpha _{i}}&0\\0&0&0&1\end{bmatrix}}$
$A_{i}={\begin{bmatrix}c_{\theta _{i}}&-s_{\theta _{i}}c_{\alpha _{i}}&s_{\theta _{i}}s_{\alpha _{i}}&a_{i}c_{\theta _{i}}\\s_{\theta _{i}}&c_{\theta _{i}}c_{\alpha _{i}}&-c_{\theta _{i}}s_{\alpha _{i}}&a_{i}s_{\theta _{i}}\\0&s_{\alpha _{i}}&c_{\alpha _{i}}&d_{i}\\0&0&0&1\end{bmatrix}}$
On les lletres c i s són les funcions cosinus i sinus, respectivament, i les lletres θ$_i$, d$_i$, a$_i$, α$_i$ són els quatre paràmetres de Denavit-Hartenberg, descrits prèviament.

## Referències

* ↑ Spong, Hutchinson i Vidyasagar, 2005, p. 68.
* ↑ Barrientos et al., 2007, p. 93.
* ↑ Hartenberg, Richard S.; Denavit, Jacques «A kinematic notation for lower pair mechanisms based on matrices». Journal of applied mechanics, 1955, p. 215-221 [Consulta: 28 agost 2019].
* ↑ Barrientos et al., 2007, p. 96.
* 1 2 Ganesh, 2006, p. 93.
* 1 2 Barrientos et al., 2007, p. 97.
* ↑ Barrientos et al., 2007, p. 98.
* ↑ Spong, Hutchinson i Vidyasagar, 2005, p. 73.
* ↑ Barrientos et al., 2007, p. 99.
* ↑ Craig, 2005, p. 69.
* 1 2 Spong, Hutchinson i Vidyasagar, 2005, p. 69.

## Bibliografia

* Barrientos, Antonio; Peñín, Luis Felipe; Balaguer, Carlos; Santoja, Rafael Aracil. Fundamentos de robótica. McGraw-Hill Interamericana de España, 2007, p. 512. ISBN 978-8448156367 [Consulta: 23 gener 2017].
* Craig, John J. Introduction to Robotics Mechanics and Control. Pearson Prentice Hall, 2005, p. 400. ISBN 0-13-123629-6 [Consulta: 25 agost 2019].
* Ganesh, S. Hegde. A Texbook of Industrial Robotics (en anglès). Laxmi Publications, 2006, p. 219. ISBN 9788170089247 [Consulta: 13 abril 2017].
* Spong, Mark W.; Hutchinson, Seth; Vidyasagar, M. Robot Modeling and Control. John Wiley & Sons, Inc., 2005, p. 407. ISBN 978-0471649908 [Consulta: 20 abril 2019].

## Enllaços externs

* Vídeo a Youtube d'Aaron Becker: Intro2Robotics Lecture 5a: Forward kinematics: Denavit-Hartenberg convention (anglès)
* Vídeo a Youtube d'Angela Sodemann: 2 1 2 Lecture Video 3 of 4 Denavit Hartenberg Coordinate Frames (anglès)
* Vídeo a Youtube d'Angela Sodemann: 2 1 2 Lecture Video 4 of 4 Denavit Hartenberg Example (anglès)