stringtranslate.com

Cinemática inversa

Cinemática directa versus 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 el esqueleto de un personaje de animación , en una posición y orientación determinadas con respecto al inicio de la cadena. Dados los parámetros de las articulaciones, la posición y orientación del extremo de la cadena, por ejemplo, la mano del personaje o del 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. [1] [2] [3]

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 hace uso de 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 . [4] 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. [2] 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 automóvil 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 a medida que avanza el vehículo. la cámara pasa por 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. [5] [6] [7]

Análisis cinemático

Un modelo del esqueleto humano como cadena cinemática permite el posicionamiento mediante cinemática inversa.

El análisis cinemático es uno de los primeros pasos en el diseño de la mayoría de 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. [2] 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 . [8] [9]

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 [10] para obtener 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 por 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 por 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 a 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 pose del efector final como entrada y proporciona posiciones conjuntas como salida . Los solucionadores analíticos de cinemática inversa pueden ser significativamente más rápidos que los solucionadores numéricos y proporcionar más de una solución, pero solo un número finito de soluciones, para una determinada postura del efector final.

Muchos programas diferentes (como los programas FOSS IKFast y 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 forma sencilla pero eficaz de implementar la cinemática inversa. Sean variables que gobiernen la ecuación de cinemática directa, es decir, la función de posición. Estas variables pueden ser ángulos, longitudes u otros valores reales arbitrarios de las articulaciones. Si, por ejemplo, el sistema IK vive en un espacio tridimensional, la función de posición se puede considerar como un mapeo . Sea la posición inicial del sistema y

ser la posición objetivo del sistema. La técnica inversa jacobiana calcula de forma iterativa una estimación de que minimiza el error dado por .

Para vectores pequeños , la expansión en serie de la función de posición da

,

¿ Dónde está la matriz jacobiana (3 × m) 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 i-ésimo componente de la función de posición, es simplemente con un pequeño delta agregado a su k-ésimo componente y es un valor positivo razonablemente pequeño.

Tomando el pseudoinverso de Moore-Penrose del jacobiano (calculable mediante una descomposición de valores singulares ) y reorganizando los términos se obtiene

,

dónde .

La aplicación del método jacobiano inverso una vez dará como resultado una estimación muy aproximada del vector deseado. Se debe utilizar una búsqueda de líneas para escalar esto a un valor aceptable. La estimación se puede mejorar mediante el siguiente algoritmo (conocido como método de Newton-Raphson ):

Una vez que algún vector haya provocado que el error se acerque a cero, el algoritmo debería terminar. Se ha informado que los métodos existentes basados ​​en la matriz de Hesse del sistema convergen a los valores deseados utilizando menos iteraciones, aunque en algunos casos más recursos computacionales.

Métodos heurísticos

El problema de la cinemática inversa también se puede aproximar mediante 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) [11] y la cinemática inversa de alcance hacia adelante y hacia atrás (FABRIK). [12]

Ver también

Referencias

  1. ^ Donald L. Pieper, La cinemática de manipuladores bajo control por computadora. Tesis doctoral, Universidad de Stanford, Departamento de Ingeniería Mecánica, 24 de octubre de 1968.
  2. ^ abc Lynch, Kevin M.; Parque, Frank C. (25 de mayo de 2017). Robótica moderna. Prensa de la Universidad de Cambridge. ISBN 978-1-107-15630-2.
  3. ^ Siciliano, Bruno; Khatib, Oussama (27 de junio de 2016). Manual de robótica de Springer. Publicaciones internacionales Springer. ISBN 978-3-319-32550-7.
  4. ^ Pablo, Richard (1981). Manipuladores de robots: matemáticas, programación y control: el control informático de los manipuladores de robots. MIT Press, Cambridge, MA. ISBN 978-0-262-16082-7.
  5. ^ JM McCarthy, 1990, Introducción a la cinemática teórica, MIT Press, Cambridge, MA.
  6. ^ JJ Uicker, GR Pennock y JE Shigley, 2003, Teoría de máquinas y mecanismos, Oxford University Press, Nueva York.
  7. ^ JM McCarthy y GS Soh, 2010, Diseño geométrico de vínculos, Springer, Nueva York.
  8. ^ Paden, Bradley Evan (1 de enero de 1985). Cinemática y Control de Robots Manipuladores (Tesis). Código bibliográfico : 1985PhDT.......94P.
  9. ^ Murray, Richard M.; Li, Zexiang; Sastry, S. Shankar; Sastry, S. Shankara (22 de marzo de 1994). Una introducción matemática a la manipulación robótica. Prensa CRC. ISBN 978-0-8493-7981-9.
  10. ^ A. Aristidou, J. Lasenby, Y. Chrysanthou, A. Shamir. Técnicas de cinemática inversa en gráficos por computadora: una encuesta. Foro de gráficos por computadora, 37 (6): 35-58, 2018.
  11. ^ DG Lüenberger. 1989. Programación lineal y no lineal. Addison Wesley.
  12. ^ A. Aristidou y J. Lasenby. 2011. FABRIK: Un solucionador rápido e iterativo para el problema de cinemática inversa. Grafico. Modelos 73, 5, 243–260.

enlaces externos