¿Cómo representar el efecto de unir cuerpos rígidos?

Tengo 2 cuerpos rígidos (b1, b2) si los vinculé entre sí (como si estuvieran unidos), cómo representar el efecto b1 en b2 y el efecto b2 en b1

ingrese la descripción de la imagen aquí

¿Hay alguna LEY que afecte la posición/orientación del otro cuerpo?

notas:

  • estoy usando Quaternions para orientaciones
  • no quiero tratarlos como un solo cuerpo
  • solo tengo formas primitivas (caja, esfera, ..) para vincular.
¿Por qué no los trata simplemente como un solo cuerpo rígido grande?
la idea de que estoy haciendo un motor de física que trata los cuerpos como primitivos (caja, cono, esfera, ..). entonces, si los trato como un solo cuerpo rígido, debo agregar una nueva lógica de resolución de colisiones para este nuevo cuerpo complejo

Respuestas (4)

Las leyes que está buscando son la conservación del momento y la conservación del momento angular. Si unes los dos cuerpos, ambas leyes aún deben cumplirse (se desprecian los efectos inelásticos). Al final tendrás un solo objeto compuesto. Con el teorema del eje paralelo ( wikipedia ) puedes calcular el momento de inercia de la masa y junto con el centro de masa todo el movimiento de tu objeto compuesto. No tiene que cambiar la lógica de colisión por completo, cree una esfera/caja que incluya todo su objeto y utilícela para probar las colisiones.

Una alternativa para conectar los dos cuerpos rígidos es a través de resortes como señaló dmckee y este enfoque es bastante exitoso en muchos motores de física (juegos de construcción de puentes, World of Goo). Incluso los líquidos se pueden modelar con unas pocas gotas duras conectadas a través de resortes.

No estoy hablando de la detección de colisiones, estoy hablando de la resolución de colisiones que depende de Contact Normal, que se cambiará, ¿verdad?
@MhdSyrwan: el contacto normal cambiará, independientemente de cómo conecte los cuerpos. Para el cálculo del resultado de la colisión, la conservación del momento y del momento angular son buenos puntos de partida.
Quiero comenzar a formar mi lógica de cálculo de trabajo para mis primitivos.

El motor de física de código abierto ODE le permite conectar dos cuerpos utilizando cualquiera de varias articulaciones diferentes. Una de esas articulaciones es la articulación "Fija" . Es mucho más estable, en el motor de física, representar los dos cuerpos como un solo cuerpo pero manteniendo dos geometrías separadas con fines de colisión. Sin embargo, ODE probablemente maneja la detección/resolución de colisiones de manera diferente a lo que tiene en mente. Solo detecta la colisión después de un marco de interpenetración y luego restringe la velocidad relativa de los cuerpos que chocan de tal manera que los fuerza a separarse en el siguiente paso de tiempo. Ese tipo de restricción es mucho más fácil de satisfacer para un solo cuerpo rígido que para dos, pero tal vez en realidad esté impidiendo la penetración y, por lo tanto, necesite una técnica diferente.

La unión fija simplemente restringe los dos cuerpos para que tengan una velocidad angular relativa cero y una velocidad lineal relativa cero (y también tiene un término de corrección de errores para eliminar la desviación numérica pequeña). Después de eso, el solucionador LCP se encarga del resto.

Si pag el vector que conecta el centro de masa de b1 al centro de masa de b2 entonces debe tener

v 2 = v 1 + ω 1 × pag ω 2 = ω 1

a 2 = a 1 + α 1 × pag + ω 1 × ω 1 × pag α 2 = α 1

En la Vida Real (tm) no hay Cuerpos Rígidos (tm), y en primer orden (es decir, bajo baja tensión {*}) todos los sólidos actúan como resortes. La regla que buscas es la Ley de Hooke:

F = k Δ X .

Por supuesto, eso deja la cuestión de elegir las constantes de resorte correctas (y notar que no todo suena para siempre) también la amortiguación correcta.


Es casi seguro que es mejor descubrir cómo tratar cuerpos compuestos y unidades individuales que intentar hacer un análisis de elementos finitos (incluso simplificado drásticamente) en cada paso.


{*} Tenga en cuenta que los materiales de arcilla viva que se deforman fácilmente solo están bajo tensión baja para presiones extremadamente pequeñas, por lo que esta regla no se aplica a ellos en un sentido práctico, incluso si se puede decir que es bueno en el límite de tensión bajo.