Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

4 Cinemática inversa

El problema de la cinemática inversa consiste en determinar las coordenadas articulares de un manipulador a partir de una posición u orientación deseada para su elemento terminal. A diferencia de la cinemática directa, en la que se conocen las coordenadas articulares y se calcula la pose resultante, aquí se parte de una tarea especificada en el espacio operacional para buscar una o más configuraciones que la satisfagan.

La cinemática inversa depende de la geometría del manipulador y de las restricciones impuestas a la tarea. Una misma pose puede alcanzarse con configuraciones distintas, no ser alcanzable o, en ciertas circunstancias, admitir infinitas configuraciones. Por ello, resolver el problema no consiste solamente en despejar incógnitas: también interesa determinar qué soluciones existen y cuáles son admisibles.

4.0.1Formulación del problema y tipos de solución

Para un manipulador serial de n articulaciones, representamos las coordenadas articulares mediante q=[q1,q2,…,qn]T\vec{q}=[q_1,q_2,\ldots,q_n]^T. Si se especifica una pose completa deseada, el problema se expresa como

Tn0(q)=H,T_n^0(\vec{q})=H,

donde Tn0(q)T_n^0(\vec{q}) es la transformación obtenida por cinemática directa y HH contiene la posición y orientación deseadas respecto del sistema base. Buscamos valores de q\vec{q} dentro del conjunto de configuraciones admisibles que satisfagan esta igualdad.

No todas las tareas exigen una pose completa. Si únicamente se prescribe la posición del extremo, basta imponer

p(q)=pd.\vec{p}(\vec{q})=\vec{p}_d.

En otras aplicaciones se especifican la posición y una componente de orientación, como ocurre con ciertos manipuladores planos o con el robot SCARA. Las ecuaciones deben corresponder a las variables operacionales que realmente se desean controlar.

Aunque la igualdad entre dos transformaciones homogéneas puede escribirse comparando sus entradas, la pose espacial contiene seis parámetros independientes: tres de posición y tres de orientación. Las entradas de la matriz de rotación están relacionadas por las condiciones de ortogonalidad y determinante unitario; por tanto, no constituyen nueve restricciones independientes.

Según el objetivo y la geometría del robot, pueden presentarse distintas situaciones:

  • Sin solución: el objetivo es inalcanzable, ya sea por la geometría del mecanismo o por sus límites articulares.

  • Con una o varias soluciones discretas: distintas configuraciones articulares pueden producir la misma posición o pose, como sucede con las configuraciones de codo arriba y codo abajo.

  • Con infinitas soluciones: algunas tareas dejan grados de libertad sin determinar, como ocurre en ciertos manipuladores redundantes o en configuraciones geométricas especiales.

Las soluciones deben interpretarse teniendo en cuenta los límites articulares y, cuando corresponda, las singularidades. El hecho de encontrar una solución matemática no garantiza que sea una configuración físicamente admisible.

En estos apuntes distinguiremos dos familias de procedimientos:

  1. Métodos de solución cerrada: emplean relaciones algebraicas, trigonométricas o construcciones geométricas para obtener expresiones de las coordenadas articulares. Estudiaremos por separado los enfoques algebraico y geométrico por su utilidad didáctica.

  2. Métodos numéricos: buscan soluciones aproximadas mediante procedimientos iterativos. Su desarrollo se relaciona estrechamente con la cinemática diferencial, que estudiaremos posteriormente.

No existe un procedimiento de solución cerrada aplicable de manera general a cualquier manipulador. La elección del método depende de la estructura cinemática y de las características de la tarea.

4.0.2Método algebraico

En el enfoque algebraico partimos del modelo de cinemática directa y formulamos ecuaciones escalares a partir de las componentes de posición y, cuando sea necesario, de orientación. Por ejemplo, en una tarea de pose completa buscamos las coordenadas articulares que verifiquen la ecuación (1).

Las ecuaciones resultantes suelen ser no lineales y contener funciones trigonométricas. Para resolverlas podemos emplear identidades trigonométricas, eliminación de variables y funciones trigonométricas inversas. Es importante conservar los cuadrantes y considerar las distintas ramas de solución; por esa razón utilizaremos \atantwo{y}{x} cuando debamos reconstruir un ángulo a partir de sus componentes seno y coseno.

En manipuladores de pocos grados de libertad suele ser posible obtener fórmulas compactas. Los ejemplos siguientes ilustran primero una tarea de posición en un robot RR plano y después una tarea de posición y orientación en un robot RRR plano.

Ejemplo. Calcule la cinemática inversa del manipulador RR mostrado en la Figura Figure 1. Considere que se requiere que el extremo del manipulador se posicione en las coordenadas (Px,Py) (P_x, P_y) .

Manipulador RR

Figure 1:Manipulador RR

Solución:

Naturalmente, las longitudes de los eslabones (l1 l_1 y l2 l_2 ) del robot son valores constantes y por lo tanto se asumen conocidos. Para resolver la cinemática inversa por el método analítico debemos primero calcular la matriz que describe la cinemática directa. En este caso T20 T_2^0 está dada por:

T20=[c12−s120l1c1+l2c12s12c120l1s1+l2s1200100001]T_2^0 = \begin{bmatrix} c_{12} & -s_{12} & 0 & l_1 c_1 + l_2 c_{12} \\ s_{12} & c_{12} & 0 & l_1 s_1 + l_2 s_{12} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Conocida T20T_2^0, igualamos sus componentes de posición con las coordenadas deseadas (Px,Py)(P_x,P_y). Obtenemos las ecuaciones:

l1c1+l2c12=Pxl_1 c_1 + l_2 c_{12} = P_x
l1s1+l2s12=Pyl_1 s_1 + l_2 s_{12} = P_y

Al elevar al cuadrado ambas ecuaciones y sumar, resulta

Px2+Py2=l12+l22+2l1l2(c1c12+s1s12).P_x^2+P_y^2 =l_1^2+l_2^2 +2l_1l_2\left(c_1c_{12}+s_1s_{12}\right).

Aplicando la identidad cos⁡(A−B)=cos⁡Acos⁡B+sin⁡Asin⁡B\cos(A-B)=\cos A\cos B+\sin A\sin B:

Px2+Py2=l12+l22+2l1l2cos⁡q2.P_x^2+P_y^2=l_1^2+l_2^2+2l_1l_2\cos q_2.

Definimos

K=Px2+Py2−l12−l222l1l2=cos⁡q2.K=\frac{P_x^2+P_y^2-l_1^2-l_2^2}{2l_1l_2}=\cos q_2.

Como sin⁡q2=±1−K2\sin q_2=\pm\sqrt{1-K^2}, obtenemos las dos ramas de solución:

q2=arctan2(±1−K2, K).\boxed{q_2=\atantwo{\pm\sqrt{1-K^2}}{K}}.

Para que exista una solución real es necesario que ∣K∣≤1|K|\leq 1, suponiendo l1,l2>0l_1,l_2>0. Esta condición es equivalente a que la distancia r=Px2+Py2r=\sqrt{P_x^2+P_y^2} satisfaga

∣l1−l2∣≤r≤l1+l2.|l_1-l_2|\leq r\leq l_1+l_2.

Para calcular q1q_1, retomamos las ecuaciones (4) y (5). Al multiplicar en cruz las expresiones de posición obtenemos

Py(l1c1+l2c12)=Px(l1s1+l2s12).P_y\left(l_1 c_1+l_2 c_{12}\right) = P_x\left(l_1 s_1+l_2 s_{12}\right).

Aplicando las identidades trigonométricas de suma de ángulos:

Py(l1c1+l2c1c2−l2s1s2)=Px(l1s1+l2s1c2+l2c1s2).P_y\left(l_1 c_1+l_2 c_1 c_2-l_2 s_1 s_2\right) = P_x\left(l_1 s_1+l_2 s_1 c_2+l_2 c_1 s_2\right).

Agrupando los términos que dependen de cos⁡q1\cos q_1 y sin⁡q1\sin q_1:

c1(Pyl1+Pyl2c2−Pxl2s2)=s1(Pxl1+Pxl2c2+Pyl2s2).c_1\left(P_y l_1+P_y l_2 c_2-P_x l_2 s_2\right) = s_1\left(P_x l_1+P_x l_2 c_2+P_y l_2 s_2\right).

Para recuperar el ángulo sin perder información del cuadrante, utilizamos las dos cantidades

N=Py(l1+l2c2)−Pxl2s2,D=Px(l1+l2c2)+Pyl2s2.\begin{aligned} N &= P_y(l_1+l_2 c_2)-P_x l_2 s_2,\\ D &= P_x(l_1+l_2 c_2)+P_y l_2 s_2. \end{aligned}

De las ecuaciones originales de posición se comprueba que

N=r2sin⁡q1,D=r2cos⁡q1,r2=Px2+Py2.N=r^2\sin q_1,\qquad D=r^2\cos q_1, \qquad r^2=P_x^2+P_y^2.

Por lo tanto, si r≠0r\neq 0, obtenemos la solución algebraica:

q1=arctan2(Pyl1+Pyl2c2−Pxl2s2, Pxl1+Pxl2c2+Pyl2s2).\boxed{ q_1=\atantwo{ P_y l_1+P_y l_2 c_2-P_x l_2 s_2 }{ P_x l_1+P_x l_2 c_2+P_y l_2 s_2 }. }

Una forma alternativa de interpretar el resultado. Si reescribimos las ecuaciones de posición como

[PxPy]=[c1−s1s1c1][l1+l2c2l2s2],\begin{bmatrix}P_x\\P_y\end{bmatrix} = \begin{bmatrix} c_1&-s_1\\s_1&c_1 \end{bmatrix} \begin{bmatrix} l_1+l_2c_2\\l_2s_2 \end{bmatrix},

observamos que el vector de posición resulta de rotar un ángulo q1q_1 el vector de componentes (l1+l2c2,  l2s2)(l_1+l_2c_2,\;l_2s_2). Esta interpretación conduce a la expresión equivalente

q1=arctan2(Py, Px)−arctan2(l2sin⁡q2, l1+l2cos⁡q2).q_1=\atantwo{P_y}{P_x} -\atantwo{l_2\sin q_2}{l_1+l_2\cos q_2}.

Para cada valor de q2q_2 debe utilizarse el valor correspondiente de q1q_1. En general, las dos ramas habituales coinciden geométricamente cuando ∣K∣=1|K|=1. Existe un caso especial: si l1=l2l_1=l_2 y Px=Py=0P_x=P_y=0, entonces q2=πq_2=\pi, pero q1q_1 puede tomar cualquier valor; en ese caso no debemos evaluar ninguna de las expresiones anteriores con argumentos (0,0)(0,0) en la función arctan2.

Podemos comprobar cada solución sustituyéndola en las ecuaciones (4) y (5).


Ejemplo. Calcule la cinemática inversa del manipulador RRR de la Figura Figure 2. El extremo debe alcanzar la posición (Px,Py)(P_x,P_y) y el eje x3x_3 debe formar un ángulo orientado ϕ\phi respecto de x0x_0, medido alrededor del eje perpendicular al plano del manipulador.

Manipulador RRR plano

Figure 2:Manipulador RRR plano

Solución:

La cinemática directa del manipulador está dada por

T30=[c123−s1230l1c1+l2c12+l3c123s123c1230l1s1+l2s12+l3s12300100001].T_3^0= \begin{bmatrix} c_{123}&-s_{123}&0&l_1c_1+l_2c_{12}+l_3c_{123}\\ s_{123}&c_{123}&0&l_1s_1+l_2s_{12}+l_3s_{123}\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}.

La posición deseada proporciona dos ecuaciones:

l1c1+l2c12+l3c123=Px,l_1c_1+l_2c_{12}+l_3c_{123}=P_x,
l1s1+l2s12+l3s123=Py.l_1s_1+l_2s_{12}+l_3s_{123}=P_y.

Como tenemos tres incógnitas articulares, la información de posición no basta para obtener una solución discreta. La orientación del extremo introduce la condición

[c123−s123s123c123]=[cos⁡ϕ−sin⁡ϕsin⁡ϕcos⁡ϕ],\begin{bmatrix}c_{123}&-s_{123}\\s_{123}&c_{123}\end{bmatrix} = \begin{bmatrix}\cos\phi&-\sin\phi\\\sin\phi&\cos\phi\end{bmatrix},

de la cual se deduce, sin dividir por senos ni cosenos, que

q1+q2+q3=ϕ.q_1+q_2+q_3=\phi.

Por tanto, c123=cos⁡ϕc_{123}=\cos\phi y s123=sin⁡ϕs_{123}=\sin\phi. Definimos el punto auxiliar QQ, correspondiente al extremo del segundo eslabón:

Qx=Px−l3cos⁡ϕ,Qy=Py−l3sin⁡ϕ.Q_x=P_x-l_3\cos\phi,\qquad Q_y=P_y-l_3\sin\phi.

Al sustituir en las ecuaciones de posición obtenemos

l1c1+l2c12=Qx,l_1c_1+l_2c_{12}=Q_x,
l1s1+l2s12=Qy.l_1s_1+l_2s_{12}=Q_y.

Estas expresiones son idénticas a las de un manipulador RR plano cuyo extremo debe alcanzar (Qx,Qy)(Q_x,Q_y). Con

K=Qx2+Qy2−l12−l222l1l2,K=\frac{Q_x^2+Q_y^2-l_1^2-l_2^2}{2l_1l_2},

las ramas de solución, cuando ∣K∣≤1|K|\leq1, son

q2=arctan2(±1−K2, K),\boxed{q_2=\atantwo{\pm\sqrt{1-K^2}}{K}},
q1=arctan2(Qy, Qx)−arctan2(l2sin⁡q2, l1+l2cos⁡q2),\boxed{ q_1=\atantwo{Q_y}{Q_x} -\atantwo{l_2\sin q_2}{l_1+l_2\cos q_2}, }

y finalmente

q3=ϕ−q1−q2.\boxed{q_3=\phi-q_1-q_2}.

El signo elegido para q2q_2 determina la rama y debe mantenerse al calcular q1q_1 y q3q_3. Como en el ejemplo RR, existen configuraciones degeneradas que requieren un tratamiento especial y las soluciones deben verificarse mediante la cinemática directa.

4.0.3Cinemática inversa de posición: método geométrico

En el método geométrico aprovechamos la disposición de los ejes articulares y las dimensiones conocidas de los eslabones para relacionar las variables articulares con la posición deseada. Es frecuente utilizar triángulos, proyecciones sobre planos y relaciones trigonométricas, como la ley de cosenos.

La elección del plano de proyección no sigue una regla universal basada únicamente en el tipo de articulación. Buscamos el plano en el que se aprecien mejor los movimientos y las longitudes relevantes. Por ejemplo, en un manipulador plano RR todas las articulaciones revolutas giran alrededor de ejes paralelos y podemos trabajar directamente en el plano de movimiento; en ciertos manipuladores espaciales conviene utilizar varias proyecciones.

Es recomendable construir diagramas en configuraciones suficientemente generales para distinguir longitudes y ángulos, pero no es incorrecto representar una configuración con ángulos múltiplos de 90∘90^\circ o desplazamientos nulos. Lo importante es no confundir una posición elegida para dibujar el mecanismo con una restricción de su movimiento.

El enfoque geométrico permite obtener expresiones compactas cuando la arquitectura del robot favorece estas construcciones. Aunque aquí lo utilizaremos principalmente para cinemática inversa de posición, también puede ayudar a resolver aspectos de orientación y forma parte de los métodos de solución cerrada.

Ejemplo. Utilice el método geométrico para calcular la cinemática inversa del manipulador RR mostrado en la Figura Figure 1. Considere que el elemento terminal deberá alcanzar la posición dada por (Px,Py)(P_x, P_y).

Solución:

Recordar que este manipulador lo habíamos resuelto con el método analítico. Primero, es importante comprender que el manipulador RR planar puede alcanzar un punto (PxP_x, PyP_y) con alguna de las dos configuraciones que se muestran en la Figura Figure 3. Siempre que dicho punto sea alcanzable y no corresponda a una configuración degenerada. Las configuraciones se denominan codo arriba y codo abajo, por la obvia analogía de este manipulador con un brazo humano. A continuación desarrollaremos las dos ramas de solución, siguiendo la convención de signos de las figuras.

Dos posibles configuraciones para el manipulador RR

Figure 3:Dos posibles configuraciones para el manipulador RR

Solución para la configuración de codo abajo

Lo primero que debemos hacer es proyectar el manipulador en los planos que correspondan. Si queremos resolver para q1 q_1 debemos proyectar en el plano x0y0 x_0 y_0 . Para determinar q2 q_2 debemos proyectar en el plano x1y1 x_1 y_1 . Algo a considerar en este caso es que los planos x0y0 x_0 y_0 y x1y1 x_1 y_1 son planos paralelos entre sí, por lo tanto, tendremos la misma proyección resultante en ambos casos.

Proyección del manipulador RR (codo abajo)

Figure 4:Proyección del manipulador RR (codo abajo)

Como se observa en la figura Figure 4 el manipulador RR se proyecta en el plano x0y0x_0 y_0 y se trazan los triángulos mostrados. De este diagrama se observa que el ángulo q1q_1 puede calcularse una vez conocidos los ángulos α\alpha y β\beta mediante una simple diferencia:

q1=α−β\textcolor{green}{ q_1 = \alpha - \beta }

El ángulo orientado α\alpha se determina a partir de las coordenadas PxP_x y PyP_y sin perder información de cuadrante:

α=arctan2(Py, Px)\alpha = \atantwo{P_y}{P_x}

La longitud rr puede calcularse como:

r=Px2+Py2r = \sqrt{P_x^2 + P_y^2}

El ángulo β\beta se determina aplicando ley de cosenos:

l22=l12+r2−2l1rcos⁡β→β=arccos⁡(l12+r2−l222l1r)l_2^2 = l_1^2 + r^2 - 2l_1 r \cos \beta \qquad \rightarrow \qquad \beta = \arccos\left( \frac{l_1^2 + r^2 - l_2^2}{2l_1 r} \right)

De forma similar a β\beta y utilizando el mismo triángulo se puede determinar q2q_2 aplicando ley de cosenos:

r2=l12+l22+2l1l2cos⁡q2→cos⁡q2=r2−l12−l222l1l2r^2 = l_1^2 + l_2^2 + 2l_1 l_2 \cos q_2 \qquad \rightarrow \qquad \cos q_2 = \frac{r^2 - l_1^2 - l_2^2}{2l_1 l_2}

De lo cual se tiene que:

q2=arccos⁡(r2−l12−l222l1l2)\textcolor{green}{ q_2 = \arccos \left( \frac{r^2 - l_1^2 - l_2^2}{2l_1 l_2} \right) }

Solución para la configuración de codo arriba

Vamos a abordar ahora la otra posible solución para la cinemática inversa del manipulador RR, con la configuración de codo arriba. En la Figura Figure 5 se puede observar la proyección del manipulador en el plano x0y0x_0 y_0.

Proyección del manipulador RR (codo arriba)

Figure 5:Proyección del manipulador RR (codo arriba)

Del diagrama se puede notar rápidamente que el ángulo q1q_1 es la suma de los ángulos internos α\alpha y β \beta , es decir:

q1=α+β\textcolor{green}{q_1 = \alpha + \beta}

El ángulo orientado α\alpha se obtiene considerando el cuadrante del punto objetivo:

α=arctan2(Py, Px)\alpha = \atantwo{P_y}{P_x}

Para determinar β\beta podemos aplicar ley de cosenos en el triángulo obtusángulo:

l22=l12+r2−2l1rcos⁡βl_2^2 = l_1^2 + r^2 - 2l_1 r \cos \beta
β=arccos⁡(l12+r2−l222l1r)\beta = \arccos\left( \frac{l_1^2 + r^2 - l_2^2}{2l_1 r} \right)

En la expresión anterior rr es un valor no conocido, pero que podemos calcularlo aplicando el teorema de Pitágoras en el triángulo rectángulo:

r=Px2+Py2r = \sqrt{P_x^2 + P_y^2}

Para calcular a q2q_2 podemos aplicar ley de cosenos en el triángulo obtusángulo:

r2=l12+l22+2l1l2cos⁡q2→cos⁡q2=r2−l12−l222l1l2r^2 = l_1^2 + l_2^2 + 2l_1 l_2 \cos q_2 \qquad \rightarrow \qquad \cos q_2 = \frac{r^2 - l_1^2 - l_2^2}{2l_1 l_2}

Antes de establecer el resultado para q2q_2, es importante mencionar que de acuerdo al diagrama de la proyección trazada, el ángulo q2 q_2 debería ser negativo, por la manera en la cual se asume su medición (sentido horario) en el esquema. Entonces, es crucial que al resultado que se obtenga de despejar la expresión anterior, se le multiplique por -1, para garantizar lo ya mencionado; es decir:

q2=−arccos⁡(r2−l12−l222l1l2)\textcolor{green}{ q_2 = - \arccos \left( \frac{r^2 - l_1^2 - l_2^2}{2l_1 l_2} \right) }

Si r=0r=0 y l1=l2l_1=l_2, la construcción geométrica de los triángulos deja de determinar q1q_1: este es el caso especial de infinitas soluciones discutido en el método algebraico.


Ejemplo. Calcule la cinemática inversa del manipulador RRRRRR mostrado en la figura. Considere que el elemento terminal deberá alcanzar la posición dada por: rP=[Px,Py,Pz]T \vec{r}_P = [P_x, P_y, P_z]^T .

Manipulador RRR

Figure 6:Manipulador RRR

Solución:

De acuerdo con lo que sabemos, para calcular a q1q_1 debemos proyectar en el plano x0y0x_0 y_0; para calcular a q2q_2 en el plano x1y1x_1 y_1 y para q3q_3 en el plano x2y2x_2 y_2. Estos dos últimos planos son paralelos. En la Figura Figure 7 se puede observar una representación tridimensional del manipulador RRR; del lado izquierdo se muestra en color rojizo el plano de proyección x0y0x_0 y_0, y del lado derecho en color verde claro se muestra el plano de proyección x1y1x_1 y_1.

Vista tridimensional de los planos de proyección del manipulador RRR

Figure 7:Vista tridimensional de los planos de proyección del manipulador RRR

En la Figura Figure 8 se puede observar el esquema de la proyección del manipulador en el plano x0y0x_0 y_0. Es sencillo notar que el valor de q1q_1 se puede calcular como sigue:

q1=arctan2(Py, Px)q_1 = \atantwo{P_y}{P_x}

Además, el valor de la distancia aa sería:

a=Px2+Py2a = \sqrt{P_x^2 + P_y^2 }
Manipulador RRR, proyección en x_0 y_0

Figure 8:Manipulador RRR, proyección en x0y0x_0 y_0

En la Figura Figure 9 se puede observar la proyección del manipulador en el plano x1y1x_1 y_1. La manera de proceder en este esquema es muy similar a lo que se hizo con el manipulador RR. Del esquema observamos que se tienen dos triángulos, los cuales denominaremos de la siguiente manera:

  • Triángulo 1: el triángulo rectángulo, cuyos catetos son aa y (Pz−d1)(P_z - d_1), y siendo rr la hipotenusa.

  • Triángulo 2: el triángulo obtusángulo, cuyos lados son l2l_2, l3l_3 y rr.

Manipulador RRR, proyección en x_1 y_1

Figure 9:Manipulador RRR, proyección en x1y1x_1 y_1

Del esquema se puede observar que la variable articular q2q_2 corresponde a la diferencia de los ángulos internos α\alpha y β\beta:

q2=α−βq_2 = \alpha - \beta

Utilizando el triángulo 1 podemos calcular el valor de α\alpha y rr de la siguiente manera:

α=arctan2(Pz−d1, a)\alpha = \atantwo{P_z-d_1}{a}
r=a2+(Pz−d1)2r = \sqrt{a^2 + (P_z - d_1)^2}

En el triángulo 2 podemos aplicar ley de cosenos para calcular a β \beta :

l32=l22+r2−2l2rcos⁡βl_3^2 = l_2^2 + r^2 - 2 l_2 r \cos \beta
β=arccos⁡(l22+r2−l322l2r)\beta = \arccos \left( \frac{l_2^2 + r^2 - l_3^2}{2 l_2 r} \right)

Utilizando el mismo triángulo 2 podemos ahora calcular el valor de q3q_3, aplicando también ley de cosenos:

r2=l22+l32+2l2l3cos⁡q3r^2 = l_2^2 + l_3^2 + 2 l_2 l_3 \cos q_3
q3=arccos⁡(r2−l22−l322l2l3)q_3 = \arccos\left( \frac{r^2 - l_2^2 - l_3^2}{2 l_2 l_3} \right)

De esta manera obtenemos una rama de solución para el manipulador RRR. Cuando la geometría y los límites articulares lo permitan, el triángulo formado por l2l_2, l3l_3 y rr también admite una configuración alternativa, que debe analizarse mediante los signos de q2q_2 y q3q_3 según la convención articular del diagrama. En ambos casos debemos comprobar la solución por cinemática directa.

4.0.4Desacoplo cinemático

La mayoría de manipuladores industriales de 6 grados de libertad, como el que se muestra en la Figura Figure 10, están conformados por una morfología base (RRR), a la cual se le adiciona un mecanismo de muñeca esférica (RRR). Para este tipo de manipuladores es posible aplicar una técnica conocida como desacoplo cinemático, la cual consiste en dividir el problema de la cinemática inversa en dos subproblemas: cinemática inversa de posición y cinemática inversa de orientación. La cinemática inversa de posición se suele abordar utilizando un enfoque geométrico y la cinemática inversa de orientación mediante un procedimiento analítico.

Robot industrial ABB IRB 120

Figure 10:Robot industrial ABB IRB 120

A continuación, vamos a describir una serie de pasos necesarios para realizar cinemática inversa de un manipulador de 6 grados de libertad utilizando la técnica de desacoplo cinemático. Para lo subsiguiente asumimos que se conoce de entrada la matriz de transformación homogénea HH que describe la posición y orientación deseada del extremo del manipulador.

Lo primero que hacemos es construir el diagrama cinemático del manipulador, basándonos en los manuales y esquemáticos del fabricante. Es importante identificar correctamente las distancias entre los ejes articulares. Con el diagrama ya realizado, procedemos a establecer los sistemas de referencia siguiendo la metodología de Denavit-Hartenberg. Obtenemos la tabla de parámetros y calculamos las matrices R30 R_3^0 y R63 R_6^3 . Es importante comprender que R30 R_3^0 será una matriz que depende de los primeras tres variables articulares ( R30(q1,q2,q3) R_3^0 (q_1,q_2,q_3) ), y que R63 R_6^3 depende de las últimas tres R63(q4,q5,q6) R_6^3 (q_4,q_5,q_6) .

Una vez hecho lo anterior, comenzamos a calcular las coordenadas del centro de la muñeca esférica, utilizando la siguiente ecuación:

rm=re−d6z60\vec{r}_m = \vec{r}_e - d_6 \vec{z}_6^0

Donde re\vec{r}_e son las coordenadas de posición que deberá alcanzar el extremo del manipulador, d6d_6 la distancia entre los ejes x5x_5 y x6x_6, medida en la dirección del eje z5 z_5 , y z60\vec{z}_6^0 la orientación del eje zz del sistema de referencia del elemento terminal con respecto al de la base. Los términos re \vec{r}_e y z60 \vec{z}_6^0 se obtienen de la matriz HH, de manera específica:

re=H1:3,4\vec{r}_e = H_{1:3,4}
z60=H1:3,3\vec{z}_6^0 = H_{1:3,3}

Ahora procedemos a resolver la cinemática inversa de posición utilizando el método geométrico y referenciando todo el procedimiento a las coordenadas del centro de la muñeca esférica. Con esto calcularemos las tres primeras variables articulares (q1q_1, q2q_2 y q3q_3).

Con los valores de q1q_1 , q2q_2 y q3q_3 ya calculados, procedemos a determinar de forma numérica la matriz de rotación R30R_3^0, sustituyendo los valores numéricos calculados previamente.

De la cinemática directa sabemos que:

R60=R30R63R_6^0 = R_3^0 R_6^3

Lo cual implica que:

R63=(R30)−1R60R_6^3 = (R_3^0)^{-1} R_6^0

Donde R60R_6^0 es la submatriz de rotación de HH, R30 R_3^0 la matriz numérica calculada previamente y R63R_6^3 la matriz de rotación en forma simbólica calculada al inicio del procedimiento. La expresión anterior define una ecuación matricial que deberemos resolver de manera analítica, y con lo cual calcularemos los valores para las tres variables articulares restantes (q4q_4, q5q_5 y q6q_6). Esta parte es lo que corresponde a la cinemática inversa de orientación. Usualmente deberemos trabajar con las ecuaciones que resulten de igualar los elementos correspondientes a la tercera fila y a la tercera columna: r31r_{31}, r32r_{32}, r33r_{33}, r23r_{23}, r13r_{13}; dado que suelen quedar expresiones más sencillas de manipular.

Para comprobar los resultados podemos sustituir los valores calculados en la matriz T60T_6^0 de la cinemática directa y verificar que sea igual a la matriz HH.

Ejemplo. Calcula la cinemática inversa del manipulador industrial ABB IRB 140 (ver Figura Figure 11). Considera que se requiere que el extremo del robot esté posicionado y orientado de acuerdo con la siguiente matriz HH:

H=[1004000−1050000−16500001]H = \begin{bmatrix} 1 & 0 & 0 & 400 \\ 0 & -1 & 0 & 500 \\ 0 & 0 & -1 & 650 \\ 0 & 0 & 0 & 1 \end{bmatrix}

En la Figura Figure 11 se puede observar el diagrama cinemático del manipulador y los sistemas de referencia de Denavit-Hartenberg.

Diagrama cinemático del manipulador ABB IRB 140

Figure 11:Diagrama cinemático del manipulador ABB IRB 140

En la siguiente tabla se muestran los parámetros de Denavit-Hartenberg correspondientes. Recuerda que este procedimiento de cinemática directa para el IRB 140 fue desarrollado en un ejemplo del capítulo de cinemática directa.

iiaia_iαi\alpha_idid_iθi\theta_i
17090°90°352q1q_1
23600°0°0q2q_2
3090°90°0q3q_3
40−90°-90°380q4q_4
5090°90°0q5q_5
600°0°65q6q_6

Con esta información podemos calcular las matrices R30 R_3^0 y R63 R_6^3 , las cuales se muestran enseguida:

R30=[c1c23s1c1s23c23s1−c1s1s23s230−c23]R_3^0 = \left[\begin{matrix}c_{1} c_{23} & s_{1} & c_{1} s_{23}\\c_{23} s_{1} & - c_{1} & s_{1} s_{23}\\s_{23} & 0 & - c_{23}\end{matrix}\right]
R63=[c4c5c6−s4s6−c4c5s6−c6s4c4s5c4s6+c5c6s4c4c6−c5s4s6s4s5−c6s5s5s6c5]R_6^3 = \begin{bmatrix}c_{4} c_{5} c_{6} - s_{4} s_{6} & - c_{4} c_{5} s_{6} - c_{6} s_{4} & c_{4} s_{5}\\c_{4} s_{6} + c_{5} c_{6} s_{4} & c_{4} c_{6} - c_{5} s_{4} s_{6} & s_{4} s_{5}\\- c_{6} s_{5} & s_{5} s_{6} & c_{5}\end{bmatrix}

Una vez calculadas las matrices R30R_3^0 y R63R_6^3, procedemos a determinar las coordenadas del centro de la muñeca esférica, lo cual podemos hacer mediante la siguiente expresión:

rm=re−d6z60=[400500650]−65[00−1]=[400500715]\vec{r}_m = \vec{r}_e - d_6 \vec{z}_6^0 = \colvec{400}{500}{650} - 65 \colvec{0}{0}{-1} = \colvec{400}{500}{715}

Con las coordenadas del centro de la muñeca esférica ya conocidas, procedemos a realizar la cinemática inversa de posición utilizando el método geométrico, con la finalidad de calcular las primeras tres variables articulares (q1q_1, q2q_2, q3q_3). De acuerdo con lo que aprendimos en secciones previas, si queremos calcular a q1q_1 deberíamos proyectar en el plano x0y0x_0 y_0. En la Figura Figure 12 se puede observar la proyección del manipulador IRB 140 en el plano x0y0x_0 y_0. El valor de q1q_1 se puede determinar de forma sencilla de la siguiente manera:

q1=arctan2(500, 400)=51.34°q_1 = \atantwo{500}{400} = 51.34°

El valor de la distancia aa se puede calcular mediante el teorema de Pitágoras:

a=5002+4002=640.31 mma = \sqrt{500^2 + 400^2} = 640.31 \text{ mm}
Proyección en el plano x_0 y_0 del robot ABB IRB 140

Figure 12:Proyección en el plano x0y0x_0 y_0 del robot ABB IRB 140

Para calcular a q2q_2 debemos proyectar en x1y1x_1 y_1, y para q3q_3 en el plano x2y2x_2 y_2. Se puede verificar que estos planos son paralelos, y por lo tanto la proyección en x1y1x_1 y_1 nos bastaría para calcular a q2q_2 y q3q_3. En la Figura Figure 13 se puede observar la proyección del manipulador en el plano x1y1x_1 y_1.

Proyección en el plano x_1 y_1 del robot ABB IRB 140

Figure 13:Proyección en el plano x1y1x_1 y_1 del robot ABB IRB 140

Del esquema podemos notar que el valor de q2q_2 es la diferencia de los ángulos α\alpha y β\beta:

q2=α−βq_2 = \alpha - \beta

Ahora debemos calcular cada uno de esos valores. Del triángulo rectángulo podemos calcular la distancia (hipotenusa) rr:

r=(a−70)2+(715−352)2=676.03 mmr = \sqrt{ (a-70)^2 + (715-352)^2 } = 676.03 \text{ mm}

Y el ángulo α \alpha :

α=arctan2(715−352, a−70)=32.48°\alpha = \atantwo{715-352}{a-70} = 32.48°

El valor del ángulo β\beta se puede calcular aplicando ley de cosenos en el triángulo obtusángulo:

3802=3602+r2−2(360)(r)cos⁡β380^2 = 360^2 + r^2 - 2(360)(r) \cos \beta
β=arccos⁡(3602+r2−38022(360)(r))=24.7°\beta = \arccos\left( \frac{360^2 + r^2 - 380^2}{2(360)(r)} \right) = 24.7°

Entonces, el valor de q2q_2 sería:

q2=32.48°−24.7°=7.78°q_2 = 32.48° - 24.7° = 7.78°

Del esquema de la Figura Figure 13 se puede observar que el ángulo q3q_3 es el valor del ángulo ϕ\phi más 90°, es decir:

q3=ϕ+90°q_3 = \phi + 90°

Donde el ángulo ϕ\phi podemos calcularlo utilizando ley de cosenos:

r2=3802+3602+2(380)(360)cos⁡ϕr^2 = 380^2 + 360^2 + 2(380)(360) \cos \phi
ϕ=arccos⁡(r2−3802−36022(380)(360))=48.02°\phi = \arccos\left( \frac{r^2 - 380^2 - 360^2}{2(380)(360)} \right) = 48.02°

Por lo tanto:

q3=48.02°+90°=138.02°q_3 = 48.02° + 90° = 138.02°

Una vez calculados los valores de q1q_1, q2q_2 y q3q_3, procedemos a sustituir estos valores en la matriz R30 R_3^0 , de lo cual resulta:

R30=[−0.51670.78090.3511−0.6458−0.62470.43890.562100.8271]R_3^0 = \begin{bmatrix}-0.5167 & 0.7809 & 0.3511\\-0.6458 & -0.6247 & 0.4389\\0.5621 & 0 & 0.8271\end{bmatrix}

Ahora calculamos el producto (R30)−1R60 \left( R_3^0 \right)^{-1} R_6^0 :

(R30)−1R60=[−0.5167−0.64580.56210.7809−0.624700.35110.43890.8271][1000−1000−1]=[−0.51670.6458−0.56210.78090.624700.3511−0.4389−0.8271]\left( R_3^0 \right)^{-1} R_6^0 = \displaystyle \left[\begin{matrix}-0.5167 & -0.6458 & 0.5621\\0.7809 & -0.6247 & 0\\0.3511 & 0.4389 & 0.8271\end{matrix}\right] \displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & -1 & 0\\0 & 0 & -1\end{matrix}\right] = \displaystyle \left[\begin{matrix}-0.5167 & 0.6458 & -0.5621\\0.7809 & 0.6247 & 0\\0.3511 & -0.4389 & -0.8271\end{matrix}\right]

La matriz que resulta la igualamos con R63R_6^3 para formar la ecuación matricial que nos servirá para calcular la cinemática inversa de orientación, es decir:

R63=(R30)−1R60R_6^3 = \left( R_3^0 \right)^{-1} R_6^0
[c4c5c6−s4s6−c4c5s6−c6s4c4s5c4s6+c5c6s4c4c6−c5s4s6s4s5−c6s5s5s6c5]=[−0.51670.6458−0.56210.78090.624700.3511−0.4389−0.8271]\displaystyle \left[\begin{matrix}c_{4} c_{5} c_{6} - s_{4} s_{6} & - c_{4} c_{5} s_{6} - c_{6} s_{4} & c_{4} s_{5}\\c_{4} s_{6} + c_{5} c_{6} s_{4} & c_{4} c_{6} - c_{5} s_{4} s_{6} & s_{4} s_{5}\\- c_{6} s_{5} & s_{5} s_{6} & c_{5}\end{matrix}\right] = \displaystyle \left[\begin{matrix}-0.5167 & 0.6458 & -0.5621\\0.7809 & 0.6247 & 0\\0.3511 & -0.4389 & -0.8271\end{matrix}\right]

Para q6 q_6 podemos resolver dividiendo los elementos r32/r31 r_{32} / r_{31} de ambas matrices e igualando, es decir:

s5s6−c6s5=−0.43890.3511\frac{\cancel{s_5} s_6}{-c_6 \cancel{s_5}} = \frac{-0.4389}{0.3511}
s6−c6=−0.43890.3511\frac{s_6}{-c_6} = \frac{-0.4389}{0.3511}
s6c6=−0.4389−0.3511\frac{s_6}{c_6} = \frac{-0.4389}{-0.3511}
q6=arctan2(−0.4389, −0.3511)=231.34°q_6 = \atantwo{-0.4389}{-0.3511} = 231.34°

En el caso de q4 q_4 podemos hacer r23/r13 r_{23} / r_{13} e igualar:

s4s5c4s5=0−0.5621\frac{s_4 \cancel{s_5}}{c_4 \cancel{s_5}} = \frac{0}{-0.5621}
s4c4=0−0.5621\frac{s_4}{c_4} = \frac{0}{-0.5621}
q4=arctan2(0, −0.5621)=180°q_4 = \atantwo{0}{-0.5621} = 180°

El valor de q5 q_5 podemos determinarlo igualando los elementos r33 r_{33} de ambas matrices:

cos⁡q5=−0.8271→sin⁡q5=1−(−0.8271)2\cos q_5 = -0.8271 \qquad \rightarrow \qquad \sin q_5 = \sqrt{ 1 - (-0.8271)^2 }
q5=arctan2(1−(−0.8271)2, −0.8271)=145.8°q_5 = \atantwo{\sqrt{1 - (-0.8271)^2}}{-0.8271} = 145.8°

Con esto quedan calculadas todas las posiciones articulares requeridas para que el robot ABB IRB 140 se posicione y oriente de acuerdo con la matriz HH. Podríamos sustituir todos los valores en la matriz de la cinemática directa T60T_6^0 y obtendríamos la matriz HH. Retomando todos los valores calculados podríamos escribir el vector de posiciones articulares q\vec{q} de la siguiente manera:

q=[51.34°7.78°138.02°180°145.8°231.34°]\vec{q} = \begin{bmatrix} 51.34° \\ 7.78° \\ 138.02° \\ 180° \\ 145.8° \\ 231.34° \end{bmatrix}

Es importante comprender que esta solución obtenida no es única, existen múltiples soluciones para este problema de cinemática inversa. Por ejemplo, para la cinemática inversa de orientación podemos tomar la solución para q5q_5 dada por:

cos⁡q5=−0.8271→sin⁡q5=−1−(−0.8271)2\cos q_5 = -0.8271 \qquad \rightarrow \qquad \sin q_5 = - \sqrt{ 1 - (-0.8271)^2 }
q5=arctan2(−1−(−0.8271)2, −0.8271)=214.2°q_5 = \atantwo{-\sqrt{1 - (-0.8271)^2}}{-0.8271} = 214.2°

Y entonces, esto implicaría que q6q_6 estaría dado por:

−s5s6c6s5=−0.43890.3511\frac{-\cancel{s_5} s_6}{c_6 \cancel{s_5}} = \frac{-0.4389}{0.3511}
−s6c6=−0.43890.3511\frac{-s_6}{c_6} = \frac{-0.4389}{0.3511}
s6c6=0.43890.3511\frac{s_6}{c_6} = \frac{0.4389}{0.3511}
q6=arctan2(−0.4389, −0.3511)=51.34°q_6 = \atantwo{-0.4389}{-0.3511} = 51.34°

Y para el caso de q4q_4 se tendría que:

−s4s5−c4s5=0−0.5621\frac{-s_4 \cancel{s_5}}{-c_4 \cancel{s_5}} = \frac{0}{-0.5621}
s4c4=00.5621\frac{s_4}{c_4} = \frac{0}{0.5621}
q4=arctan2(0, 0.5621)=0°q_4 = \atantwo{0}{0.5621} = 0°

Esto nos conduciría a una segunda posible solución de la cinemática inversa dada por q\vec{q}:

q=[51.34°7.78°138.02°0°214.2°51.34°]\vec{q} = \begin{bmatrix} 51.34° \\ 7.78° \\ 138.02° \\ 0° \\ 214.2° \\ 51.34° \end{bmatrix}

De igual manera, en la cinemática inversa de posición el manipulador se podría dibujar en una configuración diferente a la planteada, y obtendríamos un conjunto solución diferente. Se recomienda al lector que se tome el tiempo de verificar que las soluciones calculadas son correctas, haciendo la sustitución descrita en párrafos anteriores. El trabajo de multiplicación matricial para obtener T60 T_6^0 , aún cuando se haga de forma completamente numérica, puede llegar a resultar cuando menos tedioso, por lo cual se recomienda que estas operaciones se realicen con el auxilio de herramientas computacionales.

4.0.5Resolviendo la cinemática inversa de forma numérica

4.0.5.1Método de Newton

4.0.5.2Descenso del gradiente

4.1Problemas


Calcule la cinemática inversa del manipulador RRP mostrado en la Figura Figure 14, considere que d1d_1 es una longitud conocida. El elemento terminal deberá alcanzar la posición dada por:

rP=[PxPyPz]\vec{r}_P = \colvec{P_x}{P_y}{P_z}
Manipulador RRP

Figure 14:Manipulador RRP


Calcule la cinemática inversa del manipulador RRP mostrado en la Figura Figure 14, considere que d1=300d_1 = 300 mm. El elemento terminal deberá alcanzar la posición dada por:

rP=[250175380]\vec{r}_P = \colvec{250}{175}{380}

Calcule la cinemática inversa del manipulador RRP mostrado en la Figura Figure 14, considere que d1=280d_1 = 280 mm. El elemento terminal deberá alcanzar la posición dada por:

rP=[220200350]\vec{r}_P = \colvec{220}{200}{350}

Calcula la cinemática inversa del manipulador RRR mostrado en la Figura Figure 2, considerando que el elemento terminal deberá alcanzar la posición dada por:

rP=[3502800]\vec{r}_P = \colvec{350}{280}{0}

Y orientado de tal manera que el eje x3x_3 se encuentre alineado con x0x_0. Se sabe que l1=l2=200 mml_1=l_2=200 \text{ mm} y l3=150 mm l_3 = 150 \text{ mm} .


En la Figura Figure 15 se muestra un manipulador PRR que deberá alcanzar dos objetos A y B, tal que sus posiciones y orientaciones están definidas mediante los sistemas de referencia {A}\{A\} y {B}\{B\} adheridos a estos. Se sabe que:

HB0=[32−12040000−10123203000001]H_B^0 = \begin{bmatrix} \frac{\sqrt{3}}{2} & - \frac{1}{2} & 0 & 400\\0 & 0 & -1 & 0\\\frac{1}{2} & \frac{\sqrt{3}}{2} & 0 & 300\\0 & 0 & 0 & 1 \end{bmatrix}

Calcule los valores articulares requeridos para alcanzar cada uno de los objetos. Considere que l2=250l_2 = 250 mm y l3=200l_3 = 200 mm.

Manipulador PRR

Figure 15:Manipulador PRR


En la figura se muestra el esquema de un manipulador planar PPR que deberá realizar operaciones de soldadura a lo largo de la trayectoria compuesta, esquematizada mediante la línea discontinua. Los puntos A y B denotan el inicio y fin de la trayectoria, y el elemento terminal del manipulador deberá alcanzar estos puntos con la orientación dada por los sistemas {A}\{A\} y {B}\{B\}. La longitud l3 l_3 es de 100 mm. Se sabe que:

TA0=[22−22030000−10222201500001];TB0=[10050000−100102500001]T_A^0 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2}}{2} & 0 & 300\\0 & 0 & -1 & 0\\\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 & 150\\0 & 0 & 0 & 1\end{matrix}\right] \qquad ; \qquad T_B^0 = \left[\begin{matrix}1 & 0 & 0 & 500\\0 & 0 & -1 & 0\\0 & 1 & 0 & 250\\0 & 0 & 0 & 1\end{matrix}\right]

Calcule los valores articulares requeridos para alcanzar los puntos AA y BB.

.

Figure 16:.


Calcula la cinemática inversa del manipulador RRP mostrado en la Figura Figure 17, considerando que el elemento terminal deberá alcanzar el punto (200,250,350)(200, 250, 350).

.

Figure 17:.


Para el manipulador industrial mostrado en la Figura Figure 18, calcule la cinemática inversa de posición y orientación si el extremo del manipulador debe estar orientado y posicionado de acuerdo con:

H=[1002500−1030000−12000001]H = \begin{bmatrix} 1 & 0 & 0 & 250\\ 0 & -1 & 0 & 300\\ 0 & 0 & -1 & 200\\0 & 0 & 0 & 1\end{bmatrix}
.

Figure 18:.


Para el manipulador industrial mostrado en la Figura Figure 18, calcule la cinemática inversa de posición y orientación si el extremo del manipulador debe estar orientado y posicionado de acuerdo con:

H=[1002500−1030000−12000001]H = \begin{bmatrix} 1 & 0 & 0 & 250\\ 0 & -1 & 0 & 300\\ 0 & 0 & -1 & 200\\0 & 0 & 0 & 1\end{bmatrix}
.

Figure 19:.


Utiliza la técnica del desacoplo cinemático para calcular la cinemática inversa del robot FANUC LR Mate 200iC/5L.

4.1.1Problemas para resolver utilizando la computadora


Desarrolla una función denominada rr_planar_robot_ik que deberá calcular las dos soluciones (codo arriba y codo abajo) de la cinemática inversa del manipulador planar RR mostrado en la figura. La función deberá recibir como argumentos de entrada las coordenadas (PxP_x, PyP_y) del punto que deberá alcanzar el manipulador, las longitudes de los eslabones: l1 l_1 y l2 l_2 , y un argumento denominado sol en el cual deberá indicarse la solución a calcular, se usará 'up' para la solución de codo arriba y 'down' para la solución de codo abajo. Enseguida se muestra una sugerencia de plantilla para la definición de la función, designación de los parámetros y de los valores a devolver.

def rr_planar_robot_ik(px, py, l1, l2, sol):
	# hacer los cálculos aquí
	return q1, q2

Desarrolla una función denominada rrr_planar_robot_ik que calcule la cinemática inversa de un manipulador planar RRR mostrado en la Figura. La función debe recibir como argumentos de entrada las coordenadas (Px,Py)\left(P_x, P_y\right) del punto que deberá alcanzar el manipulador, el ángulo ϕ\phi que describe la orientación, las longitudes de los eslabones: l1l_1, l2l_2 y l3l_3, y un argumento denominado sol en el cual deberá indicarse la solución a calcular, se usará 'up' para la solución de codo arriba y 'down' para la solución de codo abajo.

def rrr_planar_robot_ik(px, py, phi, l1, l2, l3, sol):
	# hacer los cálculos aquí
	return q1, q2, q3