Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/348993028
CITATIONS READS
0 1,693
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Jose Alejandro Concepción Álvarez on 03 February 2021.
Trabajo de Diploma
presentado en opción al título de
ingeniero en Automática
junio de 2019
Dedicada a mis padres, a mi hermana y a mi novia, las personas más
importantes en mi vida.
Agradecimientos
A mis amigos Tony, Roger y Joaquin por todo lo que hicieron durante
la carrera para ayudarme a ser mejor.
iii
A la empresa de desarrollo de software Peoplegoto por el apoyo y los
conocimientos aportados para la implementación de la aplicación móvil
desarrollada en este trabajo.
Resumen
v
Abstract
vi
Índice general
Introducción XIII
vii
2.5. Obtención del ángulo de inclinación . . . . . . . . . . . . . . 28
2.5.1. Método basado en un acelerómetro . . . . . . . . . . . 30
2.5.2. Método basado en un giroscopio . . . . . . . . . . . . 32
2.5.3. Filtro complemento . . . . . . . . . . . . . . . . . . . 34
2.6. Obtención de las velocidades . . . . . . . . . . . . . . . . . . 39
2.6.1. Medición de velocidades usando encoders . . . . . . . 39
2.6.2. Medición de velocidades usando un sensor inercial . . 45
2.7. Conclusiones parciales . . . . . . . . . . . . . . . . . . . . . . 47
Conclusiones 84
Recomendaciones 85
Bibliografía 86
Índice de figuras
x
2.18. Filtro complemento con el sistema bajo perturbación . . . . . 39
2.19. Vista superior del robot . . . . . . . . . . . . . . . . . . . . . 40
2.20. Formas de onda de un codificador de cuadratura . . . . . . . 41
2.21. Decodificando al encoder . . . . . . . . . . . . . . . . . . . . 42
2.22. Prueba del algoritmo de tiempo fijo para un dt= 20 ms . . . 44
2.23. Prueba del algoritmo de tiempo fijo para un dt= 5 ms . . . . 45
2.24. Diagrama de aceleraciones obtenidas por el acelerómetro . . . 46
xii
Introducción
Antecedentes y Motivación
En un esfuerzo conjunto entre la Universidad Tecnológica de La Habana
y la Universidad de La Habana, se han desarrollado varias investigaciones
sobre robótica móvil, generalmente en plataformas con modelos mecánicos
diferenciales. Existen diversas investigaciones para incorporarles módulos
xiii
que resolver tareas como la planificación de trayectorias, localización rela-
tiva, detección y evasión de obstáculos, entre otras. Hasta ahora, se han
presentado trabajos donde el robot no requiere solucionar la tarea de man-
tenerse en equilibrio, debido a que por la naturaleza del diseño y la cantidad
de ruedas sobre un mismo plano, esto no constituye un problema en las
plataformas usadas con anterioridad.
Situación Problema
Se desea diseñar un robot de dos ruedas sobre una plataforma hardwa-
re basada en un microcontrolador Arduino, que sea capaz de mantener el
equilibrio de manera autónoma. Pero, hasta el momento, los robots desa-
rrollados en el grupo de investigación del centro, poseen tres o más ruedas
en su diseño mecánico, lo que los hace estables en estado de reposo. Por
lo tanto, las plataformas software con las que se cuenta no contemplan el
control activo sobre el equilibrio del robot.
Problema a resolver
No ha sido desarrollado en el grupo de investigación del centro un pro-
totipo de robot basado en microcontrolador Arduino, que sea capaz de au-
tobalancearse.
Objeto de estudio
Robots móviles autobalanceados y sus algoritmos de control.
Campo de estudio
Robótica móvil sobre ruedas, algoritmos de control en sistemas no linea-
les y técnicas de medición.
Objetivo
Diseñar un robot autobalanceado basado en microcontrolador Arduino.
Objetivos específicos
1. Implementar el filtro complemento como método de fusión de sensores,
para obtener la medición correcta del ángulo de inclinación del robot.
Hipótesis
Usando una plataforma hardware, basada en microcontrolador Arduino
y algoritmos de control de tipo PID, es posible construir un robot con dos
ruedas que sea capaz de autobalancearse.
1
Capítulo 1. Generalidades de los robots autobalanceados sobre dos ruedas 2
sistema [6].
Wy
ICR
Yr
vl
R(t) Xr
Yr
vr
L
r
Xr Wx
Donde:
r : radio de las ruedas.
L : separación entre las ruedas.
vl : velocidad tangencial de la rueda izquierda.
vr : velocidad tangencial de la rueda derecha.
R(t) : radio instantáneo de la curvatura del robot cuando conduce sobre
una trayectoria.
El radio R(t) es determinado por la distancia entre el punto medio del
eje que pasa por el centro de ambas ruedas y el punto ICR. El punto ICR
se le denomina centro instantáneo de dicha curvatura [6].
Donde:
a b yp
θ θ
xp
θ
xp g
ω
θ
a yp
g
Donde:
xp , yp : ejes coordenados del cuerpo del péndulo.
a b c
y
a b c
x
Figura 1.6: (a) Diseño de un prototipo real, (b) Vista lateral del robot so-
bre el plano, (c) Aproximación para extraer las ecuaciones dinámicas de
movimiento del sistema.
g : aceleración de la gravedad.
Yw+
0
0
Yr
0
-90
0 90
Xr
ω Xr
F
v
Xw+
- -
estimación del ángulo
de inclinación
estimación de velocidad
Filtro de
Encóder
Kalman
x : variable a controlar.
r
ω = (θ˙r − θ˙l ) (1.6)
l
Este controlador es similar al anterior, debido a que existe un control de
velocidad, que le impone la referencia de ángulo de inclinación al controlador
interno, el cual se encarga de minimizar la diferencia de ángulo entre el eje
vertical imaginario, descrito por el vector fuerza de gravedad y el cuerpo del
robot. Ambos controladores son de tipo PID, pero esta variante de solución
incluye un tercer controlador de tipo PD, el cual controla la orientación del
robot. El mismo no tiene impacto en las acciones de control principales[21].
Con esto, el robot además de ir a una velocidad deseada en línea recta sin
caerse, también puede realizar giros, por lo que con una capa más alta de
control se puede realizar una planificación de trayectorias y obtener distin-
tos valores de v y ω para cada punto del plano cartesiano al que se desee ir
(figura 1.10).
Capítulo 1. Generalidades de los robots autobalanceados sobre dos ruedas 13
r
2
Vr
Θ
vR - - +
+ Robot
+
+
PID PID Autobalanceado ωr
+ +
Vl ωl +
ωR +
- -
PD
+ -
r
L
ke
x
+ u
r + Controlador
ku Robot
Difuso Θ
- -
d
dt kec
kp
PD
d
kd dt
r + u + x 1 x y
B s C
- +
Donde:
C : matriz de salida.
Donde:
AT P − P A + Q − P BR−1 B T P = 0 (1.8)
K = R−1 B T P (1.9)
u = −Kx (1.10)
Donde:
estos sensores hay que procesarlas y generalmente, hay que aplicarles filtros
que combinen las lecturas de cada uno de ellos para así obtener la medición
con la menor incertidumbre posible. Los más usados en los robots autoba-
lanceados son el filtro de Kalman [26] y los filtros complemento.
Capítulo 2
Sistemas de medición de
variables del robot
17
Capítulo 2. Sistemas de medición de variables del robot 18
Sistemas odométricos
fotorreceptor
diodo emisor
de luz
Disco
2.3.1. Acelerómetro
Se denomina acelerómetro a los instrumentos destinados a medir acele-
raciones. Las cuales no necesariamente son las asociadas al cambio de ve-
locidad experimentado por un cuerpo. El tipo de aceleración medida por
estos sensores, está asociada con el fenómeno del peso que experimenta una
masa de prueba, que se encuentra en el marco de referencia del dispositivo
( figura 2.2). Un ejemplo donde la aceleración medida por un acelerómetro
y la aceleración real que posee un cuerpo en ocasiones difieren, se aprecia
cuando el sensor brinda un valor estando el cuerpo en reposo (ya que la
masa tiene asociado un peso). Si se aplica la segunda ley de Newton en estas
condiciones, la sumatoria de las fuerzas es 0 en los ejes vertical y horizontal,
por lo que la aceleración real de un cuerpo en reposo es igual a 0.
Esto demuestra que el acelerómetro mide una fuerza, que es proporcional a
la masa, por la “compresión” que esta efectúa sobre el sensor. La forma de
medir esta compresión difiere en función del principio físico que utiliza el
sensor, ya que pueden ser de materiales piezoeléctricos, mecánicos, y entre
otros.
En la figura 2.2 se analiza el principio de funcionamiento de un acelerómetro
mecánico simple.
A partir de la segunda Ley de Newton :
F = ma (2.1)
1
inertial navigation system
Capítulo 2. Sistemas de medición de variables del robot 21
F = −kx (2.2)
Igualando las ecuaciones 2.1 y 2.2 se obtiene la ecuación 2.3
Donde:
m : masa constante
−kx
a= (2.3)
m
Los acelerómetros electrónicos permiten medir la aceleración en una,
dos o tres dimensiones del espacio. Esta característica permite obtener la
inclinación de un cuerpo que se encuentra en reposo, puesto que es posible
determinar con el acelerómetro la componente de la aceleración de la gra-
vedad que actúa sobre el cuerpo. Si el cuerpo está sometido a otras fuerzas,
el sensor obtendrá otras aceleraciones en sus componentes, por lo que resul-
taría imposible determinar la dirección del vector fuerza de gravedad con
exactitud usando solo el acelerómetro.
Capítulo 2. Sistemas de medición de variables del robot 22
2.3.2. Giroscopio
Convencionalmente un giróscopo consiste en un cilindro giratorio mon-
tado en dos anillos que le permiten rotar en los tres ejes del espacio (figura
2.3). Por el efecto de la conservación del momento angular el anillo giratorio
se resiste a los cambios de orientación. Cuando el giróscopo es sometido a
una rotación, la rueda permanecerá en una constante orientación global y
los ángulos entre los anillos adyacentes cambian, los cuales son leídos y de
esta manera se puede obtener el cambio de orientación.
Los giroscopios son muy utilizados en los sistemas de navegación; por ejem-
plo: en los aviones, en los sistemas guías de misiles, en los barcos y en los
drones. Hoy se encuentran en los teléfonos inteligentes, junto con los acele-
rómetros para el control de la inclinación y los giros de las pantallas táctiles.
El siguiente ejemplo ilustra una aplicación sencilla, en la que se usa el giros-
copio para obtener la orientación de un robot.
Capítulo 2. Sistemas de medición de variables del robot 23
zr
zr
dθ
ω= (2.5)
dt
Discretizando la ecuación 2.5, asumiendo un dt suficientemente pequeño
y despejando, se obtiene la siguiente expresión para determinar la nueva
orientación:
2.4.1. Magnetómetro
El magnetómetro es un sensor que mide la fuerza del campo magnético
local sobre un eje del dispositivo, que consiste en la superposición del campo
magnético de la tierra y aquellos creados por elementos ferromagnéticos o
corrientes eléctricas cercanas, denominadas distorsiones del campo magné-
tico terrestre. Estas distorsiones se pueden separar en dos categorías: Hard
Iron y Soft Iron [27].
Las distorsiones Hard Iron se deben a la presencia de objetos ferromag-
néticos permanentemente magnetizados, que producen un campo magnético
propio y, a veces, hasta lo inducen en componentes ferromagnéticos no mag-
netizados cercanos. Generan una desviación constante del campo magnético
medido, que puede ser modelado como un desvío bm .
Las interferencias Soft Iron en cambio, se deben a la inducción temporal
de un campo magnético en componentes ferromagnéticos normalmente no
magnetizados (soft irons, por ejemplo: níquel y hierro). Dado a que estas
interferencias dependen de la orientación del magnetómetro, se manifiestan
como una deformación elíptica de las muestras en el espacio de coordena-
das del magnetómetro. Así, en un primer paso se busca estimar el elipsoide
de muestras y luego se calcula la transformación a una esfera centrada en
el origen, con radio igual a la intensidad teórica del campo magnético del
lugar. Para ello, una vez centradas las muestras (calibración Hard Iron), se
deben reescalar las coordenadas de las mismas sobre las direcciones de los
ejes principales del elipsoide a través de una matriz de calibración Wm [27].
N my
Z Y
θ
mx HMC5883L
Donde:
m = Wm (mr + bm ) + um (2.9)
Donde:
Wm : matriz de calibración
d1
d2
d3
d4
Figura 2.6: Localización a través del GPS, se utilizan al menos tres satéli-
tes, las esferas conformadas por los mismos se interceptan con el punto del
receptor en la tierra (tomado de [34])
a b
Yw Yr
Yw
Yr
θ FgXr
Xr
FgYr m FgXr
Fg
FgYr θ
Xr
θ
Fg
Xw Xw
0
3
0
0
0
-3
0
-6
0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 t(s)
somete a movimiento?
Se tiene un acelerómetro encima de un robot autobalanceado, el cual está
inclinado θ grados. En estado de reposo, aplicando la ecuación 2.10 se ob-
tiene la dirección real del vector fuerza de gravedad (figura 2.10a), ahora,
manteniendo la misma inclinación, se somete el cuerpo a una fuerza que le
provoca movimiento. Si se aplica la ecuación 2.14 a las lecturas del aceleró-
metro en estas condiciones, se obtiene un ángulo de inclinación distinto y sin
embargo este no ha cambiado (vea la figura 2.10b). Esto se debe a que en
la medición de aceleración está la componente de gravedad y la componente
de aceleración resultante de la fuerza aplicada, de manera que al aplicar la
ecuación 2.14, la estimación de la inclinación del vector fuerza de gravedad
es errónea.
a b
Yw Yw
Yw Yr Yw Yr
θ m F θ m aLx
θ Xw
gax a θ Xw
gax alx
gay Xr gay Xr
Xw Xw
ω
θt θt+dt
0
θ
ángulo real
medición del giroscopio
tiempo(s)
Θacel.
Φ
Θgyro. Θgyro.
Base teórica
Sean yx1 , yx2 dos señales tal que:
yx1 = x + ux (2.16)
yx2 = x + b0 (2.17)
Donde: ux es ruido de alta frecuencia y b0 es una perturbación dominada
por contenido de baja frecuencia. Sean L(s) y H(s) filtros pasa bajo y pasa
alto respectivamente, donde s es la transformada de Laplace de la señal
Capítulo 2. Sistemas de medición de variables del robot 35
Donde:
xi : señal de entrada a filtrar (en este caso el valor de ángulo medido por el
acelerómetro)
Figura 2.15: Al aplicar un filtro pasa bajo se atenúan las oscilaciones del
acelerómetro
Donde:
Figura 2.16: Resultado de aplicar un filtro pasa alto, el filtro reacciona a los
cambios en períodos cortos de tiempo, mientras que atenúa la señal mientras
esta no cambia.
ángulo()0
0
6
0
0
0
-3
0
-6
0 1 2 3 4 5 6 7 t(s)
Figura 2.17: Salida del filtro complemento en reposo, una medición limpia
del ángulo con una varianza en la medición de 0,180
ángulo()0
0
6
0
0
0
-3
0
-6
0 1 2 3 4 5 6 7 8 t(s)
Donde:
v(t) : velocidad lineal del robot
Capítulo 2. Sistemas de medición de variables del robot 40
(t)
(t)
(ωr − ωl )r
ω(t) = (2.27)
L
Capítulo 2. Sistemas de medición de variables del robot 41
L ωr + ωl
R(t) = (2.28)
2 ωr − ωl
Luego la velocidad tangencial del robot (v(t)) se obtiene mediante:
(ωr + ωl )r
v(t) = ω(t)R(t) = (2.29)
2
En la siguiente sección se analizará como a partir de los encoders de los
motores se obtienen las velocidades de rotación de cada rueda del robot.
transición
“1”
A “0”
CW
B
A
CCW
B
Canal B adelanta al canal A
motor. Algunos de los términos que especifican la resolución del encoder son
los pulsos por revolución (PPR) o conteos por revolución (CPR), que es la
cantidad de transiciones realizadas por las señales de los canales cuando el
eje del motor completa una revolución [32].
Existen varios métodos para sensar la velocidad del eje de un motor a
partir de la decodificación de los encoders. Entre los más comunes está el
método de tiempo fijo y espacio fijo. En el método de tiempo fijo, se establece
un tiempo constante dt y se cuenta el número de impulsos provenientes del
encoder durante ese tiempo. En el método de espacio fijo, se mide el tiempo
entre un par de pulsos consecutivos del encoder. El algoritmo implementado
en esta tesis es el de tiempo fijo. La figura 2.21 muestra cómo se puede llevar
el conteo a partir de los pulsos del codificador:
Conteo
0 1 2 3 4 5 6 7 8 9 11 10 9 8 7 6 5 4 3 2 1 0 -1
2π δconteoM2
velocidadM2 = [rad/s] (2.33)
CPR dt
Por último, se actualizan las variables conteo∗M1 y conteo∗M2 , para
tenerlas listas en el siguiente período de muestreo. El algoritmo de tiempo
fijo, realiza es una diferenciación numérica. En cada instante de muestreo,
se obtiene la velocidad de rotación a partir de la derivada de la posición
angular [32].
conteo∗M1 = conteoM1 (2.34)
(velocidadM1 + velocidadM2 )r
v= (2.36)
2
Capítulo 2. Sistemas de medición de variables del robot 44
(velocidadM1 − velocidadM2 )r
w= (2.37)
L
Un factor fundamental en la precisión de este método constituye la reso-
lución del encoder, mientras mayor sea el número de pulsos por revolución,
la medición de velocidad es más precisa. También es importante escoger un
tiempo de muestreo adecuado para realizar la medición. Si este es demasiado
pequeño, para un mismo CPR del motor, se incrementan las oscilaciones
de la medición (figuras 2.22 y 2.23).
ω (rad/s)
48
42
36
30
24
1 2 3 4 5 t(s)
ω (rad/s)
48
42
36
30
24
1 2 3 4 5 t(s)
largo del eje xw , en este proceso sufre cambios en dicho ángulo, que generan
una velocidad angular ω (vea la figura 2.24). Las variaciones de esta velo-
cidad provocan aceleración angular. El objetivo es extraer del acelerómetro
solo la aceleración producida por el movimiento horizontal.
Yw
ω
Yw Yr
L θ m aLx
atx θ
gXr Xw
Xr
gYr
v
Xw
Donde:
gx : componente de la gravedad
(ωi − ωi−1 ) L
alxi = cos(θi )(acct i − g sin(θi ) − ) (2.41)
dt 2
Luego integrando numéricamente, la velocidad lineal del robot queda:
49
Capítulo 3. Construcción del robot 50
a b c
Figura 3.1: Esquemáticos del chasis, (a) piso inferior, (b) piso superior, (c)
montaje de los tres pisos
Las ruedas fijas (figura 3.2) se dispusieron de manera tal que el eje de
giro de estas estuviera en el centro del chasis. Se utilizaron dos ruedas de
patín con una adaptación para el eje del motor. El diámetro de la rueda es
de 95 cm.
Parámetro Valor
tensión nominal 12 VDC
corriente sin carga 250 mA
corriente con el eje fijo 6.5 A
torque con el eje fijo 13 kg.cm
relación de reducción 30:1
pulsos por revolución 1920
Parámetro Valor
corriente pico de operación 4A
corriente constante de operación 2A
voltaje de alimentación máximo 46 V
4 entradas lógicas TTL para control del sentido 2 para cada motor
protección contra sobrecalentamiento tiene
entradas de PWM 2
frecuencia máxima de PWM 100 kHz
3.2.4. Batería
Para la alimentación del sistema se seleccionó una batería de litio de 3000
mAh. Esta es muy útil para la aplicación, ya que las tecnologías de litio pesan
mucho menos que las baterías convencionales. Su voltaje nominal es 12V y
su voltaje máximo es de 12.6V (figura 3.5).
Parámetro Valor
tensión de operación 3.3 V - 5 V DC
regulador de voltaje en placa tiene
grados de libertad del sensor 6
rangos del acelerómetro configurables 2 g, 4 g, 8 g, 16 g
rangos del giroscopio configurables 2500 /s, 5000 /s, 10000 /s, 20000 /s
interfaz de comunicación I2C
conversor AD 16 bits de resolución
dimensiones 2.0 cm x 1.6 cm x 0.3 cm
velocidad del bus I2C 100 Khz y 400 Khz
3.2.6. Microcontrolador
El componente más importante del proyecto está constituido por la placa
de desarrollo Arduino Mega, este kit está integrado por un microcontrolador
Atmel AVR, de la familia de microcontroladores RISC, puertos digitales y
analógicos de entrada y salida, y un puerto de conexión USB (figura 3.7).
Además, Arduino posee un entorno de desarrollo (IDE) basado en Java
y se programa en el lenguaje de programación C++. El IDE posee una
interfaz de comunicación serie con la placa, que permite visualizar los datos
que son enviados por un puerto serie en una consola. Las últimas versiones
poseen una característica llamada “Serial Plotter” que grafica dichos datos
en tiempo real. Arduino es el encargado de leer los encoders y decodificarlos,
comunicarse con el MPU6050 a través de I2C y ejecutar el algoritmo para
obtener el ángulo de inclinación, controlar la velocidad de rotación de los
motores, enviando señales de PWM hacia los puentes-H, obtener el estado
de carga de la batería, ejecutar los algoritmos de control y establecer la
comunicación con la interfaz de usuario. En la tabla 3.4 se muestran algunas
de las características del microcontrolador Atmel 2560:
Parámetro Valor
arquitectura del microprocesador 8 bits
registros de propósito general 32
frecuencia de reloj 16 Mhz
memoria EEPROM 4Kbytes
memoria interna SRAM 8Kbytes
temporizadores de 8 bits 2 con preescalador y
modo de comparación
temporizadores de 16 bits 4 con preescalador, modo
de comparación y captura
interfaz PWM 4 canales de PWM de 8 bits
conversores AD 8 canales de 10 bits
puerto serie UART 4 puertos programables USART
interfaces de comunicación I2C, SPI
interrupciones externas 7
Parámetro Valor
tensión de alimentación 3.3 - 6 VDC
1200, 2400, 4800, 9600,
baudrate configurable 19200, 38400, 57600, 115200
230400, 460800, 921600, 1382400
radio de operación hasta 10 m
consumo de corriente 24 mA
velocidad de transferencia de datos 2.1 Mbit/s
configuración de modo maestro tiene
Componente Leyenda
Arduino Mega 2560 1
MPU6050 2
Bluetooth HC-06 3
Batería de Litio de 12V 4
Puente H dual l298N 5
Motores de DC 12V con encoders de Efecto Hall 6
rojo: 5V
negro: GND
amarillo: 12V
Figura 3.9: Conexión entre todos los componentes del hardware utilizando
la herramienta de diseño Fritzing
!iltro
complemento
PWMr
vR
IMU ωgyro
SPv
PD PID
Interfaz de
PWMl encoders
SPω
PID
K1
ωR K2
Donde:
SPv : referencia de velocidad traslacional
Sub-Programa de inicialización
En el código implementado para el funcionamiento del robot, con el pro-
pósito de interactuar con el sensor inercial MPU6050 se incluye una biblio-
teca de alto nivel para la comunicación por I2C con los periféricos. Además
de una biblioteca para el trabajo con el MPU6050, que está presente en
los repositorios de GitHub [35]. El programa sigue con una serie de defini-
ciones de macros, donde se definen constantes como: los comandos para el
protocolo de comunicación bluetooth HC-06; los parámetros geométricos del
robot, como el radio de la rueda y la separación entre estas; el tiempo de
muestreo del programa principal y la cantidad del pulsos por revolución de
Capítulo 3. Construcción del robot 61
los encoders de los motores. Luego se definen una serie de variables globales
necesarias, como: las constantes de los 3 PID implementados, las variables
de estado del robot, el acumulador de pulsos para los encoders, entre otros.
El IDE de Arduino define dos funciones principales, una es el “setup()”,
que se ejecuta al principio una sola vez y el “loop()”, donde el programa se
queda el resto del tiempo en un ciclo infinito.
demora de 300 ms
Con!iguració n del
puerto serie UART3
Con!iguració n de 4 entradas
de interrupció n externa
Inicializació n del
mó dulo bluetooth HC06 Con!iguració n del A/D
Programa principal
El programa principal se lleva a cabo en la función loop() de Arduino. En
esta; se ejecutan periódicamente los algoritmos de control, la adquisición de
datos de los sensores presentes en el robot, la estimación de las variables de
estado, a partir de los datos recogidos por los sensores, y la comunicación con
la aplicación de usuario a través del módulo bluetooth. El siguiente diagrama
de flujo resume el programa principal que se ejecuta en el microcontrolador
(figura 3.14).
Donde:
inicializació n
No
b10ms
Si
Obtener
datos del MPU
Filtro
Complemento
sp I PID pwm
Inclinació n
No
b20ms
Si
Obtener velocidades
encoder + MPU
sp V PID sp I
velocidad linear
sp W PID pwmw
velocidad angular
No
PT_mode
Si
spPosx sp V
algoritmo de seguimiento
spPosy a un punto sp W
Si Obtener
comandos y datos
Comando Acción
“A” Obtener referencias de velocidades enviadas por el usuario
“B” Enviar al usuario el estado del robot
“C” Enviar al usuario las constantes del PID de inclinación
“D” Obtener las nuevas constantes del PID de inclinación
“E” Enviar al usuario las constantes del PID de velocidad lineal
“F” Obtener las nuevas constantes del PID de velocidad lineal
“G” Enviar al usuario las constantes del PID de velocidad angular
“H” Obtener las nuevas constantes del PID de velocidad angular
“P” Obtener la referencia de posición a seguir
“R” Resetear el estado del robot
y(m)
0.80
goal
0.60
0.40 dref
0.20
Ry θref
0.0
Rx
-0.20
x(m)
-0.20 0.0 0.20 0.40 0.60 0.80 1.0 1.20 1.40 1.60 1.80
Experimentos y análisis de
resultados
Sobre estas bases se programó el robot para que implementara los algo-
ritmos de control de inclinación, velocidad de traslación, velocidad de giro,
estimación de la posición y navegación autónoma hacia un punto en el plano.
69
Capítulo 4. Experimentos y análisis de resultados 70
Figura 4.1: Obtención del estado del robot a través del móvil
Enviar al robot que mantenga una rotación constante igual a 3.0 rad/s
para evaluar el controlador de rotación
Enviar al robot que mantenga una velocidad lineal de 0.5 m/s para
evaluar el control de velocidad de traslación
Figura 4.2: Resultados del 1er experimento, (a) ángulo de inclinación, (b)
velocidad lineal, (c) velocidad angular
Capítulo 4. Experimentos y análisis de resultados 73
Figura 4.3: Evaluación del control de equilibrio del robot, con peso encima
Figura 4.4: Resultados del experimento no.2, (a) ángulo de inclinación, (b)
velocidad lineal, (c) velocidad angular
Capítulo 4. Experimentos y análisis de resultados 75
Referencia de velocidad
tiempo de
levantamiento: 0.6s
y un tiempo de subida alto. Esto se debe a que las constantes de este PID
fueron seleccionadas de manera que no perturbase significativamente en gran
medida el control de equilibrio. Altos valores en la componente proporcional,
provocan que el sistema gire brúscamente, lo que trae consigo la pérdida de
equilibrio del robot. En el capítulo anterior se mostraron los lazos de control
programados en el robot. Se puede apreciar que el lazo de control de giro no
interactúa con el control de ángulo de inclinación (a diferencia del lazo de
velocidad lineal que está en cascada con el de inclinación). Actúa sobre la
salida del control de equilibrio para incrementar o decrementar, en la misma
medida, la diferencia de velocidad entre los motores. Esto constituye una
perturbación para el control de equilibrio.
Referencia de velocidad
Análisis económico
En este capítulo se lleva a cabo una revisión del costo de este proyecto.
Para ello se realiza el cálculo del costo total, tanto de la investigación como
de los materiales fundamentales para la implementación del robot autoba-
lanceado.
El costo total del proyecto se calcula según la ecuación siguiente:
CT = CD + CI (5.1)
donde:
CT : Costo Total en CUP
CD : Costos Directos en CUP
CI : Costo Indirecto en CUP
CD = Sb + Sc + Ss + CM D + DP + OG (5.2)
donde:
Sb : Salario básico en CUP
Sc : Salario complementario en CUP
Ss : Seguridad social en CUP
CM D : Costo de materiales directos en CUP
DP : Gastos de dietas y pasajes en CUP
OG : Otros gastos en CUP
79
Capítulo 5. Análisis económico 80
donde:
D(i) : Días dedicados a la investigación por el participante i
SD (i) : Salario Diario del participante i en CUP
n: Número total de participantes
i: Participante i en cuestión
SM
SD = (5.4)
D
Dónde:
SD : Salario diario del participante en CUP
SM : Salario mensual en CUP
D: Cantidad de días trabajados en un mes
(se considera 24 días de trabajo en un mes)
Sb = 293,7 + 500,4
Sb = 794,1CUP
Sc = 26,7CUP
SsT = 32,04CUP
DP = 0CUP (5.9)
Otros gastos se consideran gastos por concepto de utilización de equipa-
miento. En el caso se este proyecto, el equipamiento considerado son compu-
tadoras. El gasto por utilización de estos equipos tiene un valor de 10.00 CUP
por cada hora de uso. Se consideran 3 horas de trabajo para el profesor y 6
horas para el estudiante. Entonces para este proyecto se tiene que:
OG = 10 ∗ (3 ∗ 15 + 6 ∗ 120)
OG = 10 ∗ (45 + 720)
OG = 7560CUP
Los resultados obtenidos en las ecuaciones 5.5, 5.6, 5.7, 5.9, 5.10 y del
cálculo de los Costo de Materiales Directos, son sustituidos en la ecuación
5.2. Luego se tiene que:
CI = 667,04CUP
84
Recomendaciones
Disminuir el tamaño del robot y utilizar ruedas más grandes, para dis-
minuir la amplitud de las oscilaciones del ángulo de inclinación durante
el proceso de autobalanceo.
85
Bibliografía
[2] Yokoyama, Makoto: Modeling and control of wheeled mobile robots: from
kinematics to dynamics with slipping and skidding. En Autonomous
control systems and vehicles, páginas 195–209. Springer, 2013. (Citado
en la página 1).
[4] Kamga, Andre y Ahmed Rachid: Speed, steering angle and path tracking
controls for a tricycle robot. En Proceedings of Joint Conference on
Control Applications Intelligent Control and Computer Aided Control
System Design, páginas 56–61. IEEE, 1996. (Citado en las páginas 1
y 3).
[7] Ortega, Fernando Bote: Modelado y control del péndulo invertido so-
bre carro mediante sistemas híbridos. Universidad de Sevilla, Escuela
Superior Técnica de Ingenieros, 2012. (Citado en la página 4).
86
[8] Loram, Ian D y Martin Lakie: Human balancing of an inverted pen-
dulum: position control by small, ballistic-like, throw and catch move-
ments. The Journal of physiology, 540(3):1111–1124, 2002. (Citado en
las páginas 5 y 6).
[9] Pelayo, Roland: How to use an Arduino to build a robot that balances
itself like a Segway., 2017. https://maker.pro/arduino/projects/
build-arduino-self-balancing-robot, visitado el 2018-10-20. (Ci-
tado en la página 5).
[10] Juang, Hau Shiue y Kai Yew Lurrr: Design and control of a two-wheel
self-balancing robot using the arduino microcontroller board. En Control
and Automation (ICCA), 2013 10th IEEE International Conference on,
páginas 634–639. IEEE, 2013. (Citado en la página 5).
[13] Nasir, Ahmad Nor Kasruddin, Mohd Ashraf Ahmad y Mohd Fua’ad
Rahmat: Performance comparison between LQR and PID controllers
for an inverted pendulum system. En AIP Conference Proceedings, vo-
lumen 1052, páginas 124–128. AIP, 2008. (Citado en las páginas 6 y 9).
[16] Mahler, Bernhard y Jan Haase: Mathematical model and control strategy
of a two-wheeled self-balancing robot. En IECON 2013-39th Annual
Conference of the IEEE Industrial Electronics Society, páginas 4198–
4203. IEEE, 2013. (Citado en las páginas 9 y 14).
87
[17] Wu, Junfeng, Wanying Zhang y Shengda Wang: A two-wheeled self-
balancing robot with the fuzzy PD control method. Mathematical Pro-
blems in Engineering, 2012, 2012. (Citado en las páginas 9 y 13).
[21] Velazquez, Miguel, David Cruz, Salatiel Garcia y Manuel Bandala: Ve-
locity and motion control of a self-balancing vehicle based on a cascade
control strategy. International Journal of Advanced Robotic Systems,
13(3):106, 2016. (Citado en las páginas 9, 12 y 13).
[26] Faragher, Ramsey y cols.: Understanding the basis of the Kalman filter
via a simple and intuitive derivation. IEEE Signal processing magazine,
29(5):128–132, 2012. (Citado en las páginas 16 y 47).
88
[27] Fischer, Thomas, Matías A Nitsche y Sol Pedre: Fusión de encoders
de cuadratura, sensores inerciales y magnéticos para la localización de
robots móviles. (Citado en las páginas 17, 19, 22, 24, 25 y 35).
[28] Gui, Pengfei, Liqiong Tang y Subhas Mukhopadhyay: MEMS based IMU
for tilting measurement: Comparison of complementary and kalman fil-
ter based data fusion. En 2015 IEEE 10th Conference on industrial
electronics and applications (ICIEA), páginas 2004–2009. IEEE, 2015.
(Citado en las páginas 18 y 34).
[30] Petrella, Roberto, Marco Tursini, Luca Peretti y Mauro Zigliotto: Speed
measurement algorithms for low-resolution incremental encoder equip-
ped drives: a comparative analysis. En 2007 International Aegean Con-
ference on Electrical Machines and Power Electronics, páginas 780–787.
IEEE, 2007. (Citado en la página 18).
[32] Joseph, Lentin: Learning robotics using Python. Packt Publishing Ltd,
2015. (Citado en las páginas 19, 41, 42 y 43).
89