• No se han encontrado resultados

Simulación y animación biomecánica de un humanoide

N/A
N/A
Protected

Academic year: 2020

Share "Simulación y animación biomecánica de un humanoide"

Copied!
27
0
0

Texto completo

(1)

SIMULACI ´

ON Y ANIMACI ´

ON

BIOMEC ´

ANICA

DE UN HUMANOIDE

Alumnos:

Enzo Altamiranda Graterol

[email protected]

Teresa Fontanella De Santis

[email protected]

Tom´

as Mehdi

[email protected]

Tutor:

Dr. Daniel Ricardo Parisi

Instituto Tecnol´ogico de Buenos Aires - ITBA

Departamento de Ingenier´ıa Inform´atica

(2)

1 Introducci´on 4

2 Herramientas 5

2.1 Motor f´ısico . . . 5

2.1.1 Funcionamiento . . . 5

2.1.2 Modelo de fricci´on y su verificaci´on . . . 5

2.1.2.1 Verificaci´on del coeficiente de fricci´on . . . 6

2.1.2.2 Verificaci´on del coeficiente de restituci´on . . . 10

2.1.3 Ventajas . . . 11

2.1.4 Desventajas . . . 11

2.2 Librer´ıa de algoritmos gen´eticos . . . 12

2.3 C´odigo fuente . . . 12

3 Modelo utilizado 12 3.1 Composici´on f´ısica del humanoide . . . 12

3.2 Articulaciones . . . 13

4 Actuadores 14 4.1 Gen´erico . . . 14

4.2 Coseno doble frecuencia . . . 15

4.3 Fourier de orden 2 . . . 16

4.4 Fourier de orden 9 . . . 16

5 Condiciones iniciales y de contorno 17 5.1 Funci´on partida . . . 17

5.2 Fase sincronizada . . . 17

6 Algoritmo gen´etico 17 6.1 Individuo . . . 18

6.1.1 Par´ametros . . . 18

6.1.2 Valores . . . 18

6.1.3 Implementaci´on de individuos . . . 19

6.1.4 Constituci´on del cromosoma . . . 19

6.2 Fitness . . . 20

6.2.1 Altura . . . 20

6.2.2 Velocidad . . . 21

6.2.3 Direcci´on . . . 21

6.2.4 Simetr´ıa . . . 21

6.2.5 Pies abajo . . . 22

6.3 Operadores del algoritmo . . . 22

6.3.1 M´etodos de selecci´on . . . 22

6.3.2 M´etodos de cruza . . . 22

(3)

6.3.4 Otras caracter´ısticas . . . 23

7 Resultados obtenidos 23 7.1 Evoluci´on delfitness promedio seg´un tipo de individuos . . . 24

7.2 Velocidad seg´un tipo de individuos . . . 24

7.3 Altura seg´un tipo de individuos . . . 25

7.4 Comparaci´on de tipo de individuos . . . 25

7.5 Videos . . . 26

8 Conclusiones 26

Referencias 27

(4)

Resumen

Este proyecto tiene como objetivo crear una simulaci´on y animaci´on de un humano

virtual, con las siguientes propiedades:

− Biomec´anica: que tanto su estructura (peso, altura y posici´on de cada una de sus partes) como su interacci´on con el entorno, respondan a comportamientos f´ısicos reales y exactos.

− Inteligencia artificial: que aprenda a caminar por s´ı mismo, utilizando para ello

m´etodos desoft computingcomo algoritmos gen´eticos.

1.

Introducci´

on

Siempre ha sido de inter´es la simulaci´on biomec´anica de seres vivos, especialmente en las

ciencias naturales (zoolog´ıa, medicina, etc.).

Ahora bien, ´ultimamente se ha incrementado el inter´es en otras ´areas de aplicaci´on, como los

videojuegos (creaci´on de personajes con reacciones m´as reales), y la ingenier´ıa (verbigracia: dise˜no

de espacios cerrados, con mayores medidas de seguridad).

Una caracter´ıstica muy importante de este proyecto es que el humanoide no es producto de

una animaci´on realizada por un artesano, que mueve cada uno de los segmentos manualmente,

repitiendo este trabajo cada vez que cambia su fisonom´ıa; sino un objeto compuesto de segmentos

f´ısicos, que interaccionan entre s´ı y con el entorno por medio de las leyes f´ısicas; agregando as´ı

realismo a la situaci´on simulada. La otra propiedad es que el b´ıpedo aprenda por s´ı solo a caminar

en l´ınea recta, sin tener en su trayectoria ning´un obst´aculo, de la misma manera que lo har´ıa un

ser humano en la realidad.

Este problema se puede abordar de diversas maneras. Existen varios trabajos al respecto, algunos

de los cuales sirvieron como base para realizar el presente informe. Por ejemplo, en el paper de

Marek Wojtyra[1] se usa un sistema de control para mantener el equilibrio de la parte superior

del humanoide (passive walkers).

En el trabajo realizado por Thomas Geijtenbeek y otros [2], se utilizan algoritmos gen´eticos para

seleccionar la anatom´ıa de b´ıpedos de cualquier forma (considerando m´usculos con distintos

materiales).

Asimismo, existe un trabajo previo de Kevin Kenny y otros [3], tambi´en empleando algoritmos

gen´eticos, para crear un maniqu´ı de un cuadr´upedo virtual y dotarlo de los mecanismos para que

aprenda a caminar por su propia cuenta.

Continuando con esta ´ultima l´ınea de investigaci´on y extendi´endola a b´ıpedos, en este proyecto

tambi´en se busc´o aplicar algoritmos gen´eticos, y lograr la caminata usando un modelo de humano

virtual basado en un conjunto de segmentos (cuerpos r´ıgidos), unidos entre s´ı por articulaciones,

cuyo desplazamiento depende de torques aplicados a dichos cuerpos, y sus par´ametros se ajustan

a partir de la evoluci´on del algoritmo.

El presente informe, describe y analiza pormenorizadamente: en la secci´on 2, las herramientas

aplicadas; en la 3, el modelo del humanoide utilizado; en la 4 y 5, los diferentes tipos de actuadores

y funciones de partida y contorno; en la 6, el algoritmo gen´etico; y en la 7 y 8, los resultados

(5)

2.

Herramientas

2.1.

Motor f´ısico

Se llama motor f´ısico o physics engine a un “software capaz de realizar simulaciones de

ciertos sistemas f´ısicos, como la din´amica del cuerpo r´ıgido, el movimiento de un fluido y la

elasticidad”[4].

Actualmente, existen muchos motores f´ısicos: ya sea de c´odigo propietario (PhysX,Havok), como

open-source (Bullet Physics,Box2D,Newton,OGRE). Considerando an´alisis relacionados [5][6],

y el hecho de que el espacio simulado fuese en 3D, se decidi´o que Bullet Physics[7] es el m´as

id´oneo. Est´a implementado en C++ y ha sido utilizado en varios juegos (Grand Theft Auto IV

yV, etc); en los efectos especiales de pel´ıculas (Hancock,Bolt, etc.); y proyectos cient´ıficos, como

la herramientaopen-source Tensegrity Robotics Toolkit de la NASA1; entre otros.

Si bien (como se ver´a m´as adelante)Bullettiene problemas asociados con el coeficiente de

restitu-ci´on, posee una muy buenaperformanceen la detecci´on de colisiones, la din´amica y la resoluci´on

deconstraints. Esto se debe, en parte, a diferentes algoritmos iterativos de orden lineal (donde

el m´as importante esSequential Impulse), decaching y tambi´en a la utilizaci´on de un modelo

de fricci´on de Coulomb aproximado [8]. Adem´as, el motor f´ısico brinda la posibilidad de regular

la precisi´on requerida en estos c´alculos (sin olvidar que, con iguales recursos, a mayor

preci-si´on, mayor capacidad de c´omputo requerida y, ergo, mayor tiempo). Dado que la construcci´on

del humanoide implica definir caracter´ısticas y restricciones de movimiento de cada uno de sus

segmentos, lo antes mencionado fue crucial para la elecci´on deBullet Physics en este proyecto.

2.1.1. Funcionamiento

El motor f´ısico se encarga de la simulaci´on de cuerpos r´ıgidos y la interacci´on entre los mismos.

En particular debe calcular el resultado de colisiones, arreglar el solapamiento de los cuerpos en

el espacio de simulaci´on, estimar las fuerzas producidas debido a la fricci´on, y mantener el

cumplimiento de restricciones que puedan existir entre los cuerpos (por ejemplo, un v´ınculo para

formar una articulaci´on). Para lograrlo,Bullet modela, a partir de un conjunto de ecuaciones,

las distintas restricciones que deben ser respetadas.

Estos modelos reciben como dato la velocidad lineal y angular de cada objeto, y las fuerzas

que act´uan sobre los mismos. Dada esta informaci´on, se resuelve el sistema de ecuaciones, cuya

soluci´on representa las magnitudes de las fuerzas a accionar sobre el mismo, a fin de satisfacer

todas las restricciones. Para encontrar esta soluci´on, entran en juego los distintos m´etodos de

complejidad lineal mencionados en la subsecci´on anterior.

Este procedimiento, se lleva a cabo en cadatimestep de la simulaci´on; donde un timestep es el

intervalo de tiempo que transcurre entre un c´alculo de magnitudes y otro. Mientras menor sea

eltimestep, el simulador ser´a m´as preciso pero tambi´en consumir´a m´as tiempo de c´omputo.

2.1.2. Modelo de fricci´on y su verificaci´on

Hay reglas f´ısicas relacionadas con el entorno y que son muy importantes para la caminata:

el modelo de fricci´on, con sus respectivos coeficientes de fricci´on y restituci´on.

En base a los modelos f´ısico-matem´aticos que representan a cada uno de los dos fen´omenos en

cuesti´on (y que se explicar´an a continuaci´on), y pensando en posibles futuras simulaciones de

(6)

varios humanoides chocando e interactuando entre s´ı; se llevaron a cabo dos ensayos para verificar

el funcionamiento del simulador f´ısicoBullet.

2.1.2.1. Verificaci´on del coeficiente de fricci´on

Para determinar el modelo utilizado porBullet para simular las fuerzas resultantes sobre un

cuerpo por acci´on de la fricci´on, se simul´o un cubo, demcube = 1kg ylcube= 1m, que tiene una

velocidad inicial constante (vi) en el eje horizontal, que gradualmente se detiene por acci´on de

la fricci´on, hasta llegar al reposo (Fig. 1).

Figura 1: Visualizaci´on del sistema del cubo

Para esta prueba se utiliz´o el modelo matem´atico que representa la posici´on del cuerpo en el eje

horizontal en funci´on del tiempot, representado por la siguiente ecuaci´on:

x(t) =xi+vit+

1 2at

2 (1)

En este caso, el cuerpo empieza su movimiento en el origen, por lo tanto la posici´on inicial (xi)

es cero. vi es la velocidad inicial, y a, la aceleraci´on. Debido a la fricci´on entre el cuerpo y el

suelo, se genera una fuerza de rozamientoFµd

2 (ec. (2)) en la misma direcci´on que la velocidad

del s´olido y en sentido contrario.

−Fµd=µdFN (2)

dondeFN =mges la fuerza normal que act´ua sobre la caja de masampor acci´on de la gravedad

g= 10ms, yµd es el coeficiente de fricci´on din´amico.

Finalmente, se obtiene la aceleraci´on:

a= Fµd

m =

−µdFN

m =

−µdmg

m =−µdmg (3)

Considerando las ec. (1) y (3), se puede obtener el modelo matem´atico que predice el movimiento

de la caja:

x(t) =xi+vit−

1 2µdgt

2 (4)

El intervalo de tiempo f´ısico (o timestep) utilizado es ∆t = 601s. El timestep de animaci´on (es decir, cada cu´anto tiempo se guardan en un archivo los datos logrados) es ∆t0=0.1 y el tiempo

de simulaci´on es des= 100∆t.

Seguidamente, se muestran los gr´aficos obtenidos al correr los experimentos num´ericos con los

siguientes valores:vi ={1, 3 y 10}ms yµd={0.25, 0.50 y 0.75}. Se compara la distancia en el

eje Z de la caja en Bullet, con su distancia en el mismo eje seg´un la ec. (4).

(7)

(a)

(b)

(c)

Figura 2: Resultados logrados de simular el sistema descripto en Fig. 1, usandovi= 10ms y:

(8)

(a)

(b)

(c)

Figura 3: Resultados logrados de simular el sistema descripto en Fig. 1, usando vi= 3ms y:

(9)

(a)

(b)

(c)

Figura 4: Resultados logrados de simular el sistema descripto en Fig. 1, usando vi= 1ms y:

(a)µd =0.25, (b)µd=0.50, y (c)µd=0.75

Las Fig. 2 y 3 demuestran que los resultados de las pruebas fueron favorables. Los valores

obtenidos a partir de la simulaci´on se corresponden (en mayor o menor medida) con los alcanzados

(10)

modelos para ejecutar las simulaciones. Vale observar que, cuanto mayor es la velocidad inicial

(vi), mayor es la similitud entre los dos casos.

No obstante, los gr´aficos que corresponden a la Fig. 4, presentan una discrepancia mayor entre

la simulaci´on y el modelo. Este hecho puede deberse al mecanismo utilizado por Bullet para

resolver la fricci´on de un cuerpo a velocidades muy bajas.

2.1.2.2. Verificaci´on del coeficiente de restituci´on

El segundo ensayo simula una esfera a una altura determinada sobre el suelo, que tiene una

velocidad inicial (vi) en el eje perpendicular al piso, y que eventualmente colisiona contra el

mismo. Se desea comprobar que, la colisi´on entre el cuerpo y el suelo respete que la velocidad

final (vf) de la esfera despu´es del choque, sea proporcional a su coeficiente de restituci´on (e)

dado por la ecuaci´on:

e=vf

vi

(5)

Para efectuar la colisi´on con el suelo, se emple´o una esfera s´olida ubicada a 4 metros del suelo,

cuya masa y radio sonmsphere= 1kg yrsphere= 1m, respectivamente (Fig. 5). A la esfera se

le asigna, adem´as, un coeficiente de restituci´on determinado.

Se eligi´o un ambiente sin gravedad (g = 0ms2). De esta forma, se podr´a tener en cuenta s´olo la

velocidad inicial (vi) y la velocidad final (vf) para el c´alculo del coeficiente de restituci´on (e)

(ver ec. (5)).

El intervalo de tiempo f´ısico (otimestep) utilizado es ∆t=0.001s. Eltimestep de animaci´on (es

decir, cada cu´anto tiempo se guardan en un archivo los datos logrados) es ∆t0=0.1 y el tiempo

de simulaci´on es des= 100∆t. El coeficiente de fricci´on esµ=0.75.

Figura 5: Visualizaci´on del sistema de la esfera

El ensayo tiene como par´ametros de entrada:vi (velocidad inicial) yesim (coeficiente de

restitu-ci´on esperado). Por otro lado, se obtienevf (velocidad de la esfera al finalizar la simulaci´on); y

luego se calculanemedida (coeficiente de restituci´on obtenido a partir de la ec. (5)) yrel, que es

el error relativo entre los coeficientesesim yemedida, calculado de la siguiente manera:

rel=

esim−emedida

esim

(6)

En la Tabla 1 se puede observar lo arrojado por los experimentos num´ericos que se efectuaron;

(11)

vi esim vf emedida rel

-0.5 ms

0.2 0.000249 m

s 0.000498 0.997

0.5 0.000219 ms 0.000438 0.999

0.8 0.001037 m

s 0.002074 0.997

-3.5 ms

0.2 0.000057 m

s 0 1

0.5 0.000018 ms 0 1

0.8 0.3 ms 0.0857 0.893

-4 ms

0.2 0.000473 ms 0.00012 1

0.5 0.000424 ms 0.00011 1

0.8 1.23 ms 0.3 0.625

-5 m s

0.2 1 ms 0.2 0

0.5 2.5 m

s 0.5 0

0.8 4 ms 0.8 0

-10 ms

0.2 2 ms 0.2 0

0.5 5 ms 0.5 0

0.8 8 ms 0.8 0

Tabla 1: Coeficientes de restituci´on obtenidos (emedida) de simular el sistema descripto en Fig. 5

Los resultados exponen una limitaci´on del motor f´ısico: no representa correctamente las colisiones

el´asticas entre esferas y cuerpos r´ıgidos, que ocurren a velocidades bajas. Esto queda en evidencia

en la Tabla 1. En cada una de ellas el error fue de casi 1. La raz´on por la que ocurre este hecho

se debe a queBulletutiliza un algoritmo de colisi´on que frena la velocidad de un objeto que est´a

a punto de colisionar. Haciendo esto puede evitar que los s´olidos se traspasen y de esta forma se

pueden realizar c´alculos de fuerza m´as precisos.

En el caso de los ensayos, las esferas poseen una velocidad muy baja, cuando est´an a punto de

colisionarBullet reduce a´un m´as esta velocidad y eventualmente quedan con una velocidad tan

baja que al chocar contra el suelo se aplica el efecto restitutivo a esta velocidad casi nula y se

resuelve que la esfera debe quedar en reposo, cuando en realidad deber´ıa poseer una velocidad

baja, pero no despreciable.

2.1.3. Ventajas

Las ventajas del motor f´ısico son:

− C´odigo abierto: mayor conocimiento sobre las f´ormulas y m´etodos implementados en el motor.

− Soporte de la comunidad cient´ıfica.

− Licencia libre.

2.1.4. Desventajas

Como toda herramienta, Bullet tiene aspectos negativos, entre los que se encuentran:

− Documentaci´on poco clara y desordenada.

(12)

− Utilizar una librer´ıa gr´afica comoOpenGLacoplada a una simulaci´on de Bullet, puede

pro-ducir resultados distintos, que si se usa un programa de visualizaci´on externo como OVITO.

2.2.

Librer´ıa de algoritmos gen´

eticos

Se utiliz´o la conocida librer´ıa de algoritmos gen´eticos para C++ GaLib, desarrollada por

Matthew Wall del MIT [9].

Ofrece funcionalidades como: programaci´on paralela, diversos m´etodos de selecci´on (elite,

rou-lette), estrategias de reemplazo (de padres, aleatorio, del peor), entre otras.

Cabe aclarar que, antes de optar por GaLib, se hab´ıa adoptado la librer´ıa de algoritmos gen´eticos

de Mladen Jankovic, pero finalmente fue descartada, debido a errores obugs en la misma (y que,

cada vez, resultaban ser m´as inmanejables).

2.3.

odigo fuente

Al estar Bullet implementado en C++, el c´odigo fuente tambi´en est´a desarrollado en ese

lenguaje. EnBullet, se define unWorld (o mundo f´ısico) en donde se puede insertar, entre otras

cosas, cuerpos r´ıgidos. En este caso en particular, el mundo consta de un plano (el suelo), y el

b´ıpedo (compuesto por cuerpos r´ıgidos y otros elementos f´ısicos) ubicado sobre ´el.

El software creado incluye: construcci´on del humanoide, siendo ´este capaz de desplazarse por

medio de actuadores (que se ver´an en la Secci´on 4); el desarrollo del algoritmo gen´etico (definici´on

de los individuos, funci´on de fitness, m´etodos de selecci´on, etc.); visualizaci´on gr´afica del mejor

humanoide logrado por el algoritmo gen´etico; y la posibilidad de realizar gr´aficos referidos a la

evoluci´on del algoritmo gen´etico (fitness por cada generaci´on, etc.).

Se acompa˜nan a esta presentaci´on: el c´odigo fuente y el manual de instalaci´on y uso.

3.

Modelo utilizado

Dentro de los diversos modelos existentes ([1][2]), en este trabajo se procur´o utilizar uno que

fuera sencillo pero representativo a la vez.

Se modela al cuerpo del b´ıpedo, con el motorBullet Physics, como un conjunto de segmentos

unidos entre s´ı por articulaciones. A cada uno de ellos se les aplica un torque en el centro de

masa de cada segmento (denominado actuador). Que la caminata se produzca o no, depende

del tipo de actuador empleado (la funci´on utilizada para el torque), y de sus par´ametros. El

objetivo es encontrar dichos par´ametros. Para eso se usan los algoritmos gen´eticos, un m´etodo

de inteligencia artificial. De este modo se obtiene, de forma an´aloga a la selecci´on natural, los

individuos que mejor se adapten a la caminata. Tanto los actuadores como el algoritmo gen´etico

se explicar´an m´as adelante.

3.1.

Composici´

on f´ısica del humanoide

Como ya se expres´o, el humanoide fue modelado enBullet como un conjunto de segmentos

(cuerpos r´ıgidos), unidos entre s´ı por articulaciones.

Sobre la base de la anatom´ıa humana, se dividi´o el cuerpo del humano virtual en: cabeza, tronco,

miembro superior (brazo, antebrazo y mano), pelvis y miembro inferior (muslo, pierna y pie).

(13)

Figura 6: Segmentos del humanoide

En la Tabla 2 se presenta la composici´on f´ısica de cada uno de los segmentos del humano virtual,

de acuerdo a la biomec´anica [10].

Cantidad Forma Largo (en m) Masa (en kg) Uniones

Segmen

to Pelvis 1 Esf´erica 0.08655 9.9718 Cadera

Miembro inferior

Muslo 2 Esfero-cil´ındrica 0.4015 10.3368 Cadera y Rodilla Pierna 2 Esfero-cil´ındrica 0.4015 3.1609 Rodilla y Tobillo

Pie 2 Esfero-cil´ındrica - 1.0001 Tobillo

Tabla 2: Composici´on f´ısica de cada segmento del humanoide

3.2.

Articulaciones

Para unir los distintos segmentos entre s´ı, se utilizaron articulaciones bisagra con 1 grado de

libertad, en el eje X, para que los segmentos puedan moverse en dos ejes: el Z, donde ocurre la

caminata, y el Y, perpendicular al piso (Fig. 7(a) y (b)).

A su vez, para cada caso en particular, se definieron cotas para los ´angulos que pueden existir

entre los segmentos (ver Tabla 3). Esto es muy importante, no s´olo porque se adec´ua a datos

biol´ogicos, sino porque, de otro modo la caminata no podr´ıa lograrse: si los ´angulos son demasiado

altos, la caminata se produce girando las piernas por encima de la pelvis; si por el contrario, son

demasiado bajos, las piernas van a estar muy r´ıgidas, originando pocos pasos y muy cortos.

Asimismo, se le impide rotar a la pelvis, y se restringe la amplitud con la que puede moverse la

cadera (de −4π a π4). Esto se realiza porque, en caso contrario, el b´ıpedo necesitar´ıa un sistema de control para mantener el equilibrio, y eso excede el alcance de este trabajo.

(a) (b)

(14)

´

Angulo m´ınimo Angulo m´´ aximo

Articulaci´on

Cadera -π4 π4

Rodilla -π π

Tobillo 0 0

Tabla 3: Rango de valores de ´angulo de cada articulaci´on del humanoide

4.

Actuadores

A cada uno de los segmentos correspondientes al muslo y la pierna del b´ıpedo, se le aplica

un torque (o actuador) en el eje X (perpendicular a la trayectoria), como se ve en Fig 8. As´ı,

pueden moverse para arriba o para abajo (con respecto a la articulaci´on a la que pertenecen).

A fin de simplificar el modelo, el humanoide tiene el mismo tipo de actuador utilizado en todos

los segmentos.

Es necesario aclarar que la caminata producida por el humanoide es plana (en 2D). Esto se debe

a que la trayectoria pensada para el b´ıpedo es una l´ınea recta, y logrando que los segmentos se

muevan en un solo eje es suficiente para cumplir con dicha trayectoria. Tambi´en contribuye el

hecho de que el torque se aplique en una sola dimensi´on. Por otra parte, los actuadores definidos

a continuaci´on son peri´odicos, y por eso no se pueden aplicar en el eje Z de los segmentos (se

ne-cesitar´ıan actuadores reactivos, para poder detectar cuando el humanoide se est´a cayendo, etc.).

Para indicar el m´odulo de dicho torque, se dise˜naron diferentes funciones (todas ellas peri´odicas),

mencionadas en las subsecciones que siguen.

Figura 8: Aplicaci´on de los actuadores en los segmentos del b´ıpedo

4.1.

Gen´

erico

Es el actuador m´as sencillo, tanto matem´atica como computacionalmente.

f(t) =A1sin(ω1t+φ) +A2cos(ω2t+φ) +C (7)

dondef(t) es la funci´on del actuador evaluada en el instante de tiempot,A1yA2son amplitudes,

ω1 y ω2 son frecuencias (en 1s), φes la fase en radianes, yC es un t´ermino independiente (ver

Fig. 9 (a) y (b)).

La faseφes la misma en el seno y en el coseno, para evitar que se formen otro tipo de funciones

(15)

(a) (b)

Figura 9: Ejemplo de actuador gen´erico aplicado en: (a) muslo, y (b) pierna

4.2.

Coseno doble frecuencia

Basada en [3], esta funci´on peri´odica utiliza medio ciclo de una funci´on sinusoidal, y medio

ciclo de otra (ambas pueden tener frecuencias distintas). Esto podr´ıa tener sentido porque en una

caminata, un miembro inferior primero avanza hacia adelante y luego se extiende hacia atr´as, y

es razonable que esos dos movimientos se produzcan a frecuencias distintas (Fig. 10 (a) y (b)).

La idea es lograr una funci´on peri´odica a partir de una que no lo es (ya quetes lineal). Para eso,

se utiliza la funci´onψ(t) (ec. (8)) que aplica una transformaci´on a los n´umeros reales, para que

se encuentren dentro del rango del ciclo completo (con las dos frecuencias).ω es la frecuencia de

f(t) en 1

s (ec. (10)), que utiliza medio ciclo con frecuenciaω1 y medio ciclo con frecuenciaω2.

ψ(t) =t+φ−

$

t+φ π/ω1+π/ω2

%

(π/ω1+π/ω2) ψ:R→

0,2π ω

(8)

ω= 2ω1ω2

ω1+ω2

(9)

f(t) =

(

Acos(ω1ψ(t)) +C siω1ψ(t)< π

Acos(ω2(ψ(t)−(π/ω1) + (π/ω2))) +C en otro caso

(10)

(a) (b)

(16)

4.3.

Fourier de orden 2

Este actuador utiliza una serie de Fourier de dos t´erminos. Dado que origina un resultado

que, si bien es peri´odico, puede no ser de naturaleza sinusoidal, lo cual puede ser beneficioso para

realizar otro tipo de movimientos.

f(t) =A1sin(ωt+φ) +B1cos(ωt+φ) +A2sin(2ωt+φ) +B2cos(2ωt+φ) +C (11)

dondeA1,A2,B1 yB2 son amplitudes (ver Fig. 11 (a) y (b)).

(a) (b)

Figura 11: Ejemplo de actuador fourier de orden 2 aplicado en: (a) muslo, y (b) pierna

4.4.

Fourier de orden 9

Es una extensi´on del actuador anterior, pero con 9 t´erminos. Por ser de mayor grado, brinda

una mayor precisi´on. Sin embargo, es m´as dificil de manejar computacionalmente; y, adem´as, que

sea m´as preciso no garantiza que con ´el se pueda lograr una buena caminata (ver Fig. 12 (a) y (b)).

f(t) =A1sin(ωt+φ) +B1cos(ωt+φ) +A2sin(2ωt+φ) +B2cos(2ωt+φ)

+A3sin(3ωt+φ) +B3cos(3ωt+φ) +A4sin(4ωt+φ) +B4cos(4ωt+φ)

+A5sin(5ωt+φ) +B5cos(5ωt+φ) +A6sin(6ωt+φ) +B6cos(6ωt+φ)

+A7sin(7ωt+φ) +B7cos(7ωt+φ) +A8sin(8ωt+φ) +B8cos(8ωt+φ)

+A9sin(9ωt+φ) +B9cos(9ωt+φ) +C

(12)

dondeAi yBi con 1≤i≤9 son amplitudes.

(a) (b)

(17)

5.

Condiciones iniciales y de contorno

Como las funciones peri´odicas se˜naladas en los actuadores, no fueron suficientes para lograr

la caminata, se le adosaron las funciones que se detallan seguidamente.

5.1.

Funci´

on partida

La caminata se divide en dos partes bien definidas:

La primera denominada funci´on partida, es opcional y representa el primer paso dado por el

b´ıpedo. En ella, el humanoide comienza con una posici´on (las dos extremidades bien extendidas)

diferente a la que tendr´a en el resto de la caminata. Se aplican actuadores gen´ericos en cada uno

de los cuatro segmentos movibles (muslos y piernas). Para simplificar el modelo, se decidi´o que

esta etapa durara 0.7 segundos. Dicho valor fue extra´ıdo de forma experimental.

La segunda es el resto de la caminata, y debe ser c´ıclica y peri´odica (para poder eventualmente

repetirse ad infinitum). Aqu´ı se puede utilizar cualquiera de los actuadores vistos en la secci´on

anterior, pero solo un tipo de ellos es aplicado a los segmentos.

5.2.

Fase sincronizada

En una caminata, las piernas deben guardar simetr´ıa: mientras una va hacia adelante, la otra

va hacia atr´as (y viceversa). Esto, de acuerdo con los actuadores definidos en la secci´on

ante-rior, implica que las funciones de movimiento de cada pierna est´en desfasadas en medio ciclo (π2):

fi(t) =f(t) (13)

fd(t) =f(t+

π

2) (14)

siendof(t) la funci´on de movimiento (o actuador) en el momentot, yfi yfdlas funciones de la

pierna izquierda y derecha, respectivamente.

6.

Algoritmo gen´

etico

Los algoritmos gen´eticos son m´etodos adaptativos, que pueden ser utilizados para resolver

problemas de b´usqueda y optimizaci´on. Est´an inspirados en la teor´ıa darwiniana de la selecci´on

natural. La entidad a optimizar constituye un individuo dentro de una poblaci´on; que puede

ser cruzado con otros individuos para obtener un “hijo”, que presenta caracter´ısticas de sus

“padres”. A trav´es de una funci´on defitness se decide cu´ales de ellos son los m´as “aptos”, que

luego pasar´an a una nueva generaci´on de individuos. Este proceso se repite hasta obtener un

individuo lo suficientemente apto, que representa a la entidad optimizada.

El objetivo de este proyecto es optimizar la caminata del humanoide. Ergo, en el algoritmo

gen´etico aplicado, el individuo est´a definido por rasgos del b´ıpedo, y la funci´on de fitness se

(18)

6.1.

Individuo

La informaci´on gen´etica de cada individuo, est´a definida a partir de un vector que contiene de

forma contigua, los par´ametros de la funci´on partida (optativa) y los asociados a los actuadores

(obligatorios), que act´uan sobre cada uno de los segmentos (muslos y piernas) del humano virtual.

6.1.1. Par´ametros

Tanto la funci´on partida como los actuadores tienen como par´ametros: amplitud (A o B);

frecuencia (ω); fase (φ), que indica d´onde comienza el paso y se mide en radianes; y t´ermino

independiente (C).

La Fig. 13 muestra la estructura del individuo y su composici´on para un humanoide con funci´on

partida y actuador gen´erico.

Individuo

Funci´on partida Actuador gen´erico

Pierna izquierda

A1A2ω1 ω2φ C

Muslo izquierdo

A1A2ω1ω2φ C

Pierna derecha

A1A2ω1ω2φ C

Muslo derecho

A1A2ω1ω2φ C

Pierna

A1A2ω1ω2φ C

Muslo

A1A2ω1ω2φ C

Figura 13: Esquema de un individuo

6.1.2. Valores

Cada uno de los segmentos tiene una composici´on f´ısica distinta (largo, masa, etc.), raz´on por

la cual no necesariamente sus genes deban tener los mismos rangos de valores, tal como puede

apreciarse en las Tablas 4 y 5.

Segmento Tipo de gen M´ınimo M´aximo

Muslo Amplitud -30 30

Pierna Amplitud -60 60

Muslo y Pierna Frecuencia 0.01 10

Muslo y Pierna Fase −π π

Muslo y Pierna T´ermino independiente -10 10

(19)

Actuador Segmento Tipo de gen M´ınimo M´aximo

Gen´erico

Muslo Amplitud -30 30

Pierna Amplitud -60 60

Muslo y Pierna Frecuencia 0.01 10

Muslo y Pierna Fase −π π

Muslo y Pierna T´ermino independiente -10 10

Coseno doble frecuencia

Muslo Amplitud -50 50

Pierna Amplitud -30 30

Muslo y Pierna Frecuencia 0.01 5

Muslo y Pierna Fase −π π

Muslo y Pierna T´ermino independiente -30 30

Fourier de orden 2

Muslo Amplitud -60 60

Pierna Amplitud -30 30

Muslo y Pierna Frecuencia 0.01 10

Muslo y Pierna Fase −π π

Muslo y Pierna T´ermino independiente -10 10

Fourier de orden 9

Muslo y Pierna Amplitud -60 60

Muslo y Pierna Frecuencia 0.1 2

Muslo y Pierna Fase −π π

Muslo y Pierna T´ermino independiente -10 10

Tabla 5: Rango de valores que puede tomar cada gen, seg´un el tipo de actuador

6.1.3. Implementaci´on de individuos

Para favorecer el an´alisis de las distintas caracter´ısticas arriba indicadas, se implementaron

varios individuos, cada uno de ellos con propiedades distintas (Tabla 6).

Individuo

Tipo 1

Tipo 2

Tipo 3

Tipo 4

Tipo 5

Actuador

Gen´

erico

Gen´

erico

Coseno doble

frecuencia

Fourier de

orden 2

Fourier de

orden 9

Funci´

on partida

No

S´ı

S´ı

S´ı

S´ı

Fase sincronizada

S´ı

S´ı

S´ı

S´ı

S´ı

Tabla 6: Tipo de individuos

6.1.4. Constituci´on del cromosoma

Los distintos actuadores y la funci´on partida tienen los par´ametros presentados en la secci´on

6.1.1. Sus respectivas cantidades pueden verse en la Tabla 7.

En la Tabla 8 se muestra la composici´on del cromosoma de cada individuo, que depende de los

actuadores y la funci´on partida usados. En ella se puede observar c´omo seg´un el tipo de

indivi-duo, var´ıa la cantidad de genes, es decir, la longitud del cromosoma. Vale aclarar que la funci´on

(20)

actuadores, s´olo se definen dos (uno para los muslos y otro para las piernas).

Par´ametro

Amplitud Frecuencia Fase T´ermino

independiente

Actuador

Gen´erico 2 2 1 1

Coseno doble frecuencia 1 2 1 1

Fourier de orden 2 4 1 1 1

Fourier de orden 9 18 1 1 1

Funci´on partida 2 2 1 1

Tabla 7: Cantidad de par´ametros seg´un tipo de actuador y funci´on partida

Individuo

Tipo 1 Tipo 2 Tipo 3 Tipo 4 Tipo 5

P

ar

´ametro

Amplitud 4 12 8 16 44

Frecuencia 2 6 8 6 6

Fase 2 6 6 6 6

T´ermino independiente 2 6 6 6 6

Totales 10 30 28 34 62

Tabla 8: Cantidad de par´ametros seg´un tipo de individuos

6.2.

Fitness

El papel de la funci´on defitness(F) en un algoritmo gen´etico es evaluar qu´e tan bueno es un

individuo. En este caso, est´a definida como un producto de cinco m´odulos o propiedades: altura

(H), velocidad (V), direcci´on (D), simetr´ıa (S) y pies abajo (P A):

F =H·V ·D·S·P A (15)

Los cinco tienen la misma importancia y por eso, como se ver´a a continuaci´on, est´an definidos de

forma similar (con una funci´on exponencial y pueden valer entre 0 y 1). Con todo esto, dado que

elfitness est´a pensado como un producto, basta con que uno de los m´odulos sea muy chico para

“anular” al individuo (es decir, otorgarle un valor que tiende a cero). Sin embargo, los diferentes

m´odulos no son completamente independientes entre s´ı: por ejemplo, si la altura es demasiado

baja, posiblemente la velocidad y la direcci´on no sean adecuadas.

6.2.1. Altura

Es un factor relacionado con la altura del individuo en toda la simulaci´on, y se expresa:

H =

PT n=0e−

C(htn−ht0) 2

N (16)

(21)

Se calcula a partir de la diferencia entre la altura en cada instante de la simulaci´on, con su altura

inicial (la altura est´a definida como la posici´on de la pelvis en el eje Y). Cuanto mayor sea esa

diferencia, m´as r´apido el individuo cae, y por eso este m´odulo tiende a cero. Por el contrario,

valdr´a uno si la diferencia es ´ınfima (lo que significa que el humanoide mantiene su misma altura

durante la caminata).

6.2.2. Velocidad

Indica qu´e tan cercana es la velocidad del individuo con respecto a una velocidad objetivo

(en este caso, es de 0.7 m/s), y se expresa de la siguiente forma:

V =

PT n=0e

−C(vtn−VO)2

N (17)

dondet0 es el tiempo inicial,tT el tiempo final,vtn es la velocidad de la pelvis en el instante de tiempotn, yVO la velocidad objetivo en el eje Z (el eje de la caminata).

Sigue una l´ogica y c´alculo similares al factor de altura: a mayor discrepancia de la velocidad

real del humanoide conVO, menor (y m´as cercano a cero) es el valor arrojado por el m´odulo de

velocidad.

6.2.3. Direcci´on

Se˜nala qu´e tan similares son la direcci´on objetivo (un vector unitario, que en este caso se

encuentra en el eje Z) y la direcci´on con la que camine el humanoide. Se calcula como sigue:

D=

PT n=0e−

C(vtn·VO−1)2

N (18)

dondet0 es el tiempo inicial,tT el tiempo final, vtn el versor de la direcci´on del humanoide en

el momentotn yVO el versor de la direcci´on objetivo.

El producto escalar entre los versores responde a la Similitud Coseno: cosθ= A·B

AB, dondeAy

Bson vectores que no se encuentran normalizados, yθ es el ´angulo formado entre ellos. As´ı, si

cosθ = 1, significa que los vectores est´an paralelos entre s´ı (que es el efecto buscado en el caso

de la direcci´on).

Al producto escalar se le resta 1, para que el m´odulo sea consistente con la funci´on exponencial

utilizada y que valga 1 cuandoθ= 0, y 0 cuandoθ=π. Cabe aclarar que se trata al ´angulo en

forma sim´etrica, ya que, por ejemplo cos(−π/6) = cos(π/6).

6.2.4. Simetr´ıa

Este indicador marca qu´e tan equidistantes se encuentran los pies de la cadera, a lo largo de la

caminata. Aplicando solamente los m´odulos antes mencionados, provocaba resultados en donde

una pierna quedaba m´as distante de la pelvis que la otra, lo que produc´ıa que el humanoide se

terminara arrastrando, posiblemente afectando a la velocidad.

Para mayor simplicidad, la simetr´ıa S se calcul´o a partir de los pies (y no de las piernas). Se

tomaron en cuenta s´olo los ejes X y Z, porque son los relacionados a la velocidad y a la direcci´on,

respectivamente.

S=

PT n=0

1 2[e

−C(lfZ+rfZ|2)+e−C(lfX+rfX|2)]

(22)

dondelfX ylfZ es la distancia desde el pie izquierdo hasta la pelvis en los ejes X y Z,

respecti-vamente; y en donderfX yrfZ es lo mismo, pero para el pie derecho.

6.2.5. Pies abajo

Con los m´odulos se˜nalados anteriormente, se busca que el humanoide camine con una

velo-cidad y direcci´on determinadas, que no se caiga y que mantenga simetr´ıa mientras ejecuta sus

movimientos. Pero, todo esto dar´ıa, en el mejor de los casos, una caminata estilo “estrella”.

Sin embargo, una caracter´ıstica fundamental en una caminata normal es que las piernas (ergo,

los pies tambi´en) no sobrepasen la cadera. Si bien ´esta es una propiedad negativa (expresa lo que

no debe tener una caminata), y se puede correr el riesgo de restringir demasiado, su ausencia da

resultados peores.

P A=

PT n=0

1 2(α[e

−C(ldf2)+e−C(rdf2)]

N (20)

dondeldf yrdf son las diferencias entre la posici´on inicial de los pies y la altura en el momento

tn de los pies izquierdo y derecho, respectivamente, yα=max(min(lf, rf)−hip,0),1), siendo

lf,rf yhiplas alturas del pie izquierdo, pie derecho, y la cadera (es decir, vale 0 si la altura del

pie izquierdo o derecho supera a la de la cadera, y 1 en otro caso).

6.3.

Operadores del algoritmo

Permiten controlar en detalle el proceso de optimizaci´on. En particular, se busca un balance

entre la diversidad de los individuos, el aumento delfitness a lo largo del algoritmo, y evitar la

convergencia hacia una poblaci´on sobre la cual no se puede seguir mejorando.

6.3.1. M´etodos de selecci´on

De la vasta cantidad de m´etodos de selecci´on que existen se utiliz´o Roulette, m´etodo es-toc´astico que selecciona un individuo de la poblaci´on total al azar, con una probabilidad

propor-cional a sufitness.

Para no perder la mejor soluci´on encontrada en cada generaci´on, se activ´o el Elitism, t´ecnica en la cual el individuo con mayorfitness permanece intacto en la siguiente generaci´on.

6.3.2. M´etodos de cruza

El m´etodo de cruza (ocrossover) utilizado es el siguiente: De dos individuos (los padres), se

originan dos nuevos individuos (los hijos). Se toma cada uno de los genes de los padres y se elige,

con una probabilidad uniforme, uno de ellos para un hijo y el otro para el otro hijo.

La probabilidad de que este proceso ocurra es de 0.9.

6.3.3. Mutaci´on

En el caso de la mutaci´on, para cada gen del individuo, se decide con cierta probabilidad si

se lo muta o no. En caso afirmativo, se cambia ese gen por un valor aleatorio (que est´e dentro

de su rango definido).

(23)

6.3.4. Otras caracter´ısticas

En el algoritmo gen´etico se utilizan 1000 generaciones, de 50 individuos cada una. Adem´as,

la simulaci´on de cada individuo (necesaria para calcular elfitness) es de 4 segundos.

7.

Resultados obtenidos

En la Fig. 14 se representan los individuos definidos con sus caracter´ısticas.

Individuo Tipo 5 Total par´ ame-tros: 62 Con funci´on partida Actuador Fourier de

orden 9 Fase sin-cronizada

Tipo 4

Total par´

ame-tros: 34 Con funci´on partida Actuador Fourier de orden 2 Fase sin-cronizada Tipo 3 Total par´ ame-tros: 28 Con funci´on partida Actuador coseno doble frecuencia Fase sin-cronizada Tipo 2 Total par´ ame-tros: 30 Con funci´on partida Actuador gen´erico Fase sin-cronizada Tipo 1 Total par´ ame-tros: 10 Sin funci´on

partida

Actuador gen´erico

Fase sin-cronizada

Figura 14: Individuos definidos en el algoritmo gen´etico

Sobre ellos se realizaron pruebas, corriendo el algoritmo gen´etico, y evaluando el resultado

alcanzado posteriormente (ya sea num´erica o gr´aficamente).

A continuaci´on se analizan distintos aspectos relevantes. Vale aclarar que, en el caso de la altura

y la velocidad, se muestran los resultados de los mejores caminantes de cada tipo; y en el caso

(24)

7.1.

Evoluci´

on del

fitness

promedio seg´

un tipo de individuos

En la Fig. 15 se muestra el fitness promedio por generaci´on, producido por corridas t´ıpicas

del algoritmo gen´etico, seg´un los tipos de individuo definidos. Si bien los resultados no son

concluyentes, s´ı vale la pena decir que los individuos con actuador gen´erico (tipo 1 y 2) y coseno

doble frecuencia (tipo 3), logran alcanzar unfitness m´as alto que el resto.

Por otra parte, puede notarse que los rangos manejados casi alcanzan el 0.7 (y no a 1, su cota

superior). Esto se debe a que la funci´on de fitness est´a definida como un producto de ciertos

m´odulos: suponiendo que cada uno de ellos estuviera al 92 %, se tendr´ıa 0.925= 0.659.

Figura 15: Evoluci´on delfitness promedio seg´un tipo de individuos

7.2.

Velocidad seg´

un tipo de individuos

Seguidamente, se muestra para cada tipo de individuo, su velocidad instant´anea de la pelvis

a lo largo del tiempo.

Figura 16: Velocidad instant´anea seg´un tipo de individuos

Como puede observarse en el caso de los individuos 4 y 5 (Fourier de orden 2 y 9, respectivamente),

se producen picos pronunciados en la velocidad. Eso repercute en que la velocidad media no sea

0.7m/s(que es la velocidad objetivo), y ergo, en el m´odulo de velocidad delfitness(provocando

(25)

En el individuo de tipo 1, tambi´en se producen picos un poco menos pronunciados, pero luego

de los 10 segundos, no se registra ninguna velocidad. Eso sucede porque el humanoide queda

suspendido cuando intenta caer.

La velocidad del individuo de tipo 2 oscila de forma irregular, pero no tiene picos muy elevados.

Por ´ultimo, en el individuo de tipo 3, la velocidad oscila de forma c´ıclica, continuada y armoniosa

(no hay picos altos).

7.3.

Altura seg´

un tipo de individuos

Como puede identificarse en la Figura 17, la altura de los individuos es otra caracter´ıstica

para diferenciarlos en su rendimiento.

Figura 17: Altura (posici´on de la pelvis) seg´un tipo de individuos

En efecto, los individuos de tipo 4 y 5 (que utilizan actuadores de Fourier de orden 2 y 9,

respectivamente), son los que caen de forma m´as abrupta, y aunque intentan levantarse, vuelven

a caer con la misma intensidad.

A su vez, el individuo de tipo 1 (actuador gen´erico sin funci´on partida) mantiene su altura, hasta

que a los 10 segundos queda suspendido a una altura levemente menor. Esto ocurre porque las

restricciones a los grados de libertad de la cadera impiden que caiga.

El individuo de tipo 2, con actuador gen´erico y funci´on partida, logra mantener la altura, hasta

que cae y no vuelve a levantarse (lo cual es l´ogico, ya que en ese movimiento suelen emplearse

los brazos y las manos).

En lo que respecta al individuo de tipo 3, que utiliza como actuador la funci´on coseno doble

frecuencia, mantiene su altura de forma constante, pero con oscilaciones leves y continuadas en

el tiempo. De los cinco, es el que da mayor cantidad de pasos.

7.4.

Comparaci´

on de tipo de individuos

Seg´un lo visto, queda claro que los actuadores de Fourier no dieron buenos resultados.

Asimismo, es necesario incluir la funci´on partida (es decir, separar a la caminata en un “primer

paso”, y el ciclo), ya que si bien su ausencia puede originarfitness m´as altos, genera inestabilidad

a los pocos segundos (como en el individuo de tipo 1).

El individuo de tipo 3 logra un movimiento c´ıclico y repetitvo, que deriva en una caminata ad

(26)

7.5.

Videos

De los cinco individuos presentados, los que mejor pudieron realizar la caminata fueron tres,

a saber: tipo 1 y 2 (gen´erico con y sin funci´on partida), y tipo 3 (coseno doble frecuencia).

Para poder visualizar mejor su comportamiento, se acompa˜nan los videos.

Individuo Tipo 1:https://www.youtube.com/watch?v=J6j8UNlbg3w

Individuo Tipo 2:https://www.youtube.com/watch?v=t7jtbVL7eyY

Individuo Tipo 3:https://www.youtube.com/watch?v=SpPLKDec91I

8.

Conclusiones

El objetivo principal de este proyecto de investigaci´on fue lograr producir la simulaci´on y

animaci´on biomec´anica de la caminata de un humano virtual. Para eso, se eligi´o el motor f´ısico

Bullet Physics, lo que requiri´o no solo aprender sobre su funcionamiento y los m´etodos f´ısicos

implementados, sino tambi´en realizar pruebas para verificar qu´e tan pr´oximos eran el modelo

fisico-matem´atico ideado y el utilizado por Bullet.

Una vez modelado el humanoide, se implementaron individuos con diferentes caracter´ısticas (en

especial, actuadores), para facilitar la comparaci´on. En la secci´on 7 se verifica que las funciones

utilizadas en los actuadores son decisivas para lograr una caminata.

Los actuadores que mejores resultados dieron, fueron aquellos en donde se empleaba dos

frecuen-ciasω en vez de una.

Si bien el individuo de tipo 1 con actuador gen´erico y sin funci´on partida logra dar algunos

pasos (en promedio ocho), agregar dicha funci´on (es decir, separar la caminata en dos partes, y

considerar una funci´on del primer paso), logr´o en algunos casos mejores resultados, como ocurre

con los individuos de tipo 2 y tipo 3, que efect´uan una mayor cantidad de pasos (en promedio

doce y m´as de treinta, respectivamente).

Tambi´en se comprob´o que los individuos con actuadores gen´erico y coseno doble frecuencia son

los que mejor caminan, manteniendo su altura por m´as tiempo y confitness m´as alto. Sin

em-bargo, son caminatas muy distintas: la del primero resulta ser con pasos largos; mientras que la

del segundo realiza m´as pasos y m´as cortos.

Los individuos con actuadores Fourier de orden 2 y 9 fueron los que peores resultados arrojaron,

tanto en elfitness promedio, como en la cantidad de pasos logrados.

Por otra parte, en lo que respecta a la l´ınea de investigaci´on que se sigui´o del modelo del cuadr´

upe-do virtual, se logr´o con algunas variaciones la caminata en un b´ıpedo; pero el costo fue sacarle

grados de libertad en el movimiento y evitar la rotaci´on de la cadera, produciendo as´ı una

cami-nata plana. Esto significa una limitaci´on del modelo. Si se agregara un grado de libertad m´as,

ser´ıa necesario aplicar un sistema de control para manejar el equilibrio del humano virtual, lo

cual exced´ıa el alcance de este trabajo.

Entre los trabajos a futuro para integrar a este proyecto, se encuentran lograr que la caminata

se produzca en 3 dimensiones; y analizar el comportamiento de varios humanoides chocando e

interactuando entre s´ı.

Finalmente, la caminata de una persona, algo que parece simple y sencillo, muestra su

verdade-ra complejidad cuando debe ser simulada por medio de actuadores aplicados a un conjunto de

(27)

Referencias

[1] Marek Wojtyra, Multibody Simulation Model of Human Walking - Warsaw University of

Technology, 2003

[2] Thomas Geijtenbeek, Michiel van de Panne y A. Frank van der Stappen,Flexible

Muscle-Based Locomotion for Bipedal Creatures, 2013

[3] Kevin Kenny, M´aximo Videla y Axel Wassington,Proyecto Final para la obtenci´on del t´ıtulo

Ingeniero en Inform´atica: Simulaci´on y animaci´on de un cuadr´upedo virtual - ITBA, 2014

[4] Wikipedia:https://es.wikipedia.org/wiki/P hysics engine

[5] Andreas Gerndt y otros,An Evaluation of Open Source Physics Engines for Use in Virtual

Reality Assembly Simulations. Fecha de publicaci´on: 2012

[6] Tom Erez y otros,Simulation Tools for Model-Based Robotics: Comparison of Bullet, Havok,

MuJoCo, ODE and PhysX

[7] Sitio web de Bullet Physics:http://www.bulletphysics.org/

[8] Erin Catto,Iterative Dynamic with Temporal Coherence. Fecha de publicaci´on: 2005

[9] Sitio web de GaLib:http://lancet.mit.edu/ga/

[10] http://www.exrx.net/Kinesiology/Segments.html

Agradecimientos

A la Dra. Silvia Alicia G´omez, directora de la carrera de Ingenier´ıa Inform´atica, por su apoyo

incondicional durante todos estos a˜nos. Asimismo, a todos los docentes que tuvimos a lo largo de

la carrera, por la calidad y excelencia acad´emica recibidas, que nos permiti´o realizar un proyecto

final que integra los conocimientos y capacidades adquiridos. Y muy especialmente a nuestro

tutor Dr. Daniel Ricardo Parisi, a quien tambi´en le agradecemos su valiosa colaboraci´on y su

Referencias

Documento similar

En [2] determinamos experimentalmente el comporta- miento de la longitud promedio ¯ L de las cadenas en funci´on de la frecuencia de la perturbaci´on f p , el tiempo de aplica- ci´on

En funci´ on del problema concreto a solucionar y del an´ alisis que se haya realizado para establecer los par´ ametros la calidad de los resultados variar´ a, pero como conclusi´ on

En cualquier caso es muy probable que sea en este momento cuando se produzca la remodelación de lo que hemos denominado fase 3 en ambos cas- tros, es decir la nueva construcción

Escribe una Funci´ on Langevin que reciba como argumento de entrada un vector de valores x y devuelva como argumento de salida un vector con los valores de la funci´ on de Langevin

Y en la figura 4.2, podemos ver la funci´ on original (en negro) y la reconstrucci´ on usando Lagrange (rojo discontinuo), para orden 4, y un espaciado entre nodos de reconstrucci´

Dentro de la funci´ on loop() podemos encontrar la llamada de otras fun- ciones que posteriormente trataremos, pero la funci´ on principal consiste en recoger lecturas tanto del

Figura 6.34: Reconstrucci´ on de la funci´ on utilizando multirresoluci´ on de Her- mite basada 2 puntos y en funci´ on y primera derivada aproximada en la mitad de puntos, guardando

re tied voltage of the Devi e under test (DUT) shall be measured. The signal