Está en la página 1de 9

Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego.

Robot seguidor de línea con controlador


PID y seguimiento de trayectoria.

ROBOT SEGUIDOR DE LINEA Y DE Odometry was carried out based on the position
TRAYECTORIA CONTROLADO POR PID formulas on the x axis and on the y axis, the angular
position was also evaluated. Subsequently, a graph
Valbuena, Nicolás1. Botias, Diego2. was made showing its trajectory and location in real
nicolas.valbuena@unillanos.edu.co time.
diego.botias@unillanos.edu.co
Universidad de los Llanos Keywords— PID, PWM, RPM, odometry control.

I. INTRODUCCIÓN
Resumen— En este artículo se presenta el diseño e Los sistemas de control son herramientas versátiles
implementación de un controlador PID para un robot que proporcionan una facilidad al momento de
seguidor de línea, programado en la tarjeta de modelar y desarrollar procesos en la industria, la
desarrollo ESP-32 desde el IDE Visual Studio Code electrónica y otros campos.
empleando lenguaje C. Se tomaron varias muestras de
datos de RPM en relación con varios PWM que se Estos permiten que los procesos que componen un
fueron estipulando, estos datos tienen un tiempo de sistema tengan cierto nivel de estabilidad y que sean
muestreo de 50 ms. Luego los datos se exportaron al manipulables según algunos parámetros
software MATLAB donde se genera la función de preestablecidos, enfocando así su funcionamiento a
transferencia y con ésta, las constantes de control por una finalidad deseada. Por ejemplo, si se desea
medio de la herramienta SISOTOOL. manipular ciertas variables de entrada en una planta o
La parte de alimentación se manejó con un puente H sistema para generar una respuesta determinada a la
L298N al cual se le ingresa una batería de 7.5V - 3.3A salida del mismo, se diseñan diferentes controles que
para alimentar todo el sistema, de ahí se distribuye generan una estabilidad y a su vez un comportamiento
voltaje al módulo regulador LM2596 que nos bajara la adecuado que permita el cumplimiento del objetivo
tensión a 5V para la alimentación de la tarjeta de principal del sistema [1]. Esto también se puede
desarrollo. evidenciar en los sistemas de los robots móviles,
Con ayuda de los sensores IR TCRT5000 se realizó el especialmente los que usan ruedas, también
seguimiento de trayectoria la cual está dada por una denominados carros robóticos, estos en muchos casos
línea negra trazada sobre una pista blanca, dicha pista son robots no holonómicos que se aplican en sistemas
tiene altibajos. La odometría se efectuó en base a las de riesgo y en industrias en el área de la electrónica,
fórmulas de posición en el eje x y en el eje y, también están comprendidos por una mecánica no muy
se evaluó la posición angular. Posteriormente se sofisticada, pero bastante útil, no tienen un
realizó un gráfico donde se plasma su trayectoria y desplazamiento libre a los costados, por tanto, son muy
ubicación en tiempo real. utilizados en el seguimiento de trayectorias [2].
Gracias a un controlador PID de velocidad este robot
Palabras claves: Control PID, PWM, RPM, es capaz de avanzar sin presentar cambios bruscos en
odometría. su aceleración siguiendo un recorrido estipulado,
siendo bastante apropiados en acciones de rescate con
Abstract— This article presents the design and recorridos precisos o seguimientos de trayectoria para
implementation of a PID controller for a line follower la distribución de un determinado objeto [3].
robot, programmed on the ESP-32 development board
from the Visual Studio Code IDE using C language. Desde el control análogo se han encontrado problemas
Several RPM data samples were taken in relation to de optimización, es por ello que surge una tecnología
various PWM that were stipulated, this data has a como respuesta a dicho problema, la cual es el control
sampling time of 50 ms. Then the data was exported to digital, donde prácticamente todos los sistemas de
the MATLAB software where the transfer function is control se basan en microcontroladores y
generated and with it, the control constants by means microprocesadores que permiten un control desde una
of the SISOTOOL tool. computadora, haciendo frente a necesidades mayores
The power part was managed with a L298N H bridge y de mayor exigencia. La optimización de estas
to which a 7.5V - 3.3A battery is entered to power the tecnologías logra un alto nivel de confianza que
entire system, from there voltage is distributed to the consecuentemente da un producto de alto nivel de
LM2596 regulator module that will lower the voltage calidad [4]. Dicha optimización también obedece a los
to 5V for the power supply. the development card. principios fundamentales de constantes del control
With the help of the TCRT5000 IR sensors, the PID, donde se encuentra una acción proporcional (kp)
trajectory was followed, which is given by a black line que se ajusta por medio de la ganancia la cual sucede
drawn on a white track, said track has ups and downs. cuando el cambio presente en la salida del controlador
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

es múltiplo del porcentaje del cambio en la medición. ● Diseño del controlador PID.
Se tiene también una acción integral (ki) que elimina ● Implementación del controlador PID.
el error en el régimen estacionario (cuando el tiempo ● Seguidor de línea.
de establecimiento es mayor igual que el periodo de ● Seguimiento de trayectoria.
oscilación). Por último, una acción derivativa (kd), la
cual disminuye la cantidad de sobre oscilaciones. [5]
Diseño y construcción del robot.
En la aplicación del mundo de los sistemas de control
digital encontramos diferentes alternativas para él Para el diseño del chasis del robot se estableció un
diseño y evaluación de dispositivos y vehículos diseño según los requerimientos adecuados de peso y
enfocados al desarrollo de actividades en las cuales se dimensiones, los parámetros del modelo fueron
necesita precisión y un buen manejo de diferentes ingresados en Fusion 360 para imprimirlo con ayuda
variables físicas que pueden alterar de manera súbita de una impresora 3D.
el sistema [6]. Técnicas como PSO (Particle Swarm
Optimization) se utilizan para buscar un punto
particular en el espacio multidimensional con el fin de
ser encontrado por medio de múltiples vectores que
apuntan en una sola dirección. Los Controladores PID
adaptativos o difusos y controladores PID
convencionales constituyen una amplia variedad de
métodos para establecer procesos óptimos que pueden
ser totalmente identificados y aplicados a nivel
industrial, académico y científico, por lo cual el mundo
del control digital y su gran desarrollo va en
crecimiento a un ritmo acelerado generando múltiples Fig1. Diseño del chasis en Fusion 360.
técnicas que brindan soluciones eficaces y optimas [7]. Fuente: Autor.
.

II. MATERIALES Y MÉTODOS

Materiales

Los materiales empleados fueron:

• 1 Puente H L298N.
• 2 Sensor IR TCRT5000.
• 1 Tarjeta de desarrollo ESP-32. Fig2. Diseño final del chasis (parte superior) en
• 2 Motores con encoder relación 1:34 de 12kg- Fusion 360.
12V. Fuente: Autor.
• 1 bola loca.
• Frame. (Chasis) Fig3. Frame impreso.
• Baterías.
• 2 Ruedas.
• Módulo regulador LM2596

Metodología.

Para la realización de un robot seguidor de línea con


controlador PID y seguimiento de trayectoria se tuvo
en cuenta las siguientes consideraciones:
Fuente: Autor
● Diseño y construcción del robot.
● Adquisición de datos entrada-salida del
motor por medio del encoder. Una vez impreso, se procede a ensamblar y hacer los
● Obtención de la función de transferencia. montajes de los motores con encoder, sensores
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

infrarrojos, la bola loca y el puente H con el fin de Para hallar la función de transferencia de la planta, se
termina el prototipado del robot según los diseños utilizo un motor DC con encoder de sensor magnetico,
iniciales. una alimentacion de 12V para el motor y una de 5V
para el encoder, una tarjeta de desarrollo ESP-32 para
Una vez tenemos ensamblado el chasis, observamos la programación y la recolección de datos que seran
el siguiente resultado: guardados en una computadora.

Adicional a esto, se utilizo un módulo puente H L298N


para enviar los pulsos PWM al motor y asi lograr
variar la velocidad.

Para calcular los RPM se implemento la siguiente


ecuación:
60∗𝑁𝑢𝑚𝑝𝑢𝑙𝑠𝑜𝑠
𝑅𝑃𝑀 =
𝑃𝑃𝑅∗𝑁∗𝑇𝑠 ∗𝑋

Ecuación 2.Calculo de RPM

Donde PPR son los pulsos por revolución, N es la


resolución del encoder, 𝑇𝑠 tiempo de muestreo, y X es
el número de conteos por pulso.

Los datos tomados de RPM para cada ciclo de trabajo


de PWM fueron muestreados bajo un tiempo de 50 ms
hasta 4 segundos y se consignaron en una tabla de
excel para un mejor analisis.
Fig4. Robot con sus partes ensambladas
Fuente: Autor. Obtención de la función de transferencia

Adquisición de datos entrada-salida del motor por Posteriormente los datos se exportaron en forma de
medio del encoder. variables al software Matlab, cada PWM con sus
respectivos RPM y en el System Identification se
Para realizar la caracterización del motor DC, se toman generaron las variables en el tiempo para calcular la
datos según un tiempo de muestreo y se registran para función de transferencia segun cada valor de PWM.
observar la variación de las RPM del motor en cada
ciclo de trabajo de la señal PWM ingresada. Si se
requiere una mayor precisión es necesario registrar
estos datos en una tabla donde se realice mas de una
toma de datos para cada valor de PWM y finalmente
promediarlos.

Segun los datos obtenidos, se puede deducir que la


funcion de transferencia de la planta se puede modelar
como un sistema de primer orden, el cual es
representado por la siguiente funcion:
𝐾
𝐺(𝑠) = Fig 5. Herramienta para identificar la funcion de
𝜏𝑠+1
transferencia
Ecuación 1. Función de transferencia de un sistema
de primer orden. Como se quiere hallar una función de transferencia que
sea similar a la planta para cada entrada de PWM, se
Donde K es la ganancia del sistema y τ es la constante realiza un promedio de las funciones de transferencias
de tiempo que indica la rapidez con la que responde encontradas y así finalmente obtener la función de
ante una perturbación. transferencia de la planta.
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

Las respectivas gráficas y funciones de transferencias Fuente: Autor.


para cada valor de PWM son:

Fig 10. Gráfica RPM con entrada PWM de 200.


Fig 6. Gráfica RPM con entrada PWM de 100 Fuente: Autor.
Fuente: Autor.

Fig 11. Gráfica RPM con entrada PWM de 220.


Fig 7. Gráfica RPM con entrada PWM de 120. Fuente: Autor.
Fuente: Autor.

Fig 12. Gráfica RPM con entrada PWM de 250.


Fig 8. Gráfica RPM con entrada PWM de 140. Fuente: Autor.
Fuente: Autor.
La función de transferencia obtenida luego de
promediar las funciones de transferencia y reducir
los terminos necesarios es la siguiente:
174.9
𝐺(𝑆) =
𝑆 2 +37.99𝑆+240

Ecuación 3.Funcion de transferencia promedio.

.
Fig 9. Gráfica RPM con entrada PWM de 180.
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

Fig 16. Respuesta al escalon de la funcion de


Fig 13. Respuesta al escalon de la funcion de transferencia en lazo cerrado en tiempo discreto.
transferencia en lazo abierto. Fuente: Autor.
Fuente: Autor.
Diseño de controlador PID
Con la ayuda de una poderosa herramienta de
MATLAB que facilita en gran medida el diseño de
controles llamada “Sisotool”, se introduce la
función de transferencia final, a la cual se le hace
un control PI el cual permitirá variar la velocidad
de cada una de las ruedas del vehículo logrando que
se estabilicen a la velocidad deseada.
Los valores del controlador corresponden a:

Fig 14. Respuesta al escalon de la funcion de


Valores del controlador
transferencia en lazo cerrado. Kp 1.81
Fuente: Autor. Ki 9.68
Kd 0
Luego, con ayuda del metodo ZOH o retenedor de
orden cero, se convierte la funcion de tiempo Tabla1. Constantes del PID.
continuo a una funcion de transferencia en tiempo Fuente: Autor.
discreto, con un sample time de 0.05 segundos.
La función de transferencia correspondiente al
0.12178 (𝑧+0.5331) controlador obtenido es:
𝐺𝑧 =
(𝑧−0.6702) (𝑧−0.2232)
1.6957 (𝑧−0.4657)2
Ecuación.4.Funcion de transferencia en tiempo 𝐶=
(𝑧−1)
discreto.
Ecuación.5.Funcion de transferencia controlador

Fig 15. Respuesta al escalon de la funcion de Fig 17. Respuesta en lazo cerrado en tiempo discreto
transferencia en lazo abierto en tiempo discreto. compensado
Fuente: Autor. Fuente: Autor.
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

Implementación del controlador PID Los valores describen la dirección en la cual debe
moverse el robot para no desviarse de la línea negra
Se plantea un código en el cual los RPM captados (su trayectoria), manteniendo su trayectoria fija
por el encoder de cada motor sirven como constantemente.
realimentación y comparación en el error en cuanto
a la entrada, que en este caso es el valor de PWM Seguimiento de trayectoria
estipulado.
Varios métodos de navegación para robots móviles
1. void controlPID(){ requieren medir la posición y orientación del robot
2. currentError = inputRPM- en su espacio de trabajo. En el caso de los robots
currentRPM; móviles con ruedas, las técnicas basadas en la
3. if (currentError > 300) odometría permiten determinar la ubicación del
currentError = 300;
robot mediante la integración de medidas de los
4. integral = integral +
(currentError * dt); desplazamientos incrementales de sus ruedas.
5. derivativo = (currentError -
previousError) / dt; Sin embargo, esta técnica está sujeta a errores que
6. PID = (Kp * currentError) + (Ki se acumulan con la distancia recorrida por el robot,
* integral) + (Kd * derivativo); lo que impide su uso exclusivo.
7. if (PID > 255) PID = 255;
8. else if (PID < 0) PID = 0;
9. previousError = currentError; Otros métodos se basan en la detección de hitos
10. } naturales o artificiales, cuya ubicación se conoce,
presentes en el medio ambiente. Aunque esta
técnica no genera errores acumulativos, puede
Esto permite un avance con una velocidad
requerir un tiempo de procesamiento mucho más
constante sin importar el nivel de inclinación del
largo que el uso de la odometría [8].
terreno.
Para poder saber en qué posición se encuentra el
Seguidor de línea
robot, nos basamos en la odometría y sus fórmulas.
En el seguidor de línea se aplicó una comparación
Lo primero que hicimos fue saber cuál es el ancho
proporcional para identificar los valores digitales
de nuestro robot y el radio de sus llantas, esto para
generados por los dos sensores infrarrojos, los
saber las distancias recorridas por la parte derecha
cuales nos servirán como guía del robot sobre una
(DR) y la parte izquierda (DI).
línea negra, con el fin de seguir una trayectoria
determinada.
Una vez tenemos estos datos, promediamos la
distancia recorrida central (DC) de esta manera:
Una vez se identifican los valores, se determina la
siguiente tabla: 𝐷𝑅+𝐷𝐿
𝐷𝐶 =
2
Comportamien-
Sensor 1 Sensor 2
to del robot Ecuación 6. Promedio de las distancias
0 0 Estático. recorridas.
Acciona motor
0 1 derecho (Giro a
De esta manera tenemos que la actualización en la
la izquierda).
Acciona motor distancia en el eje x será igual a posición actual en
1 0 izquierdo (Giro a x más la distancia recorrida centralmente por el
la derecha). coseno de 𝜑:
Acciona ambos 𝑋́ = 𝑋 + 𝐷𝐶 ∗ 𝐶𝑂𝑆𝜑
1 1 motores
(Avanza).
De igual forma tenemos ecuaciones similares para
Tabla 2. Acciones del robot según los sensores IR la posición en el eje Y, y para la posición angular:
Fuente: Autor.
𝑌́ = 𝑌 + 𝐷𝐶 ∗ 𝑆𝐼𝑁𝜑
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

𝐷𝑅 + 𝐷𝐿
𝜑́ = 𝜑 +
𝐿

Donde L es el ancho de nuestro robot.

Simulaciones en Matlab de la trayectoria


registrada y programada

Se realizaron diferentes simulaciones para ver el


comportamiento del robot en diferentes entornos y la
viabilidad de algunos movimientos y giros.

Fig21. Trayectoria circular


Fuente: Autor.

Fig 18. Simulación trayectoria circular


Fuente: Autor.

Fig 19. Simulación trayectoria hacia la izquierda


Fuente: Autor.

Fig22. Trayectoria circular pista


Fuente: Autor.

Fig 20. Simulación trayectoria hacia la derecha Se observa que, al someter a una entrada escalón de
Fuente: Autor. diferentes valores a la planta, el sistema no logra
estabilizarse al valor de RPM deseados. Por ello es
necesario implementar un control PID, en este caso
III. RESULTADOS control PI para lograr la estabilización correcta del
robot.
Obtencion de trayectorias en python
En la siguiente figura se ve la respuesta del sistema en
Se realizaron diferentes registros en una interfaz lazo abierto ante entradas escalón de diferentes
basica desarrollada en python de trayectorias cortas valores.
realizadas por el robot movil, estas se definen según su
velocidad lineal y angular.
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

Fig 25. Robot siguiendo la trayectoria delimitada por


la línea negra
Fuente: Autor.

IV. CONCLUSIONES

Fig 23. Respuesta del sistema sin controlar una Al diseñar e implementar el control de velocidad se
entrada escalón. notó buena precisión debido a la robustez del
Fuente: Autor. controlador sin embargo el control se vio limitado
debido a la naturaleza del motor que usamos el cual
Una vez hemos encontrado los valores del controlador, responde significativamente a partir del valor de 100
se procede a multiplicar la función de transferencia del en el rango de 0 a 255 del PWM con una frecuencia de
controlador por la función de transferencia de la planta 1Khz, si se introduce un valor menor no genera
(Compensador) y cerrar el lazo del sistema. La movimiento y por lo tanto no se acciona el control.
respuesta del sistema controlado en lazo cerrado ante
entradas escalón de diferentes valores se aprecia en la La aplicación de las constantes de acción proporcional,
siguiente figura. integral y derivativa son suficientes para tener
resultados positivos, aun así, se ven algunos errores en
la implementación por causas externas del motor, por
lo cual se infiere que Matlab no tiene la capacidad de
diseñar un controlador 100% optimo.

El software Matlab cuenta con herramientas capaces


de establecer diferentes controladores y modelos que
permiten el desarrollo pleno de diferentes prototipos
en la robótica móvil

La respuesta del sistema en cuanto al seguidor de línea


se puede mejorar aumentando la cantidad de sensores
para reducir el error, además, la respuesta del PID debe
ser lo suficientemente rápida para evitar que el robot
sufra una aceleración en las curvas delimitadas por la
línea negra.
Fig 24. Respuesta del sistema controlado ante una
entrada escalón. La efectividad del controlador varía según la corriente
Fuente: Autor. proporcionada por la fuente implementada, por lo
tanto, es recomendable utilizar una batería de 12
voltios con una corriente mayor a los 3.3 A para un
De manera consecutiva se tiene que el seguidor de correcto funcionamiento del diseño.
línea presentaba ciertos retrasos debido a una falta de
optimización en el código. La odometría es muy útil en la robótica móvil,
permitiendo por medio de fórmulas matemáticas la
El seguidor de línea genera algunos problemas de ubicación del robot y su respectiva visualización. En
estabilidad si la línea no es lo suficientemente ancha cuanto a su respuesta y gráfica, es necesario
para ser reconocida, es recomendable calcular un implementar un sistema más efectivo que permita
diámetro de al menos 3 cm para este modelo.
Universidad de los Llanos. Valbuena, Nicolás. Botias, Diego. Robot seguidor de línea con controlador
PID y seguimiento de trayectoria.

registrar diferentes movimientos para generar un


registro mucho más completo.

V. REFERENCIAS

[1] M. Kalyoncu y F. Demirbaş, “differential drive


mobile robot trajectory tracking with using pid and
kinematic based backstepping controller”, Selcuk
University Journal of Engineering ,Science and
Technology, vol. 5, núm. 1, pp. 1–15, mar. 2017, doi:
10.15317/Scitech.2017.65.

[2] C. S. Shijin y K. Udayakumar, “Speed control of


wheeled mobile robots using PID with dynamic and
kinematic modelling”, Proceedings of 2017
International Conference on Innovations in
Information, Embedded and Communication Systems,
ICIIECS 2017, vol. 2018-January, pp. 1–7, 2018, doi:
10.1109/ICIIECS.2017.8275962.

[3] G. Unal y E. Kiyak, “Modelling and pid controller


design for a quadrotor”, European Simulation and
Modelling Conference 2016, ESM 2016, pp. 398–400,
2016.

[4] i. waldman, «introducción al control digital,»


Universidad Nacional de San Martin, 2015, pp. 1-3

[5] Campos Martínez, Ludeber Josmell y


colaboradores. Control de temperatura de una
incubadora microbiológica utilizando un controlador
PID. ALICIA. [en línea]. 2015. [Consulta: 25 de enero
de 2020]. Disponible en formato PDF en:
http://repositorio.unac.edu.pe/handle/UNAC/1483

[6] R. Kandiban y R. Arulmozhiyal, “Speed control of


BLDC motor using adaptive fuzzy PID controller”,
Procedia Engineering, vol. 38, pp. 306–313, 2012, doi:
10.1016/j.proeng.2012.06.039.

[7] T. Y.Abdalla y A. A. A, “PSO-based Optimum


Design of PID Controller for Mobile Robot Trajectory
Tracking”, International Journal of Computer
Applications, vol. 47, núm. 23, pp. 30–35, 2012, doi:
10.5120/7497-0601.
[8] Bezerra, C. G. (2004). Localização de um robô
móvel usando odometria e marcos naturais (Master's
thesis, Universidade Federal do Rio Grande do Norte).

También podría gustarte