scieee AI-readable full text Open interactive document viewer

Construcción de un prototipo de robot velocista

Gutiérrez Jiménez, Pelayo

Abstract

En este proyecto se ha realizado el diseño de una plataforma robótica móvil, sigue-líneas, sobre la que probar distintos sensores y actuadores, junto a un análisis en profundidad de dichos componentes. El objetivo de este trabajo es el de documentar dichas pruebas de los componentes y del prototipo de robot móvil en una serie de pruebas inspiradas en la robótica de competición.

Full text

Proyecto Fin de Carrera Ingeniería de Telecomunicación Formato de Publicación de la Escuela Técnica Superior de Ingeniería Autor: F. Javier Payán Somet Tutor: Juan José Murillo Fuentes Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2013 Trabajo Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica Construcción de un prototipo de robot velocista Autor: Pelayo Gutiérrez Jiménez Tutor: Federico Cuesta Rojo Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2020 Trabajo Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica Construcción de un prototipo de robot velocista Autor: Pelayo Gutiérrez Jiménez Tutor: Federico Cuesta Rojo Profesor Titular Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2020 Trabajo Fin de Grado: Construcción de un prototipo de robot velocista Autor: Pelayo Gutiérrez Jiménez Tutor: Federico Cuesta Rojo El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha: Agradecimientos A mis compañeros, amigos y familiares, por haber estado apoyando desde la retaguardia, con paseos largos, tirones de orejas y abrazos (no en los tiempos actuales de COVID-19). Especialmente a Ana por acompañarme en las incontables horas de verano y exámenes en las salas de estudio, y a Fede, mi tutor, por los ánimos y una paciencia incalculable. Pelayo Gutiérrez Jiménez Sevilla, 2020 I Resumen En este proyecto se ha realizado el diseño de una plataforma robótica móvil, sigue-líneas, sobre la que probar distintos sensores y actuadores, junto a un análisis en profundidad de dichos componentes. El objetivo de este trabajo es el de documentar dichas pruebas de los componentes y del prototipo de robot móvil en una serie de pruebas inspiradas en la robótica de competición. III XÍndice Abreviado Apéndice B Piezas diseñadas 59 B.1 Archivos de diseño paramétrico 59 B.2 Modelos de malla en formato .stl 60 Índice de Figuras 61 Bibliografía 63 Índice Resumen III Abstract V Prefacio VII Índice Abreviado IX 1 Introducción 1 1.1 Historia de la robótica móvil 1 1.2 Competiciones robóticas 2 1.3 Robots de guiado autónomo, estado del arte 3 1.4 Objetivos y organización de la memoria 4 2 Diseño de plataformas 5 2.1 Requisitos 5 2.2 Software utilizado 7 2.2.1 FreeCAD 7 2.2.2 KiCad EDA 7 2.2.3 GrabCAD 8 2.2.4 Code Composer Studio 9 2.2.5 Tera Term 9 2.3 Primer diseño 10 2.3.1 Componentes 10 Alimentación 10 Microcontrolador 10 Sensor de Línea 12 Sensor de distancia 13 Motores DC 13 Encoders 14 Puente H 14 2.3.2 Conexionado 15 2.3.3 Estructura 15 2.3.4 Resultados de la prueba 16 Control del primer diseño 16 Resultados y problemas 17 2.4 Segundo diseño 19 2.4.1 Componentes 19 XI XII Índice Alimentación 19 Sensor de línea 20 Sensor de distancia 21 Encoder magnético 22 Motores N20 22 Bluetooth 24 2.4.2 Conexionado 24 2.4.3 Estructura 24 Modelos 3D 25 Impresión y montaje 26 3 Pruebas de componentes 29 3.1 Sensores de línea 29 3.1.1 QRT-8RC 29 Medida con los 6 primeros valores 30 Sensores a 3mm 31 Sensores a 8mm 32 3.1.2 TCRT5000L 33 3.2 Sensores de distancia 35 HC-SR04 36 SHARP 37 Comparación 37 3.3 Prueba de motores en vacío 38 3.3.1 Motores TT 39 3.3.2 Motores N20 40 Reductora 100:1 41 3.3.3 Reductora 10:1 41 3.3.4 Comparación de motores 41 4 Pruebas del robot 43 4.1 Pruebas de aceleración 43 4.1.1 Motor TT 43 Encoder magnético 43 4.1.2 Motor N20 44 Reductora 10:1 44 Reductora 100:1 45 Comparación 46 4.2 Detección de obstáculos 47 4.3 Pruebas de seguimiento de la línea 48 5 Conclusiones 51 5.1 Problemas y soluciones 52 5.2 Trabajos futuros 52 Apéndice A Códigos principales 53 A.1 Prueba de aceleración 53 A.2 Seguimiento de línea 55 Apéndice B Piezas diseñadas 59 Índice XIII B.1 Archivos de diseño paramétrico 59 B.2 Modelos de malla en formato .stl 60 Índice de Figuras 61 Bibliografía 63 1 Introducción La robótica es una rama tecnológica dedicada al estudio de los robots, en su diseño, construcción, programación y aplicación. Los robots, son sistemas mecatrónicos autónomos capaz de realizar una tarea concreta de acuerdo a su programación o software. Actualmente la robótica se encuentra en el día a día de todas las personas. Concretamente la robótica móvil, en la cual este proyecto se centra, está siendo objeto de gran estudio, debido a su integración actual en las calles y el futuro próximo en el que los vehículos sean completamente autónomos y los robots sociales se irán implantando en distintos hábitos de la experiencia cotidiana. Figura 1.1 Ejemplo de vehículo autónomo y robot social. 1.1 Historia de la robótica móvil Desde la concepción de la automática se han explorado las posibilidades de la robótica móvil, rama de la robótica que se remonta al año 1949, siendo ELMER y ELSIE considerados como los primeros robots autónomos. A partir de los años 60 se produjo un gran desarrollo en esta rama de la robótica con el desarrollo de Shakey, 1966, primera plataforma móvil de propósito general capaz de analizar y descomponer los comandos en un conjunto de tareas simples. Ese mismo año, también en la universidad de Stanford se comenzaron a realizar pruebas con The Stanford Cart, un rudimentario carro construido con ruedas de bicicletas, que es considerado el primer robot sigue-líneas, también utilizado para la simulación de retardos como los que existirían entre la luna y la tierra, en caso de controlar un robot de forma remota en la superficie del satélite terrestre. En los 90 empezaron a implementarse técnicas de visión artificial y actuación con los primeros coches semi-autónomos, siendo estos VaMP y VITA-2, llegando posteriormente a ALVINN, un coche con dirección autónoma, realizando pruebas como la conducción entre la costa atlántica y la pacífica de 1 2Capítulo 1. Introducción estados unidos. En 1996 la NASA manda el Mars Pathifinder a Marte, siendo un robot controlado remotamente con la capacidad de evadir posibles obstáculos o peligros en un terreno desconocido, práctica que se ha seguido realizado, siendo el último miembro de la familia de robots móviles enviados a la superficie del planeta rojo, y todavía en camino a la hora de la realización de este escrito, Perseverance. Figura 1.2 ELMER y ELSIE, The Stanford Cart y Curiosity Rover. En 2002 se introdujo el primer robot móvil con éxito en el mercado doméstico de masas, el robot aspirador Roomba, de iRobot. En 2004 se realizó la primera competición de DARPA Grand Challenge, una competición anual de larga distancia en la que distintos coches autónomos competían entre ellos, en distintos terrenos. Actualmente la robótica ha tomado una presencia importante en la imagen pública, desde que en 2008 Boston Dinamics comenzó a publicar videos de sus robots cuadrúpedos por terrenos desnivelados y nevados, posteriormente con Atlas y Handler, un robot humanoide y otro balanceador respectivamente, robots de propósito general orientados a la colaboración con personas y el manejo de cargas pesadas. Figura 1.3 Robot domestico roomba y robot de defensa Atlas. 1.2 Competiciones robóticas Las competiciones robóticas han sido un constante desde los primeros pasos de esta rama. Son una fuente de desarrollo e innovación, con el fin de desarrollar un hardware y software para la realización de distintas pruebas con el objetivo de cumplirlas de la forma más eficiente posible. Algunos ejemplos de las primeras competiciones son la competición de Micromouse del IEEE en 1979 y All Japan Robot Sumo en 1990. En la década de 1990 fue cuando empezó el mayor desarrollo de la robótica de competición con el comienzo de un gran número de competiciones 1.3 Robots de guiado autónomo, estado del arte 3 todavía vigentes, como la RoboCup, competición de futbol para robots; Trinity Fire Fighting Robot Competition, donde se buscan soluciones para la extinción de fuegos con robots autónomos, y Eurobot, una competición universitaria con distintas pruebas. Estos ejemplos nombrados tienen en común la presencia de distintas categorías para fomentar la innovación y la presencia de estudiantes universitarios en este campo tan extenso. Este tipo de actividades se han ido desarrollando y expandiendo recientemente en todos los ámbitos y niveles de conocimiento, siendo bastante común la existencia de competiciones centradas en promocionar el campo de la robótica entre los más jóvenes, como podría ser las competiciones de LEGO ® MINDSTORMS ® . En el otro espectro de la competición existen competiciones como DARPA Grand Gallenge oRoborace, competiciones de alto nivel y con una gran recompensa económica, cuya finalidad es avanzar el desarrollo de nuevas tecnologías de defensa y conducción autónoma, por nombrar algunos ejemplos. Figura 1.4 Robot Lego y DARPA Grand Challenge. En este proyecto nos centramos más concretamente en la categoría de robots velocistas, dedicada a la conducción autónoma a través de un circuito cerrado definido mediante una o varias líneas, compitiendo con otros robots de forma simultánea o mediante cronómetro. Esta categoría viene definida por la Liga Nacional de Robótica de Competición la cual ha ido evolucionando las restricciones y requerimientos hasta la actual categoría DCAR centrada en un circuito con dos carriles con un gradiente de grises en lugar de la linea negra tradicional, como es el caso en la competición de ROBOCHALLENGE Line Follower yLine Follower Enhanced. Respecto a estas dos categorías se hablará en el apartado de requisitos 2.1. 1.3 Robots de guiado autónomo, estado del arte Los robots de guiado autónomo (AGV) son una familia de robots móviles caracterizados por tener un camino predefinido el cual siguen de forma plenamente autónoma. La forma de guiarse ha evolucionado en gran manera a lo largo de los años, desde cables enterrados, líneas pintadas en el suelo, con etiquetas RFID, o guiados mediante una estación remota. El prototipo que se pretende diseñar y analizar en este proyecto es un robot de guiado autónomo mediante algún tipo de guía óptica, sea una línea o un gradiente. Los AGV se encuentran muy presentes en la industria, especialmente con la aparición de los almacenes autónomos de gran escala, donde resulta más fácil mover una estantería hacia la persona que desplazar la persona a la estantería; o en la industria automovilística, donde las piezas y herramientas necesarias son trasportadas de forma automática al operario según las requiera. Actualmente los 4Capítulo 1. Introducción Figura 1.5 AGV industrial y sigue-líneas construido con Lego Mindstomrs. AGV industriales trabajan en red y de forma cooperativa, trazando sus propios mapas y realizando guiados autónomos evitando colisiones, personal y otros AGVs que se encuentren en las mismas instalaciones [ 5 ]. De la misma forma también se están realizando estudios en los que se realiza un uso cooperativo de AGV para la realización de tareas que no son realizables con un único robot, como podría ser el guiado de objetos de mayor tamaño [1]. Actualmente a nivel de competición, gracias a la reducción del tamaño y coste de los componentes electrónicos de consumo, se está empezando a ver la integración de cámaras para la detección de líneas en robots de menor tamaño [ 6 ][ 2 ]. La detección de línea mediante una cámara se puede observar en las competiciones de sigue-líneas, como una tendencia que está sustituyendo a los métodos tradicionales de seguimiento de una línea con los sensores infrarrojos incluyendo en los ámbitos educativos [ 3 ], esto también se puede observar en el aumento de competiciones de AGV que no tienen una línea y a lo mejor se basan en un carril delimitado mediante dos margenes o distintos colores, como es el caso de la Formula Pi. Junto a este aumento de herramientas también está surgiendo un nuevo método para el diseño de robots de competición, como son la simulación para mejorar las estrategias de control y como una forma más rápida para comprobar nuevos algoritmos [ 4 ] y la aplicación de técnicas de machine learning en vez de el tradicional controlador PID, permitiendo al modelo entrenado tener un control complejo del sistema sin ser necesario un modelo matemático completo[7]. 1.4 Objetivos y organización de la memoria En este proyecto se ha realizado el diseño de una plataforma robótica móvil, sigue-líneas, sobre la que probar distintos sensores y actuadores, junto a un análisis en profundidad de dichos componentes. El objetivo de este trabajo es el de documentar dichas pruebas de los componentes y del prototipo de robot móvil en una serie de pruebas inspiradas en la robótica de competición. La memoria está organizada del siguiente modo. En el capítulo 2 se presentan los requisitos y diseño de las plataformas, primero una prueba de conceptos y posteriormente el prototipo final, con un primer análisis a las características de los componentes de ambas plataformas. En el capítulos 3 se realizarán una pruebas a los componentes presentados en el capítulo 2, analizando los resultados obtenidos y comparándolos entre si. En el capítulo 4, con el prototipo ensamblado, se realizarán unas pruebas para verificar el correcto funcionamiento del robot, y su capacidad para realizar las tareas básicas de un robot sigue-líneas. Y finalmente en el capítulo 5 se realizará un análisis general del proyecto, analizando que elementos han sido relevantes y que problemas se han encontrado durante la realización de este proyecto. 2 Diseño de plataformas En este apartado se van a exponer los pasos tomados para realizar el diseño y la fabricación del prototipo de robot velocista. Para ello primero se explicarán los requisitos para este prototipo; el software con el que se han diseñado los distintos componentes; se mostrará una prueba de concepto desde la cual se ha partido, mejorando los problemas que se descubrieron en esta; y finalmente se expondrán las distintas piezas del robot, explicando el por qué de su diseño y su montaje. En la figura 2.1 se puede observar el conjunto del diseño que se va a analizar a continuación. Figura 2.1 Modelo 3D del robot con motores tipo TT. 2.1 Requisitos En este apartado se van a enumerar los distintos requisitos necesarios para la realización de un robot velocista para poder cumplir las pruebas de Robo Challenge LF Enhanced y la velocista de la lnrc. Los requisitos de un robot para que pueda ser homologado en la categoría velocista de la LNRC segun la normativa 1.5.1 de Marzo de 2019 son los siguientes: •El robot debe tener un máximo de 16 cm de ancho. •El robot debe navegar por los laterales del circuito, no por el medio. • Un robot no puede cambiar de carril más de 1 vez cada 1 segundo, programáticamente debe estar garantizado que el algoritmo de cambio de carril no se ejecuta hasta pasado ese tiempo, 5 12 Capítulo 2. Diseño de plataformas •Interfaz integrada de depurado (ICDI) Como se ve esta placa está en parte sobredimensionada a nivel de periféricos para este tipo de aplicación, pero por otro lado, un periférico que resulta muy interesante es la interfaz de encoder de cuadratura, del cual sólo dispone de uno, por lo que la medida de velocidad se realizará de forma manual mediante interrupciones. Sensor de Línea El sensor usado para la lectura de la línea es el QTR-8RC de Pololu. Esta placa esta formada en un conjunto de 8 sensores SMD que consisten en un LED infrarrojo y un foto-transistor acoplados a través de la reflexión de la luz sobre una superficie. La peculiaridad de este circuito es el montaje del foto-transistor en serie con un condensador como se puede ver en la figura 2.11. Figura 2.11 Sensor de línea QRT-8RC de Pololu y esquema del foto-transistor. Este tipo de montaje ofrece la posibilidad de tener una medida dependiente de la reflexión de la luz sin la necesidad de recurrir a ADC. Esto se consigue midiendo el tiempo de descarga, un tiempo largo indica una baja reflexión y un tiempo corto indica una alta reflexión, esto nos permite diferenciar entre una línea negra y un fondo blanco o el contrario. Para obtener esta medida de tiempo es necesario seguir el siguiente proceso como se muestra en el datasheet y la aplication note de Pololu. •Configurar el pin como salida y ponerlo a nivel alto. •Esperar al menos 10µspara que aumente la tensión de la salida del sensor. •Configurar el pin como entrada de alta impedancia. •Medir el tiempo que tarda la tensión de salida del sensor en ponerse a nivel bajo. El principal inconveniente de este formato de sensores es que la velocidad es variable, por lo que no tendríamos un tiempo de medida constante. Los tiempos que indica en la lectura del sensor si se está reflejando en una superficie negra es de 2.6ms a 3mm y de 10ms a 9.5mm. Este tiempo depende tambien del tipo de superficie, experimentalmente cambiaban los tiempo dependiendo de si la linea se encontraba impresa en papel normal o papel brillo. Se llegaron a tener tiempos del orden de 100ms para medir la línea en papel normal de fotocopiadora. 2.3 Primer diseño 13 Sensor de distancia El primer sensor de distancia que se utilizó es un sensor de ultrasonidos muy conocido y utilizado en la comunidad maker como es el HC-SR04, figura 2.12. La principal ventaja de este sensor es su manejo con dos pines digitales, y la relativa facilidad para conseguir una medida de la distancia: d[cm] = t[ms]∗vs[cm/ms] 2(2.1) Figura 2.12 HC-SR04. El mayor problema es el tiempo de medida, el cual es variable. lo cual puede significar generar un bloqueo durante otras funciones o que la medida llegue con retraso y ya no sea relevante, o en el peor de los casos, que llegue cuando ya es tarde. Por otro lado, a pesar de el tiempo de medida variable, si se implementase de una forma no bloqueante se podría medir de forma constante, lo cual supliría este problema. Otro inconveniente es que su precisión depende de factores ambientales como la temperatura, presión y humedad ambiental. Por ello estas medidas no se deben tomar como absolutas, hecho que se reflejará en los experimentos. Para la velocidad del sonido se ha supuesto 340m/s o 34cm/ms la cual es la velocidad del sonido a 15º C, 1 atmósfera y 0 % humedad. A pesar de dicho inconveniente, la función para lo que se va a utilizar es para detectar la presencia de obstáculos, no para medir con precisión la distancia a estos. Motores DC Para la actiuación de las ruedas se utilizan dos motores de corriente continua DG01G-L, con reductora 48:1, la L indica que el eje del rotor es largo, de forma que se puede añadir un encoder directamente en el eje del motor, y no exclusivamente en el de salida de la reductora. Estos motores también son conocidos como motores TT, pudiendo encontrarse con ese nombre con mucha facilidad y a un coste muy bajo. Las características de dicho motor son las siguientes de acuerdo a la página oficial de dagurobot: •Tensión de alimentación: 4.5 V •Consumo de corriente: 190 mA ( 250 mA max.) •Reductora: 48:1 •Velocidad de rotación: 140 ±10 rpm •Torque: 0.8 kg*cm (0,078 Nm) •Diametro del eje: 5.4 mm 14 Capítulo 2. Diseño de plataformas Figura 2.13 Motor DG01D 48:1 y rueda 65x26. •Tipo de eje: eje doble de plastico con laterales aplanados. •Peso del motor: 30 g Los motores se alimentarán a 7.5V para aumentar el par de estos, a la salida de la reductora se les acoplará una rueda de 65x25mm como la que se puede observar en la figura 2.13. Encoders Los encoders utilizados junto a estos motores estan conformados por un disco con 12 perforaciones y un sensor de paso óptico que se pone a nivel bajo cuando se interrumpe el paso de la luz en el led y el fototransistor. Tiene un circuito de adaptación, por lo que se utiliza la salida digital de dicho circuito. Figura 2.14 Sensor de paso óptico y disco de encoder incremental. El disco utilizado tiene 12 huecos, es decir, permite 12 pulsos por vuelta en el eje de la rueda. Con esto podemos suponer que el tiempo máximo entre dos pulsos sería de 80ms a 1 vuelta por segundo. Puente H Para la adaptación de potencia y el control de los motores se ha utilizado el circuito integrado de puente completo L298N. Este circuito permite el control individual de dos motores. Este se encuentra en una placa su propia placa, la cual también incluye un regulador de 5V, el cual se utilizará para alimentar a la placa del MCU. El sentido de los motores se puede modificar con unos 2.3 Primer diseño 15 pines, pero por simplificar, se mantendrán siempre en sentido de avance, modificando únicamente el valor del PWM que regula la tensión aplicada a los motores. Figura 2.15 Puente completo L298N. 2.3.2 Conexionado En la figura 2.16 se puede observar los componentes nombrados anteriormente y su conexionado en los distintos pines de la placa de desarrollo TivaC ™ . Para las conexiones a 5V se utilizará una tira de placa blanca para prototipado a la cual se conectarán los distintos pines de alimentación de los módulos, al igual que la alimentación de la placa controladora. Respecto a los pines de conexión, el sensor de línea y el sensor de ultrasonidos se conectará en los pines delanteros de la placa, mientras que los PWM de control de los motores y las entradas de los encoders se conectarán en los pines traseros, considerando la parte delantera siguiendo el sentido de las flechas marcadas en la placa de desarollo. 2.3.3 Estructura La estructura en la que se montó esta primera prueba fue un chasis muy sencillo, figura 2.17, en el cual simplemente se tuvo en cuenta que cupiesen los componentes, sin tener restricciones de tamaño, teniendo unas dimensiones de 190x120mm, añadiendo ambas ruedas las dimensiones totales eran de 204x173mm. El chasis por simplicidad fue construido utilizando la cortadora laser de FabLab Sevilla en DM de 3mm. La otra pieza que era necesaria para este diseño era el soporte de ultrasonidos, el cual fue fabricado en PLA negro en una impresora 3D ANET A8. Para el ensamblaje se utilizaron dos métodos distintos: tornillos y separadores de plástico para unir la placa controladora, el puente completo y los dos chasis, junto con dos pequeños soportes para separar el sensor de linea del suelo y no arrastrarlo; y alambre para sujetar los motores, el soporte del sensor de distancia y el sensor de línea al chasis, quedando este primer diseño como se observa en la figura 2.18. 16 Capítulo 2. Diseño de plataformas Figura 2.16 Conexionado de los componentes a la placa de desarrollo. Figura 2.17 Modelo del chasis y soporte para sensor de distancia. 2.3.4 Resultados de la prueba Control del primer diseño La programación de esta prueba consiste en, un control de velocidad de los motores, la lectura de la línea a seguir y la medición de ultrasonidos. Todas estas medidas se encuentran temporizadas, ejecutándose cada tarea según los siguientes intervalos: •0.5ms control de velocidad. •100ms llectura de la línea y selección de las referencias de velocidad. •100ms lectura del sensor de distancia. Estos tiempos se escogieron teniendo en cuenta la frecuencia de lectura de los sensores. Dichos flags se ejecutan con distintos temporizadores periódicos. El sensor que más problemas ha generado 2.3 Primer diseño 17 Figura 2.18 Diseño en FreeCAD frente a diseño ensamblado. es el sensor de línea, el cual llegaba a tardar 100ms en leer la línea. Por otro lado, el sensor de ultrasonidos tarda aproximadamente 1ms en su lectura, por lo que no bloquea el control general de forma importante. Debido a que de la función de lectura de la línea tarda tanto o más que el flag que la ejecuta, este flag se desactiva en caso de haberse activado durante la ejecución, aumentando los tiempos de lectura entre sí a 200ms, pero dando posibilidad de ejecutar el resto de rutinas. Resultados y problemas Debido a las dificultades programando la línea y los tiempos de lectura obtenidos. Los tiempos se escogieron de forma experimental, tras la realización de varias pruebas se llegó a obtener una idea del tiempo en el que se realizaba la bajada de de tensión en la mayoría de los pines. Con esto, se programó la lectura de la línea con un tiempo suficiente de lectura de forma que sólo quedasen por ponerse a nivel bajo los sensores que se encontrasen sobre la línea negra, unos 100ms. Esto genera un retardando el resto de tareas, ocasionando dificultades con el cambio de carril y el seguimiento de líneas durante las curvas. Debido a esto se tuvo que reducir la velocidad del robot de forma que la velocidad de lectura de la linea fuese suficiente para reaccionar adecuadamente y seguir la linea en las curvas. En el diseño del prototipo este problema se buscará solventar con la implementación de un sensor de línea con salida analógica, de forma que se obtenga un tiempo de lectura constante e inferior, sin influencia de la luminosidad ambiente. La alimentación de la placa también ha sido un problema. Debido al alto consumo de los motores, que en caso de ser alimentados con un porta-pilas la duración era inferior a una hora. Debido a esto se han realizado las pruebas con un adaptador de corriente de 7.5V y 1A para alimentar el puente completo L298N y de su rectificador obtener 5V con los que alimentar a la TivaC™. 18 Capítulo 2. Diseño de plataformas A pesar de estos problemas, se ha conseguido realizar un seguimiento de linea, con una detección de obstáculos fiable, siendo la parte más difícil toda la relacionada con giros bruscos debido a la lenta lectura de la linea, en las figuras 2.19 y 2.20 se pueden observar capturas de algunos vídeos, con perdida de la línea, seguimiento de la curva y cambio de carril. Los resultados de dichas pruebas se pueden observar de forma independiente en los vídeos presentes en los siguientes enlaces: •Seguimiento de una curva cerrada •Parada con obstáculo •Cambio de carril de derecha a izquierda •Cambio de carril de izquierda derecha Figura 2.19 Capturas de los experimentos de seguimiento de la curva. Figura 2.20 Capturas de la prueba de cambio de carril. 2.4 Segundo diseño 19 2.4 Segundo diseño En este segundo diseño se van a implementar las restricciones dimensionales explicadas en el apartado 2.1, con el objetivo de comprimir las dimensiones del robot y aumentar la versatilidad de esta plataforma, permitiendo intercambiar en la estructura distintos actuadores y sensores a los utilizados en la prueba de conceptos y presentes en el apartado 2.3.1. Figura 2.21 Segundo diseño montado con motores N20. 2.4.1 Componentes A continuación se comentarán las modificaciones a la lista de componentes respecto al diseño anterior. Alimentación Para la alimentación de este segundo diseño se ha utilizado una batería LiPo (polimero de lítio) de dos celdas, tensión nominal de 7.4V, máxima de 8.4V y 10800mAh. Para su carga se está utilizando un cargador balanceado B6 como el de la figura 2.22. Figura 2.22 Batería LiPo y cargador balanceado. La ventaja de este sistema para la alimentación del robot es su alta densidad energética, durando horas de funcionamiento el robot. También la cantidad de corriente entregada por la batería es muy superior, manteniendo una salida más constante que las pilas AA utilizadas en el primer diseño, apartado 2.3.1. 20 Capítulo 2. Diseño de plataformas Sensor de línea El sensor de línea que se ha elegido para esta segunda versión es el TCRT5000 de Vishay, se puede observar en la figura 2.23. Este sensor se ha elegido por ser bastante común y utilizado en pequeñas placas de electrónica de muy bajo coste. El sensor consiste en un LED infrarrojo y un foto-transistor acoplados a través de una superficie. Este tipo de sensor se analiza en [ 8 ], donde se expone también un modelo para la simulación de un sensor de características similares. Al contrario que en el sensor del primer diseño, este se va a implementar de forma que la salida sea un valor analógico y no necesite ningún tipo de temporización. Figura 2.23 TCRT5000L. Debido a que sólo se tenía acceso al sensor y no a un montaje de ellos en una placa con el circuito de polarización, se procedió a diseñar una en la que el foto-transistor estuviese funcionando como un amplificador en emisor commún. El circuito se ha diseñado utilizando KiCAD, explicado en el apartado 2.2.2. Primero se realizó una prueba en una placa preperforada para probar distintas resistencias, figura 2.24. Figura 2.24 Prueba TCRT5000 y esquema del circuito. La resistencia que se escogió para el LED era de 82Ω debido a que la corriente deseada para este era de 20mA a 2V , teniendo en cuenta la tensión del LED y una alimentación de 3.3V . Para la salida se utilizó una resistencia de 3.3KΩ la cual daba un buen rango de salida, siendo los valores de tensión 0.1V reflejando una superficie blanca y 2.2V una superficie negra a 2mm de separación. Los valores medidos sobre una superficie negra con el convertidor analógico digital de la placa y las resistencias probadas se pueden observar en la tabla 2.1. Experimentalmente al fabricar placa de sensores donde estos se encontraban en paralelo, los valores medidos oscilan entre los 200 y 3900. Con los valores de las resistencias definidos se procedió al diseño de el circuito impreso y a su fabricación. Se realizó un circuito en el que hubiese 6 circuitos idénticos al anterior en paralelo, 2.4 Segundo diseño 21 Tabla 2.1 Resistencias y valores de tensión experimentales. Resistencia[Ω] Valor mínimo ADC Valor máximo ADV 2.2K4031 4074 3.3K4000 4060 4.7K3971 4049 quedando el enrutado como se puede observar en la figura 2.25. Debido a la situación actual, la pandemia COVID-19, la fabricación de la placa se ha realizado utilizando medios caseros, transfiriendo una impresión de una impresora de laser sobre papel brillo con las pistas del circuito impreso a una placa virgen de cobre de una cara, siendo transferidas mediante la utilización de una plancha de la ropa. Posteriormente se corroe el cobre no protegido con una mezcla de agua oxigenada y ácido clorhídrico (salfuman). Tras esto se soldaron los componentes quedando la placa lista para ser probada e instalada en el robot. Figura 2.25 Diseño y PCB soldada. Sensor de distancia Este segundo sensor de distancia que se va a utilizar es el SHARP GP2Y0A21YK, figura 2.26. Este sensor se basa en un sistema de medición infrarrojo el cual mediante una salida analógica te da un valor de tensión inversamente proporcional a la distancia. Figura 2.26 SHARP GP2Y0A21YK. Para la lectura de estos sensores, al ser analógica su tiempo de lectura es ínfimo comparado con el del ultrasonido y aproximadamente constante. Pero al ser una señal procesada los tiempos de lectura que indica el datasheet son de 38.3ms ±9.6ms , por lo que el tiempo de muestreo de la distancia debería de estar en el orden de 38ms, en vez de tener la posibilidad de que fuese continuo. 28 Capítulo 2. Diseño de plataformas acuerdo a la estimación de Cura: Tabla 2.2 Tiempos de impresión. Pieza Duración de la impresión Chasis inferior 1h 44min Chasis superior 41min Soporte Línea 12min Soporte frontal SHARP 20min Soporte lateral SHARP x2 21min Soporte N20 x2 20min Llanta N20 x2 4h 2min Soporte TT x2 40min Disco Encoder 12 x2 24min Para el ensamblaje de la estructura se han utilizado tornillos y separadores de de nailon con rosca M3.Debido a que de la función de lectura de la línea tarda tanto o más que el flag que la ejecuta, este flag se desactiva en caso de haberse activado durante la ejecución, aumentando los tiempos de lectura entre sí a 200ms, pero dando posibilidad de ejecutar el resto de rutinas. 3 Pruebas de componentes En este capítulo se explicarán las pruebas realizadas con los componentes anteriormente expuestos, analizando los resultados obtenidos con la finalidad de poner entender con mayor coherencia la implementación posterior que se realizará de estos en el robot como conjunto. Primero se analizaran los sensores de pista, basados en la reflectancia de esta, pero realizando la medida de dos formas distintas. Posteriormente los sensores de distancia, uno basado en ultrasonidos, y el otro en un láser infrarrojo. Y finalmente comparando los dos formatos distintos de motores y sus codificadores. 3.1 Sensores de línea A continuación se mostrará una comparativa entre los dos sensores de lineas de los que se ha hablado con anterioridad, explorando sus diferentes formas de indicar la reflectancia de la superficie. El QRT-8RC cuya medida de la reflectancia se basa en el tiempo de descarga de un condensador, menor tiempo mayor reflectancia. Y el TCRT-5000 con un divisor resistivo cuya tensión de salida es inversamente proporcional a la reflectancia de la superficie. 3.1.1 QRT-8RC La programación en el primer prototipo se realizó configurando las entradas de los pines como una entrada de alta impedancia con una leve resistencia pull-up, con esta configuración el tiempo de lectura de este sensor es del orden de 100ms sobre una superficie negra, de forma que se consideró que los 6 primeros sensores en caer estaban midiendo blanco y los otros dos estaban sobre la línea negra. Con esto se realizaba una medición binaria, la cual simplifica la realización de un control para seguir la línea. Para mejorar el desempeño se ha modificado la configuración de estos pines a alta intensidad, reduciendo de esta forma los tiempos de lectura a unos 20ms. Se han realizado pruebas a dos distancias distintas, para observar la diferencia de los valores entre ambas y el tiempo de ejecución. El tiempo que aparece en los siguientes datos son décimas de milisegundo. Cada 20ms se ejecuta la lectura y posteriormente la escritura de los datos, por lo que para saber los tiempos de lectura, se utilizará el modulo de 200 del valor escrito por terminal. Primero se realizará la lectura binaria, midiendo exclusivamente los primeros seis sensores en bajar de nivel, a una distancia de 3mm de la superficie, asignándoles un 1 y un 0 a los dos últimos. Posteriormente se realizarán las mediciones de tiempo de bajada del sensor a 3mm y a 8mm de la superficie. En la figura 3.1 se puede ver como se ha realizado el experimento y la separación de 3mm, se han colocado dos arandelas, que en total miden 2.4mm para tener una referencia del espacio entre el sensor y la superficie. 29 30 Capítulo 3. Pruebas de componentes Figura 3.1 Prueba de los sensores de líneas y separación de 3mm. Medida con los 6 primeros valores Blanco 8201, 0, 1, 1, 1, 1, 1, 1, 0 8401, 0, 1, 1, 1, 1, 1, 1, 0 8601, 0, 1, 1, 1, 1, 1, 1, 0 8801, 0, 1, 1, 1, 1, 1, 1, 0 9001, 0, 1, 1, 1, 1, 1, 1, 0 9201, 0, 1, 1, 1, 1, 1, 1, 0 9401, 0, 1, 1, 1, 1, 1, 1, 0 Negro 95626, 1, 1, 1, 1, 0, 1, 1, 0 95827, 1, 1, 1, 1, 0, 1, 1, 0 96027, 1, 1, 1, 1, 1, 1, 1, 0 96227, 1, 1, 1, 1, 0, 1, 1, 0 96427, 1, 1, 1, 1, 1, 1, 1, 0 96625, 0, 1, 1, 1, 1, 1, 1, 0 96827, 0, 1, 1, 1, 1, 1, 1, 0 3.1 Sensores de línea 31 Los resultados de la lectura del sensor midiendo todo blanco o todo negro no son constantes, debido a que todos los sensores se encuentran ante una superficie relativamente homogénea, esto podría generar confusión al encontrarse con una línea desgastada o un segmento que faltase de esta. La mayor diferencia que existe son los tiempo de lectura, siendo el tiempo de lectura de la superficie blanca de 0.1ms y la de la superficie negra de 2.7ms. Línea negra 31602, 1, 1, 0, 0, 1, 1, 1, 1 31802, 1, 1, 0, 0, 1, 1, 1, 1 32002, 1, 1, 0, 0, 1, 1, 1, 1 32202, 1, 1, 0, 0, 1, 1, 1, 1 32402, 1, 1, 0, 0, 1, 1, 1, 1 32602, 1, 1, 1, 0, 0, 1, 1, 1 32802, 1, 1, 1, 0, 0, 1, 1, 1 Los resultados al leer la línea son muy constantes, con un tiempo de lectura de 0.2ms, levemente superior al tiempo de lectura de la superficie blanca y muy alejado de los tiempos de lectura de la superficie negra. Esto verifica el funcionamiento del sensor e indica que en caso de ser una linea blanca sobre un fondo oscuro, los tiempos de lectura serían cercanos a los 2.7ms de la superficie negra. Sensores a 3mm Al encontrarse el sensor de medida a 3mm los tiempos de lectura serán más cortos que los que observaremos cuando el sensor se encuentre a una distancia de 8mm. Los valores asignados a cada sensor son el número de ciclos que han pasado desde que los pines se configuran como entradas digitales, hasta que es detectado que se encuentra a nivel bajo. Blanco 21400, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 21600, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 21800, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 22000, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 22200, 4054, 4205, 4356, 4507, 4658, 3648, 5266, 4956 22400, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 22600, 3043, 4140, 4291, 4442, 4593, 3678, 5374, 3950 Negro 55812, 109993, 113308, 128045, 126541, 129866, 106043, 142472, 116051 56012, 109993, 113308, 128047, 127043, 129467, 106043, 142978, 115357 56212, 109996, 113311, 128047, 126543, 129868, 106046, 142473, 116054 56412, 109996, 113311, 128692, 127138, 129671, 106046, 142576, 116054 56612, 109993, 113308, 127452, 126448, 129278, 106043, 142185, 115357 56812, 109992, 113307, 128043, 126539, 129463, 106042, 142672, 116050 57012, 109996, 113311, 128692, 127138, 129671, 106046, 142576, 116054 Se puede observar la amplia diferencia de valores entre la superficie blanca y la superficie negra, lo cual da un amplio rango para poder realizar una linealización con valores máximos y mínimos y aproximar que nivel de gris tenemos bajo el sensor. Asumiendo que el cambio en la escala de grises generase un cambio lineal en el valor del tiempo, el tiempo de medida oscila desde tiempos menores a una décima de milisegundo, cuando se encuentra sobre una superficie completamente blanca, 32 Capítulo 3. Pruebas de componentes hasta a 1.2ms, que tarda en leerse los valores del sensor cuando la superficie es completamente negra. Linea Negra 90607, 3043, 3194, 4164, 9508, 81819, 3708, 5210, 4704 90807, 3043, 3194, 4164, 9508, 81819, 3708, 5210, 4704 91007, 3043, 3194, 4164, 9508, 81810, 3708, 5210, 4704 91207, 3043, 3194, 4164, 9507, 81818, 3708, 5210, 4704 91407, 3043, 3194, 4164, 9507, 81818, 3708, 5210, 4704 91607, 3043, 3194, 4164, 9508, 81517, 3708, 5210, 4704 91807, 3043, 3194, 4164, 9508, 81810, 3708, 5210, 4704 En la lectura de la línea se puede observar como hay una diferencia notable entre los valores que se encuentran sobre la linea frente a los que se encuentran sobre blanco. El tiempo de medida en este caso se encuentra en torno a los 0.7ms. Sensores a 8mm Al alejarse el sensor considerablemente de la superficie veremos un incremento tanto en los valores de medida como en el tiempo de lectura del sensor. Blanco 17202, 18394, 15981, 16132, 16283, 17658, 15454, 17178, 24818 17402, 18402, 15989, 16140, 16291, 17666, 15462, 17186, 24827 17602, 18402, 15989, 16140, 16291, 17666, 15462, 17186, 24523 17802, 18404, 15991, 16142, 16293, 17668, 15464, 17188, 24834 18002, 18501, 15991, 16142, 16293, 17638, 15464, 17815, 24922 18202, 18501, 15991, 16142, 16293, 17638, 15464, 17815, 24922 18402, 18003, 15991, 16142, 16293, 17668, 15464, 17188, 24729 Negro 53633, 332132, 306474, 318070, 307537, 333566, 279284, 313445, 399350 53833, 332352, 306664, 316275, 307727, 333786, 281246, 312249, 399876 54033, 331895, 306664, 316874, 307727, 334180, 281246, 312249, 399361 54233, 332618, 307550, 317058, 308655, 334455, 281246, 312433, 398723 54433, 332326, 307550, 317754, 308655, 334566, 281246, 313129, 401576 54633, 331173, 306749, 317147, 307812, 334267, 282213, 313720, 402497 54834, 338763, 313015, 322801, 310759, 338027, 284213, 316940, 407118 Comparando los resultados obtenidos en el experimento anterior, con los obtenidos en este, se puede observar como el tiempo de lectura ha aumentado considerablemente, siendo ahora en esta nueva configuración un tiempo contenido entre 0.2 y 3.4 ms. Esto se puede observar en como el rango de valores entre blanco y negro ha aumentado considerablemente, aumentando también el ruido en la medida en los dígitos menos significativos. Cabe destacar que en el momento en el que el sensor se despegaba del suelo o se salía de la mesa en la que se han probado apuntando al suelo, los tiempos de lectura aumentaban hasta ser superiores a 20 milisegundos, esto indica que en caso de utilizarse sería conveniente programar un tiempo máximo de lectura, aplicando un valor por defecto a los sensores que no hayan medido en caso de llegarse a tal situación. 3.1 Sensores de línea 33 Línea negra 97606, 18481, 16962, 30203, 68289, 25530, 16435, 17502, 25074 97806, 18480, 16961, 30202, 68288, 25529, 16434, 17501, 25073 98006, 18480, 16961, 30202, 67939, 25529, 16434, 17501, 25073 98206, 18480, 16961, 30202, 68288, 25529, 16434, 17501, 25073 98406, 18491, 16972, 30222, 68306, 25549, 16445, 17512, 25093 98606, 18481, 16962, 30203, 68289, 25530, 16435, 17502, 25074 98806, 18491, 16972, 30222, 68306, 25549, 16445, 17512, 25093 Al realizar la medida de la línea, al haberse alejado más de esta, el gradiente entre la linea negra y el fondo blanco no es tan drástico como en el anterior, a pesar de ello, sigue siendo notable la diferencia entre los valores. 3.1.2 TCRT5000L Primero se observará la medida directa del ADC. De esta forma se puede ver como cada sensor obtiene valores distintos, esto se debe a erroes de fabricación tanto en la PCB donde se han montado como en las tolerancias de los propios sensores. Como se puede observar en los siguientes experimentos, durante el montaje de la placa, uno de los sensores se ha estropeado, quedando siempre en un nivel de tensión bajo. Blanco 195570, 683, 647, 647, 663, 586, 522 195780, 651, 621, 613, 625, 579, 478 195990, 621, 591, 590, 602, 578, 448 196200, 606, 577, 565, 583, 575, 440 196410, 600, 568, 557, 576, 573, 424 196620, 600, 570, 566, 569, 573, 427 196830, 602, 574, 561, 573, 574, 430 Negro 100230, 3064, 2151, 2027, 2360, 1992, 448 100440, 3061, 2151, 2031, 2363, 1990, 445 100650, 3052, 2141, 2018, 2355, 1986, 436 100860, 3053, 2145, 2024, 2363, 1979, 437 101070, 3045, 2141, 2011, 2354, 1966, 432 101280, 3055, 2149, 2018, 2358, 1964, 429 101490, 3143, 2275, 2154, 2484, 2022, 583 Línea negra 249540, 614, 581, 2053, 597, 586, 456 249750, 634, 606, 2048, 612, 583, 468 249960, 628, 597, 2036, 608, 578, 458 250170, 613, 668, 2149, 681, 608, 538 250380, 774, 743, 2234, 757, 737, 614 250590, 717, 689, 2127, 702, 674, 541 250800, 698, 670, 1889, 681, 655, 530 Debido a las diferencias que puede haber entre los sensores se realiza una adaptación del rango. Para esto se ha implementado una rutina de calibración, en la que se miden veinte veces la salida de 34 Capítulo 3. Pruebas de componentes los sensores sobre una superficie blanca y sobre una superficie negra. Con estos se valores hace una media se ajusta el valor medido de la salida suponiendo que el valor medio sobre blanco es 0, y el valor medio sobre negro es 100 siguiendo la siguente forma: ValorLinea =ValorADC −Valormin Valormax −Valormin ∗100 (3.1) Siguiendo este método explicado se obtienen los siguientes resultados al colocar el robot sobre un papel blanco, uno negro y sobre la línea. En los resultados de la línea, se puede observar como se puede observar los valores se normalizan entre 0 y 100 incluyendo el sensor de la derecha, el cual midiendo directamente la salida del ADC funcionaba en otro rango de valores completamente distintos. Blanco 101340, 0, 0, 0, 0, 0, 0 101550, 0, 0, 0, 0, 0, 0 101760, 0, 0, 0, 0, 0, 0 101970, 0, 0, 0, 0, 0, 0 102180, 0, 0, 0, 0, 0, 0 102390, 0, 0, 0, 0, 0, 0 102600, 0, 0, 0, 0, 0, 0 Negro 65430, 104, 110, 110, 108, 118, 0 65640, 100, 103, 104, 103, 108, 0 65850, 101, 103, 104, 103, 108, 0 66060, 100, 102, 102, 102, 106, 0 66270, 101, 102, 103, 103, 107, 0 66480, 99, 99, 99, 100, 100, 0 66690, 100, 102, 102, 102, 105, 0 Para la lectura de la línea podemos ver como cuando la línea se encuentra entre los dos sensores de la izquierda, esta se detecta parcialmente, siendo detectado exclusivamente en uno de ellos. Esto se debe a la distancia de los sensores a la línea y la distancia entre los sensores que es de 15mm, el mismo ancho que la línea. En caso de encontrarse los sensores más cercanos a la línea esta se detectaría de forma parcial en ambos y lo mismo pasaría si la línea fuese más gruesa. Línea negra 116460, 0, 0, 86, 0, 0, 0 116670, 0, 0, 87, 0, 0, 0 116880, 0, 0, 86, 0, 0, 0 117090, 0, 0, 85, 0, 0, 0 117300, 0, 0, 84, 0, 0, 0 117510, 0, 0, 81, 0, 0, 0 117720, 0, 0, 79, 0, 0, 0 Para realizar una diferenciación booleana entre blanco y negro, se pone un valor mínimo en la medida normalizada, de forma que los valores superiores a 10 se considerarán negro y los inferiores blanco. Estos valores dependiendo de la superficie y el contraste entre la línea y el fondo podrían ser necesarios cambiarse, debido a que puede ocasionar fluctuaciones esporádicas en algunos valores, 3.2 Sensores de distancia 35 como es el caso del sensor derecho. Requiere de una calibración y prueba manual para ajustar el valor límite a partir del cual se considera que el sensor se encuentra sobre una superficie negra Blanco 190110, 0, 0, 0, 0, 0, 0 190320, 0, 0, 0, 0, 0, 0 190530, 0, 0, 0, 0, 0, 0 190740, 0, 0, 0, 0, 0, 1 190950, 0, 0, 0, 0, 0, 0 191160, 0, 0, 0, 0, 0, 1 191370, 0, 0, 0, 0, 0, 0 Negro 150840, 1, 1, 1, 1, 1, 1 151050, 1, 1, 1, 1, 1, 1 151260, 1, 1, 1, 1, 1, 1 151470, 1, 1, 1, 1, 1, 1 151680, 1, 1, 1, 1, 1, 1 151890, 1, 1, 1, 1, 1, 1 152100, 1, 1, 1, 1, 1, 1 Línea negra 255210, 0, 0, 1, 0, 0, 0 255420, 0, 0, 1, 0, 0, 0 255630, 0, 0, 1, 0, 0, 1 255840, 0, 0, 1, 0, 0, 1 256050, 0, 0, 1, 0, 0, 0 256260, 0, 0, 1, 0, 0, 0 256470, 0, 0, 1, 0, 0, 0 Con ese último método la implementación de un seguimiento de línea negra o blanca es muy fácil de implementarse, siendo reservado el uso de los valores normalizados para cuando fuese necesario la lectura de un gradiente de grises. 3.2 Sensores de distancia El experimento que se ha realizado para medir la precisión de los sensores de distancia y ajustar la medida obtenida es el siguiente: •Se acopla el sensor al eje z de una impresora 3D, figura 3.2. Con z=75mm. • Se manda a la impresora el comando G1 Z250 F5i000, desplazarse a z=250mm a una velocidad de 5000mm/min. •Se manda el comando G1 Z75 F5000 para volver a la posición inicial. Para la obtención de los datos se hace uso de una comunicación serie mediante el módulo bluetooth HC-05. todas las medidas se han tomado cada 50ms y a continuación serán comparadas unas frente a otras. 36 Capítulo 3. Pruebas de componentes Figura 3.2 Montaje de los sensores de distancia en una impresora 3D. HC-SR04 La medida del sensor de ultrasonidos se basa en el tiempo re rebote de una onda para obtener la medida de la distancia, por ello el tiempo de medida aumenta proporcionalmente con la distancia a medir. En este experimento no se ha utilizado ningún tiempo máximo de espera, lo cual genera que el tiempo de medida, a pesar de realizarse cada 50ms varíe de forma notable, como se puede observar en la gráfica derecha de la figura 3.3, donde el tiempo máximo ha sido de 20ms, pero en caso de no encontrar ningún obstáculo el tiempo de lectura puede llegar a los cientos de ms, siendo necesario en caso de utilizarse, utilizar un tiempo máximo de lectura y realizar una función no bloqueante, la cual se ejecute al menos un tiempo máximo programado antes de que sea necesario la información de la distancia. A la izquierda se puede observar la distancia medida, la cual se obtiene de la siguiendo la ecuación 3.2, donde "d" es la distancia medida en centímetros, "t" es el tiempo de retorno en milisegundos y "1.2" es la mitad de la velocidad del sonido en centímetros por milisegundo. d(cm) = t(ms)∗1.2(cm/ms)(3.2) Figura 3.3 Medida de la distancia con el sensor HC-SR04 y tiempo de lectura del sensor. 3.2 Sensores de distancia 37 SHARP El sensor SHARP al basarse en una señal analógica, su tiempo de lectura es constante, tardando del orden de 0.5ms la medida de la distancia, de forma que no interferiría o bloquearía otras tareas dentro del sistema. Los resultados obtenidos varían en función de si la alimentación de la placa se realiza mediante un puerto USB conectado al ordenador, o mediante el rectificador de 5V presente en la placa del puente H, apartado 2.3.1. En ambos casos se encuentra un condensador de 100µF entre los terminales positivo y negativo. Para el cálculo de la distancia se puede observar en la ecuación 2.4 en el apartado 2.4.1. Los valores de salida cambian en ambos métodos de alimentación aumentando la distancia medida de 25 a 27cm en la alimentación por batería. Junto a este cambio también se observa un cambio en el ruido de la medida, este ruido no parece que afecte en gran manera para el uso que va a recibir el sensor, que es un indicador de presencia, no una medida de distancia. La hipótesis del origen de este ruido a la que se ha llegado, es que el rectificador de 5V presente en el puente H produce una tensión con un rizado mayor que la tensión de alimentación obtenida a través del puerto USB del ordenador. Figura 3.4 Medida de la distancia con el sensor SHARP. Comparación En la figura 3.5 se pueden observar los resultados de los distintos sensores de distancia de forma comparativa, el HC-SR04 y el sensor SHARP. Con estos podemos ver como el sensor de distancia SHARP es más exacto que el sensor de ultrasonidos, pues este cuando hay 7cm mide 10.8 y cuando hay 25 mide 24, por el contrario el sensor SHARP mide 9cm en el primer momento y 25 o 27 dependiendo de la alimentación. Respecto a la incertidumbre de la medida, el sensor de ultrasonido tiene muy poca, simplemente oscilando cuando se encuentra entre dos medidas, mientras que el sensor láser tiene una incertidumbre de hasta 5cm cuando es alimentado mediante la batería. En ese caso se observa un aumento considerable del ruido en la medida. Este efecto se ve reforzado al observar el valor de distancia cuando el sensor apunta al aire, en este caso una pared a 3m de distancia. Estos resultados se pueden observar en la figura 3.6. En este caso las oscilaciones son de 20cm cuando se alimenta por USB y de 10cm al alimentarse mediante batería. Al observar los valores de distancia medidos al aire se puede elegir un valor de distancia límite, bajo el cual se considerará la presencia de un obstáculo. Para el sensor de ultrasonidos cualquier valor por debajo de un metro que se adaptase a nuestras necesidades sería válido, por otro lado en el sensor láser, al alimentarse con una batería se limita el rango a distancias inferiores a 25cm. Esta distancia medida cuando apunta al aire no indica la distancia máxima medida, pudiendo medirse cuando hay un obstáculo, en el que el láser se refleje, distancia superiores a 40cm. 44 Capítulo 4. Pruebas del robot equivale a una velocidad de avance de 1m/s con las ruedas de 65mm. Estas velocidades se pueden alcanzar con un ancho de pulso del 80 % . Un fallo que se ha llegado a detectar es que al ser dos los encoders que están interrumpiendo dentro del mismo periférico de GPIO, el programa se bloquea cuando estas llegan a ser 2000 interrupciones en el mismo periférico y manejador, una posible solución que podría solucionar este problema es la separación de los pines de interrupción para los distintos encoders en dos periféricos distintos y con dos rutinas de interrupción distintas, utilizando una tercera para el temporizador que realiza la cuenta de los pulsos cada vez. Estos nos limitará los anchos de pulso que podamos utilizar de forma repetible y medible, en este caso concreto, en la figura 4.1, se puede observar como Se pueden utilizar velocidades entre 0 y 60 % midiendo las velocidades de ambas ruedas, pero como al aumentar hasta el 80 % la medida de las ruedas sólo sucede en el caso de desconectarse una de las ruedas, limitando las velocidades máximas y los anchos de pulsos con las que se realicen los experimentos. Figura 4.1 Experimento de aceleración con motores TT y encoder magnético. El rango de velocidades que se obtiene con estos motores es de 0.2-0.7m/s, siendo el ancho de pulso mínimo para iniciar el movimiento de un 20 % y el máximo antes del bloqueo del programa es el 60 %. 4.1.2 Motor N20 Reductora 10:1 Este motor como se ha nombrado reiteradamente con anterioridad, tiene un par bajo y una velocidad alta. Esto significa que necesita niveles más altos de tensión para poder iniciar el movimiento, como se puede observar en la figura 4.2, y que la fuerza contraelectromotriz al reducir la tensión no es suficiente para frenar el robot de forma rápida, quedando este rodando con poca resistencia. Por otro lado, las velocidades que se obtienen sin que se bloqueé el programa es de 11 revoluciones por segundo, 2.24m/s al 100 % de ancho de pulso, en la prueba de aceleración de dos segundos. Las velocidades alcanzables con este motor son entre 0.6-2.2m/s, siendo el rango de ancho de pulso hábil entre 50 y el 100 %. 4.1 Pruebas de aceleración 45 Figura 4.2 Caption. Reductora 100:1 Al tener una reductora tan larga, la velocidad es mucho menor, pero por otro lado la aceleración y deceleración es muy superior gracias al gran par otorgado por los motores. También genera mas pulsos en el encoger por revolución de la rueda, lo cual otorga más resolución en la velocidad angular. Figura 4.3 Experimento de aceleración. La velocidad máxima que se puede observar es de 1.1 vuelta por segundo a un pwm del 20%, 66rpm, o con las ruedas de 65mm, una velocidad de 22cm/s. Mientras que con un ancho de pulso del 10% obtenemos una velocidad de de 0.4 vueltas por segundo. Estas velocidades bastante reducidas 46 Capítulo 4. Pruebas del robot son bastante adecuadas para hacer pruebas en un espacio de 2x1.2m, lugar donde se realizarán las pruebas. Comparación En la tabla 4.1 se pueden observar los distintos rangos de velocidades útiles con los distintos motores y el rango de ancho de pulso con el que se obtienen. Estos datos son especialmente interesantes cuando se comparan las velocidades alcanzadas en cada prueba de aceleración con la característica estática obtenida en el experimento de vacío. Analizando el comportamiento general, se puede ver como todos los motores han aumentado la zona lineal reduciendo su pendiente, especialmente el motor con la reductora de 10:1 con la que, debido a su reducido par, Se ha visto una caída muy notable en la velocidad, figura 4.4. Las velocidades de los otros motores no han sufrido un descenso tan notable, por lo que se podría entender que sus reductoras están bien dimensionadas, o en el caso de la reductora 100:1, sobredimensionada. Con esto se podría concluir que un motor de tipo N20 sería conveniente con reductoras más intermedias, como podría ser una reductora 30:1, de forma que se obtendría un mayor control sobre la velocidad con un rango más adecuado. Un parámetro que también habría que tener en cuenta sería un cambio en las dimensiones de la rueda, la cual en caso de reducirse sería beneficioso para el motor con menor reducción y contraproducente a los que tienen mayor reducción. Tabla 4.1 Pruebas de aceleración. Motor Velocidades angulares[r/s] Velocidades lineales[m/s] Ancho de pulso[%] Motor TT 1-4.3 0.2-0.7 20-60 Motor N20 10:1 3-11 0.6-2.2 50-100 Motor N20 100:1 0.4-1 0.08-0.2 10-20 Figura 4.4 Comparación de las velocidades en vacío frente a en carga. Para los experimentos de seguimiento de línea y detección de obstáculos como se ha comentado en el experimento anterior se utilizará el motor N20 con la reductora de 100:1 debido a el espacio reducido en el que se está realizando la prueba. Este motor permite mantener un buen control sobre el movimiento del robot gracias a la larga reductora y baja velocidad, ideal para realizar pruebas en un espacio reducido. 4.2 Detección de obstáculos 47 4.2 Detección de obstáculos La prueba de detección de obstáculos consiste en la detección de un obstáculo frente al robot, en este experimento se van a utilizar dos cajas. Primero una colocada a 80 cm de la posición inicial, y una 40 cm detrás de está, siendo el objetivo del experimento comprobar si realiza una parada y al desaparecer el obstáculo reanuda la marcha. Figura 4.5 Caption. Los resultados de los datos metidos y la actuación en los motores se pueden observar en la figura 4.6. Aquí se puede observar como cada vez que la lectura de la medida era inferior a los 17cm puestos como límite se cortaba la potencia en los motores. Cabe destacar, que con el motor confirmado el robot al encontrarse con un obstáculo estático evita la colisión, mientras que con los otros motores simplemente se dejaría de acelerar, dejando que la resistencia de los motores frenase el robot, reduciendo la velocidad y evitando un fuerte impacto. Para solucionar esto se podría controlar el sentido de la tensión en los motores y forzar una frenada, pero no se ha considerado necesario con los motores con los que se ha probado y no se ha implementado. 48 Capítulo 4. Pruebas del robot Figura 4.6 Telemetría de la detección de obstáculos. 4.3 Pruebas de seguimiento de la línea La prueba de línea que se han realizado han sido relativas a la detección y seguimiento de línea en curva y recta. Para las pruebas del primer prototipo se realizaron unos tramos de pista impresos en papel. El grueso de la línea es de 15mm, y los dos carriles se encuentran separados a 15cm. Por otro lado la curva exterior tiene un radio de 23cm. Estos tramos se pueden observar en la figura 4.7. Los distintos segmentos impresos se unieron con cinta adhesiva. Figura 4.7 Recta y curva del circuito. Tras unas breves pruebas con el primer prototipo se llegó a la conclusión de que la curva interior con un radio de 7cm es muy brusca, por lo que se diseñó unos segmentos nuevos para el prototipo, figura 4.8, en el que además se varia el ancho de la linea en recta y se hace discontinua, no más de 10cm. Uniendo las pistas anteriores y las nuevas ahora se poseen dos curvaturas distintas, una de 23 y otra de 25cm de radio, al igual que nos anchos de línea distintos. Para las pruebas se ha desactivado la medida de la velocidad, debido a que ocasionaba errores de forma esporádica y controlándose estos en bucle abierto. También, debido a la presencia de un sensor de la línea dañado, las curvas se realizarán a izquierdas, considerando en caso de no haber sucedido este contratiempo, que el comportamiento con curvas a derecha sería análogo. 4.3 Pruebas de seguimiento de la línea 49 Figura 4.8 Nuevos segmentos de pruebas para el prototipo. Figura 4.9 Circuito construido con los segmentos. El mapa completo se puede ver en la figura 4.9. Este circuito consta de 4 segmentos, el problema ser páginas impresas en A3 es que las uniones han de hacerse con cinta adhesiva, o en este caso cinta de carrocero, siendo estos puntos elementos de fricción extra en los que el robot suele atascarse, debido a los soportes sobre los que se apoya el sensor de línea. En la figura 4.10 se pueden observar capturas del vídeo donde se completa el circuito nombrado anteriormente. Este circuito consisten en una primera recta seguido de un giro superior a 90 º con un radio de 25cm, seguido de una sección en la que la línea cambia de sección posteriormente siendo interrumpida durante 10cm. Como nota cabe decir que el robot en el vídeo de la prueba se ha atascado dos veces, la primera en una transición entre dos hojas de papel, y la segunda con un trozo de plástico que se encontraba debajo de la hoja. La telemetría de este experimento se puede observar en la figura 4.11. En está gráfica en la parte superior se pueden observar los valores de los sensores durante la prueba, indicándose en amarillo dónde se ha detectado la línea, mientras que en la gráfica inferior se pueden observar las actuaciones ejercidas sobre los motores. Ambas gráficas estan alineadas, de forma que en el momento en el que el robot se encuentra en la curva se puede observar como la línea es detectada en los primeros sensores, a la izquierda, y por tanto se reduce la actuación sobre la rueda izquierda. 50 Capítulo 4. Pruebas del robot Figura 4.10 Capturas de la prueba de seguimiento de línea. Figura 4.11 Telemetría de la prueba de seguimiento de línea. También se puede observar el resultado de pasar por encima de las flechas en el sensor de línea, como hay un momento en el que de repente todos los sensores se activan y se van reduciendo, hasta posteriormente ampliarse la detección en los sensores hasta desaparecer y volver al estado anterior, con la línea en el lado izquierdo, donde intenta centrar el coche durante el espacio sin línea sobre-compensando y terminando la detección en el lado derecho. Para ver el vídeo completo se puede hacer en el siguiente enlace: https://youtu.be/IoeVS9t8Nc8 5 Conclusiones Con este trabajo se ha obtenido un conocimiento más profundo de los distintos sensores y actuadores típicamente utilizados en los sigue-líneas de competición, especialmente de los distintos usos en los que su aplicación puede ser conveniente. Concretamente los análisis realizados con los distintos tipos de sensores de línea, muestran como cada tipo de sensor tiene su ventaja. Un ejemplo de esto es poder utilizar el sensor de línea temporizado en microcontroladores de menor capacidad, donde no se dispone de una abundancia en convertidores analógicos digitales. En caso de disponer de estos recursos, el utilizar los fototransistores en un divisor resistivo genera una lectura estable en la que el tiempo de medida es constante. Esto es una gran ventaja para coordinar las distintas tareas y los tiempos que estas han de tener para realizar el seguimiento de línea. Por otro lado, al realizar las pruebas de los sensores de distancia, se repite una situación similar. El sensor de ultrasonidos sólo utiliza señales digitales y es variable en el tiempo, mientras que el sensor láser utiliza una señal analógica. En este caso, el sensor de ultrasonidos tiene un rango de medida muy superior, siendo el límite el tiempo que se decida esperar el eco. Pero para esta aplicación concreta, la cual se basa en detectar un obstáculo en las inmediaciones, a una distancia corta, el tiempo de medida es como mucho de 20ms. De forma que se podría poner una limitación de tiempo de medida y realizar una planificación de tareas con ese tiempo máximo. Por otro lado, el sensor láser, para detectar la presencia de un obstáculo a una distancia de 20cm o inferior, tarda el tiempo de lectura de la señal analógica, muy inferior. El único inconveniente es que sería recomendable tener una fuente de alimentación o un rectificador aislado para reducir el ruido en la medida y aumentar la tensión obtenida cuando el sensor se encuentra midiendo fuera de rango. Las pruebas con los motores han resultado ser bastante interesantes, especialmente al comparar sus características estáticas entre el experimento de vacío y el experimento de aceleración del robot. Aquí se puede ver la necesidad de buscar un motor mejor dimensionado, al igual que unas ruedas de dimensiones adecuadas. También una información importante y a tener en cuenta, son las distintas frenadas que aporta cada motor. Los motores con una menor reductora originan una frenada importante, deteniendo el vehículo en una distancia reducida, mientras que el motor con la reductora de 10:1 su frenada era muy leve, lo cual se beneficiaría de una frenada activa cambiando la polaridad del motor. De las pruebas experimentales con el robot ensamblado se ha obtenido una verificación del funcionamiento básico necesario para las pruebas, realizando un seguimiento de línea y detección de obstáculos, siendo capaz de superar anomalías en la línea. Estos son parte importante de los requisitos básicos para poder participar en las competiciones actualmente, pero a pesar de ello el robot se encuentra todavía lejos del actual nivel de la competición. Sería necesario para alcanzar este nivel modificaciones principalmente en el diseño físico del robot: una reducción de peso, 51 52 Capítulo 5. Conclusiones dimensionamiento correcto de ruedas y motores, y una mejor integración de los componentes de forma que se puedan evitar problemas de desconexiones esporádicas al tratarse de cables dupont. Con la finalización de este trabajo se ha obtenido una base sobre la que poder expandir e ir explorando distintas posibilidades en el mundo de la robótica de competición. Este prototipo está lejos de los 5m/s que alcanzan muchos de los robots que se ven en las competiciones internacionales. A pesar de ello, es un paso en la dirección correcta y una plataforma sobre la que poder seguir expandiendo en conocimiento y pruebas sobre los robots móviles de competición. 5.1 Problemas y soluciones Aquí se hablará de problemas importantes que han limitado el funcionamiento del prototipo en algún aspecto, siendo estos distintos de los inconvenientes y limitaciones que se han ido analizando al realizar los experimentos de los sensores y las pruebas del robot. Debido a la fabricación casera realizada por la situación de confinamiento, el error de fabricación en el circuito del sensor de línea ha generado que uno de los sensores no esté funcionando de forma correcta, impidiendo así realizar las pruebas de detección de gradiente. Para ello habría que sustituir el sensor entero, si no, el foto-transistor del par LED foto-transistor. Con esto se conseguiría el funcionamiento de la línea entera, requerimiento necesario para realizar experimentos de detección y seguimiento de carril. Esto son experimentos análogos al seguimiento de la línea que se ha realizado, pero con un mapa de gradientes. Otro problema que se ha detectado ha sido el asociado al bloqueo del programa cuando se usaban los encoders a altas velocidades, como se comenta en el experimento de aceleración y deceleración. El problema se cree originado por la llegada simultanea de dos interrupciones a la rutina desde el mismo periférico de pines de ambas ruedas y desde el temporizador que realiza la medida. La posible solución que se plantea consiste en cambiar los periféricos de entrada de los encoders junto a las rutinas de interrupción, utilizando recursos distintos para cada rueda a la vez que otra distinta para la interrupción del temporizador que cuenta los pulsos y reinicia su valor. En caso de que esta solución no arreglase el problema sería conveniente mirar alternativas a la placa controladora, lo cual permitiría explorar otras, a ser posible, de menor tamaño, reduciendo así el peso y dimensiones de la plataforma. 5.2 Trabajos futuros Como se ha dicho con anterioridad, el desarrollo de este prototipo es un primer paso para poder explorar el mundo de la robótica de competición, y personalmente tengo un gran interés en continuar expandiendo y aprendiendo a partir de los resultados obtenidos en este proyecto. El primer paso será probar las soluciones planteadas para los problemas anteriormente comentados, así pudiendo realizar la detección de gradientes nombrada múltiples veces a lo largo del proyecto, e intentar encontrar una forma mejor de poder realizar las pruebas, un espacio más grande y a ser posible, una pista plana y nivelada. Esto al igual que el tiempo, ha sido un limitador importante a la hora de poder seguir documentando los experimentos que se realizarán posteriormente a la presentación de este proyecto. Apéndice A Códigos principales Aquí se adjuntarán los códigos utilizados para las pruebas a las que se ha sometido el prototipo de robot sigue-líneas A.1 Prueba de aceleración Código utilizado para realizar las distintas pruebas de aceleración, en las que el robot se encuentra durante 2 segundos aplicando un ancho de pulso concreto a ambos motores. /** * main.c */ #include <stdint.h> #include <stdbool.h> #include "driverlib2.h" #include "driverlib/uart.h" #include "utils/uartstdio.h" #include "config_pines.h" //#include "motor.h" #define MSEC 40000 uint32_t RELOJ, time; double v_ml = 0, v_mr = 0; uint32_t pulse_ml = 0, pulse_mr = 0; uint32_t cycle, potencia = 1; int f_mili = 0; void mili (void){ f_mili=1; TimerIntClear(TIMER0_BASE, TIMER_A); } void tick (void){ 53 60 Capítulo B. Piezas diseñadas B.2 Modelos de malla en formato .stl •Modelos para la realización de las pruebas de los componentes –prubas MOTOR.stl Enlace a GitHub. –prueba_SHARP.stl Enlace a GitHub. –prueba_US.stl Enlace a GitHub. •Modelos de la prueba de conceptos –chasis_v2.stl Enlace a GitHub. –chasis2_v2.stl Enlace a GitHub. –Soporte_US.stl Enlace a GitHub. •Modelos del prototipo –chasis1_v3.stl Pieza inferior del chasis. Enlace a GitHub. –chasis2_v3.stl Pieza superior del chasis. Enlace a GitHub. –montura_motor.stl Montura para el motor TT, deben imprimirse dos, una de ellas espejada. Enlace a GitHub. –montura_N20.stl Montura para el motor N20. Enlace a GitHub. –rueda_N20_v2.stl Llantas para las ruedas de 65mm y el motor N20. Enlace a GitHub. –soporte_SHARP.stl Soporte del sensor de distancia frontal. Enlace a GitHub. –soporte_SHARP_lat.stl Soporte de los sensores de distancia laterales. Enlace a GitHub. –soporte_linea.stl Soporte para el sensor de línea. Enlace a GitHub. Índice de Figuras 1.1 Ejemplo de vehículo autónomo y robot social 1 1.2 ELMER y ELSIE, The Stanford Cart y Curiosity Rover 2 1.3 Robot domestico roomba y robot de defensa Atlas 2 1.4 Robot Lego y DARPA Grand Challenge 3 1.5 AGV industrial y sigue-líneas construido con Lego Mindstomrs 4 2.1 Modelo 3D del robot con motores tipo TT 5 2.2 Esquema de los componentes que conforman un robot sigue líneas avanzado 7 2.3 Logos de FreeCAD y el entorno KiCadStepUp 7 2.4 Logo de KiCad 8 2.5 Logo de GrabCAD 8 2.6 Logo de Code Composer estudio y eclipse 9 2.7 Logo de Tera Term 9 2.8 Prueba de concepto 10 2.9 Portapilas de 5 pilas AA 11 2.10 Placa de desarrollo EK-TM4C1294NCPDT 11 2.11 Sensor de línea QRT-8RC de Pololu y esquema del foto-transistor 12 2.12 HC-SR04 13 2.13 Motor DG01D 48:1 y rueda 65x26 14 2.14 Sensor de paso óptico y disco de encoder incremental 14 2.15 Puente completo L298N 15 2.16 Conexionado de los componentes a la placa de desarrollo 16 2.17 Modelo del chasis y soporte para sensor de distancia 16 2.18 Diseño en FreeCAD frente a diseño ensamblado 17 2.19 Capturas de los experimentos de seguimiento de la curva 18 2.20 Capturas de la prueba de cambio de carril 18 2.21 Segundo diseño montado con motores N20 19 2.22 Batería LiPo y cargador balanceado 19 2.23 TCRT5000L 20 2.24 Prueba TCRT5000 y esquema del circuito 20 2.25 Diseño y PCB soldada 21 2.26 SHARP GP2Y0A21YK 21 2.27 salida en funcion de la distancia y su inversa 22 2.28 Disco magnético y sensor Hall 23 2.29 Motor N20 con tabla de reductoras 23 2.30 Llanta para neumatico de 65x25, eje de motor N20 24 61 62 Índice de Figuras 2.31 Modulo HC-05 24 2.32 Esquema de conexión del segundo diseño con un sólo sensor de distancia. 25 2.33 Estructura inferior y soporte de linea 25 2.34 Montaje de los motores TT y la TivaC™ 26 2.35 Chasis inferior con todos los periféricos. 26 2.36 Chasis superior y montaje del chasis superior e inferior 27 2.37 Comparacion del montaje con los dos tipos de motores 27 2.38 Impresora Ender 3 27 3.1 Prueba de los sensores de líneas y separación de 3mm 30 3.2 Montaje de los sensores de distancia en una impresora 3D 36 3.3 Medida de la distancia con el sensor HC-SR04 y tiempo de lectura del sensor 36 3.4 Medida de la distancia con el sensor SHARP 37 3.5 Comparación de resultados en el test de distancias 38 3.6 Comparación en la medida al aire 38 3.7 Plataforma de pruebas con el motor TT 39 3.8 Experimento con los motores TT con encoder óptico y magnético 39 3.9 Característica estática de los motores TT 40 3.10 Plataforma de pruebas con el motor N20 40 3.11 Experimento con los motores N20 100:1 y característica estática 41 3.12 Experimento con los motores N20 10:1 y característica estática 42 3.13 Comparación característica estática respecto a tensión y ancho de pulso 42 4.1 Experimento de aceleración con motores TT y encoder magnético 44 4.2 Caption 45 4.3 Experimento de aceleración 45 4.4 Comparación de las velocidades en vacío frente a en carga 46 4.5 Caption 47 4.6 Telemetría de la detección de obstáculos 48 4.7 Recta y curva del circuito 48 4.8 Nuevos segmentos de pruebas para el prototipo 49 4.9 Circuito construido con los segmentos 49 4.10 Capturas de la prueba de seguimiento de línea 50 4.11 Telemetría de la prueba de seguimiento de línea 50 Bibliografía [1] Jesus Enrique Sierra Garcia, Felipe Espinosa, and Carlos Santos, Transporte multi-AGV de una carga: estado del arte y propuesta centralizada,0, no. 0, Number: 0. [2] M. V. Gomes, L. A. Bássora, O. Morandin, and K. C. T. Vivaldini, PID control applied on a line-follower AGV using a RGB camera, 2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC), ISSN: 2153-0017, pp. 194–198. [3] J. Gonçalves, V. H. Pinto, and P. Costa, A line follower educational mobile robot performance robustness increase using a competition as benchmark, 2019 6th International Conference on Control, Decision and Information Technologies (CoDIT), ISSN: 2576-3555, pp. 934–939. [4] M. Santos Pessoa de Melo, J. Gomes da Silva Neto, P. Jorge Lima da Silva, J. M. X. Natario Teixeira, and V. Teichrieb, Analysis and comparison of robotics 3d simulators, 2019 21st Symposium on Virtual and Augmented Reality (SVR), pp. 242–251. [5] Sergio Alejandro Madrigal Moreno and Nelson David Muñoz Ceballos, Vehículos de guiado autónomo (AGV) en aplicaciones industriales: una revisión, 15 , no. 28, 117–137, Number: 28. [6] Diogo Puppim de Oliveira, Wallace Pereira Neves dos Reis, and Orides Morandin Junior, A qualitative analysis of a USB camera for AGV control, 19 , no. 19, 4111, Number: 19 Publisher: Multidisciplinary Digital Publishing Institute. [7] S. Saadatmand, S. Azizi, M. Kavousi, and D. Wunsch, Autonomous control of a line follower robot using a q-learning controller, 2020 10th Annual Computing and Communication Workshop and Conference (CCWC), pp. 0556–0561. [8] Van N. Tran, Modeling phototransistor optocouplers using pspice simulation software, 10 2005. 63