sim_rh1
TRANSCRIPT
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.