Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
EQUILIBRISTA
Henry Vinicio Pilamala Sislema
henrypila95@gmail.com
Estudiante, ESPOCH, EIECRI
Resumen— Este articulo tiene como finalidad describir la construcción de un robot balancín
(equilibrista) desde la toma de medidas para el mismo, obtención de la planta, descripción de los
materiales a utilizar, selección de un controlador adecuado para la planta obtenida y su implementación
en forma digital, la programación se realizará en la plataforma Arduino debido a que esta proporciona
un leguaje de fácil comprensión, librerías específicas para los módulos a utilizar que facilitan su uso y
programación, además existe bastante información de referencia de los procedimientos antes citados
que ayudaran en el desarrollo del robot. Commented [FRCA1]: Se realizó un robot…..
Se utilizó una configuración…
Abstract— The purpose of this article is to describe the construction of a balancing robot from taking Se utilizó un control….
measurements for it, obtaining the plant, describing the materials to be used, selecting a suitable Se analizó controladores….
controller for the plant obtained and its implementation in the form digital, the programming will be
carried out in the Arduino platform because it provides a language of easy comprehension, specific
libraries for the modules to be used that facilitate its use and programming, in addition there is a lot of
reference information of the aforementioned procedures that will help in the development of the robot.
1. INTRODUCCIÓN
Los robots auto equilibristas han sido de gran interés en los últimos años tanto para estudiantes,
ingenieros e investigadores. En si básicamente es un péndulo invertido sobre dos ruedas. A
diferencia de los demás robots sobre ruedas que normalmente son estables, el balancín es un
sistema inestable por naturaleza [1]. La complejidad en el diseño de este tipo de robot hace que
necesite ser controlado constantemente para mantenerse en sentido vertical y que la reacción
ante perturbaciones externas sea rápida y no oscilante.
La aplicación de este tipo de robots a nivel comercial ha sido muy reconocido y es usado
principalmente en el transporte personal, este fue popularizado con le lanzamiento del Setway PT
[2], usado internamente en industrias, centros comerciales y turismo. Su arquitectura lo hace más
atractivo que los vehículos convencionales de dos ruedas además que en su manejo puede
realizar giros bruscos y adentrarse en espacios reducidos.
En el presente se mostrará las etapas de diseño y construcción de un robot de este tipo para ello
se utilizará el módulo MPU-6050 [3] que dará la información necesaria de la inclinación del robot
la cual será procesada por los sistemas de control (micro controlador Arduino) para su respectivo
algoritmo de control necesario para mantenerse equilibrado.
2. ESTADO DEL ARTE
Los robots balancín se basan en el principio del péndulo invertido el cual consiste en un péndulo o
varilla que gira libremente sobre uno de sus extremos. El origen de estos robots se sitúa por los años
1986 en la universidad de Electro comunicaciones de Chofu Japón, el profesor Kazuo Yamafuji creo el
primer robot capaz de simular el comportamiento de un péndulo invertido [4]. El diseño del robot consta
de un eje provisto de ruedas y un carro que contenía los dispositivos de control y estabilización.
Un prototipo mas actual fue desarrollado por el año 2000 [5] en los laboratorios de electrónica industrial
del “Swiss Federal Institute of Technology” en el cual añadieron pesas para simular el peso de una
persona, el prototipo llamado “Joe” es la base de los SETWAY.
El ultimo desarrollo de estos robots se basa en el equilibrio sobre una bola para lo cual constan de un
algoritmo preciso de control de tres motores diferentes para su movimiento omnidireccional, el
desplazamiento necesita un tipo de rueda especial que permite moverse en todas las direcciones [6].
Detección de posición
Como referencia de equilibrio del robot se toman los datos del módulo de posicionamiento cuando este
se encuentre de pie y estático. Estos datos serán la consigna para que el robot sepa a qué posición
debe tender. La posición será variable en presencia de perturbaciones externas y el módulo entregará
todos los datos discretos de los ejes x, y, z para la corrección de posicionamiento
Equilibrio
El equilibrio de robot depende de la rápida respuesta y torque de los motores accionados por el módulo
L289N (puente H). El algoritmo de control mediante la información de posición comandara a los
motores para compensar el ángulo y tender a situarse en el set point que es el punto de equilibrio del
robot.
Control de motores
El control de los motores tanto de conmutación e inversión de giro se lo realizo con el modulo L289N.
Se realiza estas acciones de acuerdo a como lo solicite el algoritmo planteado.
3. METODOLOGÍA
3.1 Estructura
El diseño del robot está basado en las especificaciones que brinda el Concurso de Robótica
“RIOTRONIC 2018” de la ESPOCH, como se muestra a continuación las siguientes instrucciones que
se deben tomar en cuenta para poder participar sobre todo las dimensiones del robot. Commented [FRCA2]: Mal
Las siguientes características son las que todos los robots deben de llevar:
Se debe de armar un robot de uno o dos puntos de apoyo, que pueda mantener el equilibrio sin
soporte externo.
El robot no debe ser construido de tal manera que pueda dañar el ambiente u otros robots. Ver las
especificaciones de Seguridad.
No puede llegar a pesar más de 20 kg, ni podrá utilizar un motor de combustión interna o externa.
El robot debe entrar en las dimensiones de 1m x 1m x 1m durante su recorrido.
El equilibrio debe ser autónomo. La dirección puede ser controlada por una unidad de R/C.[6]
3.1.1 Medidas de Seguridad
Todo robot que pese más de 3 Kg debe demostrar un adecuado mecanismo de seguridad de parada,
caso contrario no se le permitirá competir. [6]
El diseño del chasis es un factor importante en el éxito o no de la implementación del robot, dado que
según su forma permitirá realizar desplazamientos con mayor o menor exactitud al recorrer el laberinto.
Para este caso se diseñó un chasis de forma circular con los respectivos cortes para el ingreso de las
ruedas que luego, acompañado con otras características de implementación, nos permitiría realizar
movimientos más exactos (utilizamos otros aspectos en el diseño para lograr que el centro de giro de
la circunferencia sea exactamente el centro del chasis por lo que la batería ocupada lo que representa
el elemento más pesado se colocó en el centro para dar mejor control al giro). El diseño del circuito se
realizo en el software de simulación EAGLE donde nos permite realizar nuestro chasis de forma circular
para la distribución de peso. [7]
Un péndulo invertido es un péndulo que tiene su masa por encima de su punto de pivote.
El péndulo invertido es conocido por ser uno de los problemas más importantes y clásicos de la teoría
de control. Considerando que un péndulo normal es estable cuando se cuelga hacia abajo, un
péndulo invertido es inestable, y debe ser equilibrado activamente con el fin de permanecer en
posición vertical. El sistema está compuesto por un carro en el cual se coloca una barra que puede
girar libremente. El objetivo es que el carro se desplace para compensar el movimiento de caída al
que tendera la barra, y como consecuencia esta debe mantenerse en equilibrio.
Fuente: https://www.researchgate.net/figure/237039113_fig2_Figura-2-Vista-lateral-del-pendulo-invertido-
sobre-dos-ruedas.
3.1 Electrónica
3.1.4 Acelerómetro
Uno de los elementos que utiliza los IMU´s para el cálculo de la posición y la orientación de un objeto
en un espacio tridimensional es el acelerómetro. Este instrumento está destinado a obtener medidas
absolutas de las aceleraciones en tres ejes: X, Y y Z.
Para construir este acelerómetro en un MEMS (Microelectromachanical System) [8], se emplea una
estructura micromecanizada de polisilicio construida sobre una oblea de silicio. Los muelles de
polisilicio suspenden la estructura sobre la oblea y le proporciona resistencia para soportar las
aceleraciones.
Fuente: https://www.luisllamas.es/.
Fuente: https://www.labotec.pe/en_US/shop/product/frentej-8-giroscopio-acelerometro-mpu-6050-281
3.1.5 Motorreductores
Para el caso de los motores dc, estos cumplen la función de darle movimiento al robot. Dependiendo
de la función que realice, la superficie sobre la cual se mueva, el tamaño, el peso o inclusive la precisión
de los motores que necesite el robot existen varias clases, entre los cuales se mencionan: motores de
corriente continua, motores paso a paso o servomotores. Los reductores ó motorreductores son
apropiados para el accionamiento de toda clase de máquinas y aparatos, que necesitan reducir su
velocidad en una forma segura y eficiente. Las transmisiones de fuerza por correa, cadena o trenes
de engranajes que aún se usan para la reducción de velocidad presentan una regularidad perfecta
tanto en la velocidad como en la potencia transmitida, mayor eficiencia en la transmisión de la potencia
suministrada por el motor. Este motor reductor es ideal, para usar en los proyectos donde requieres
girar una polea, un elevador o para las llantas de tu robot. [10] Commented [FRCA3]: Mal redactado
De acuerdo a otro paper se considra tales motores
Características
Voltaje de operación: 3 - 6 V
Corriente sin carga (3 V): 150 mA
Corriente sin carga (6 V): 200 mA
Velocidad sin carga (3 V): 90 RPM + / - 10 %
Velocidad sin carga (6 V): 200 RPM + / - 10 %
Material: Plástico
Color: Amarillo
Engranaje de plástico
Doble Eje
Dimensiones: 7 cm X 3.7 cm X 2.2 cm
Modelo: DC3V-6V. [7] Commented [FRCA4]: No va
El módulo puente H L298N es una tarjeta para el control de motores de corriente directa, motores a
pasos, solenoides y en general cualquier otra carga inductiva. La tarjeta está construida en torno al
circuito integrado L298N, el cual dispone en su interior de 2 puentes H independientes con capacidad
de conducir 2 amperios constantes o 4 amperios en picos no repetitivos. La tarjeta expone las
conexiones hacia el motor a través de bloques de terminales (clemas), mientras que las entradas de
control y habilitación del puente H se exponen a través de headers macho estándar para facilitar todas
las conexiones.
Esta tarjeta es ideal para controlar motores en pequeños robots como seguidores de líneas, zumos,
robots de laberinto, etc. El L298N también es una excelente opción para manejar motores a pasos
bipolares. Recomendamos utilizar cables tipo DuPont para conectar las señales de control. [11]
Características
El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que está basado en un
microcontrolador RISC, combinando 32 KB ISP flash una memoria con la capacidad de leer mientras
escribe, 1 KB de memoria EEPROM, 2 KB de SRAM, 23 líneas de E/S de propósito general,
32 registros de proceso general, tres temporizadores flexibles/contadores con modo de
comparación, interrupciones internas y externas, programador de modo USART, una interfaz serial
orientada a byte de 2 cables, SPI puerto serial, 6-canales 10-bit Conversor A/D (canales
en TQFP y QFN/MLF packages), "watchdog timer" programable con oscilador interno, y cinco modos
de ahorro de energía seleccionables por software. El dispositivo opera entre 1.8 y 5.5 voltios. Por medio
de la ejecución de poderosas instrucciones en un solo ciclo de reloj, el dispositivo alcanza una
respuesta de 1 MIPS, balanceando consumo de energía y velocidad de proceso. [12]
Para el controlador tomamos en cuenta las entradas y salidas que este tiene para poder ingresar las
lecturas de los sensores, el ingreso del pwm y las respectivas alimentaciones. Lo cual se muestra en
la siguiente tabla.
NUMERO
FUNCION PUERTOS
DE PIN
PD0 2 Rx
Serial
PD1 3 Tx
PB1 15 Enable 1
PWM
PB2 16 Enable 2
PD2 4
PD3 5
PUENTE H
PD4 6
PD7 13
PC0 23 Sensor 1 Frontal
SENSORES
PC1 24 Sensor 2 Late. Der
SHARP
PC2 25 Sensor 3 Late. Izq
PULSADORES PB0 14
PB3 17
PB4 18
PB5 19
LED PC3 26
PC4 27
TABLA 1 . Distribución de pines en el microcontrolador
Para lograr un prototipo autónomo se utilizaro dos fuentes de alimentación independientes: en este
caso se hizo uso de una batería lipo de 11.1V con un paquete de 3 celdas, a una carga de 2200 mAh.
La cual cuenta con una descarga continua de 25C y una velocidad de descarga de pico de 70c. Lo
cual es suficiente para alimentar la placa y los motores el voltaje no va directamente a la placa, sino
que antes pasa por un regulador de voltaje. Esta batería se colocó en el centro de la placa en la parte
inferior para no desfavorecer el equilibrio y el punto de apoyo de la placa.
Fuente: https://articulo.mercadolibre.com.mx/MLM-591756506-bateria-lipo-2200mah-111v-3s-25c-turnigy-dji-phantom-fc40-
_JM
4. CONTROL Y ALGORITMO
Para conservar el balance del robot los motores deben contrarrestar el fallo del robot, para esto el
balancín requiere principalmente de una retroalimentación y de un elemento de corrección. El elemento
de retroalimentación es el MPU-6050 el cual da aceleración y rotación en los tres ejes (x, y, z), estos
son usados por el Arduino para saber la orientación actual del robot. El elemento corrector es la
combinación de las ruedas con el motor.
Lo primero es probar el correcto funcionamiento del MPU-6050, para ello se uso un programa propio
de la librería del MPU en el IDE de Arduino, al darnos valores constantes y ante perturbaciones ver
que los mismos varían podemos decir que el módulo trabaja correctamente.
Para el algoritmo del robot se utilizó librerías externas[13], por facilidad y fácil comprensión, estas
fueron principalmente del MPU-6050, L289N y PID para el control.
La librería “LMotorController” es usada para manejar los motores con el módulo L289N, las librerías
“I2CDev” y “MPU6050_6_Axis_MotionApps20” son para lectura del MPU6050.
#include <PID_v1.h>
#include <LMotorController.h>
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
En teoría de control [14] el PID mantiene estable alguna variable, en este caso la posición del robot, P
es la parte del controlador proporcional, I es el control integral y D es el control derivativo. Cada uno
de estos parámetros tiene ganancias llamadas kp, ki y da respectivamente. El PID provee de la
corrección entre el valor deseado y el valor actual. La diferencia entre entrada y salida es llamada error.
El controlador PID reduce el error al valor más pequeño posible por ajuste continuo de la salida.
En el robot la entrada fue declarada por software. El MPU6050 lee la inclinación actual y alimenta al
algoritmo del PID el cual realiza cálculos para actuar sobre los motores y mantener estable la posición.
Para calcular los valores de PID [16] se utilizó una afinación manual poniendo los valores de kp,ki y kd
en cero, luego aumentando kp hasta encontrar una oscilación sostenida, después aumentado kd hasta
que el disminuyan considerablemente las oscilaciones. El robot tendrá pequeñas oscilaciones, pero
estará estable y para que se estabilice en el tiempo ajustaremos el ki lo que nos llevara a que el robot
se estabilice ante perturbaciones.
Para los motores se ajustó a una velocidad=0.5, este accionar sobre los motores se lo realiza con
PWM, pero con la librería usada solo vasta declarar los pines del módulo utilizado procurando ver que
los dos motores vayan a moverse en la misma dirección.
En este robot se utilizo un comando de la librería del L298N y con condicionamiento para que cuando
se estabilice el robot avance mientras compensa la posición.
“motorController.move(output, MIN_ABS_SPEED);”
5. ANÁLISIS DE RESULTADOS
Durante la realización del proyecto, como estudiantes se vieron enfrentados nuestros conocimientos,
frente a la realización con éxito de este. Usando todos los conocimientos adquiridos en las aulas se
procedió a la planeación, diseño y ejecución del prototipo.
El diagrama de la figura , representa las conexiones eléctricas al Arduino uno del modulo MPU-6050
y el modulo driver L298N.
Se tuvo que sintonizar el controlador PID, usando el método de prueba y error, encontrando cada
una de las contantes. Commented [FRCA7]: no especifica el control
Discusión de resultados Commented [FRCA8]: primer controlador que se utilizó,
tabla de experimentos vs resultados
6. CONCLUSIONES
Se podría utilizar materiales más livianos para la elaboración de un chasis más ligero y personalizado
para mejorar la distribución de la masa y por consiguiente el funcionamiento del robot. Commented [FRCA9]: el robot funciona, si existe un
perturbación la corrige hasta cierto punto
Se puede Incorporar al robot una batería de mayor duración y que pueda controlarse el nivel de carga
de esta.
7. REFERENCIAS
[1] Sundin, C. and Thorstensson, F. (2013). Autonomous balancing robot. Masters of Science. Chalmers University of
Technolgy. Commented [FRCA10]: no es el formato de las referencias
[2] Setway PT Disponible en: http://www.segway.com Extraído: 14/07/2018
[3] Invensense.com. (2016). MPU-9250 | InvenSense. [online Disponible en: https://www.invensense.com/products/motion-
tracking/9-axis/mpu-9250 Extraído: 14/07/2018
[4] Feng, Q., Yamafuji, K., “Design and simulation of control systems of an inverted pendulum”, Robotica, 6 (3), pp. 235-241
(1988)
[5] Grasser, F., D'Arrigo, A., Colombi, S., Rufer, A.C., “JOE: A mobile, inverted pendulum”, IEEE Transactions on Industrial
Electronics, 49 (1), pp. 107-114 (2002)
[6] CLUB DE ROBÓTICA-ESPOCH EVENTO ROBOTRONIC 2018. Accessed December 2018 [Online]. Extraido:
https://liveespochedu-my.sharepoint.com/personal/club_robotica_espoch_edu_ec/Documents/Forms/All.aspx?slr
[7] F. Sanchez, O. Rodriguez. “Robot autónomo para recorrer un laberinto”, Proyecto codiseño de aplicaciones. Universidad
Tecnológica Nacional. 2011.