Está en la página 1de 12

DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE UN ROBOT

EQUILIBRISTA
Henry Vinicio Pilamala Sislema
henrypila95@gmail.com
Estudiante, ESPOCH, EIECRI

Dario Gabriel Armijos Vilema


dario.armijos@espoch.edu.ec
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.

Índice de términos— .Balancing, Arduino, PID, MPU6050, L298N

Index Terms— Balancing, Arduino, PID, MPU6050, L298N

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

2.1 Robot Balancín

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.

Figura 1 Robot de Kazuo Yamafuji


Fuente: Feng, Q., Yamafuji, K., “Design and simulation of control systems of an inverted pendulum”, Robotica, 6 (3), pp. 235-
241 (1988)

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.

Figura 2. Robot “Joe”


Fuente : 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)

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].

2.2 Aspectos clave del robot Balancín

 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]

3.1.2 Mecanismo idóneo para la parada de seguridad

El constructor del robot es responsable de diseñar el mecanismo de parada de seguridad. Algunas


opciones son:

 Un mecanismo inalámbrico que sea accionado por el operador.


 Correa con conexión de cable manipulado por un caminante junto al robot.
 Algún otro mecanismo, con el permiso previo de los jueces.

El mecanismo debe cumplir al menos con las siguientes consideraciones:

 En cualquier caso, el mecanismo de parada de seguridad (paro de emergencia) debe ser a


prueba de fallas.
 El operador del robot debe demostrar que al dejar caer el mismo o accionar el mecanismo de
parada, éste termine su funcionamiento y no necesite ningún movimiento adicional.
 El mecanismo de parada no necesariamente cortará la energía primaria, siempre que se pueda
demostrar aceptablemente que el robot puede detenerse completamente (mediante un LED
indicador). [6]
3.1.3 Chasis

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]

Figura 3. Chasis del robot de balance.

3.1.2 Principio de Funcionamiento

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.

Figura 4. Diagrama de funcionamiento del péndulo


invertido.

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.

Figura 5. Ejes del sensor MPU 6050.


Fuente: https://www.invensense.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf

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.

Figura 6 Sensor de aceleración (MEMS).

Fuente: https://www.luisllamas.es/.

Cuando el dispositivo se somete a aceleraciones la parte interior (puntos) se deforma y se desplaza


respecto a la parte fija, de forma similar al dispositivo imaginario basado en muelles. El
desplazamiento es detectado a través de la variación de la capacidad del sistema. Por otra parte, los
acelerómetros disponibles normalmente son de 3 ejes, por lo que son capaces de medir la aceleración
a la que está sometido el sensor en X, Y y Z independientemente. De esta manera se puede conocer
simultáneamente la magnitud y dirección de la aceleración medida de forma absoluta. Para entender
esto, supondremos que el acelerómetro es un cubo con una bola en su interior. Cada cara del cubo
será una dirección del espacio y la cara opuesta representará la dirección negativa del espacio. Si nos
situamos en un lugar que no esté afectado por campos gravitatorios, la aceleración a la que está
sometida la bola del interior será cero, y por consiguiente la aceleración en los tres ejes del espacio
también será cero.

Figura 7. Unidad de navegación inercial MPU-6050.

Fuente: https://www.labotec.pe/en_US/shop/product/frentej-8-giroscopio-acelerometro-mpu-6050-281

Especificaciones del MPU-6050

 Salida digital de 6 ejes.


 Giroscopio con sensibilidad de ±250, ±500, ±1000, y ±2000dps
 Acelerómetro con sensibilidad de ±2g, ±4g, ±8g y ±16g
 Algoritmos embebidos para calibración
 Sensor de temperatura digital
 Entrada digital de video FSYNC
 Interrupciones programables
 Voltaje de alimentación: 2.37 a 3.46V
 Voltaje lógico: 1.8V±5% o VDD
 10000g tolerancia de aceleración máxima. [9]

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

Figura 8. Motorreductor amarillo 9v, con su rueda acoplada.


Fuente: https://www.carrod.mx/products/motor-reductor-6-v-200-rpm-3-v-150-rpm

3.1.6 Driver del Motor L298N

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

 Circuito Integrado principal: L298N


 Corriente pico de operación: 4 Amperios
 Corriente constante de operación: 2 Amperios
 Bajo voltaje de saturación en los transistores de salida
 Corte de operación por sobrecalentamiento
 Voltaje de alimentación de motores de hasta 46 volts
 Excelente inmunidad al ruido
 Ideal para controlar motores en aplicaciones de robótica. [11]
Figura 10. Modulo L298N.
Fuente: https://www.geekfactory.mx/tienda/motores-y-controladores/modulo-puente-h-l298n/

3.2.4 Controlador Microprocesador ATMEGA 328

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]

Figura 11. Microprocesador ATmega 328

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

3.2.5 Alimentación Batería Lipo

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.

Figura 12. Batería lipo 11.1V.

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.

Commented [FRCA5]: simulink

Figura 13. Diagrama de bloques del Robot


Fuente: http://www.askix.com/uno-mismo-equilibrio-pendulo-al-reves_7.html

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.

Commented [FRCA6]: no vale

Figura 14. Esquema eléctrico del robot.


Las siguientes figuras muestran el diseño implementado, funcionando y cumpliendo con los objetivos
y metas planteadas al inicio.

Figura 15. Vista frontal del Robot de Balance.

Figura 16 . Vista Lateral del Robot de Balance.

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.

[8] Disponible en: https://es.wikipedia.org/wiki/Sistemas_microelectromec%C3%A1nicos


[9] MPU6050 Arduino, Acelerómetro y Giroscopio Disponible en: https://hetpro-store.com/TUTORIALES/modulo-acelerometro-
y-giroscopio-mpu6050-i2c-twi/
[10 Motoreductores Amarillos, detalles tecnicos Dsponible en: https://www.carrod.mx/products/motor-reductor-6-v-200-rpm-3-v-
150-rpm.
[11]Geek Factory, Modulo Driver L298N. Disponible en: https://www.geekfactory.mx/tienda/motores-y-controladores/modulo-
puente-h-l298n/
[12] Microchip. Datasheet. Disponible en: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-
Microcontroller-ATmega328-328P_Datasheet.pdf Extraído: 18/07/2018

[13] Librerias Disponible en: https://github.com/br3ttb/Arduino-PID-Library/ Extraído: 18/07/2018


[14] K. Ogata, Ingeniería de Control Moderna, Quinta ed., Madrid: Pearson Educación, 2010.
[15] Planta de control Balancín Disponible en : http://www.askix.com/uno-mismo-equilibrio-pendulo-al-reves_7.html Extraído:
18/07/2018
[16] Moyano, E. (s.f.). Arduino PID - Guía de uso de libreias. Disponible en http://brettbeauregard.com/blog/wp-
content/uploads/2012/07/Gu%C3%ADa-de-uso-PID-para-Arduino.pdf Extraído: 18/07/2018