sim_rh1

23
SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB . SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB I parte 1. Introducción. En cualquier proceso en el que se involucren partes mecánicas en movimiento, se impone un exhaustivo análisis físico y matemático, teniendo en cuenta la dificultad que eso conlleva. Otra herramienta de análisis para estos fenómenos son los programas de simulación, los cuales existen de todos los tipos y para muchas aplicaciones; por mencionar algunos tenemos al famosísimo MATLAB, VisSim, ThreeDimSim, etc., los mismos que facilitan de gran forma el análisis de sistemas mecánicos en movimiento, algunos de ellos incluso trabajan con entornos en tres dimensiones. La ventaja de utilizar estos software de simulación es que nos evitamos del “tedioso” análisis matemático y en muchos de los casos podemos obtener importantes deducciones en forma eficaz y rápida. Otra ventaja de los programas de simulación es que su complejidad no aumenta a medida que se adicionan más grados de libertad, cosa que no sucede con el análisis matemático. Se ha mencionado que la simulación sustituye de cierta forma al análisis físico-matemático, pero cabe destacar que para realizar una simulación que represente de buena forma a la realidad se deben tener muy claros los conceptos y principios fundamentales de la física. Un hecho que se cae por su propio peso es que ningún software emulará en forma efectiva a un fenómeno físico, de aquí, que la pericia, conocimiento y sentido común del programador juegan un papel fundamental. En este artículo se habla sobre la “Simulación mecánica en MATLAB”, específicamente sobre dos herramientas de MATLAB6.5: “SimMechanics” [1] y “Virtual Reality Toolbox 3.0” [2]. La primera permite simular cuerpos en movimiento sin tener que analizar ninguna ecuación diferencial, cuyo entorno de trabajo es el Simulink. La segunda herramienta permite visualizar e interactuar con sistemas dinámicos en un entorno de tres dimensiones. La revisión de las herramientas antes mencionadas siempre tendrán un fin o un objetivo principal, que es la simulación de un robot bípedo en sus diferentes etapas. 1 Oscar Luis Vele G.

Upload: francisco-flores

Post on 21-Oct-2015

49 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

SIMULACIÓN MECÁNICA DE UN ROBOT

HUMANOIDE EN MATLAB

I parte

1. Introducción.

En cualquier proceso en el que se involucren partes mecánicas en movimiento, se impone

un exhaustivo análisis físico y matemático, teniendo en cuenta la dificultad que eso conlleva. Otra

herramienta de análisis para estos fenómenos son los programas de simulación, los cuales existen

de todos los tipos y para muchas aplicaciones; por mencionar algunos tenemos al famosísimo

MATLAB, VisSim, ThreeDimSim, etc., los mismos que facilitan de gran forma el análisis de

sistemas mecánicos en movimiento, algunos de ellos incluso trabajan con entornos en tres

dimensiones. La ventaja de utilizar estos software de simulación es que nos evitamos del “tedioso”

análisis matemático y en muchos de los casos podemos obtener importantes deducciones en forma

eficaz y rápida. Otra ventaja de los programas de simulación es que su complejidad no aumenta a

medida que se adicionan más grados de libertad, cosa que no sucede con el análisis matemático. Se

ha mencionado que la simulación sustituye de cierta forma al análisis físico-matemático, pero cabe

destacar que para realizar una simulación que represente de buena forma a la realidad se deben

tener muy claros los conceptos y principios fundamentales de la física. Un hecho que se cae por su

propio peso es que ningún software emulará en forma efectiva a un fenómeno físico, de aquí, que la

pericia, conocimiento y sentido común del programador juegan un papel fundamental.

En este artículo se habla sobre la “Simulación mecánica en MATLAB”, específicamente

sobre dos herramientas de MATLAB6.5: “SimMechanics” [1] y “Virtual Reality Toolbox 3.0” [2].

La primera permite simular cuerpos en movimiento sin tener que analizar ninguna ecuación

diferencial, cuyo entorno de trabajo es el Simulink. La segunda herramienta permite visualizar e

interactuar con sistemas dinámicos en un entorno de tres dimensiones.

La revisión de las herramientas antes mencionadas siempre tendrán un fin o un objetivo

principal, que es la simulación de un robot bípedo en sus diferentes etapas.

1 Oscar Luis Vele G.

Page 2: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Se asumirá que el lector ha trabajado antes con MATLAB y Simulink.

2. SimMechanics.

SimMechanics1.1 es el primer lanzamiento de esta herramienta dentro de MATLAB, la

misma que permite simular sistemas mecánicos de forma fácil y eficiente. Cuando se habla de

sistemas mecánicos se hace referencia a cuerpos y articulaciones en movimiento, además de la

monitorización y generación de movimientos. Lo más importante es que no se requiere trabajar con

ecuaciones diferenciales de movimiento, ni la escritura de código de programación, ya que esta

herramienta se desarrolla bajo el entorno de Simulink.

SimMechanics es una librería de Simulink que permite crear diagramas de bloques que

representen un determinado sistema mecánico, por ejemplo, en la figura 3.1 se puede observar el

diagrama de bloques que representa a un péndulo simple. Está por demás mencionar que

SimMechanics simula la acción de la gravedad sobre los cuerpos. El lector no debe preocuparse por

el entendimiento de este diagrama, ya que posteriormente trataremos con más detalle cada uno de

sus elementos.

Figura 1. Diagrama de bloques de un péndulo simple.

2.1. Bloques de SimMechanics.

En la figura 2 se presentan los diferentes bloques de la librería SimMechanics (Se puede

desplegar esta librería digitando “mblibv1” en el prompt de MATLAB):

Figura 2. Librería SimMechanics.

2 Oscar Luis Vele G.

Page 3: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

SimMechanics posee 5 clases de bloques, como se puede observar en la figura 2, dentro de

las cuales están: los cuerpos (“bodies”), articulaciones (“joints”), limitadores y manejadores

(“constraints & drives”), sensores y actuadores (“sensors & actuators”) y utilidades (“utilities”).

En las siguientes secciones realizaremos un breve repaso de cada uno de los bloques antes

mencionados.

2.1.1. Cuerpos – “Bodies”.

Los componentes fundamentales de un sistema son los cuerpos rígidos, los mismos que son

definidos en SimMechanics [1] como puntos u objetos en el espacio que tienen masa. Los cuerpos

pueden ser “Ground” y “Body”.

2.1.1.1 Ground.

Representa un cuerpo masa infinita en el espacio. Es un punto fijo en el espacio que sirve

de referencia para las articulaciones y cuerpos en movimiento.

Figura 3. Bloque “Ground”.

En la figura 3 (izquierda) se muestra el bloque “ground” y en la derecha el cuadro de

configuración que aparece al dar doble click en el bloque y sirve para ingresar la localización de

este punto con respecto al sistema de coordenadas globales.

2.1.1.2 Body.

Representa a un cuerpo rígido, mediante sus propiedades tales como su masa y momentos

de inercia en cada uno de los ejes. Recordemos que un cuerpo puede rotar con respecto a cada uno

de los tres ejes xyz, por esta razón se requiere de tres valores de momentos de inercia para cada

cuerpo, representados de la siguiente forma:

3 Oscar Luis Vele G.

Page 4: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 4. Representación matricial de los momentos de inercia de un cuerpo.

en donde, I1 es el momento de inercia sobre el eje x, I2 sobre el eje y, e I3 sobre el eje z.

En la figura 5 se esquematizan tanto el bloque “body” así como los parámetros de

configuración del mismo.

Figura 5. Bloque “Body” y sus parámetros de configuración.

En la parte superior del cuadro de configuración se ingresa tanto la masa como la matriz

correspondiente a los momentos de inercia. Tanto la masa como los momentos de inercia se pueden

ingresar en una amplia gama de unidades correspondientes a diferentes sistemas de medida.

En la parte inferior (figura 6) se debe configurar la posición y orientación tanto del centro

de gravedad (CG) como de los puntos de conexión mecánica (CS) del cuerpo. La posición hace

referencia a las coordenadas que ubican al punto (CG o CS) y la orientación a la dirección del

mismo con respecto a un sistema de coordenadas. Tanto la posición como la orientación pueden ser

determinadas con respecto al sistema global de coordenadas (WORLD) o a otro punto. Cabe

destacar que por cada CS se crea un sistema de coordenadas local que bien puede ser utilizado

como referencia para otro punto. Mediante un CS un cuerpo puede conectarse a una articulación, a

4 Oscar Luis Vele G.

Page 5: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

un sensor, a un actuador, etc. Un cuerpo puede tener n número de CSs ubicados en diferentes

posiciones, pero obviamente un solo CG. Para añadir más puntos CSs se debe hacer click en el

botón señalado en la figura 6.

Figura 6. Configuración de puntos CG y CS.

2.1.2. Articulaciones – “Joints”.

Las articulaciones en SimMechanics representan los grados de libertad que un cuerpo

puede tener con respecto a otro. En la figura 7 se muestran todas las articulaciones disponibles en

SimMechanics:

Figura 7. Articulaciones – “Joints”.

en donde, cada uno de los bloques poseen dos terminales denominadas B (Base) y F (Follower). El

terminal B se conecta a la base o referencia sobre la cual se moverá un cuerpo, que pueden ser los

bloques “ground” o “body”. El terminal F se conecta al cuerpo que se moverá con respecto a la

base.

5 Oscar Luis Vele G.

Page 6: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Básicamente, existen dos tipos de grados de libertad: de traslación (“prismatic”) y de

rotación (“revolute”). Mediante estos dos simples grados de libertad podemos formar un gran

número de articulaciones compuestas, es decir, que las demás articulaciones que se observan en la

figura 7 se derivan de los dos grados de libertad básicos, siendo posible obviamente un máximo de

seis grados de libertad para un cuerpo (tres de rotación y tres de traslación).

La configuración de cada articulación es muy simple, ya que solamente se configura el eje

de traslación, o en su defecto, el eje de rotación. Para ilustrar esto configuraremos la articulación

“Custom Joint”, que es una articulación personalizada o configurable, para que pueda trasladarse

en los ejes X e Y, y para que pueda rotar en el eje z. Cabe destacar que esta articulación permite

agregar diversas articulaciones, en forma similar a como se agregaban CSs en los cuerpos.

Figura 8. Articulación personalizada.

Las demás articulaciones son fijas en cuanto al número de grados de libertad de rotación y

traslación, pero completamente configurables en cuanto a los ejes de acción, por ejemplo, la

articulación “Planar” posee dos grados de libertad de traslación y un grado de libertad de rotación,

en donde, estos grados de libertad pueden estar en cualquier eje..

2.1.3. Limitadores y manejadores – “constraints & drives”.

Estos bloques limitan el movimiento entre dos cuerpos, mediante ciertas restricciones, las

mismas que pueden ser de distancia, velocidad, ángulo, etc. Dentro de esta categoría tenemos los

siguientes manejadores y limitadores:

6 Oscar Luis Vele G.

Page 7: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 9. Limitadores y manejadores.

Por ejemplo, el limitador “Parallel Constraint”, restringe a que dos cuerpos se muevan

paralelamente.

2.1.4. Sensores y actuadores - “sensors & actuators”.

Los sensores permiten monitorizar y medir principalmente el movimiento de un cuerpo o

de una articulación, además, se pueden medir las fuerzas y torques. Los actuadores permiten

“suministrar” fuerzas, torques o movimientos a los cuerpos y articulaciones.

Figura 10. Sensores y actuadores.

Tanto sensores como actuadores se pueden conectar a cuerpos, articulaciones, limitadores y

manejadores. Tal vez la función más importante de los sensores y actuadores es la de brindar una

interfaz entre SimMechanics y las demás herramientas de Simulink; por ejemplo, es imposible

conectar un osciloscopio (“Scope”) directamente a un cuerpo o a una articulación, sino que éste

7 Oscar Luis Vele G.

Page 8: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

debe ser conectado por medio de un sensor. En la figura 11 se muestra la utilización de sensores y

actuadores en el ejemplo del péndulo simple.

Figura 11. Utilización de sensores y actuadores.

El sensor que se ha utilizado en el ejemplo anterior permite medir la variación de ángulo

del péndulo con respecto a la vertical, siendo posible medir velocidades, aceleraciones, fuerzas,

torques, etc. El actuador utilizado es el más simple de todos y permite ingresar una condición

inicial de posición al péndulo. En la figura 12 se muestran los cuadros de configuración tanto del

sensor como del actuador.

Figura 12. Configuración el actuador (izquierda) y del sensor (derecha).

8 Oscar Luis Vele G.

Page 9: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

2.1.5. Utilidades - “utilities”.

Son bloques extra de SimMechanics para la creación de subsistemas y para la utilización de

realidad virtual.

Figura 13. Utilidades.

2.2. Visualización de cuerpos.

En la presente sección profundizaremos sobre la utilización de SimMechanics mediante un

ejemplo que clarifique el entendimiento. Un aspecto importante es la visualización de cuerpos en

movimiento, cosa que será estudiada conjuntamente con el desarrollo de este ejemplo.

2.2.1. Diseño del diagrama de bloques para un Péndulo.

En el siguiente ejemplo simulamos el comportamiento de un cuerpo que gira por efecto de

la gravedad, es decir, es un péndulo compuesto. El movimiento es iniciado por una condición

inicial θ = -40º.

Figura 14. Péndulo compuesto.

9 Oscar Luis Vele G.

Page 10: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

En la figura 14 se observan los puntos CS1 y CG, que posteriormente serán de utilidad en

la simulación mediante SimMechanics. La masa del péndulo es 1Kg, la longitud es 2m y la

posición del centro de gravedad está en la mitad del cuerpo.

En primer lugar iniciamos un nuevo modelo en simulink y desplegamos todas sus librerías.

Requerimos los bloques “Ground”, “Body”, “Revolute”, “Joint initial condition” y “Joint sensor”

de la librería SimMechanics y además “Scope” de la librería Simulink\Sinks. En la figura 15

podemos observar la disposición y conexión de estos elementos.

Figura 15. Modelo de un péndulo compuesto.

Después de renombrar cada uno de los bloques, se procede a configurar los mismos, de la

siguiente manera:

El punto fijo de referencia es ubicado en las coordenadas 0,0,0.

Figura 16. Configuración de “Tierra”.

A continuación se procede a configurar la “Articulación”. En la parte superior del

cuadro (“Number of sensor / …”) se ingresa el número de puertos adicionales que se

requiere, en esta caso dos. Los puertos adicionales sirven para conectar sensores y

actuadores. En la parte inferior configuramos el eje sobre el cual rotará el péndulo (eje

z).

10 Oscar Luis Vele G.

Page 11: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 17. Configuración de “Articulación”.

La configuración de un cuerpo es tal vez la más complicada, ya que requiere tener en

cuenta las ubicaciones de los puntos (CG y CS1), así como también la matriz de

momentos de inercia, pero sobre todo se debe tener especial cuidado en la coherencia de

estos datos. En primer lugar ingresamos los valores de la masa (en Kg.) y la matriz (3x3)

de momentos (en Kg.m2) para posteriormente configurar los puntos CS1 y CG. CS1

representa uno de los extremos del cuerpo, el que es conectado a la articulación y sobre

el cual gira el cuerpo. CS1 está ubicado justamente en el origen. CG representa la

ubicación del centro de masa y su coordenada es 0,-1,0 a partir de CS1, es decir, un

metro bajo el eje de rotación. Note que el momento de inercia menor coincide con el eje

(y) en el cual se ha desplazado el CG.

Figura 18. Configuración de “Cuerpo”.

NOTA.- Dos cuerpos no pueden ser conectados directamente, siendo posible únicamente mediante

una articulación, un limitador o un manejador.

11 Oscar Luis Vele G.

Page 12: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

En el actuador ingresamos la condición inicial de ángulo.

Figura 18. Configuración de “Condición inicial”.

El sensor permite visualizar muchas magnitudes, en este caso se elige solamente el

ángulo en grados.

Figura 18. Configuración de “Sensor de rotación”.

2.2.2. Visualización.

Después de haber realizado el modelo del péndulo estamos listos para visualizar al mismo

en movimiento. Dentro del menú “Simulation” optamos por “Mechanical environment…”, dentro

del cual elegimos “Visualization”. En “Draw machine using” seleccionamos MATLAB Graphics”,

en “Represent bodies as:” seleccionamos “Equivalent elipsoids” y señalamos la opción “Animate

machine during simulation”.

12 Oscar Luis Vele G.

Page 13: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 18. Configuración de “Mechanical environment…”.

Configuramos el tiempo total de simulación y finalmente presionamos “Start simulation” y

la simulación se verá similar a esto:

Figura 19. Simulación de un péndulo compuesto.

Se puede observar al cuerpo en movimiento desde diferentes perspectivas, desde el menú

“SimMechanics/Orientation/…” , tal como se muestra en la figura 20:

13 Oscar Luis Vele G.

Page 14: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 20. Visualización en tres dimensiones.

Cabe destacar que MATLAB genera un determinado elipsoide a partir de los datos

ingresados en el bloque “body”, es decir, a partir de la masa, momentos de inercia y ubicación del

centro de gravedad.

Si en “Mechanical environment \ Draw machine using:” en el modelo de Simulink,

seleccionamos “Virtual reality toolbox”, la simulación será realizada en el visor de realidad virtual,

permitiendo al observador moverse y visualizar al péndulo dentro de un mundo virtual (Figura 21).

Figura 21. Visualización en realidad virtual.

14 Oscar Luis Vele G.

Page 15: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

La visualización en realidad virtual es un poco primitiva; posteriormente analizaremos

otras formas más elaboradas de realizar una animación en realidad virtual.

Si se desea observar la simulación en MATLAB del péndulo, los archivos se encuentran

disponibles en la siguiente dirección: http://www.loslocosproyectos.blogspot.com

2.3. Modelos hacia la simulación de un Robot humanoide.

En la presente sección realizaremos una serie de modelos siempre con una meta principal,

que es la simulación de un robot bípedo. La dificultad así como la velocidad de la explicación irá

aumentando a medida que se avance con los ejemplos.

2.3.1. Modelado de un servomotor.

Los servos son motores que se caracterizan por tener un control de posición, es decir, se

ubican inmediatamente en una determinada posición angular dentro de un rango de trabajo.

Este modelo consiste en un péndulo compuesto que es comandado por un servomotor. El

motivo por el cual se realiza este ejemplo es porque en la mayoría de articulaciones de nuestro

robot humanoide utilizaremos servomotores, así que su simulación es fundamental.

En la figura 22 se esquematiza el modelo de simulación:

Figura 22. Modelo de un servomotor comandando a un péndulo compuesto.

El diagrama de bloques se basa en el modelo anterior del péndulo compuesto, pero en esta

ocasión se desea controlar su posición angular, para esto realizamos un sistema de control en lazo

cerrado (subsistema “Servo”). La configuración de los bloques “Tierra”, “Articulación” (dentro del

subsistema “Servo”) y “Cuerpo” se realiza de la misma forma que en el ejemplo del péndulo

15 Oscar Luis Vele G.

Page 16: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

compuesto. La ubicación del punto fijo es 0,0,0; el cuerpo gira en el eje z, la masa del cuerpo es

1Kg, los momentos de inercia: Ix=Iz=0.013Kg.m2, Iz=0.0001Kg.m2, la posición de CS1 es 0,0,0 a

partir del origen y la posición de CG es 0,-0.25,0 desde CS1. Para realizar el control de posición

se realizó un sistema de control a lazo cerrado con un controlador PD (Proporcional – derivativo)

[4].

Figura 23. Sistema de control a lazo cerrado.

No necesitamos encontrar la función de transferencia de la planta (péndulo compuesto) ya

que SimMechanics se encarga de esto, de aquí su importancia y utilidad. En la figura 24 se observa

el subsistema “Servo”.

Figura 24. Subsistema de control de posición angular “Servo”.

La figura 24 es el modelo del sistema de la figura 23, en donde, θr(t) proviene de un

generador de onda cuadrada “Referencia” (1Hz, -+40º), T(t) es el torque en la entrada de

“Actuador” y θy(t) es el ángulo en la salida de “Sensor”. Los bloques “Sensor” (“Joint Sensor”) y

16 Oscar Luis Vele G.

Page 17: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

“Actuador” (“Joint actuator”) brindan la interfase entre SimMechanics y los demás elementos de

Simulink.

En el bloque “Articulación” se requieren tres puertos auxiliares para el “Sensor”,

“Actuador” y “Condición inicial”. Los bloques “Grados/rad” y “Rad/grados” realizan la conversión

de grados a radianes (π/180) y viceversa (180/ π). El valor de Kp es 1000 y de Kd es 20. La

configuración de los boques “Actuador” y “Sensor” se muestra en la figura 25.

Figura 25. Configuración de “Sensor” (izquierda) y “Actuador” (derecha).

Visualizando al sistema completo:

Figura 26. Visualización del sistema de control.

Analizando las formas de onda obtenidas (la primera corresponde al ángulo de referencia,

la segunda al ángulo de salida y la tercera al torque requerido) podemos notar que el controlador

PD ha sido calibrado satisfactoriamente.

17 Oscar Luis Vele G.

Page 18: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

2.3.2. Modelado de una pierna.

Una pierna en su esencia es un péndulo doble, que puede ser representado mediante el

siguiente modelo:

Figura 27. Péndulo doble.

de aquí, que el “Cuerpo1” está atado a un extremo del “Cuerpo”. En la figura 28 se puede observar

la configuración de los dos cuerpos:

Figura 28. Configuración de los bloques “Cuerpo” (arriba) y “Cuerpo1” (abajo).

Al configurar el bloque “Cuerpo” podemos notar que se requiere de un nuevo punto CS2,

el mismo que está ubicado a 0.25m bajo el centro de gravedad y nos servirá de punto de conexión

para el otro cuerpo. En la configuración del bloque “Cuerpo1” se procede a unir CS1 de éste cuerpo

con CS2 del bloque “Cuerpo” mediante la opción “Adjoining”, es decir, se ha formado el péndulo

doble con dos grados de libertad de rotación, pero éste no se mueve en forma controlada, así que

utilizaremos el subsistema “Servo” creado anteriormente, de la siguiente manera:

18 Oscar Luis Vele G.

Page 19: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 29. Modelo de una pierna.

Figura 30. Simulación del modelo “pierna”.

Note que en este caso se ha procedido a mover a los cuerpos siguiendo un patrón

sinusoidal. Dependiendo del peso y momentos de inercia de los cuerpos o a medida que se siga

atando cuerpos es posible que el controlador PD no responda satisfactoriamente, por lo que debe

calibrado nuevamente.

19 Oscar Luis Vele G.

Page 20: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

2.3.3. Modelado del piso.

Partiendo de la tercera ley de Newton que manifiesta que “para toda acción existe una

reacción igual y opuesta”[5], se procederá a simular el piso como un punto en el cual se ejerce una

fuerza y un momento equivalentes que permiten al robot desplazarse sobre una superficie. En la

figura 31 se muestra el esquema físico correspondiente.

Figura 31. Modelo físico del piso.

en donde, el punto A es el punto de contacto del cuerpo con el piso, en el cual actúan la fuerza (F) y

momento (M) de reacción del piso. Para cumplir con este objetivo (simular el piso), se han

realizado sistemas de control para los tres ejes (x,y,z) de acción de la fuerza neta que ejerce el piso

sobre el cuerpo, tal como se esquematiza en la figura 32.

Figura 32. Modelo de control para simulación del piso .

siendo, Vx ref y Vz ref, las velocidades deseadas del cuerpo (en el punto A) en los ejes x,z; Y ref

la posición del punto A en el eje y; Vx, Vz, Y son las velocidades y posiciones sensadas en el

cuerpo y Fx, Fy ,Fz son las componentes de la fuerza (F) que actúa en el punto A. Se puede

20 Oscar Luis Vele G.

Page 21: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

observar también que existen tres controladores en este sistema, uno para cada eje, los mismos que

están habilitados si se cumple con la condición que Y < Y ref, es decir, cuando el punto A este “por

debajo” del nivel del piso virtual (Y ref). Para el eje Y se utiliza un control de posición, pues el

nivel del piso está regido por un valor absoluto constante (Y ref), en cambio, para los ejes X,Z, se

utiliza un control de velocidad, pues cuando el cuerpo se esté moviendo no existirá una referencia

global constante de posición en estos ejes. Para que no exista deslizamiento, los valores de

referencia son Y ref = -0.4, Vx ref =0, Vz=0. Dicho de otra forma, el control en el eje Y simula la

reacción vertical neta del piso, la misma que se equilibra con la fuerza hacia abajo creada por el

cuerpo, haciendo que éste (Punto A) permanezca en el valor Y ref; en cambio, los controles en los

ejes X,Z simulan las fuerzas de rozamiento, impidiendo que el punto A se deslice. La velocidad de

procesamiento de la PC impide que se pueda implementar un sistema de control paralelo,

utilizando los momentos de reacción del piso, sin embargo, se ha logrado demostrar que este

sistema de control mediante fuerzas de reacción es una muy buena aproximación del fenómeno de

contacto con el piso. En la figura 33 se puede ver el modelo de cinco eslabones (cadera y dos

piernas), además de los dos puntos de contacto del piso en cada pierna.

Figura 33. Modelo en Simulink de la parte Baja del robot (Cadera y pies) y del piso (dos puntos de

contacto).

en donde, el bloque “Generador”, contiene los vectores con los valores angulares para cada

articulación, para así lograr la caminata bípeda del robot. En los bloques “Piso_i” y “Piso_d”, se

tiene el siguiente diagrama, que no es más que el modelo en Simulink del esquema de control de la

figura 32.

21 Oscar Luis Vele G.

Page 22: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Figura 34. Modelo en Simulink del piso.

Al ejecutar la simulación se puede observar el avance del robot a través de la superficie, tal

como muestra la figura 35.

Figura 35. Simulación de la cadera y piernas del robot humanoide y su avance sobre el piso.

22 Oscar Luis Vele G.

Page 23: Sim_RH1

SIMULACIÓN MECÁNICA DE UN ROBOT HUMANOIDE EN MATLAB .

Obviamente, los puntos de contacto del robot con el piso son los extremos inferiores de los

pies.

Si se desea observar la simulación en MATLAB, los archivos se encuentran disponibles en

la siguiente dirección: http://www.loslocosproyectos.blogspot.com

23 Oscar Luis Vele G.