IsoAxis

1. Introducción.

1.1. Objetivo del trabajo.

Con este trabajo se pretende generar la animación por ordenador de un IsoAxis (descrito en el apartado siguiente) como ejemplo de animación cinemática de un sistema mecánico con múltiples ligaduras entre los elementos que lo componen y con varios grados de libertad.

1.2. Descripción del sistema.

El IsoAxis (patente USA nº 3302321) fue descubierto por Wallace Walker en 1958, cuando trabajaba en un proyecto cuyo objetivo era lograr configuraciones estructurales para el papel.

Consiste en un estado bidimensional del papel plegado en una cuadrícula de sesenta triángulos isósceles rectángulos, formando un anillo tridimensional que puede girar en torno a su centro, sobre si mismo, obteniéndose un ciclo de configuraciones de apariencia curiosa.

*** ***
Figura 1: Desarrollo y perspectiva de un IsoAxis

2. Planteamiento.

2.1. Definición del sistema.

Como se puede apreciar en la figura 1, el sistema está formado por seis sectores con diez triángulos cada uno, dispuestos a intervalos de 60 º para formar una estructura anular [1]

El primer paso necesario para obtener una descripción cinemática del IsoAxis es la determinación del número de grados de libertad. Para ello consideraremos un vértice cualquiera del sector mostrado en la figura 2; por ejemplo el 0. La posición de este punto en el espacio queda fijada por 3 coordenadas; a partir de este punto se puede determinar la posición de otro adyacente (5) mediante dos coordenadas adicionales (por ejemplo, dos coordenadas angulares). Los dos puntos así definidos determinan una recta; con la ayuda de otra coordenada se puede obtener la posición del punto que cierra el triángulo (1). Siguiendo esta linea de razonamiento para los puntos 1 a 6 (los puntos 7, 8 y 9 se obtienen por simetría) se llega a la conclusión de que son necesarias 10 coordenadas para definir la posición de todos los puntos.

Figura 2: Sector de IsoAxis

Ahora bien, si se añaden las restricciones necesarias para que el sector pueda formar parte de un anillo (los puntos 0, 1 y 2 deben estar situados sobre el plano x=sqr(3) y; los puntos 3 a 6 deben estar situados sobre el plano x=0) obtienen 7 ecuaciones, con lo que el número de grados de libertad desciende hasta 3. Fijando la altura de sector en el eje Z (en la figura 3, haciendo que el centro del segmento (4 5) esté situado sobre el eje Y) quedará un total de 2 grados de libertad.

Definiendo los ángulos alfa (a), beta (b), gamma (g) y delta (d) como se muestra en la figura 3:

alpha =1/2 (9 c 0)

Figura 3: Definición de las coordenadas angulares

se pueden tomar delta y alfa como grados de libertad, con lo que el giro del IsoAxis vendrá directamente asociado a la variable delta.

Con esto, las coordenadas de los puntos 0 a 6 vendrán dadas por:

donde aparecen seis incógnitas: y1 , z1 , y2 , z2, b, g.

Estas variables pueden calcularse de forma analítica utilizando las ecuaciones que se derivan de las condiciones de perpendicularidad entre segmentos y de distancias entre puntos.

2.2. Solución del sistema.

Nota: se utilizara [n m] para designar el segmento que une los vértices n y m; y |[n m]| para designar la longitud de dicho segmento.

En primer lugar se deberá calcular el punto 1 utilizando para ello las siguientes ecuaciones:

i. [0 5] . [1 5] = 0

ii. |[1 5]| = sqr(2)

Desarrollando:

iii. y1 ( x0 / sqr(3) + y0 - y5 ) + z1 ( z0 - z5 ) =
= y5 ( y0 - y5 ) + z5 ( z0 - z5 )

iv. ( y1 / sqr(3) )^2 + ( y1 - y5 )^2 + ( z1 - z5 )^2 = 2

Este sistema tiene dos soluciones en (y1,z1) se tomará aquella que minimice el ángulo (c 5 1).

Para el caso z0=z5:

y1 = ( y5 ( y0 - y5 ) ) / ( x0 / sqr(3) + y0 -y5 )

x1 = y1 / sqr(3)

z1 = z5 +- sqr ( 2 - x1^2 - ( y1 - y5 )^2 )

En el caso contrario, el sistema puede expresarse de la forma:

v. a y1 + z1 = b

vi. ( y1 / sqr(3) )^2 + ( y0 - u )^2 + ( z1 - v )^2 = 2

donde

a = ( x0 / srq(3) + y0 - y5 ) / ( z0 - z5 )

b = z5 + ( y0 - y5 ) / ( z0 - z5 )

u = y5

v = z5

con lo que es posible obtener y1 en función de (a,b,u,v), quedando:

z1 = b - a y1

x1 = y1 / sqr(3)

Una vez determinadas las coordenadas del punto 1, es posible calcular la posición del punto 6, utilizando la condición de perpendicularidad:

vii. [1 6] . [5 6] = 0

de donde:

viii. 1 = ( y1 - y5 ) sen g - ( z5 - z1 ) cos g

y6 = y5 + sen g

z6 = z5 + cos g

Existen dos soluciones en gamma, se tomará aquella que minimice el ángulo (4 5 6).

El cálculo del punto 2 es análogo al del punto 1, sustituyendo el punto 5 por el 4.

El cálculo del punto 3 es análogo al del punto 6:

ix. 1 = ( y2 - y4 ) sen b - ( z2 - z4 ) cos b

Con esto quedan determinadas las posiciones de todos los puntos en función de delta y de alfa

2.3. Otras restricciones.

Hasta el momento se han calculado las coordenadas de los puntos sin tener en cuenta una serie de restricciones que limitan los valores válidos del parámetro a para cada valor de delta.

Estas restricciones provienen de, por una parte la impenetrabilidad de las caras del sector, y por otra, de la necesidad de existencia de solución en las ecuaciones planteadas en el apartado anterior[2].

Algunas de estas restriciones pueden plantearse y resolverse fácilmente de forma analítica; mientras que otras sólo pueden ser resueltas numéricamente.

Figura 4: Restricciones para la variable alfa

Para y4 >= 0, la ecuación toma la forma:

1 = A sen a - B cos a

siendo:

A = sqr(3) / sen a

B = -cos d / sen d

con lo que la solución es directa.

La solución para y5 >= 0, es análoga; mientras que para y5 <= 2 la forma es la misma con:

A = sqr(3) / ( 2 - sen d )

B = -cos d / ( 2 - sen d )

Con estas ecuaciones se puede delimitar el rango de variación de alfa a una zona relativamente estrecha (los valores correspondientes a la zona superior de la solución de y5 <= 2 pueden dar lugar a configuraciones válidas pero sin continuidad con las que integran el movimiento normal del IsoAxis).

La solución analítica de las restricciones correspondientes a la existencia de solución en las ecuaciones de segundo grado, sin embargo, debe de hacerse de forma numérica. Los principales problemas que aparecen son el estrecho margen de variación para alfa en la algunas zonas y la aparición de vibraciones claramente percibibles en algunas de las variables como consecuencia de mínimas variaciones del ángulo alfa.

De hecho, en la zona correspondiente a valores de delta próximos a PI/2, sólo puede obtenerse solución válida para el ángulo gamma si se permite que la coordenada y4 tome un valor ligeramente inferior a cero (lo que equivale a admitir deformaciones en el modelo "real"). En la figura 5 se puede apreciar la evolución de algunas variables significativas del modelo en función de delta. Los valores de gamma1 y gamma2 corresponden a los valores del ángulo (4 5 6), expresados en radianes, para las dos soluciones posibles de gamma.

Figura 5: Evolución del sistema

Nótese que las variables y5 e y4, así como y1 toman valores ligeramente inferiores a cero en ciertos puntos; estos valores deben ser positivos, con lo que la única solución es admitir deformaciones en la estructura.

3. Animación.

Para la visualización del modelo se realizaron tres programas entre 1991 y 1994, uno de ellos utilizando el interface RenderMan, lo que permite efectuar un rendering en cualquier máquina, otro con funciones de la librería Starbase de HP, y el último, utilizando la librería gráfica GL de Silicon Graphics; lo que permite realizar una animación en tiempo real en ciertas máquinas con hardware específico para cálculos en 3D.

La animación original se realizó en 1993 utilizando la versión RenderMan sobre MacOS.

Figura 6: Animación (formato QuickTime, 1.2 Mb)
También disponible en formato MPG, 1.2 Mb (peor calidad)
También disponible en formato avi/divx, 0.5 Mb

4. Código fuente y ejecutables.

El código fuente, que utiliza las librerías OpenGL, GLUT y libjpeg, se puede obtener en

Binarios pre-compilados:

Aparte de las plataformas disponibles, no debería ser muy complicado compilarlo en cualquier otra plataforma que soporte GLUT

Nota: Algunos de estos binarios pueden estar linkados dinámicamente con librerías de OpenGL, GLUT y/o jpeg. Si el binario no funciona en su sistema, deberá localizar e instalar las librerías necesarias.

Nota: Parte del código lo escribí hace muchos años, y no esta demasiado limpio, por lo que no deberia usarse como ejemplo.

5. Enlaces.

Dos direcciones "une balade dans le monde des polyèdres", de Maurice Starck:


[1] Este planteamiento supone una simetría que no necesariamente se presentará en la realidad; ahora bien, la operacion normal del IsoAxis(r) es de hecho simétrica, y por otra parte, el problema ya es suficientemente complejo de por sí con 1/6 del anillo.

[2]Nota: Como se puede apreciar en las restricciones representadas, existe una zona para valores de delta alrededor de los 90º en la que las curvas y5=0 e y4=0 tienden a delimitar una solución única para alfa. En la práctica esta solución resulta no ser válida para alguna de las restricciones no analíticas; lo que parece significar que el movimiento ideal sin deformaciones del sistema no es posible.


Estudio realizado en 1991, última modificación de ésta página: 16 de Enero de 2004

spd@daphne.cps.unizar.es