5 votos

Dinámica de cuerpos rígidos articulaciones

No puedo encontrar información sobre cuerpos rígidos conectados por una articulación. ¿Alguien me puede explicar los conceptos básicos? Estoy tratando de investigar si sería factible implementar la física de ragdoll en 3D para mi juego de disparos en primera persona.

4 votos

Eso parecería ser una situación que clama por ser tratada en mecánica lagrangiana (porque puedes definir la mayoría de tus coordenadas generalizadas como los ángulos de articulación). Vea cualquier texto de mecánica de división superior o graduado.

0 votos

1voto

Dan Herbert Puntos 38336

Advertencia: La redacción aquí es desde el punto de vista de la robótica, y no específica para el desarrollo de juegos. Para los videojuegos, es mucho más simple considerar figuras palo de masas puntuales, en lugar de la dinámica de cuerpos rígidos 3D completos (mostrada abajo).

Un muñeco articulado está principalmente conectado con articulaciones esféricas, que restringen la posición de un punto del cuerpo rígido y permiten los tres grados de libertad. No hay respuestas fáciles, aunque las ecuaciones necesarias se pueden encontrar en un libro de dinámica de nivel universitario.

Cada junta compleja se modela como una secuencia de articulaciones más simples de un grado de libertad (1DOF), cada una con su propia posición de articulación (o ángulo), velocidad y aceleración.

Lo básico para tratar con sistemas es primero resolver la cinemática (cómo se relacionan todos los movimientos individuales de cada cuerpo entre sí), aplicar las leyes de Newton para relacionar cómo se relacionan todas las fuerzas individuales entre sí, y finalmente, utilizar las relaciones de poder en las articulaciones para resolver todo. Como mencioné, no hay respuestas fáciles.

Configuración del Problema

Considera el siguiente ejemplo simple (?!?), con dos cuerpos conectados a través de una articulación de bisagra.

  1. Ejemplo - El Cuerpo 1 se considera el cuerpo padre, y el cuerpo 2 el hijo. Por lo tanto, la posición $\vec{r}_2$ del cuerpo 2, es una función de la posición $\vec{r}_1$ del cuerpo 1, así como del ángulo de la articulación $\theta$. El eje de la articulación de bisagra $\hat{z}$ es un vector unitario descrito en coordenadas mundiales abajo.

    fig1

  2. Cinemática de Posición - Este es uno de los pasos más complejos generalmente, pero utilizando la geometría y la orientación de los cuerpos, se describe la posición de la articulación $\vec{r}_A$ desde la posición $\vec{r}_1$ y la matriz de orientación (rotación) 3x3 $\mathbf{R}_1$ del cuerpo 1. Luego, la orientación del cuerpo 2 se describe recursivamente $$ \mathbf{R}_2 = \mathbf{R}_1 \mathrm{rot}(\hat{z},\theta) \tag{1} $$ La posición del cuerpo 2 se describe recursivamente $$ \vec{r}_2 = \vec{r}_1 + \mathbf{R}_1 \text{(local a 1)} + \mathbf{R}_2 \text{(local a 2)} \tag{2} $$

  3. Cinemática de Velocidad - Este es el paso menos complejo ya que implica ecuaciones bastante intuitivas, que son el resultado de diferenciar las expresiones anteriores

    $$ \begin{aligned} \vec{\omega}_2 &= \vec{\omega}_1 + \hat{z} \dot{\theta} \\ \vec{v}_2 & = \vec{v}_1 + \vec{\omega}_1 \times ( \vec{r}_A - \vec{r}_1) + \vec{\omega}_2 \times (\vec{r}_2 - \vec{r}_A) \end{aligned} \tag{3}$$ Si hubiera algún deslizamiento a lo largo de $\hat{z}$ entonces la velocidad $\vec{v}_2$ tendría algún componente añadido paralelo a $\hat{z}$.

  4. Cinemática de Aceleración - Diferenciar las velocidades usando la regla de la cadena produce las aceleraciones y esto es más complejo porque hay muchos términos involucrados.

    $$ \begin{aligned} \vec{\alpha}_2 &= \vec{\alpha}_1 + \hat{z} \ddot{\theta} + \vec{\omega}_1 \times \hat{z} \dot{\theta} \\ \vec{a}_2 & = \vec{a}_1 + \vec{\alpha}_1 \times ( \vec{r}_A - \vec{r}_1) + \vec{\alpha}_2 \times (\vec{r}_2 - \vec{r}_A) +\\ & + \vec{\omega}_1 \times ( \vec{v}_A - \vec{v}_1) + \vec{\omega}_2 \times (\vec{v}_2 - \vec{v}_A) \end{aligned} \tag{4}$$

  5. Dinámica - Aquí es donde nos apoyamos en los diagramas de cuerpo libre para equilibrar las fuerzas y momentos. Considera solo la gravedad presente, y la articulación generando algún vector de fuerza $\vec{F}$ y momento $\vec{M}_A$ que se aplica de manera igual y opuesta a cada cuerpo. Pero primero, necesitamos encontrar el tensor de momento de inercia de masa (matriz 3x3) usando las matrices de orientación. Utiliza $ \mathbf{I}_1 = \mathbf{R}_1 \mathbf{I}_\text{body} \mathbf{R}_1^\top $ para el cuerpo 1 y $ \mathbf{I}_2 = \mathbf{R}_2 \mathbf{I}_\text{body} \mathbf{R}_2^\top $ para el cuerpo 2, donde $\mathbf{I}_\text{body}$ es el tensor de momento de inercia de masa en coordenadas montadas en el cuerpo (una matriz constante).

    • Cuerpo 1

    $$ \begin{aligned} -\vec{F} + m_1 \vec{g} & = m_1 \vec{a}_1 \\ -\vec{M}_A - ( \vec{r}_A - \vec{r}_1) \times \vec{F} & = \mathbf{I}_1 \vec{\alpha}_1 + \vec{\omega}_1 \times \mathbf{I}_1 \vec{\omega}_1 \end{aligned} \tag{5} $$

    • Cuerpo 2

    $$ \begin{aligned} \vec{F} + m_2 \vec{g} & = m_2 \vec{a}_2 \\ \vec{M}_A + ( \vec{r}_A - \vec{r}_2) \times \vec{F} & = \mathbf{I}_2 \vec{\alpha}_2 + \vec{\omega}_2 \times \mathbf{I}_2 \vec{\omega}_2 \end{aligned} \tag{6} $$

  6. Potencia de la Articulación - La última parte para hacer el problema resoluble es imponer que las fuerzas y momentos en la articulación no añadan potencia al sistema (solo fuerzas de restricción). Para la simulación de muñecos de trapo, todas las articulaciones son libres de moverse, y por lo tanto deben obedecer la ley de entrada igual a salida de potencia. Para una articulación de espiga, lo anterior se simplifica a lo siguiente

    $$ \hat{z} \cdot \vec{M}_A = 0 \tag{7}$$

Solución

Tenemos 6 movimientos desconocidos para cada cuerpo (traslación y rotación) más el movimiento de la articulación por resolver. Además, hay 6 componentes de fuerza/momento en la articulación desconocidos. Esto nos da un total de 6*2+1+6=19 incógnitas en el problema anterior.

También tenemos 2 ecuaciones vectoriales de cinemática, 4 ecuaciones vectoriales de dinámica más 1 ecuación escalar de potencia. Esto nos da un total de 2*3+4*3+1=19 ecuaciones para resolver el sistema, por lo tanto el sistema es resoluble.

0 votos

1voto

apoorv020 Puntos 397

Probablemente demasiado tarde para el OP, pero por el bien de las próximas generaciones o cualquier persona buscando información relacionada con este tema, estoy dejando este enlace:

http://www.gamasutra.com/resource_guide/20030121/jacobson_01.shtml

Este artículo en realidad contiene todo lo que necesitas saber sobre la programación de un motor de física de muñecos de trapo genial. ¡Incluye ejemplos de código!

Este artículo en realidad fue uno de los puntos de inflexión en mi vida, ¿será también el tuyo? :)

4 votos

Recibo un enlace roto.

0 votos

Lo siento, debería haber incluido el nombre del artículo. Es "Física de personajes avanzada" de Thomas Jakobsen. Es bastante fácil de buscar en Google.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X