Para definir la cinématica directa e inversa de un robot de 3 grados de libertad (GDL) necesitamos conocer inicialmente los parámetros del robot, es decir, los valores de Denavit-Hartenberg.
i i i α i \alpha_i α i (rad)a i a_i a i (mm)d i d_i d i (mm)θ i \theta_i θ i (rad)1 π / 2 \pi/2 π /2 0 0 0 d 1 = 100 d_1=100 d 1 = 100 q 1 q_1 q 1 2 − π / 2 -\pi/2 − π /2 0 0 0 0 0 0 q 2 q_2 q 2 3 0 0 0 0 0 0 q 3 q_3 q 3 0 0 0
Con los valores de la tabla anterior podemos contruir las matrices de transformación siguiendo la estructura:
i − 1 A i = T z ( θ i ) ⋅ T ( 0 , 0 , d i ) ⋅ T ( a i , 0 , 0 ) ⋅ T x ( α i ) ^{i-1}A_i = T_z(\theta_i)\cdot T(0,0,d_i) \cdot T(a_i,0,0) \cdot T_x(\alpha_i) i − 1 A i = T z ( θ i ) ⋅ T ( 0 , 0 , d i ) ⋅ T ( a i , 0 , 0 ) ⋅ T x ( α i )
De esto tenemos
0 A 1 = [ cos ( q 1 ) 0 sin ( q 1 ) 0 sin ( q 1 ) 0 − cos ( q 1 ) 0 0 1 0 d 1 0 0 0 1 ] ^{0}A_1 =
\left[\begin{matrix}\cos{\left(q_{1} \right)} & 0 & \sin{\left(q_{1} \right)} & 0\\\sin{\left(q_{1} \right)} & 0 & - \cos{\left(q_{1} \right)} & 0\\0 & 1 & 0 & d_{1}\\0 & 0 & 0 & 1\end{matrix}\right] 0 A 1 = cos ( q 1 ) sin ( q 1 ) 0 0 0 0 1 0 sin ( q 1 ) − cos ( q 1 ) 0 0 0 0 d 1 1
1 A 2 = [ cos ( q 2 ) 0 − sin ( q 2 ) 0 sin ( q 2 ) 0 cos ( q 2 ) 0 0 − 1 0 0 0 0 0 1 ] ^{1}A_2 =
\left[\begin{matrix}\cos{\left(q_{2} \right)} & 0 & - \sin{\left(q_{2} \right)} & 0\\\sin{\left(q_{2} \right)} & 0 & \cos{\left(q_{2} \right)} & 0\\0 & -1 & 0 & 0\\0 & 0 & 0 & 1\end{matrix}\right] 1 A 2 = cos ( q 2 ) sin ( q 2 ) 0 0 0 0 − 1 0 − sin ( q 2 ) cos ( q 2 ) 0 0 0 0 0 1
2 A 3 = [ 1 0 0 0 0 1 0 0 0 0 1 q 3 0 0 0 1 ] ^{2}A_3 =
\left[\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & q_{3}\\0 & 0 & 0 & 1\end{matrix}\right] 2 A 3 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 q 3 1
Luego,
0 A 3 = [ cos ( q 1 ) cos ( q 2 ) − sin ( q 1 ) − sin ( q 2 ) cos ( q 1 ) − q 3 sin ( q 2 ) cos ( q 1 ) sin ( q 1 ) cos ( q 2 ) cos ( q 1 ) − sin ( q 1 ) sin ( q 2 ) − q 3 sin ( q 1 ) sin ( q 2 ) sin ( q 2 ) 0 cos ( q 2 ) d 1 + q 3 cos ( q 2 ) 0 0 0 1 ] ^{0}A_3 =
\left[\begin{matrix}\cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} & - \sin{\left(q_{1} \right)} & - \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} & - q_{3} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)}\\\sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} & \cos{\left(q_{1} \right)} & - \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} & - q_{3} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)}\\\sin{\left(q_{2} \right)} & 0 & \cos{\left(q_{2} \right)} & d_{1} + q_{3} \cos{\left(q_{2} \right)}\\0 & 0 & 0 & 1\end{matrix}\right] 0 A 3 = cos ( q 1 ) cos ( q 2 ) sin ( q 1 ) cos ( q 2 ) sin ( q 2 ) 0 − sin ( q 1 ) cos ( q 1 ) 0 0 − sin ( q 2 ) cos ( q 1 ) − sin ( q 1 ) sin ( q 2 ) cos ( q 2 ) 0 − q 3 sin ( q 2 ) cos ( q 1 ) − q 3 sin ( q 1 ) sin ( q 2 ) d 1 + q 3 cos ( q 2 ) 1
En esta matriz tenemos la transformación que sufre un objeto que se encuentra amarrado en el efector final del robot. Los terminos en las posiciones ( 1 , 4 ) (1,4) ( 1 , 4 ) , ( 2 , 4 ) (2,4) ( 2 , 4 ) y ( 3 , 4 ) (3,4) ( 3 , 4 ) de la matriz dan lugar a las posiciones ( x , y , z ) (x,y,z) ( x , y , z ) del efector final del robot:
x = − q 3 sin ( q 2 ) cos ( q 1 ) y = − q 3 sin ( q 1 ) sin ( q 2 ) z = d 1 + q 3 cos ( q 2 ) \begin{array}{cl}
x &= - q_{3} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)}
\\
y &= - q_{3} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)}
\\
z &= d_{1} + q_{3} \cos{\left(q_{2} \right)}
\end{array} x y z = − q 3 sin ( q 2 ) cos ( q 1 ) = − q 3 sin ( q 1 ) sin ( q 2 ) = d 1 + q 3 cos ( q 2 )
Asi hemos completado la cinemática directa de este robot.
Para encontrar la cinemática inversa de este robot usaremos la resolución mediante las matrices de transformación homogeneas. Para esto usaremos la relación:
T = 0 A 1 ⋅ 1 A 2 ⋅ 2 A 3 ( 1 ) T = ^{0}A_1 \cdot ^{1}A_2 \cdot ^{2}A_3 \qquad\qquad (1) T = 0 A 1 ⋅ 1 A 2 ⋅ 2 A 3 ( 1 )
donde
T = [ n x o x a x p x n y o y a y p y n z o z a z p z 0 0 0 1 ] T=
\left[\begin{matrix}n_{x} & o_{x} & a_{x} & p_{x}\\n_{y} & o_{y} & a_{y} & p_{y}\\n_{z} & o_{z} & a_{z} & p_{z}\\0 & 0 & 0 & 1\end{matrix}\right] T = n x n y n z 0 o x o y o z 0 a x a y a z 0 p x p y p z 1
Para este método iremos pasando cada matriz de transformación i − 1 A i ^{i-1}A_i i − 1 A i al otro lado de la igualdad e iremos encontrando ecuaciones que nos permitan relacionar la variable articulares q i q_i q i con las posiciones del efector final ( p x , p y , p z ) (p_x,p_y,p_z) ( p x , p y , p z ) .
0 A 1 − 1 ⋅ T = 1 A 2 ⋅ 2 A 3 ( 2 ) ^{0}A_1^{-1} \cdot T = ^{1}A_2 \cdot ^{2}A_3 \qquad\qquad (2) 0 A 1 − 1 ⋅ T = 1 A 2 ⋅ 2 A 3 ( 2 )
luego,
[ n x cos ( q 1 ) + n y sin ( q 1 ) o x cos ( q 1 ) + o y sin ( q 1 ) a x cos ( q 1 ) + a y sin ( q 1 ) p x cos ( q 1 ) + p y sin ( q 1 ) n z o z a z − d 1 + p z n x sin ( q 1 ) − n y cos ( q 1 ) o x sin ( q 1 ) − o y cos ( q 1 ) a x sin ( q 1 ) − a y cos ( q 1 ) p x sin ( q 1 ) − p y cos ( q 1 ) 0 0 0 1 ] = [ cos ( q 2 ) 0 − sin ( q 2 ) − q 3 sin ( q 2 ) sin ( q 2 ) 0 cos ( q 2 ) q 3 cos ( q 2 ) 0 − 1 0 0 0 0 0 1 ] \left[\begin{matrix}n_{x} \cos{\left(q_{1} \right)} + n_{y} \sin{\left(q_{1} \right)} & o_{x} \cos{\left(q_{1} \right)} + o_{y} \sin{\left(q_{1} \right)} & a_{x} \cos{\left(q_{1} \right)} + a_{y} \sin{\left(q_{1} \right)} & p_{x} \cos{\left(q_{1} \right)} + p_{y} \sin{\left(q_{1} \right)}\\n_{z} & o_{z} & a_{z} & - d_{1} + p_{z}\\n_{x} \sin{\left(q_{1} \right)} - n_{y} \cos{\left(q_{1} \right)} & o_{x} \sin{\left(q_{1} \right)} - o_{y} \cos{\left(q_{1} \right)} & a_{x} \sin{\left(q_{1} \right)} - a_{y} \cos{\left(q_{1} \right)} & p_{x} \sin{\left(q_{1} \right)} - p_{y} \cos{\left(q_{1} \right)}\\0 & 0 & 0 & 1\end{matrix}\right]
=
\left[\begin{matrix}\cos{\left(q_{2} \right)} & 0 & - \sin{\left(q_{2} \right)} & - q_{3} \sin{\left(q_{2} \right)}\\\sin{\left(q_{2} \right)} & 0 & \cos{\left(q_{2} \right)} & q_{3} \cos{\left(q_{2} \right)}\\0 & -1 & 0 & 0\\0 & 0 & 0 & 1\end{matrix}\right] n x cos ( q 1 ) + n y sin ( q 1 ) n z n x sin ( q 1 ) − n y cos ( q 1 ) 0 o x cos ( q 1 ) + o y sin ( q 1 ) o z o x sin ( q 1 ) − o y cos ( q 1 ) 0 a x cos ( q 1 ) + a y sin ( q 1 ) a z a x sin ( q 1 ) − a y cos ( q 1 ) 0 p x cos ( q 1 ) + p y sin ( q 1 ) − d 1 + p z p x sin ( q 1 ) − p y cos ( q 1 ) 1 = cos ( q 2 ) sin ( q 2 ) 0 0 0 0 − 1 0 − sin ( q 2 ) cos ( q 2 ) 0 0 − q 3 sin ( q 2 ) q 3 cos ( q 2 ) 0 1
extrayendo el termino ( 3 , 4 ) (3,4) ( 3 , 4 ) :
p x sin ( q 1 ) − p y cos ( q 1 ) = 0 p_{x} \sin{\left(q_{1} \right)} - p_{y} \cos{\left(q_{1} \right)} = 0 p x sin ( q 1 ) − p y cos ( q 1 ) = 0
despejando q 1 q_1 q 1 , obtenemos:
q 1 = atan ( p y p x ) ( Q 1 ) q_{1} = \operatorname{atan}{\left(\frac{p_{y}}{p_{x}} \right)}
\qquad\qquad (Q1) q 1 = atan ( p x p y ) ( Q 1 )
repetimos el proceso de pasar una matriz en la ecuación ( 2 ) (2) ( 2 ) :
1 A 2 − 1 ⋅ 0 A 1 − 1 ⋅ T = 2 A 3 ( 3 ) ^{1}A_2^{-1} \cdot ^{0}A_1^{-1} \cdot T = ^{2}A_3 \qquad\qquad (3) 1 A 2 − 1 ⋅ 0 A 1 − 1 ⋅ T = 2 A 3 ( 3 )
quedando:
[ n x cos ( q 1 ) cos ( q 2 ) + n y sin ( q 1 ) cos ( q 2 ) + n z sin ( q 2 ) o x cos ( q 1 ) cos ( q 2 ) + o y sin ( q 1 ) cos ( q 2 ) + o z sin ( q 2 ) a x cos ( q 1 ) cos ( q 2 ) + a y sin ( q 1 ) cos ( q 2 ) + a z sin ( q 2 ) − d 1 sin ( q 2 ) + p x cos ( q 1 ) cos ( q 2 ) + p y sin ( q 1 ) cos ( q 2 ) + p z sin ( q 2 ) − n x sin ( q 1 ) + n y cos ( q 1 ) − o x sin ( q 1 ) + o y cos ( q 1 ) − a x sin ( q 1 ) + a y cos ( q 1 ) − p x sin ( q 1 ) + p y cos ( q 1 ) − n x sin ( q 2 ) cos ( q 1 ) − n y sin ( q 1 ) sin ( q 2 ) + n z cos ( q 2 ) − o x sin ( q 2 ) cos ( q 1 ) − o y sin ( q 1 ) sin ( q 2 ) + o z cos ( q 2 ) − a x sin ( q 2 ) cos ( q 1 ) − a y sin ( q 1 ) sin ( q 2 ) + a z cos ( q 2 ) − d 1 cos ( q 2 ) − p x sin ( q 2 ) cos ( q 1 ) − p y sin ( q 1 ) sin ( q 2 ) + p z cos ( q 2 ) 0 0 0 1 ] = [ 1 0 0 0 0 1 0 0 0 0 1 q 3 0 0 0 1 ] \left[\begin{matrix}n_{x} \cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + n_{y} \sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + n_{z} \sin{\left(q_{2} \right)} & o_{x} \cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + o_{y} \sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + o_{z} \sin{\left(q_{2} \right)} & a_{x} \cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + a_{y} \sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + a_{z} \sin{\left(q_{2} \right)} & - d_{1} \sin{\left(q_{2} \right)} + p_{x} \cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + p_{y} \sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + p_{z} \sin{\left(q_{2} \right)}\\- n_{x} \sin{\left(q_{1} \right)} + n_{y} \cos{\left(q_{1} \right)} & - o_{x} \sin{\left(q_{1} \right)} + o_{y} \cos{\left(q_{1} \right)} & - a_{x} \sin{\left(q_{1} \right)} + a_{y} \cos{\left(q_{1} \right)} & - p_{x} \sin{\left(q_{1} \right)} + p_{y} \cos{\left(q_{1} \right)}\\- n_{x} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} - n_{y} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} + n_{z} \cos{\left(q_{2} \right)} & - o_{x} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} - o_{y} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} + o_{z} \cos{\left(q_{2} \right)} & - a_{x} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} - a_{y} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} + a_{z} \cos{\left(q_{2} \right)} & - d_{1} \cos{\left(q_{2} \right)} - p_{x} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} - p_{y} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} + p_{z} \cos{\left(q_{2} \right)}\\0 & 0 & 0 & 1\end{matrix}\right]
=
\left[\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & q_{3}\\0 & 0 & 0 & 1\end{matrix}\right] n x cos ( q 1 ) cos ( q 2 ) + n y sin ( q 1 ) cos ( q 2 ) + n z sin ( q 2 ) − n x sin ( q 1 ) + n y cos ( q 1 ) − n x sin ( q 2 ) cos ( q 1 ) − n y sin ( q 1 ) sin ( q 2 ) + n z cos ( q 2 ) 0 o x cos ( q 1 ) cos ( q 2 ) + o y sin ( q 1 ) cos ( q 2 ) + o z sin ( q 2 ) − o x sin ( q 1 ) + o y cos ( q 1 ) − o x sin ( q 2 ) cos ( q 1 ) − o y sin ( q 1 ) sin ( q 2 ) + o z cos ( q 2 ) 0 a x cos ( q 1 ) cos ( q 2 ) + a y sin ( q 1 ) cos ( q 2 ) + a z sin ( q 2 ) − a x sin ( q 1 ) + a y cos ( q 1 ) − a x sin ( q 2 ) cos ( q 1 ) − a y sin ( q 1 ) sin ( q 2 ) + a z cos ( q 2 ) 0 − d 1 sin ( q 2 ) + p x cos ( q 1 ) cos ( q 2 ) + p y sin ( q 1 ) cos ( q 2 ) + p z sin ( q 2 ) − p x sin ( q 1 ) + p y cos ( q 1 ) − d 1 cos ( q 2 ) − p x sin ( q 2 ) cos ( q 1 ) − p y sin ( q 1 ) sin ( q 2 ) + p z cos ( q 2 ) 1 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 q 3 1
extrayendo el termino ( 1 , 4 ) (1,4) ( 1 , 4 ) :
− d 1 sin ( q 2 ) + p x cos ( q 1 ) cos ( q 2 ) + p y sin ( q 1 ) cos ( q 2 ) + p z sin ( q 2 ) = 0 - d_{1} \sin{\left(q_{2} \right)} + p_{x} \cos{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + p_{y} \sin{\left(q_{1} \right)} \cos{\left(q_{2} \right)} + p_{z} \sin{\left(q_{2} \right)} = 0 − d 1 sin ( q 2 ) + p x cos ( q 1 ) cos ( q 2 ) + p y sin ( q 1 ) cos ( q 2 ) + p z sin ( q 2 ) = 0
despejando q 2 q_2 q 2 , obtenemos:
q 2 = atan ( p x 2 + p y 2 d 1 − p z ) ( Q 2 ) q_{2} = \operatorname{atan}{\left(\frac{\sqrt{p_{x}^2 + p_{y}^{2}}}{d_{1} - p_{z}} \right)}
\qquad\qquad (Q2) q 2 = atan d 1 − p z p x 2 + p y 2 ( Q 2 )
teniendo presente que:
p x cos ( q 1 ) + p y sin ( q 1 ) = p x 2 + p y 2 p_{x} \cos{\left(q_{1} \right)} + p_{y} \sin{\left(q_{1} \right)} =
\sqrt{p_{x}^2 + p_{y}^{2}} p x cos ( q 1 ) + p y sin ( q 1 ) = p x 2 + p y 2
Para q 3 q_3 q 3 podemos extraer el termino ( 3 , 4 ) (3,4) ( 3 , 4 ) de la ecuación ( 2 ) (2) ( 2 ) :
− d 1 cos ( q 2 ) − p x sin ( q 2 ) cos ( q 1 ) − p y sin ( q 1 ) sin ( q 2 ) + p z cos ( q 2 ) = q 3 - d_{1} \cos{\left(q_{2} \right)} - p_{x} \sin{\left(q_{2} \right)} \cos{\left(q_{1} \right)} - p_{y} \sin{\left(q_{1} \right)} \sin{\left(q_{2} \right)} + p_{z} \cos{\left(q_{2} \right)} = q_{3} − d 1 cos ( q 2 ) − p x sin ( q 2 ) cos ( q 1 ) − p y sin ( q 1 ) sin ( q 2 ) + p z cos ( q 2 ) = q 3
reorganizando los terminos:
q 3 = ( p z − d 1 ) cos ( q 2 ) − ( p x 2 + p y 2 ) sin ( q 2 ) ( Q 3 ) q_{3} = \left( p_{z} - d_{1}\right) \cos{\left(q_{2} \right)} - \left(\sqrt{p_{x}^2 + p_{y}^{2}}\right) \sin{\left(q_{2} \right)}
\qquad\qquad (Q3) q 3 = ( p z − d 1 ) cos ( q 2 ) − ( p x 2 + p y 2 ) sin ( q 2 ) ( Q 3 )
con las ecuaciones ( Q 1 ) (Q1) ( Q 1 ) , ( Q 2 ) (Q2) ( Q 2 ) y ( Q 3 ) (Q3) ( Q 3 ) completamos la cinemática inversa de este robot.