# Cinemática inversa

En Robótica, la Cinemática inversa (IK) es la técnica que permite determinar el movimiento de una cadena de articulaciones para lograr que un actuador final se ubique en una posición concreta. El cálculo de la cinemática inversa es un problema complejo que consiste en la resolución de una serie de ecuaciones cuya solución normalmente no es única.
El objetivo de la cinemática inversa es encontrar los valores que deben tomar las coordenadas articulares del robot para que su extremo se posicione y oriente según una determinada localización espacial. Depende de la configuración del robot(existen soluciones múltiples).
Siempre que se especifica una posición de destino y una orientación en términos cartesianos, debe calcularse la cinemática inversa del dispositivo para poder despejar los ángulos de articulación requeridos. Los sistemas que permiten describir destinos en términos cartesianos son capaces de mover el manipulador a puntos que nunca fueron capaces de mover el espacio de trabajo a los cuales tal vez nunca haya ido antes. A estos puntos los llamaremos puntos calculados.
El movimiento de una cadena cinemática ya sea si es un robot o un personaje animado es modelado por ecuaciones cinemáticas propias de la misma cadena. Estas ecuaciones definen la configuración de la cadena en términos de sus parámetros.
Por ejemplo las fórmulas de la cinemática inversa permiten el cálculo de los parámetros de unión del brazo de un robot para levantar un objeto. Ya que una de las Fórmulas similares es determinar las posiciones del esqueleto de un personaje animado que se va a mover de una manera en particular.

## Análisis Cinemático

La cinemática inversa se refiere a la utilización de las ecuaciones cinemáticas de un robot para determinar los parámetros comunes que proporcionan una posición deseada del efector final. Especificación del movimiento de un robot de manera que su extremo efector logra una tarea deseada es conocido como planificación de movimientos. La cinemática inversa transforma el plan de movimiento en trayectorias del actuador en conjuntos para el robot. El movimiento de una cadena cinemática si se trata de un robot o un personaje animado es modelada por las ecuaciones cinemáticas de la cadena. Estas ecuaciones definen la configuración de la cadena en términos de sus parámetros conjuntos. La cinemática directa utiliza los parámetros comunes para calcular la configuración de la cadena, y la cinemática inversa invierte este cálculo para determinar los parámetros de conjuntos que logra una configuración deseada.
Una figura articulada consta de un conjunto de segmentos rígidos conectados mediante articulaciones. Los múltiples ángulos que pueden adoptar estas articulaciones permiten un número indefinido de configuraciones o posiciones de la figura. La solución al problema cinemático inverso consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot q = [q1, q2, . . . , qn] para que su extremo se posicione y oriente según una determinada configuración deseada. En general no existe una solución única para este problema, incluso puede no existir. La búsqueda de la solución suele realizarse mediante el uso de técnicas numéricas iterativas como por ejemplo Método de Newton. Esto puede resultar en cálculos lentos, por lo que habitualmente en una implementación real se acota el tiempo máximo (o iteraciones) que debe realizar el algoritmo de búsqueda.
En otro casos, para robots con pocos grados de libertad, existen soluciones analíticas mediante el uso de métodos geométricos, que consisten en la utilización de las relaciones trigonométricas y la resolución de los triángulos formados por los elementos y articulaciones del robot.
También puede ser el proceso de cálculo de la posición en el espacio del extremo de una estructura ligada, dados los ángulos de todas las articulaciones. Es fácil, y sólo hay una solución. Cinemática inversa hace lo contrario. Teniendo en cuenta el punto final de la estructura, lo que los ángulos de las articulaciones qué necesidad de estar en el punto final que alcanzar. Puede ser difícil, y por lo general hay muchos o infinitas soluciones. Este proceso puede ser extremadamente útil en la robótica. Es posible que tenga un brazo robótico que tiene que agarrar un objeto. Si el software sabe dónde está el objeto en relación con el hombro, simplemente se necesita el cálculo de los ángulos de las articulaciones para llegar a él.

## Cinemática inversa y animación 3D

La cinemática inversa es importante para la programación de juegos y animación en 3D, donde se utiliza para conectar físicamente los personajes del juego para el mundo, tales como recepción de pies firmemente en la parte superior del terreno. Una figura animada se modela con un esqueleto de segmentos rígidos conectados con las articulaciones, llama una cadena cinemática. Las ecuaciones cinemáticas de la figura definen la relación entre los ángulos de las articulaciones de la figura y su pose o configuración. El problema de la animación de cinemática directa es que utiliza las ecuaciones cinemáticas para determinar la postura dado los ángulos articulares. El problema de cinemática inversa calcula los ángulos de articulación para una pose deseada de la figura. A menudo es más fácil para los diseñadores basados en computadoras, artistas y animadores para definir la configuración espacial de un conjunto o una cifra en las partes móviles o los brazos y las piernas, en lugar de manipular directamente los ángulos articulares. Por lo tanto, la cinemática inversa se utiliza en los sistemas de diseño asistido por ordenador para animar las asambleas y de los artistas y animadores por computadora basados en datos de posición y caracteres. El conjunto se modela como eslabones rígidos conectados por articulaciones que se definen como compañeros o restricciones geométricas. Movimiento de un elemento requiere el cálculo de los ángulos de la articulación de los otros elementos para mantener las restricciones conjuntas. Por ejemplo, la cinemática inversa permite a un artista para mover la mano de un modelo humano 3D con una posición y orientación deseada y tiene un algoritmo de selección de los ángulos apropiados de la muñeca, el codo y articulaciones de los hombros. La implementación exitosa de la animación por ordenador por lo general también requiere que la cifra se mueven dentro de los límites razonables antropomorfas.

## Herramientas para resolver problemas de cinemática inversa

Algunas herramientas como OpenRave utilizan un método denominado IKFast para solucionar problemas de cinemática inversa. IKFast puede resolver analíticamente las ecuaciones de la cinemática de cualquier cadena cinemática compleja, y generar el código en un lenguaje específico, como C++, para su uso posterior. El resultado final es extremadamente estable y ofrece un tiempo de respuesta de unos pocos microsegundos.

## Cinemática Inversa para un Brazo Robot de 5 grados de libertad.

En los apartados "Cinemática I" y "Cinemática II" nos movíamos siempre sobre los ejes X e Y, y lo aplicábamos al brazo tipo Scara. Ahora es el momento de subir un peldaño y pasar a calcular una cinemática inversa aplicada a las 3 dimensiones para un brazo robot antropomorfo de 4 ó 5 grados de libertad. En realidad es mucho más sencillo de lo que parece porque vamos a seguir usando las mismas fórmulas que anteriormente pero antes de pasar a ellas tenemos que hacer unos ajustes para que el brazo entre en la nueva dimensión. El eje X se mantendrá en la misma posición sobre el plano, el eje Y pasará a convertirse en la profundidad y el eje Z pasa a ser la altura.

## Cinemática inversa: Posibles soluciones

Procedimiento genérico a partir de los parámetros D-H:
Búsqueda de solución cerrada:

## Cinemática inversa: Métodos

1-Métodos geométricos
2-Resolución a partir de matrices de transformación homogénea
3-Desacoplamiento cinemático.
4-Otros

## Método geométrico

Es adecuado para robots de pocos grados de libertad o para el caso de que se consideren solo los primeros grados de libertad para posicionar el extremo.
El procedimiento se basa en encontrar un número suficiente de relaciones geométricas en las que intervendrán las coordenadas del extremo del robot, sus coordenadas articulares y las dimensiones físicas de sus elementos.
* Robot con 3 GDL.
* Coordenas P$_x$, P$_y$, P$_z$
* Robot con estructura planar.
La orientación del último eslabón es la suma de las variables articulares.
    $\theta =\theta _{1}+\theta _{2}+\theta _{3}$
    $q_{1}=\arctan {\frac {P_{y}}{P_{x}}}$
Considerando ahora únicamente r y utilizando el teorema del coseno, se tendrá:
    $r^{2}=P_{x}^{2}+P_{y}^{2}$
    $r^{2}+P_{z}^{2}=I_{2}^{2}+I_{3}^{2}+2\cdot I_{2}\cdot I_{3}\cdot \cos q_{3}$
    $\cos q_{3}={\frac {P_{x}^{2}+P_{y}^{2}+P_{z}^{2}-I_{2}^{2}-I_{3}^{2}}{2\cdot I_{2}\cdot I_{3}}}$
Esta expresión permite obtener q$_1$ en función del vector de posición del extremo P. No obstante, por motivos de ventajas computacionales, es más conveniente utilizar la expresión de arco tangente en lugar del arco seno. Puesto que:
    $\operatorname {sen} q_{3}=\pm (1-\cos ^{2}q_{3})^{\frac {1}{2}}$
Se tendrá que:
El cálculo de q$_2$ se hace a partir de la diferencia entre ß y a:
Siendo:
Luego:
De nuevo los dos posibles valores según la elección del signo dan lugar a dos valores diferentes de q$_2$ correspondientes a las configuraciones codo arriba y abajo.

## Cinemática Inversa para un Brazo Robot de 5 grados de libertad.

Programado en FreeBasic (implementación de OpenGL) En los apartados "Cinemática I" y "Cinemática II" nos movíamos siempre sobre los ejes X e Y, y lo aplicábamos al brazo tipo Scara. Ahora es el momento de subir un peldaño y pasar a calcular una cinemática inversa aplicada a las 3 dimensiones para un brazo robot antropomorfo de 4 ó 5 grados de libertad. En realidad es mucho más sencillo de lo que parece porque vamos a seguir usando las mismas fórmulas que anteriormente pero antes de pasar a ellas tenemos que hacer unos ajustes para que el brazo entre en la nueva dimensión. El eje X se mantendrá en la misma posición sobre el plano, el eje Y pasará a convertirse en la profundidad y el eje Z pasa a ser la altura.

## Ecuaciones cinemáticas

Las ecuaciones cinemáticas para la cadena de serie de un robot se obtienen utilizando una transformación rígida [Z] para caracterizar el movimiento relativo permitido en cada transformación rígida conjunta o separadamente, [X] para definir las dimensiones de cada enlace. El resultado es una secuencia de transformaciones rígidas alterna transformaciones conjuntas y el enlace de la base de la cadena de enlace a su extremo, que se equipara a la posición especificada para el enlace final.
    $[T]=[Z_{1}][X_{1}][Z_{2}][X_{2}]\ldots [X_{n-1}][Z_{n}]\!$
Donde [T] es la transformación que se encuentra en el enlace final. Estas ecuaciones se llaman las ecuaciones cinemáticas de la cadena en serie.

## Ejemplos de aplicación de la IK

Supongamos que estamos en un cruce, detrás de un camión de remolque que desea girar a la derecha. Cuando se enciende la luz verde el conductor del camión se mueve a lo largo de un camino r (t), pero es evidente que las ruedas del remolque se mueven a lo largo de otra ruta de acceso r '(t). La cinemática inversa puede ser utilizada para determinar r '(t) de r (t), teniendo en cuenta las restricciones del sistema: la longitud del remolque es una constante y el proceso no requiere ningún conocimiento de las fuerzas entre los objetos .

## Aproximación de soluciones de sistemas de IK

Hay muchos métodos de modelado y de resolución de problemas inversos cinemática. La configuración más flexible de estos métodos se basan típicamente en la optimización iterativa de buscar una solución aproximada, debido a la dificultad de invertir la ecuación cinemática hacia delante y la posibilidad de un espacio de solución vacío. La idea central detrás de varios de estos métodos es modelar la ecuación cinemática hacia delante utilizando un desarrollo en serie de Taylor, que puede ser más simple para invertir y resolver que el sistema original.

## Cinemática Directa de Plataformas Gough-Stewart Tipo 6-3

Una plataforma general Gough-Stewart se compone de un órgano terminal, denominado plataforma móvil, y un eslabón base, denominado plataforma fija, unidos por medio de seis cadenas serie las cuales se accionan de manera independiente.
Algunas de las desventajas de una plataforma general Gough-Stewart, es decir de seis grados de libertad, son las siguientes:
* El análisis directo de posición, un paso inevitable en el dimensionado mecánico de los componentes del manipulador, es una tarea compleja que conduce a cuarenta posibles soluciones reales (Raghavan 1993; Innocenti 1998). De esta manera el controlador requiere de información adicional, por medio de sensores, sobre la ubicación instantánea de la plataforma móvil.
* La presencia de singularidades locales, Di Gregorio (2002), es un problema recurrente que limita al espacio de trabajo.
* Como consecuencia del punto anterior, la manipulabilidad o de extremidad del mecanismo es extremadamente cuestionable.