Evaluacion de un Esquema de Control de Equilibrio
para un Prototipo de Robot Bıpedo Desarrollado
por el Grupo de Investigacion ARMOS
Jhonattan A. Gordillo L. Fredy H. Martınez S.
[email protected] [email protected]
Tecnologıa en Electricidad
Facultad Tecnologica
Universidad Distrital Francisco Jose de Caldas
Bogota D.C., Colombia
Resumen—Este documento presenta el diseno, implementaciony evaluacion de un sistema de control de equilibrio vertical sobreun prototipo de robot bıpedo de 10 DOF (grados de libertad),desarrollado por el grupo de investigacion ARMOS. El sistemade control se simulo off-line con el fin de observar el tiempode respuesta, y posteriormente se grabo en un microcontroladorpropio de la tarjeta Arduino Mega para su implementacion enla plataforma bıpeda. En el desarrollo del documento se describeel proceso que se llevo a cabo para lograr el objetivo, desde laadecuacion de la planta con hardware, hasta los resultados de lassimulaciones y pruebas realizadas, en donde se evidencia comocada articulacion es llevada a su posicion de equilibrio teniendoen cuenta la accion de control ejercida sobre el sistema.
Abstract—This document presents the design, implementation
and evaluation of a vertical balance control system on a bipedal
robot prototype of 10 DOF (degrees of freedom), developed by
the ARMOS research group. The control system was simulated
off-line in order to observe the response time, and later it was
recorded in a microcontroller of the Arduino Mega card for its
implementation in the bipedal platform. The development of the
document describes the process that was carried out to achieve
the objective, from the adaptation of the plant with hardware, to
the results of the simulations and the tests carried out, where it is
evident how an articulation is carried to its position of balance,
took into account the control action exercised on the system.
I. INTRODUCCION
La robotica es una rama dentro de la ingenierıa que hoy
en dıa tiene una gran importancia para la vida cotidiana del
ser humano, puesto que en cuanto a aplicaciones su alcance
se expande a diferentes campos tales como la medicina, la
astronomıa, la agricultura, la construccion, la minerıa, entre
otras. En cuanto a desarrollo teorico, es de gran relevancia
en el desarrollo de estrategias de control y automatizacion. A
continuacion se presentan algunos antecedentes de investiga-
cion relevantes al proyecto que se utilizaron como fuente de
ideas para el diseno del esquema de control propuesto.
El deseo del hombre por crear una maquina que se asemeje
fısicamente al cuerpo humano impulso al desarrollo de diver-
sas plataformas bıpedas, las cuales se han venido mejorando
una tras otra, teniendo ası diversos robots, unos mas robustos y
complejos que otros, que se acercan mucho al cuerpo humano.
De allı se nace la necesidad de controlar el movimiento y las
caracterısticas de los robots con el fin de emular el movimiento
del cuerpo humano. A continuacion se habla sobre algunas
de las diferentes estrategias de control que se han empleado
en las plataformas bıpedas, en particular aquellas estrategias
consideradas claves para esta investigacion. Todo esto sirve
de antesala a la propuesta que se presenta en este proyecto,
tomando de ellos ideas para organizar un esquema de control
con el fin de implementarlo en un prototipo de robot bıpedo
con desarrollado por el grupo de investigacion ARMOS de la
Universidad Distrital Francisco Jose de Caldas.
En primer lugar, en [1] se muestra un sistema de control
que se compone de un controlador maestro encargado de
mover 16 servomotores que permiten el movimiento de las dos
piernas y dos controladores difusos, uno para cada pie, que se
encargan de calcular el centro de presion (COP) en cada uno
de ellos a partir de los datos obtenidos por los sensores de
presion ubicados en la parte posterior, y generar una accion
de control para mover los servomotores que conforman la
cadera y el tobillo. En la Fig. 1 se evidencia que la plataforma
bıpeda sobre la que se implemento dicho sistema de control
es similar a la que se presenta en este proyecto. Debido a
que cuenta tambien con 16 servomotores, un acelerometro
ubicado en la parte superior de la plataforma y unos sensores
de presion ubicados en la planta de los pies del robot que
simulan los puntos de presion que ejerce peso y el movimiento
del cuerpo humano sobre los pies, esta investigacion aporto
informacion invaluable en cuanto a desempeno esperado. Allı
se uso un microcontrolador AtMega 128 para el tratamiento de
las senales y la adquisicion de datos debido a que se requiere
una gran cantidad de pines para el control de los servomotores
y la recopilacion de los datos que arroja cada sensor.
En [2] se presenta una estrategia de control que contempla la
energıa del sistema, y por tanto como debe ser estimulado para
Figura 1. Plataforma Robonova [1]
.
lograr el equilibrio. Una implementacion de esta estrategia ha
sido previamente desarrollada por el grupo de investigacion
ARMOS mediante un control hıbrido difuso-deslizante. La
estrategia general adoptada para recuperar el balance de la
pierna, consiste en considerar el sistema en dos estados gene-
rales de funcionamiento, cuando existen grandes inclinaciones
de la misma (es decir, el sistema se encuentra en una lınea de
balance no deseada lejos de su punto de equilibrio), se busca
inyectar energıa al sistema a fin de recuperarlo rapidamente
y sin sobrepasos, y cuando se encuentra cerca de su punto
de equilibrio (cerca de la posicion vertical), seguir una ley de
control basica de equilibrio de acuerdo a reglas definidas por
un experto.
Los grupos de investigacion ARMOS (Universidad Distrital)
y DEDALO (Universidad Pedagogica Nacional) desarrollaron
el sistema bıpedo SIROBI1 (Sistema Robotico Bıpedo), como
plataforma para el desarrollo de sistemas roboticos inteligen-
tes. Tal prototipo se ha concebido como un robot bıpedo
conformado por dos piernas con 3-DOF y un tronco conectado
a ellas, capaz de realizar de forma autonoma movimientos
complejos tales como: mantenerse de pie en equilibrio, cami-
nar y levantarse del suelo. En este sistema, cada articulacion
cuenta con un control propio (control distribuido), pero res-
pondiendo a una unidad de control central que coordina las
acciones gruesas del robot [2]. Para la posicion de balance
de la pierna del robot disenaron un esquema basico de control
difuso, analizando el comportamiento basico de la ecuacion de
movimiento de cada pierna y de acuerdo al conocimiento de su
dinamica, es posible derivar reglas basicas de control cuando
el angulo de la articulacion esta muy lejos de la posicion ideal
[2]. En la Fig. 2 se puede observar el diseno CAD del robot
SIROBI1.
Existen diversas herramientas computacionales para realizar
el control de un robot, una de las mas conocidas es MATLAB,
la cual tiene diferentes cajas de herramientas tales como
SimMechanics, que en conjunto con Solidworks, permiten
simular cada parte del diseno, y a su vez toda la cinematica
ligada a este. Otra herramienta que puede ser utilizada en
Figura 2. Diseno CAD del robot SIROBI1 [2].
conjunto con MATLAB y Simulink, es Blender, mediante la
cual se puede modelar una plataforma robotica y exportar los
datos obtenidos a MATLAB para realizar la simulacion del
funcionamiento [3].
Para lograr la operacion del robot se requiere de un soft-
ware y una instrumentacion que implementen la estrategia
de control. Se utilizan diferentes componentes tales como
procesadores, sensores y actuadores. Los sensores captan
tanto las senales del entorno del robot, como las senales de
cada articulacion dependiendo donde se incorporen. Luego se
envıan las senales al software de control, allı se toman las
decisiones, que luego son enviadas a cada actuador [4].
El prototipo sobre el cual se implemento la estrategia de
control fue disenado para implementar esquemas de control
inteligente propuestos por el grupo de investigacion ARMOS,
con el fin de trabajar e interactuar con el ser humano y su
ambiente. Para el diseno se tuvieron en cuenta las propor-
ciones humanas, similaridad morfologica con el ser humano.
El diseno utilizo en su conceptualizacion las herramientas
Solidworks, para realizar el diseno geometrico, y MatLab
para afinar las parte mecanica del prototipo (tobillo, rodilla
y cadera) y estimar los esfuerzos de las articulaciones. Dicho
prototipo cuenta con 10 DOF (grados de libertad) distribuidos
entre las articulaciones de los tobillos, las rodillas y la cadera.
Se incorporaron en total 16 servo-motores para lograr la
construccion del prototipo [5]. En la Fig. 3, se muestra el
prototipo sobre el cual se va a implementar la estrategia de
control.
Se debe considerar que en cuanto a desplazamiento en
ambientes no estructurados los robots cuadrupedos, bıpedos y
otros caminantes componen una clase de robots moviles que
estan por encima de robots con ruedas y/o cadenas, puesto
que las piernas no requieren un gran area constante de apoyo,
por lo que superar las discontinuidades como una pendiente
rocosa o escaleras es mas facil con solo pasar por encima de
ellas [6].
Existen dos tipos de robots bıpedos, los bıpedos de caminata
activa, que cuentan con una gran libertad para llevar a cabo su
caminata, pero consumiendo bastante energıa, ya que necesitan
de varios grados de libertad y un sistema de control robusto, y
los robots de caminata pasiva, que son pobres en cuanto a su
Figura 3. Prototipo del robot bıpedo del grupo de investigacion ARMOS [5]
.
sistema de control y grados de libertad pero consumen poca
energıa [7].
Muchos investigadores de la robotica actual se han centrado
en el desarrollo de los robots humanoides bıpedos. Se han
creado algunos humanoides a escala como ASIMO, el robot
humanoide de Honda, la serie SDR de Sony creada para el
entretenimiento, HUBO del Instituto de Ciencia y Tecnologıa
Avanzada de Corea, WABIAN, la serie de la Universidad
de Waseda, la serie Mahru de Samsung Electronics, el H6
y el H7 de la Universidad de Tokio y JHOHNNIE de la
Universidad Tecnica de Munich [8]. Todos estos prototipos
se han desarrollado como herramientas de investigacion para
futura integracion de la robotica en la vida cotidiana del ser
humano.
El principal motivo de la construccion de robots humanoides
es duplicar el comportamiento del movimiento humano y
ayudar a las personas. En cuanto al movimiento, se busca que
el robots se desempene en ambientes disenados para el ser
humano, y en cuanto a la ayuda a las personas, se busca que
realicen tareas en las cuales es compleja, costosa o peliogrosa
la participacion humana [9].
El deseo de tener una maquina similar a la humana se
hizo realidad en las ultimas decadas del siglo XX. Una gran
cantidad de investigacion se ha hecho para que la movilidad
del robot sea mas similar a la de la especie humana. En
los ultimos anos, diversos enfoques como el control robusto,
el aprendizaje por refuerzo, el algoritmo genetico, la logica
difusa y la red neuronal se han aplicado al modelo de control
con el fin de controlar y desarrollar el mecanismo de caminata
de los bıpedos. El control de los robots bıpedos es muy
complicado debido a su cinematica compleja y no lineal [10].
Una de las estrategias mas utilizadas en control bio-
inspirado son los sistemas de logica difusa (SLD) [9]. Los
SLD se utilizan ampliamente para resolver el problema de
cinematica inversa de punto a punto de los robots en serie.
Para disminuir el problema en toda el area de trabajo, las
funciones de pertenencia de la logica difusa se buscan, afinan,
y se optimizan usando un algoritmo genetico simple. Ellos
Figura 4. Prototipo del robot bipedo Rabbit [6].
Figura 5. Prototipo del robot bıpedo Botas [11].
proporcionan un enfoque directo para el calculo del problema
de cinematica inversa que no pasa por las singularidades
cinematicas [9].
El laboratorio de automatica de Grenoble (Francia) inicio un
proyecto llamado Rabbit en 1997, cuya mision era construir
un prototipo de robot bıpedo para estudiar el control de
movimiento dinamico. El Rabbit fue construido para parecerse
mucho al ser humano, ya que consta de 2 piernas que cuentan
con femur y tibia, y estan unidas a un torso simetrico [6].
Este proyecto fue desarrollado teniendo en cuenta el modelo
multicuerpo, y considera las fuerzas externas que actuan en el
momento del contacto - pies suelo [6]. En la Fig. 4 se puede
apreciar el prototipo.
En [11] se muestra el trabajo realizado para incorporar un
sistema de control en un prototipo de robot bıpedo, se puede
observar que el lenguaje de programacion que se implemento
para llevar a cabo el control es C++; tambien se muestra el
analisis cinematico realizado a este. En la Fig. 5 se puede
observar el prototipo Botas.
Otro de los trabajos realizados es e-Robot, en el que se
realizo el modelamiento de cada parte del robot mediante la
herramienta SimMechanics, la cual es un diagrama de bloques
que sirve para modelar el entorno y la cual se basa en las
Figura 6. Robot humanoide e-Robot modelado en SimMechanics [8].
ecuaciones de Newton para realizar el analisis mecanico de la
estructura. La ventaja que tiene modelar un sistema, es que se
puede realizar la simulacion para observar las fallas que tiene
el metodo y corregirlas, de esta manera se ahorra tiempo [8].
En la Fig. 6 se observa el modelo del robot humanoide en
SimMechanics.
Otro referente considerado en la investigacion previa es
[4]. En el artıculo se muestra la implementacion de control
realizada en el robot Bioloid. Se desarrollo el control de
Bioloid usando MATLAB en conjunto con una tarjeta Arduino
Mega, con fines educativos. Se uso la tarjeta Arduino Mega
y un microcontrolador ATmega 2560 basicamente por su
bajo costo y la alta capacidad de senales Entrada/Salida que
soporta (multiples entradas y salidas digitales y analogas, con
gran numero de conversores A/D y D/A). Al igual que las
investigaciones antes citadas, estos son criterios de diseno
importantes que se consideraran en la investigacion. En la
Fig. 7 se muestra el robot Bioloid con sus respectivas partes.
Existen diferentes estrategias de control utilizadas para
lograr el equilibrio sobre diferentes plataformas bıpedas, se
puede utilizar un poco de cada una para el desarrollo del
proyecto, sin embargo, la principal referencia que se tuvo
en cuenta es el esquema hıbrido difuso-deslizante para el
control de equilibrio de un robot bıpedo [2], puesto que tiene
en cuenta la energıa del sistema para lograr el objetivo de
equilibrio, ademas de que el sistema responde rapidamente
Figura 7. Robot Bioloid y sus partes [4].
frente a fuertes disturbios externos con un error muy pequeno
con respecto a la referencia.
II. FORMULACION DEL PROBLEMA
El proyecto se centra en el diseno, implementacion y
evaluacion de un sistema de control de equilibrio vertical en
un prototipo de robot bıpedo, el cual fue desarrollado haciendo
uso de la logica difusa. Esta estrategia de control se selecciono
debido a su facilidad natural de combinar diferentes superficies
de control en un solo esquema con salida uniforme. Ademas,
proporciona un control robusto que permite controlar sistemas
no lineales de una forma mas simple y confiable respecto a
otros tipos de control.
El sistema de control debe ser del tipo MISO, con multiples
entradas, para este caso dos, y una sola salida, ademas, debe
ejercer una accion de control tal que, las variables de entrada
vayan al punto de referencia establecido en un corto tiempo
y ningun sobrepaso en el sistema independientemente de las
condiciones iniciales que tenga el sistema o las perturbaciones
externas que se presenten sobre el mismo.
Inicialmente se realizaron unas simulaciones en el software
matematico MATLAB, en las que se demuestra que el sistema
de control es capaz de llevar las variables de entrada al punto
de referencia de una manera suave y en un corto tiempo, luego
se describe la manera en que el diseno llevado a cabo en
MATLAB es implementado en una tarjeta de adquisicion de
datos para probar el sistema de control en el prototipo de robot
bıpedo.
La estrategia de control queda disponible para los estudian-
tes de la universidad, que deseen llevar a cabo proyectos de
investigacion sobre sistemas de control en robots humanoides,
o que el material desarrollado en este proyecto les sirva para
trabajar en futuros proyectos de investigacion.
III. METODOLOGIA
El principal enfoque de este proyecto es la logica difusa,
la cual es una herramienta poderosa en cuanto al control
de sistemas no lineales de multiples entradas y una sola
salida (MISO). Un sistema de logica difusa (SDL) se basa
en una serie de reglas establecidas por un experto de acuerdo
a su experiencia, que son de la forma SI (parametro de
entrada) - ENTONCES (salida) en las que se pueden incluir
conjuntos que van mas alla de la logica convencional en la
que solo existen los conjuntos verdadero y falso o tambien
1 y 0 respectivamente. Se considera una ventaja incluir mas
conjuntos difusos ya que los parametros de entradas y salidas
tendran cierto grado de pertenencia en cada uno de ellos y
esto permitira que dentro del bloque difuso se tome la mejor
decision a partir de las reglas establecidas y de esa manera
obtener una salida optima del sistema de control.
Inicialmente se penso en codificar cada variable (error de
posicion y variacion del error de posicion), en 4 bits, es
decir, cada una de ellas tomarıa un valor entre 0 y 15 y
las combinaciones posibles serıan 256, una vez simuladas
mediante MATLAB cada una de las combinaciones, se crearıa
una tabla y, a traves de un programa sencillo en el IDE
de Arduino (Entorno de Desarrollo Integrado), se ubicarıa
el valor de la salida para cada una de las combinaciones o
direcciones de la tabla; sin embargo, teniendo en cuenta la
restriccion en la cantidad de memoria que debıa ser ocupada
de Arduino, el trabajo que generaba realizar las simulaciones
correspondientes para todas las combinaciones en cada una
de las articulaciones para crear las seis tablas y sobretodo
la poca resolucion de las variables, se opto por implementar
otra solucion que permitiera tener una mayor resolucion de las
variables y que permitiera tener un programa mas compacto
que ocupase menor memoria en la tarjeta.
Para crear los seis bloques difusos (uno por cada articu-
lacion), se utilizo MATLAB, debido a que es un software
robusto que permite trabajar muy bien los sistemas difusos
mediante lıneas de codigo o de manera grafica con uno de los
Toolbox con que cuenta dicho software. En cada programa
se establecieron los conjuntos difusos correspondientes a las
dos variables de entrada (error de posicion y variacion del
error de posicion), y los conjuntos difusos correspondientes
a la salida del sistema, tambien se definieron unas reglas
de control iniciales, las cuales fueron refinadas de acuerdo
al comportamiento que presentaba el sistema en las pruebas
realizadas al mismo.
Como hardware de adquisicion de datos para la implemen-
tacion del sistema de control se utilizo la tarjeta Arduino Mega
2560, debido a su gran cantidad de pines analogos (16), con
los cuales se toman los datos de los sensores de flexion y
pines digitales (54) de los cuales se utilizan 16 para asignar
los datos de salida a los servos (Fig. 8).
Para adquirir los datos del error de posicion de la articu-
lacion, se utilizaron cuatro sensores de flexion de 2.2”para la
cadera y los tobillos, y dos sensores de flexion de 4.5”para las
rodillas, estos sensores devuelven un valor entre 0 y 5 Voltios
el cual se ve reflejado en el IDE de Arduino con un valor entre
0 y 1023. En la Fig. 9 se muestra uno de dichos sensores; y
para leer la velocidad angular que lleva la plataforma se uso el
sensor MPU 9150 que tiene integrado giroscopio, acelerometro
Figura 8. Arduino Mega 2560.
Figura 9. Sensor de flexion.
y brujula en los 3 ejes de rotacion el cual se observa en la
Fig. 10.
En la figura Fig. 11, se muestra el prototipo bıpedo sobre el
cual se implemento el sistema de control con las conexiones
correspondientes para su funcionamiento.
III-A. Estrategia de control
Para mantener o recuperar el equilibrio de la plataforma se
debe llevar a cabo un control distribuido, es decir, cada una
de las seis (6) articulaciones (caderas, rodillas y tobillos) tiene
sus propias reglas de control, ya que la plataforma es similar
morfologicamente al cuerpo humano, por ende, el rango de
movimiento de la cadera es diferente al de la rodilla y al de
el tobillo.
El sistema de control que se implemento en el prototipo
de robot bıpedo, es un sistema con multiples entradas y una
unica salida, las cuales son el error de posicion, y la variacion
Figura 10. Sensor MPU 9150.
Figura 11. Prototipo de robot bıpedo implementado por el grupo de investi-gacion ARMOS.
de dicho error. Para determinar el error de posicion se usa la
siguiente formula:
eθ =θactual − θref
θmax
(1)
La estrategia que se implemento para recuperar el equilibrio
en cada articulacion contempla el error de posicion de la
articulacion con respecto a la vertical y la variacion de dicho
error, y a partir de estos dos datos, se calcula la accion
de control por medio de un bloque difuso implementado en
Matlab.
La estrategia de control propuesta considera dos escenarios,
el primero cuando el angulo de inclinacion se encuentra en una
posicion cercana al punto de referencia vertical, y el segundo
en el que el sistema tiene angulo de inclinacion se encuentra
lejos de la posicion deseada, en el cual se busca inyectar
energıa para que el sistema recupere la posicion de equilibrio
sin sobrepasos y de manera rapida. Para esta estrategia de
control es necesario tener en cuenta dos superficies de control,
la primera en la que se definan una serie de reglas que indiquen
como conservar el equilibrio, y la segunda en la que mediante
una ecuacion que indique cuanta energıa aplicar al sistema
para recuperar el balance de la articulacion.
Para obtener un esquema de control suave (sin sobrepasos
bruscos en el sistema), es necesario definir un esquema capaz
Figura 12. Bloque de control de posicion difuso [2].
Figura 13. Diagrama de cuerpo libre de una articulacion del robot.
de conmutar entre las dos superficies de acuerdo a las variables
del sistema, por esta razon se opto por utilizar el bloque de
inferencia difusa como estrategia global de control mostrado
en la Fig. 12.
La accion de control final se interpreta como la fuerza
aplicada a la articulacion por un motor. Esta fuerza depende de
unidad de control en la articulacion con el fin de recuperar la
posicion de equilibrio, teniendo en cuenta las reglas de control
definidas para los dos escenarios nombrados anteriormente.
Las reglas de control se construyeron de acuerdo al compor-
tamiento de las variables y la posicion de la articulacion. Para
ello se tuvo en cuenta la simulacion de un modelo sencillo de
la pierna, asumiendo una barra sencilla de longitud 2L y masa
m conocidas. En la Fig. 13 se muestra el diagrama de cuerpo
libre de una articulacion.
La ecuacion de movimiento de la pierna esta descrita por:
Iθ = mgL sin θ + FxL cos θ − FyL sin θ + τ (2)
III-B. Diseno del sistema de control
Para el desarrollo e implementacion del sistema de control,
se hizo mediante el uso de la herramienta computacional
MATLAB, debido a que es un software matematico robusto
para el tratamiento de datos y el desarrollo de gran variedad
de proyectos de ingenierıa. En cuanto a la logica difusa,
MATLAB cuenta con un Toolbox llamado Fuzzy Logic Desig-
ner, el cual permite crear sistemas de inferencia difusa (FIS),
de una manera sencilla e interactiva con el software, ası como
tambien permite crearlos con lıneas de codigo escritas en el
espacio de trabajo del software, con la ventaja de que toda la
informacion se encuentra en una sola ventana y si se requiere
Figura 14. Esquema del prototipo bıpedo - vista frontal.
realizar cambios en el sistema, no es necesario abrir el Toolbox
y usar los botones necesarios para llevarlos a cabo.
Debido a la ventaja que tiene trabajar con lıneas de codigo,
se decidio construir el FIS de esta manera. Lo primero que
se debe tener en cuenta es que MATLAB, por defecto, crea
sistemas difusos del tipo mamdani, es decir, que tanto entradas
como salidas son conjuntos difusos, ademas el metodo de
defuzzificacion lo hace mediante el calculo del centro de
gravedad o centroide.
Se debe tener en cuenta que, como se menciono anterior-
mente, el prototipo cuenta con seis articulaciones, y que por
cada una de ellas se tiene instalado un sensor de flexion que
permite leer la posicion angular de la articulacion, ademas de
un acelerometro ubicado en la parte superior del robot para
medir la velocidad angular de la plataforma. Por lo anterior,
fue necesario crear un bloque difuso por cada articulacion.
En la Fig. 14, se observa un esquema de la planta en el
corte frontal con los nombres que fueron asignados a cada
servomotor y en cada costado los nombres de los sensores de
flexion.
Para la construccion del sistema difuso, lo primero fue
calibrar los servomotores para que tuviesen un arco de movi-
miento similar al del cuerpo humano, esto se realizo de manera
mecanica, sin embargo, como una medida de seguridad para
que la planta y los sensores no sufrieran danos, se escribieron
un par de lıneas de codigo en el programa final para allı limitar
tambien el movimiento de los servos. Una vez definidos los
rangos de movimiento para cada articulacion, se llevaron los
servomotores a sus angulos extremos y al punto de referencia,
con el fin de observar las medidas que toman los sensores en
dichos puntos, y de esta manera definir los conjuntos difusos
para la construccion del FIS. Para la segunda variable de
entrada, que corresponde a la lectura del acelerometro, se
llevo a cabo un proceso similar. Finalmente con los rangos
de movimiento de cada articulacion, se definen los conjuntos
difusos para la salida segun sea el caso. Al proceso mediante
el cual se definen los conjuntos difusos de las entradas y
salidas se le llama fuzzificacion, que consiste en determinar las
variables linguısticas y funciones de pertenencia o membresıa
del sistema de control. Las funciones de membresıa que se
definieron son de tipo triangular (para los conjuntos mas
pequenos), y de tipo trapezoidal (para los dos conjuntos mas
grandes). Las variables linguısticas que se definieron son: NG
(Negativo Grande), NP (Negativo Pequeno), ZE (Cero), PP
(Positivo Pequeno) y PG (Positivo Grande). Lo siguiente, fue
identificar los estados posibles de las articulaciones teniendo
en cuenta las entradas o antecedentes identificados anterior-
mente. En la Fig. 15 se observan los posibles escenarios que
se encontraran en cada articulacion.
En la Fig. 16, los conjuntos de las variables de entrada
y salida de la articulacion A, teniendo en cuenta que en el
eje vertical se tiene el grado de pertenencia de los valores
de acuerdo a cada conjunto difuso y en el eje horizontal, los
posibles valores que toma cada variable, teniendo ası en el
punto central, la referencia de dichas variables. En las Figs. 17,
18, 19, 20 y 21 se muestran la misma informacion para las
demas articulaciones.
Inicialmente se deben considerar tres preguntas fundamen-
tales para el diseno del sistema:
1. Error de posicion (EP): ¿Que tan lejos se encuentra la
articulacion con respecto a su posicion de equilibrio
vertical?
2. Cambio en el error de posicion (CEP): ¿Que tan rapido
se aleja o se acerca la articulacion de la posicion de
equilibrio?
3. Cambio en la posicion (CP): ¿Cual es la accion de
control correcta? (salida del sistema).
Las preguntas 1 y 2 se consideran las entradas del sistema
de control, es decir, los antecedentes, mientras que 3 es el
consecuente, es decir, la salida del sistema.
El siguiente paso del diseno, consistio en definir las reglas
de control, para lo cual se escribieron las siguientes proposi-
ciones generales y luego en MATLAB se fueron afinando de
acuerdo al comportamiento de cada articulacion:
Si el angulo es relativamente grande (NG o PG) y la
velocidad angular es alta y en el mismo sentido del
angulo, la accion de control debe ser grande y opuesta
al movimiento de la pierna.
Para los angulos pequenos, cercanos a cero, la accion de
control anterior se extiende a estos con el fin de evitar
oscilaciones en el punto de equilibrio.
Si el angulo es relativamente grande (NG o PG) y la
velocidad angular es alta y en el sentido contrario al
angulo, la accion de control debe ser suave y opuesta
al movimiento de la pierna a fin de evitar oscilaciones.
Si el angulo es pequeno y la velocidad angular es baja
y en el mismo sentido del angulo, la accion de control
debe ser baja y opuesta al movimiento de la pierna.
Si el angulo es pequeno y la velocidad angular es baja
y en el sentido contrario al angulo, la accion de control
debe ser cero a fin de evitar oscilaciones.
Figura 15. Posibles estados de cada articulacion.
0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91
Error de Posición - Sensor a
0
0.5
1
Mem
bres
ía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo a
0
0.5
1
Mem
bres
ía
Figura 16. Conjuntos difusos - Articulacion A.
Ya con los sistemas de inferencia difusa de cada articulacion
construidos, se hizo uso de una funcion de MATLAB que
permite ver la superficie de control de un FIS con el fin de
comprobar su simetrıa. En la Fig. 22, se pueden apreciar las
seis superficies de control correspondientes.
IV. RESULTADOS Y EVALUACION DE DESEMPENO
Para verificar que el sistema de control lleva cada arti-
culacion a su punto de equilibrio, se escribio un programa
en MATLAB con el fin de simular el cumplimiento del
objetivo de la estrategia de control, teniendo allı el modelo
de cada articulacion y unas condiciones iniciales que varıan
0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79
Error de Posición - Sensor B
0
0.5
1
Mem
bres
ía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo b
0
0.5
1
Mem
bres
ía
Figura 17. Conjuntos difusos - Articulacion B.
para verificar que la articulacion vaya a su punto de equilibrio,
en donde el error de posicion con respecto a la referencia
es un valor muy cercano a cero, ası como la velocidad
angular con la que se mueve la articulacion. A continuacion
se muestran las figuras Fig. 23, Fig. 24, que corresponden al
comportamiento de la posicion de la articulacion A (cadera
derecha) y la velocidad angular de la misma respectivamente,
tomando como condiciones iniciales 0.84 para la posicion y
-0.8 para la velocidad angular, datos que se encuentran lejos
con respecto al punto de referencia, allı se observa que pasados
aproximadamente 2.1 [ms] se llega a la posicion de referencia
0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97
Error de Posición - Sensor C
0
0.5
1M
embr
esía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo c
0
0.5
1
Mem
bres
ía
Figura 18. Conjuntos difusos - Articulacion C.
0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98
Error de Posición - Sensor D
0
0.5
1
Mem
bres
ía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo d
0
0.5
1
Mem
bres
ía
Figura 19. Conjuntos difusos - Articulacion D.
0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66
Error de Posición - Sensor E
0
0.5
1
Mem
bres
ía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo e
0
0.5
1
Mem
bres
ía
Figura 20. Conjuntos difusos - Articulacion E.
0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91
Error de Posición - Sensor F
0
0.5
1
Mem
bres
ía
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Variación del Error de Posición
0
0.5
1
Mem
bres
ía
-100 -80 -60 -40 -20 0 20 40 60 80 100
Salida - Servo f
0
0.5
1
Mem
bres
ía
Figura 21. Conjuntos difusos - Articulacion F.
describiendo una curva suave y que a pesar de que la velocidad
angular no tenga un comportamiento tan suave, si llega al
punto de referencia pasados 1.2 [ms] aproximadamente sin
sobresaltos bruscos, teniendo en cuenta que para la posicion
el punto de equilibrio es 0.865 y para la velocidad angular es
0. Ademas en la a Fig. 25 se observa el esfuerzo que realiza
el sistema de control para llevar las dos variables de entrada
al punto de referencia.
En las figuras Fig.26, Fig.27, Fig.28, Fig.29, Fig.30, Fig.31,
Fig.32, Fig.33, Fig.34, Fig.35, Fig.36, Fig.37,Fig.38, Fig.39
y Fig.440 se muestra el comportamiento las demas articu-
laciones, teniendo en cuenta diferentes condiciones iniciales
para cada una de ellas, y se observa como en cada una de
ellas llegan las variables de entrada a los puntos de referencia
pasado un corto tiempo.
Teniendo que las simulaciones correspondientes para cada
una de las seis articulaciones muestran como el sistema es
capaz de llevar las variables de entrada a sus respectivos puntos
de referencia, el siguiente paso fue escribir un programa
que tomara cierta cantidad de valores de cada variable de
entrada, desde el valor mınimo hasta el valor maximo, y ası
realizar la simulacion de cada combinacion posible entre ellas
(condiciones iniciales), para ası obtener la accion de control
necesaria para cada uno de los posibles casos. Dicho programa
genera una matriz en donde cada termino corresponde a la
accion de control, y cada corrimiento de filas y columnas
corresponde a los valores que toman las dos variables de
entrada (posicion y velocidad angular), de esta manera se
obtuvo una matriz con todas las salidas correspondientes, la
cual es exportada a una hoja de calculo para ser copiada en el
programa final. Despues de realizar la prueba con diferentes
resoluciones para cada variable, se llego a la conclusion de que
en el mejor escenario, cada variable puede tomar 100 valores
diferentes, por lo tanto se creo una matriz 100x100 para cada
articulacion, una buena resolucion teniendo en cuenta el rango
de valores en el que se mueve cada variable.
Figura 22. Superficies de control generadas por MATLAB.
0 0.05 0.1 0.15 0.2 0.25
Time [s]
0.84
0.845
0.85
0.855
0.86
0.865
0.87
Ang
ular
Pos
ition
Articulación A (Cadera Derecha)
Figura 23. Posicion de la articulacion A resultante de la simulacion concondiciones iniciales 0.84 para posicion y -0.8 para velocidad angular.
Luego de generar las seis matrices correspondientes a cada
articulacion, el siguiente paso fue escribir el programa final
en el IDE (Entorno de Desarrollo Integrado) de Arduino para
integrar todo lo obtenido en las simulaciones e implementarlo
sobre el prototipo para realizar las pruebas pertinentes. Es
en el IDE donde se deben declarar las variables de entrada
(seis sensores de flexion y un acelerometro), las variables de
salida (16 servomotores) y las seis matrices 100x100 que se
guardaron en la memoria del programa del microcontrolador
debido a que la memoria de datos no fue lo suficientemente
0 0.05 0.1 0.15 0.2 0.25
Time [s]
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Ang
ular
Vel
ocity
Articulación A (Cadera Derecha)
Figura 24. Velocidad angular de la articulacion A resultante de la simulacioncon condiciones iniciales 0.84 para posicion y -0.8 para velocidad angular.
grande para contener la informacion. Finalmente se toman
las lecturas de los sensores y, teniendo en cuenta que cada
elemento de la matriz es una combinacion entre las dos
variables de entrada, se busca el valor correspondiente a dicha
combinacion, que al final es el dato de salida que se debe
asignar a cada servomotor segun corresponda.
Finalmente se realizaron diferentes pruebas al prototipo para
comprobar que el esquema de control de equilibrio planteado
para el desarrollo de este proyecto funciona, las cuales se
0 0.05 0.1 0.15 0.2 0.25
Time [s]
-70
-60
-50
-40
-30
-20
-10
0
10
20
Con
trol
Act
ion
Articulación A (Cadera Derecha)
Figura 25. Accion de control articulacion A necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.84para posicion y -0.8 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
0.734
0.736
0.738
0.74
0.742
0.744
0.746
0.748
0.75
0.752
0.754
Ang
ular
Pos
ition
Articulación B (Rodilla Derecha)
Figura 26. Posicion de la articulacion B resultante de la simulacion concondiciones iniciales 0.75 para posicion y -0.7 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0
Ang
ular
Vel
ocity
Articulación B (Rodilla Derecha)
Figura 27. Velocidad angular de la articulacion B resultante de la simulacioncon condiciones iniciales 0.75 para posicion y -0.7 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
-1
0
1
2
3
4
5
6
7
8
9
Con
trol
Act
ion
Articulación B (Rodilla Derecha)
Figura 28. Accion de control articulacion B necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.75para posicion y -0.7 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time [s]
0.956
0.958
0.96
0.962
0.964
0.966
0.968
0.97
Ang
ular
Pos
ition
Articulación C (Tobillo Derecho)
Figura 29. Posicion de la articulacion C resultante de la simulacion concondiciones iniciales 0.97 para posicion y 0.3 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time [s]
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
Ang
ular
Vel
ocity
Articulación C (Tobillo Derecho)
Figura 30. Velocidad angular de la articulacion C resultante de la simulacioncon condiciones iniciales 0.97 para posicion y 0.3 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time [s]
0
10
20
30
40
50
60
70
Con
trol
Act
ion
Articulación C (Tobillo Derecho)
Figura 31. Accion de control articulacion C necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.97para posicion y 0.3 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
0.96
0.962
0.964
0.966
0.968
0.97
0.972
0.974
0.976
0.978
Ang
ular
Pos
ition
Articulación D (Cadera Izquierda)
Figura 32. Posicion de la articulacion D resultante de la simulacion concondiciones iniciales 0.98 para posicion y 0.8 para velocidad angular.
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18
Time [s]
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Ang
ular
Vel
ocity
Articulación D (Cadera Izquierda)
Figura 33. Velocidad angular de la articulacion D resultante de la simulacioncon condiciones iniciales 0.98 para posicion y 0.8 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
0
10
20
30
40
50
60
70
Con
trol
Act
ion
Articulación D (Cadera Izquierda)
Figura 34. Accion de control articulacion D necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.98para posicion y 0.8 para velocidad angular.
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
Time [s]
0.796
0.798
0.8
0.802
0.804
0.806
0.808
Ang
ular
Pos
ition
Articulación E (Rodilla Izquierda)
Figura 35. Posicion de la articulacion E resultante de la simulacion concondiciones iniciales 0.8 para posicion y -0.7 para velocidad angular.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
Time [s]
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Ang
ular
Vel
ocity
Articulación E (Rodilla Izquierda)
Figura 36. Velocidad angular de la articulacion E resultante de la simulacioncon condiciones iniciales 0.8 para posicion y -0.7 para velocidad angular.
0 0.01 0.02 0.03 0.04 0.05 0.06
Time [s]
-70
-60
-50
-40
-30
-20
-10
0
10
20
30
Con
trol
Act
ion
Articulación E (Rodilla Izquierda)
Figura 37. Accion de control articulacion E necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.8 paraposicion y -0.7 para velocidad angular.
0 0.1 0.2 0.3 0.4 0.5 0.6
Time [s]
0.933
0.934
0.935
0.936
0.937
0.938
0.939
0.94
0.941
0.942
Ang
ular
Pos
ition
Articulación E (Tobillo Izquierdo)
Figura 38. Posicion de la articulacion F resultante de la simulacion concondiciones iniciales 0.93 para posicion y 0.6 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25 0.3
Time [s]
0
0.1
0.2
0.3
0.4
0.5
0.6
Ang
ular
Vel
ocity
Articulación E (Tobillo Izquierdo)
Figura 39. Velocidad angular de la articulacion F resultante de la simulacioncon condiciones iniciales 0.93 para posicion y 0.6 para velocidad angular.
0 0.05 0.1 0.15 0.2 0.25
Time [s]
0
5
10
15
20
25
30
35
40
45
Con
trol
Act
ion
Articulación E (Tobillo Izquierdo)
Figura 40. Accion de control articulacion F necesaria para llevar las variablesde entrada al punto de referencia tomando como condiciones iniciales 0.93para posicion y 0.6 para velocidad angular.
encuentran recopiladas en un total de 6 videos en el sitio web
YouTube; dichos videos se relacionan a continuacion:
VIDEO 1:
https://youtu.be/CBT-4h2ADJg
Este fue el primer video de prueba del esquema de
control, aquı todos los componentes electronicos estan
energizados y se observa un movimiento repentino en
la rodilla izquierda, en este caso procedimos a reajustar
los conjuntos difusos correspondientes a la lectura del
sensor de flexion, para este caso el D, porque los datos
que tenıamos no estaban dentro del universo del discurso
para esta articulacion.
VIDEO 2
https://youtu.be/l4sazm-vgmo
Despues de ajustar las matrices difusas para cada union
y despues de ajustar las reglas de control, el sistema se
energiza con el programa final cargado en la placa y
observamos como se mantiene en equilibrio.
VIDEO 3
https://youtu.be/4RIDMYNV5 8
En este video observamos como los servomotores reac-
cionan al cambio de posicion de la planta.
VIDEO 4
https://youtu.be/OR9HLx7cRsg
En este video, mostramos el robot con cada articulacion
en una posicion diferente antes de energizarlo. Podemos
ver que las articulaciones buscan rapidamente su posicion
de equilibrio teniendo en cuenta las lecturas de los
sensores. Al final, el robot intenta caer hacia adelante,
puede deberse a que la superficie de cada pie es un poco
pequena para soportar el peso que se esta concentrando
en la parte superior del robot, sin embargo, durante
un tiempo corto se puede apreciar como el sistema se
mantiene en equilibrio.
VIDEO 5
https://youtu.be/a ATdRfUDEQ
Aquı el prototipo se muestra con condiciones iniciales
lejos del punto de equilibrio, y podemos ver como el
control lleva las uniones a dicho punto, asegurando ası
que el sistema permanezca en la posicion deseada.
VIDEO 6
https://youtu.be/JhB3WIW9bts
En este ultimo video mostramos como el robot mantiene
su posicion independientemente de las perturbaciones
externas (no muy fuertes), forzadas manualmente cuando
con la mano cambiamos la posicion de las articulaciones
V. CONCLUSIONES
En este proyecto se diseno e implemento un sistema de con-
trol de equilibrio sobre un prototipo de robot bıpedo, usando
como herramienta de control robusto la logica difusa, teniendo
en cuenta que para cada articulacion del robot se tienen unas
reglas de control especıficas. Inicialmente se desarrollo la
estrategia de control en MATLAB, se realizaron simulaciones
para cada articulacion con diferentes condiciones iniciales,
evidenciando ası que el sistema de control es funcional y
permite que cada articulacion vaya a su posicion de equilibrio
de manera rapida y sin sobrepasos. Finalmente se implemento
la estrategia de control en el prototipo, escribiendo un pro-
grama en el IDE de Arduino y cargandolo sobre la tarjeta de
adquisicion de datos seleccionada para realizar pruebas sobre
el mismo.
VI. TRABAJO FUTURO
Con el desarrollo de este proyecto de grado se lograron
identificar algunos aspectos que se pueden mejorar para futu-
ros proyectos en esta lınea de investigacion:
Con los sensores de flexion se presento el problema de que
al calibrar los angulos de los servomotores en la etapa de
adecuacion de la planta, se fue desgastando la pelıcula que
los protege, generando ası medidas erroneas y por ende, una
perdida total del sensor. Por esta razon, se recomienda tener
extremo cuidado con la manipulacion de este tipo de sensores,
o en su defecto, buscar otra alternativa para tomar datos de
posicion en una articulacion.
REFERENCIAS
[1] M. Claros, J. Rodriguez, and R. Soto, “Balance control of a biped robotin the coronal plane using foot sole cop trajectories,” in Control &
Automation (ICCA), 11th IEEE International Conference on, 2014.
[2] F. Martinez and D. M. Acero, “Esquema hıbrido difuso-deslizante para elcontrol de equilibrio de un robot bıpedo,” XXX Jornadas de Automatica
JA09, vol. 1, pp. 1–6, 2009.
[3] D. Aguilar and A. Vivas, “Modelado y control de un robot bıpedode nueve grados de libertad,” in VIII Congreso de la Asociacion
Colombiana de Automatica, pp. 1–6, 2009.
[4] A. Al-Busaidi, “Development of an educational environment for onlinecontrol of a biped robot using matlab and arduino,” in 2012 9th France-
Japan & 7th Europe-Asia Congress on and Research and Education
in Mechatronics (REM), 2012 13th Int’l Workshop on Mechatronics
(MECATRONICS), pp. 337–344, 2012.
[5] D. Zarate and F. H. Martınez, “Anthropometric humanoid robot conceptfor research in control,” Vision Electronica, vol. 1, pp. 1–18, 2013.
[6] D. Aguirre and J. Molina, “Mutibody modelization of a biped robot,”in 2012 16th IEEE Mediterranean Electrotechnical Conference (MELE-
CON), pp. 985–988, 2012.
[7] X. Zhou, Y. Guan, C. Cai, L. Jiang, H. Zhu, and X. Zhang, “Modelingand planning for stable walking of a novel 6-dof biped robot,” in 2010
IEEE International Conference on Robotics and Biomimetics (ROBIO),pp. 7–12, 2010.
[8] C. Hernandez, R. Soto, and E. Rodriguez, “Design and dynamic mo-deling of humanoid biped robot e-robot,” in 2011 IEEE Electronics
Robotics and Automotive Mechanics Conference (CERMA), pp. 191–196, 2011.
[9] M. A. Adly, W. Amirfaiz, W. Faizura, I. Elamvazuthi, and M. Begam,“Design and kinematic analysis of biped robot,” in 2010 International
Conference on Intelligent and Advanced Systems (ICIAS), pp. 1–5, 2010.ISBN 978-1-4244-6623-8.
[10] H. Haghighi and M. Nekoui, “Computed torque controller for an 8degrees of freedom biped robot based on zero moment point,” 2011 2nd
International Conference on Control, Instrumentation and Automation
(ICCIA), vol. 1, pp. 479–484, 2011.[11] A. Botas and R. Solea, “Design and control of a biped robot,” in
2011 15th International Conference on System Theory, Control, and
Computing (ICSTCC), pp. 1–5, 2011.