Cinemática inversa

En animación por computadora y robótica, la cinemática inversa es el proceso matemático de calcular los parámetros variables de las articulaciones necesarios para colocar el final de una cadena cinemática, como un robot manipulador o un personaje de animación. esqueleto, en una posición y orientación determinadas con respecto al inicio de la cadena. Dados los parámetros de unión, la posición y orientación del extremo de la cadena, p. la mano del personaje o robot, normalmente se puede calcular directamente utilizando múltiples aplicaciones de fórmulas trigonométricas, un proceso conocido como cinemática directa. Sin embargo, la operación inversa es, en general, mucho más complicada.
La cinemática inversa también se utiliza para recuperar los movimientos de un objeto en el mundo a partir de otros datos, como una película de esos movimientos o una película del mundo visto por una cámara que a su vez realiza esos movimientos. Esto ocurre, por ejemplo, cuando los movimientos filmados de un actor humano deben ser reproducidos por un personaje animado.
Robótica
En robótica, la cinemática inversa utiliza las ecuaciones cinemáticas para determinar los parámetros de las articulaciones que proporcionan una configuración deseada (posición y rotación) para cada uno de los efectores finales del robot. Esto es importante porque las tareas del robot se realizan con los efectores finales, mientras que el esfuerzo de control se aplica a las articulaciones. Determinar el movimiento de un robot para que sus efectores finales se muevan desde una configuración inicial a una configuración deseada se conoce como planificación del movimiento. La cinemática inversa transforma el plan de movimiento en trayectorias conjuntas del actuador del robot. Fórmulas similares determinan las posiciones del esqueleto de un personaje animado que debe moverse de una manera particular en una película, o de un vehículo como un coche o un barco que contiene la cámara que está filmando una escena de una película. Una vez que se conocen los movimientos de un vehículo, se pueden utilizar para determinar el punto de vista en constante cambio de imágenes generadas por computadora de objetos en el paisaje, como edificios, de modo que estos objetos cambien de perspectiva sin que parezcan moverse con tanta rapidez. la cámara instalada en el vehículo pasa por delante de ellos.
El movimiento de una cadena cinemática, ya sea un robot o un personaje animado, se modela mediante 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 de las articulaciones para calcular la configuración de la cadena, y la cinemática inversa invierte este cálculo para determinar los parámetros de las articulaciones que logran una configuración deseada.
Análisis cinemático

El análisis cinemático es uno de los primeros pasos en el diseño de la mayoría de los robots industriales. El análisis cinemático permite al diseñador obtener información sobre la posición de cada componente dentro del sistema mecánico. Esta información es necesaria para el análisis dinámico posterior junto con las rutas de control.
La cinemática inversa es un ejemplo del análisis cinemático de un sistema restringido de cuerpos rígidos, o cadena cinemática. Las ecuaciones cinemáticas de un robot se pueden utilizar para definir las ecuaciones de bucle de un sistema articulado complejo. Estas ecuaciones de bucle son restricciones no lineales sobre los parámetros de configuración del sistema. Los parámetros independientes en estas ecuaciones se conocen como grados de libertad del sistema.
Si bien existen soluciones analíticas al problema de la cinemática inversa para una amplia gama de cadenas cinemáticas, las herramientas de animación y modelado por computadora a menudo utilizan el método de Newton para resolver las ecuaciones cinemáticas no lineales. Cuando se intenta encontrar una solución analítica suele ser conveniente explotar la geometría del sistema y descomponerlo utilizando subproblemas con soluciones conocidas.
Otras aplicaciones de los algoritmos cinemáticos inversos incluyen la manipulación interactiva, el control de la animación y la prevención de colisiones.
Cinemática inversa y animación 3D
La cinemática inversa es importante para la programación de juegos y la animación 3D, donde se utiliza para conectar físicamente a los personajes del juego con el mundo, como los pies que aterrizan firmemente en la cima del terreno (consulte un estudio completo sobre técnicas de cinemática inversa en gráficos por computadora)..
Una figura animada se modela con un esqueleto de segmentos rígidos conectados con articulaciones, llamado cadena cinemática. Las ecuaciones cinemáticas de la figura definen la relación entre los ángulos articulares de la figura y su pose o configuración. El problema de animación cinemática directa utiliza las ecuaciones cinemáticas para determinar la pose dados los ángulos de las articulaciones. El problema de cinemática inversa calcula los ángulos de las articulaciones para una pose deseada de la figura.
A menudo es más fácil para los diseñadores, artistas y animadores basados en computadora definir la configuración espacial de un conjunto o figura moviendo partes, o brazos y piernas, en lugar de manipular directamente los ángulos de las articulaciones. Por lo tanto, la cinemática inversa se utiliza en sistemas de diseño asistido por computadora para animar ensamblajes y por artistas y animadores por computadora para posicionar figuras y personajes.
El conjunto se modela como vínculos rígidos conectados por uniones que se definen como relaciones de posición o restricciones geométricas. El movimiento de un elemento requiere el cálculo de los ángulos de las juntas para que los otros elementos mantengan las restricciones de las juntas. Por ejemplo, la cinemática inversa permite a un artista mover la mano de un modelo humano en 3D a una posición y orientación deseadas y hacer que un algoritmo seleccione los ángulos adecuados de las articulaciones de la muñeca, el codo y el hombro. La implementación exitosa de la animación por computadora generalmente también requiere que la figura se mueva dentro de límites antropomórficos razonables.
Un método para comparar la cinemática directa e inversa para la animación de un personaje puede definirse por las ventajas inherentes a cada una. Por ejemplo, bloquear la animación donde se utilizan grandes arcos de movimiento suele ser más ventajoso en la cinemática directa. Sin embargo, una animación más delicada y el posicionamiento del efector final objetivo en relación con otros modelos podrían ser más fáciles utilizando la cinemática invertida. Los paquetes de creación digital (DCC) modernos ofrecen métodos para aplicar cinemática directa e inversa a los modelos.
Soluciones analíticas para cinemática inversa
En algunos casos, pero no en todos, existen soluciones analíticas para problemas cinemáticos inversos. Un ejemplo de ello es el de un robot de 6 grados de libertad (por ejemplo, 6 articulaciones de revolución) que se mueve en un espacio 3D (con 3 grados de libertad de posición y 3 grados de libertad de rotación). Si los grados de libertad del robot exceden los grados de libertad del efector final, por ejemplo con un robot de 7 grados de libertad con 7 articulaciones de revolución, entonces existen infinitas soluciones al problema IK y no existe una solución analítica. Ampliando aún más este ejemplo, es posible arreglar una junta y resolver analíticamente las otras juntas, pero tal vez los métodos numéricos (siguiente sección) ofrezcan una mejor solución, que en su lugar puede optimizar una solución dadas preferencias adicionales (costos en un problema de optimización).).
Una solución analítica a un problema de cinemática inversa es una expresión de forma cerrada que toma la posición de extremo como entrada y da posiciones conjuntas como salida, . Los solversadores de cine inversos analíticos pueden ser significativamente más rápidos que los solvers numéricos y proporcionar más de una solución, pero sólo un número finito de soluciones, para una posición de final-effector determinada.
Muchos productos de software diferentes (como los programas FOSS IKFast e Inverse Kinematics Library) pueden resolver estos problemas de forma rápida y eficiente utilizando diferentes algoritmos, como el solucionador FABRIK. Un problema con estos solucionadores es que se sabe que no necesariamente brindan soluciones localmente suaves entre dos configuraciones adyacentes, lo que puede causar inestabilidad si se requieren soluciones iterativas para la cinemática inversa, como si el IK se resuelve dentro de un bucle de control de alta velocidad..
Soluciones numéricas a problemas de CI
Existen muchos métodos para modelar y resolver problemas de cinemática inversa. El más flexible de estos métodos generalmente se basa en la optimización iterativa para buscar una solución aproximada, debido a la dificultad de invertir la ecuación cinemática directa 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 directa utilizando una expansión en serie de Taylor, que puede ser más sencilla de invertir y resolver que el sistema original.
La técnica inversa jacobiana
La técnica inversa Jacobiana es una manera sencilla pero eficaz de implementar cinemática inversa. Que haya variables que gobiernan la ecuación de caramemática avanzada, es decir, la función de posición. Estas variables pueden ser ángulos, longitudes u otros valores reales arbitrarios. Si, por ejemplo, el sistema IK vive en un espacio tridimensional, la función de posición puede ser vista como una asignación . Vamos dar la posición inicial del sistema, y
ser la posición de meta del sistema. La técnica inversa jacobica compute iterativamente una estimación de que minimiza el error dado por .
Para pequeño -vectores, la ampliación de la función de posición de serie da
- ,
Donde es la matriz Jacobiana de la función de posición en .
La (i, k)-ésima entrada de la matriz jacobiana se puede aproximar numéricamente
- ,
Donde da el componente i-th de la función de posición, es simplemente con un pequeño delta añadido a su componente k-th, y es un valor positivo razonablemente pequeño.
Tomar la pseudoinversa de Moore-Penrose del jacobiano (calculable mediante una descomposición de valores singulares) y reorganizar los términos da como resultado
- ,
Donde .
Aplicar el método Jacobiano inverso una vez resultará en una estimación muy áspera del deseado - Doctor. Una búsqueda de línea debe ser utilizada para escalar esto a un valor aceptable. Estimación se puede mejorar a través del algoritmo siguiente (conocido como el método Newton-Raphson):
Una vez. -vector ha causado que el error caiga cerca de cero, el algoritmo debe terminar. Se ha informado de que los métodos existentes basados en la matriz hesiana del sistema convergen a la deseada valores usando menos iteraciones, sin embargo, en algunos casos más recursos computacionales.
Métodos heurísticos
El problema de la cinemática inversa también se puede aproximar utilizando métodos heurísticos. Estos métodos realizan operaciones simples e iterativas para conducir gradualmente a una aproximación de la solución. Los algoritmos heurísticos tienen un bajo costo computacional (devuelven la pose final muy rápidamente) y generalmente admiten restricciones conjuntas. Los algoritmos heurísticos más populares son el descenso de coordenadas cíclicas (CCD) y la cinemática inversa de alcance hacia adelante y hacia atrás (FABRIK).
Contenido relacionado
Tarjeta perforada
CPython
Arquitectura Harvard