Trabajo Escrito
Trabajo Escrito
Trabajo Escrito
para la asignatura Análisis de Algoritmos dirigida por el docente Emanuel Rivera Guzmán.
como sensores, arduinos, etc. que por su tamaño y precisión permiten realizar un muestreo
This document is about the development and implementation of a car solves mazes made
by the group of students in the fifth semester of the faculty of systems engineering of the
pilot university of Colombia sectional of the high Magdalene, for the subject Analysis of
The main objective of the project is to acquire analysis and research capabilities of
algorithms applied in real environments, through the use of electronic components such as
sensors, Arduinos, etc. which, due to its size and precision, allows an exact sampling of the
A partir de la revolución industrial, se dio inicio a una nueva era, caracterizada por el
que el hombre a la hora de desarrollar sus quehaceres. Esto permitió que, desde ese
Hoy en día, la robótica es una de las ramas de la tecnología que presenta mayores avances
Un laberinto son conjunto de caminos interconectados entre sí que van desde una desde una
entrada en común hasta una única salida, su origen se remonta a la civilización egipcia y a
partir de ese entonces han sido muchos las personas que han realizado distintos modelos
para su resolución.
de los materiales.
Argumento a la pregunta
Para poder consolidar el modelo del auto resuelve laberintos, fue necesario la formulación
de la “pregunta problema”, ya que este el pilar base para el desarrollo de teorías, técnicas y
datos del proyecto, para poder llegar a la pregunta fue necesario realizar un análisis
con el fin de poder llegar a formular cuestionamientos acerca de los aspectos necesarios
acoplamiento de mecanismos autónomos capaces de realizar tareas que para el hombre son
peligrosas o difíciles de realizar. No obstante, estos también han tenido presencia en otras
áreas como son el estudio de fenómenos desconocidos o de los que se tienen pocos
proyectos de este tipo permite que los estudiantes mejoren sus habilidades tecnológicas, ya
que esta rama es de vital importancia hoy en día. Así como también permitirá una mejor
comprensión de la aplicación, comportamiento y el porqué de la necesidad de la
hardware de auto resuelve laberintos, puesto que estos factores muchas veces no son
Por otra parte, el definir el problema va mucho más allá de simplemente plantear la
principal problemática, ya que se deben tener en cuenta cada una de las problemáticas y sub
resolver laberintos, ya que si analizamos este planteamiento podremos asegurar que carece
de sentido. Por tanto, lo que se debe mirar es cuál es la necesidad de esquivar obstáculos en
la inteligencia artificial, es decir qué papel juega hoy en día el realizar robots de este tipo y
También se debe tener en cuenta a la hora de describir el problema se evidenciará que para
inteligencia artificial tales como la búsqueda, abstracción y uso del conocimiento, ya que
mediante este mecanismo es como actúa la inteligencia artificial, lo que permitirá una
Por último, se plantearon las preguntas de acuerdo al análisis y definición del problema,
con el objetivo de poder dar una base constituyente para el planteamiento de un modelo de
laberinto?
¿Cuáles son los principales inconvenientes a los que se enfrentan las personas al
Objetivo General:
Objetivos Específicos:
Variables
Variables independientes:
Variables dependientes: la variable dependiente es el tiempo que tarde el auto en salir del
laberinto.
Breve reseña histórica
Aunque hoy en día no se conozca exactamente la fecha de origen y el nombre del creador
La primera aparición fue en la edad de bronce donde los laberintos eran tallados sobre rocas
en las ciudades en Pontevedra y val camonica en Italia, también hay rasgos de esto tallados
Lo más relevante, es que los laberintos en ese entonces tenían distintos significados de
malignos.
Por otra parte, el surgimiento de la robótica no puede ser acreditado a una única fecha en
específico puesto que a lo largo de la historia han sido muchos los aportes que se han dado
en este campo, no obstante, se puede hacer referencia a hechos en concreto que fueron
Un primer registro data de la época de las primeras civilizaciones con el surgimiento de las
primeras máquinas autómatas usadas como herramientas para alabanza a sus dioses. Años
después estos conocimientos se expandieron por todo el imperio romano y su énfasis fue
hacia el desarrollo de instrumentos para realizar tareas tales como medir el tiempo y así con
el pasar de los años fueron cada vez más los aportes a esta área hasta el año 1921 en donde
carel kaped uso el termino robot para hacer referencia a las máquinas que realizan trabajo.
A partir de los 60 este tipo de máquinas empezó a ser usado por las industrias para la
tecnificación de tares, aunque en ese entonces aún se presentaba la dificultad que su tamaño
y rendimiento.
componentes electrónicos más pequeños como son los transistores, abrió las puertas a una
Hoy en día la robótica se relaciona en todos los ámbitos de la sociedad y uno de esos
competencia los micromousers compiten para llegar al centro del laberinto en el menor
de tamaño 16x16 en rejillas de 180 mm, cada pared con 50 mm de alto y 12 mm de grueso.
2002 la normativa se basó en el robot que lograra entrar y salir del laberinto en el menor
tiempo posible. En el 2004 la temática de recorrido del laberinto cambio puesto ahora debía
basarse en algoritmos de navegación mucho más complejos, ya que el laberinto contaba con
sectores, sociales y económicos, permitiendo llevar una logística y contabilidad más exacta
desarrolladas a comparación de otros países como Japón, por tal razón este proyecto
también tiene como objetivo incentivar a que realicen este tipo de actividades con mayor
frecuencia y que cada vez sean más las personas que participen en ellas.
Por otra parte, esto permite que la vinculación de este tipo de proyectos sean aporte o
modelo para las grandes empresas para la automatización de tareas, como es el caso de
El alcance del proyecto está dado netamente al diseño del chasis, desarrollo del software,
robots resuelve laberintos, lo que se busca es poder formalizar un modelo capaz de resolver
Programación de software
Por otra parte, una posible proyección futura del proyecto es que lograr que cada vez sean
más frecuentes este tipo de actividades y más las personas participantes, puesto que esta es
Dentro de las competencias mundiales desarrolladas para robots resuelve laberintos existen
reglas:
Todos los grupos deben poseer los mismos materiales para asegurar que no haya
el material del chasis debe ser del mismo material para todos los equipos, pero su
El ganador será el robot que logre resolver el laberinto en el menor tiempo posible.
Si por alguno motivo alguno de los grupos no cumple con alguno de los materiales,
El diseño del laberinto variara, es decir el encargado del evento propone el laberinto
El robot no puede tener ningún tipo de manipulación externa, es decir el robot debe
millones de años atrás a las primeras civilizaciones, por lo cual estos se pueden clasificar de
hasta el punto de llegada no es posible tomar otro camino o dirección. Dentro de este tipo
de trazado se encuentra:
minotauro.
laberinto, a pesar de tener dos caminos, se considera unicursal porque una vez se haya
circular, etc.
Por otra parte, existe otro modelo distinto a los anteriores al cual se le denomina modelo
multicursal. en este las personas pueden tomar la decisión de desviarse por otros senderos
con la posibilidad de desviarse a calles por las cuales ya había pasado o simplemente llegar
entre varios caminos, se debe tener en cuenta que puede haber casos en donde las rutas no
lleven a ningún punto o retornen al punto de partida. En este tipo de situaciones una forma
pueden estar conectadas con otras rutas que no lleven a ninguna parte o que retornen al
punto de salida a diferencia del caso anterior, en este el método seguidor de paredes no es
aplicable puesto que puede haber islas dentro del laberinto y la persona se quedaría
equitativa para cada grupo con el objetivo de escoger los componentes adecuados, reducir
Materiales Imagen
de puerto USB
HCSR04
Ruedas: Ruedas (Max4)
Chasis 10cm
Pilas
la construcción del auto resuelve laberintos, en primer lugar, tenemos el arduino, este
entrada/salida digital de los cuales 4 pueden ser usados para salidas PWM, 6 entradas
análogas, un conector de puerto USB, tipo hembra, un Jack para fuente de poder, un
conector ICSP y un botón reset. El arduino uno puede ser conectado con otros dispositivos
.
Fuente: (Guerrero, 2014)
Este módulo de arduino tiene varias versiones, las más usadas hoy en da cuentan con puerto
USB y entrada a celular, también cuentan con módulos bluetooth y wifi para realizar
Por otra parte, se deben tener las medidas exactas y el peso de cada uno de los componentes
para tener el esquema de ubicación de cada componente en el caso del arduino uno las
Por otra parte, el sensor ultrasónico económico es un componente que permite detectar a
que distancia se encuentra un objeto, cuenta con dos transductores uno de altavoz y otro de
micrófono, este sensor ofrece un muestreo exacto y de alta precisión de distancias entre
objetos.
Se debe tener en cuenta que la velocidad del sonido en el aire a una temperatura de 20
grados centígrados es cerca de los 343 m/s, por cada grado centígrado que aumente la
variara y por habrá aceleración, también cabe aclarar que el resultado se divide entre 2,
porque de lo contrario se estaría midiendo la distancia que recorrió la onda hasta volver al
sensor, lo que sería incorrecto porque lo que se desea calcular es la distancia que hay desde
el sensor hasta el objeto en donde la onda choca. Por otra parte, las dimensiones de los
También es de vital importancia realizar la comparación entre este sensor y otros que
cumplen la misma función, por ejemplo, los sensores de infrarrojo son usados para realizar
tareas similares, no obstante, según (bello , 2017) “ estos sensores requieren una línea de
visión directa entre el sensor y funciona si detecta movimiento”, esto a comparación a los
sensores ultrasónicos representa una desventaja, ya que los sensores ultrasónicos son
adecuados para espacios en los que las líneas de visión no son posibles y requieren una
mayor sensibilidad.
por otra parte, para que el auto se desplace se hace uso de motores y llantas, en primer
lugar, los motores de corriente directa transforman energía eléctrica en energía mecánica,
“Un motor CD consiste en un estator, una armadura, un rotor y un colector con escobillas.
La polaridad opuesta entre dos campos magnéticos dentro del motor hace que gire.”
(Domínguez Ramírez, Tovilla Blanco, & Miriam, s.f.). para controlar el movimiento de los
Como ya sabemos el auto se encuentra conformado por dos motos reductores de 6v, dos
llantas de plástico de 6.5 cm de diámetro, una rueda loca, una base de baterías y una placa
de microcontrolador.
Figura. imagen moto reductores
desplazarse de robot, para esto debemos conocer el diámetro de la rueda y las revoluciones
por minuto del motor (RPM), teniendo en cuenta esto se obtuvieron los siguientes
resultados.
3v=80rpm
velocidad 5v=120rpm
9v=300rpm
Consumo 80 a 100 mA
Diametro 65 mm
También es necesario una rueda loca, ya que su función es permitir un mejor giro al
automóvil para este proyecto se usó una rueda loca en la parte delantera del chasis. Las
También son de vital importancia las baterías, puesto que son las encargadas de proveer la
energía para que los motores puedan funcionar y desplazar el automóvil, por esos es
necesario realizar un análisis detallado de cada una de las cualidades de los componentes,
para así mismo conocer el consumo en general y por tanto la capacidad que debe poseer las
de la batería es conocer qué tipo de trabajo va a ejercer, puesto que si no se tiene en cuenta
este paso pueden suceder ciertas situaciones dentro de las cuales están:
Fuente: (Diaz Collazo, Adrián Marcelo, Echeandía Sánchez, Carlos, Espejo Gómez ,
Victor, & García Castilla, Fernando, 2006)
la mala selección de las baterías lo que genera que la velocidad con la que realiza el
desplazamiento no sea el esperado, es decir, si el voltaje de las baterías del auto son
inferiores a las que se requerían el auto se moverá demasiado lento o incluso no logre
Por otra parte, el escoger la batería inadecuada para el automóvil, también puede incurrir en
que el ciclo de vida de las mismas sea mucho más corto, lo que genera que deban ser
Como primer punto tenemos que el diseño del robot se divide en dos partes, el diseño físico
dentro del cual está el chasis y las características de los componentes de hardware que se
El diseño del chasis es uno de los componentes más importantes a la hora de diseñar el
robot, puesto que su geometría influye en que tan exacto serán los desplazamientos a lo
Como primer requerimiento del chasis se debe determinar cuál es el peso minino que debe
uno
una
uno
Arduino uno 1 24 gramos
1 una
Pilas 6 11.5
total
Como resultado se obtuvo que el chasis como mínimo debe tener una capacidad de soportar
Ahora, para este caso se propuso un chasis de madera que no supere 10 cm de ancho y
largo, en donde deben acoplarse todos los componentes del auto, nuestro grupo eligió el
esquema de chasis sf, ya que este diseño es muy usado por otras personas en competencias
similares como son el seguidor de líneas. Cabe resaltar que este chasis cumple con todos los
También se debe tener en cuenta que la forma del chasis va estar determinada por la
centro de gravedad del robot se encuentre cerca al eje que une las ruedas, por esto se
determinó que el modelo de chasis sea basado en mbot, el cual es un chasis con geometría
Por otra parte, el espesor del chasis es de 2mm, lo que le permite soportar el peso y a
10
10
afectan directamente el movimiento del auto, por eso se propuso el siguiente modelo de los
componentes:
Por otra parte, la teoría y aplicación del algoritmo de Dijstrak hoy en día son muy usados en
muchos campos de la ciencia, puesto que permite calcular los caminos mínimos y máximos
Dijstrak se debe tomar un primer nodo. Posteriormente se procede a analizar las posibles
Una vez identificado el camino de menor recorrido entre los primeros nodos, volvemos a
repetir el mismo proceso anterior comparando los vértices adyacentes al nuevo nodo,
también se debe considerar que no se toma en cuenta los vértices ya recorridos, igualmente
este proceso se realiza con todos los posibles caminos. Al finalizar se evidenciará el mejor
primer lugar, se encuentra el algoritmo seguidor de paredes, este algoritmo es uno de los
más sencillos, puesto que su funcionalidad se basa en girar a la izquierda o derecha cuando
detectan una distancia grande, no obstante, no es uno de los mejores algoritmos puesto que
Como se muestra en la figura si en llegado momento el auto se llega a topar con una isla,
este se quedará cíclicamente girando alrededor de esta y por tanto nunca saldría del
obstante, este puede modificarse con referencia a la derecha de acuerdo a la preferencia del
programador.
infinitamente, por tal razón, la variable donde se almacena la distancia del sensor
ultrasónico debe sestan dentro del bucle para que por cada vuelta que realice el bucle tome
puede ser modificado para que gire a la derecha, pero su esquema funcional seguirá siendo
el mismo.
Para llevar a cabo el algoritmo seguidor de paredes también se debe tener en cuenta la
posición del sensor ultrasónico, por ejemplo, si el algoritmo está diseñado para giro a la
por otra parte, otro algoritmo es el denominado algoritmo de garantía, este a comparación
del algoritmo seguidor de paredes, este se puede considerar como una versión mejorada del
seguidor de paredes, puesto no se queda girando cíclicamente alrededor de las islas, ya que
cuenta cuanta gira realiza hacia la izquierda o derecha para así saber si se encuentra o no
la izquierda, en este caso cuando el auto realiza una vuelta a una isla el auto girara hacia la
ahora mencionaremos otros algoritmos más complejos que lo que buscan lograr una
algoritmos anteriores es mucho más eficiente, este algoritmo sigue las siguientes etapas:
La primera etapa es la denominada etapa de llenado, en esta etapa el automóvil recorrer por
primera vez el algoritmo asignando valores a cada una de las celdas que transcurra, este
valor indica la distancia que hay desde el inicio hasta el punto de llegada.
llegado al punto de partida y por ende ya ha identificado la ruta más corta, por tal motivo
únicamente retorna por dicha ruta sin pasar por las opciones ya descartadas.
Dentro de las ventajas de este algoritmo se encuentra que es una versión aplicada del
algoritmo de Dijstrak, por lo cual encuentra la ruta más corta entre do puntos, por otra
parte, una de sus desventajas es que no es un algoritmo óptimo para estructuras a gran
escala puesto que requiere una gran capacidad de almacenamiento y necesitaría una gran
algoritmo es la versión mejorada del algoritmo de Lee, puesto que el auto ya no debe
conocer la estructura del laberinto lo cual era una desventaja en el anterior laberinto, este
modelo es uno de los más usados en otros países para las competencias de micromousers,
Una vez el auto ya halla recorrido y llenado todas las celdas con valores, empezara a
Dentro de las ventajas de este algoritmo se encuentra que a diferencia del algoritmo de lee
este no requiere conocer la pista de carrera por lo que es capaz de solucionarlo sin
otra parte, una de sus mayores desventajas es que este algoritmo es recursivo y por lo tanto
si la complejidad del laberinto es alta, este realizara muchos llamados de función y podría
generar saturaciones.
tiempo que tarde en el laberinto por tanto, para la selección del algoritmo también se debe
situaciones:
Avance recto giro obligatorio a izquierda
Cada uno de los escenarios anteriores representan una acción distinta para el auto, claro
está dependiendo del algoritmo que este implementado en él, ya que, por ejemplo, si el
que a comparación de orden más complejo que si toman en cuenta los ocho escenarios.
diseño planteado, para esto se realizaron esquemas gráficos con el objetivo que sean mucho
como se muestra en la siguiente imagen, el sistema cuenta con una fuente de alimentación
siguiente:
Por otra parte, de acuerdo al algoritmo escogido en secciones anteriores se dedujo que el
algoritmo, por tanto, con esto ya se corrobora el algoritmo y el arduino a usar para la
una vez verificado cada uno delos componentes del diseño físico, el siguiente paso será
En el caso del IDE arduino, la estructura se divide en tres partes, en primer lugar, se
encuentra la zona destinada para importar todas las librerías externas que sean necesarias
para el proyecto, luego se encuentra el void setup () en donde se inicializan las variables y
procesos que se van a ejecutar y por ultimo está el void loop (), el cual es un bucle que se
estará ejecutando de forma infinita, en esta sección se programara todas las instrucciones.
para los desarrolladores. Ahora se explicará el proceso de instalación del IDE de arduino.
Primero se dirige a la página oficial de arduino https://www.arduino.cc/en/Main/Software,
una vez realizado este proceso se debe elegir el sistema operativo de la computadora y
descargar.
forma gráfica por bloques lo cual facilita mucho la codificación, para descargarlo se debe
simulaciones de forma realistas de cada una de las piezas que formen un robot, para
VSPE: es una herramienta que permite emular las conexiones de puertos para la recepción
entre mblock y Vrep para poder realizar las simulaciones del comportamiento del auto en
virtual-serial-ports-emulator.softonic.com/.
resuelve laberintos.
proyecto de desarrollo aplicado que tiene como objetivo aumentar los conocimientos en
conceptos de física, programación y robótica tales como distancia, circuito, sensor, etc.
Hernández, R y otros (1998) señalan que “la investigación descriptiva busca especificar
En la investigación evaluativa se tiene como objetivo evaluar los resultados de uno o más
Fuente: (Todo lo que tienes que saber sobre investigación aplicada, 2017)
Por otra parte, La Investigación Aplicada tiene por objetivo resolver un determinado
conocimiento para su aplicación y, por ende, para el enriquecimiento del desarrollo cultural
y científico.
que cada una de las mismas se debe realizar con coherencia. Es una investigación aplicada
generalizadas que puede que se relacionan con este proyecto, además de eso se define una
el concepto ya nombrado.
Diseño de la investigación
7. Investigación documental.
8. Investigación de Campo.
9. Realización de pruebas.
y realización de pruebas.
del laberinto. para este procedimiento se tomó en base el algoritmo seguidor de paredes
mano izquierda, cabe aclarar que esta verificación será de carácter simulado, es decir
que tan lejos o cerca estamos de la solución óptima y las pautas planteadas al inicio del
trabajo.
También cabe aclarar que el diseño del algoritmo y estructura del laberinto se realizó bajo
orientación del ingeniero Gustavo Adolfo Castilla, quien nos explicó y brindo las pautas
para la realización de la simulación del algoritmo, también se realizó mediante los aportes
en internet del señor (EL Harezmi Bilgelik Evi, 2020), quien explicaba las pautas del