robots laberinto grupo e

Upload: eliecer-emilio-carvajal-santos

Post on 07-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Robots Laberinto Grupo E

    1/86

    Robots de Laberinto

    Trabajo realizado para la asignatura de Diseño de

    Microrrobots Móviles de la Universidad de Alcalá

     por

    Diaz Collazo, Adrián Marcelo ([email protected]),

    Echeandía Sánchez, Carlos ([email protected]),

    Espejo Gómez , Victor ([email protected]),

    García Castilla, Fernando ([email protected]),

    Gude Rodríguez, Isaac ([email protected]) ,

    Lázaro Rubio, Carlos ([email protected]),

    Muñoz Babiano, Federico ([email protected]),

    Pérez Couso, Alberto ([email protected])

     Noviembre 2006 

  • 8/18/2019 Robots Laberinto Grupo E

    2/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 1 —

    ÍNDICE

    1.Introducción ......................................................................................................................... 4

    2.Historia de las competiciones .............................................................................................. 5

    3.Competiciones ..................................................................................................................... 7

    Alcabot e Hispabot ............................................................................................................. 7

    Micromouse ........................................................................................................................ 9

    4.Análisis de estructuras y diseños de robots de laberinto ................................................... 10

    El chasis ............................................................................................................................ 10Forma............................................................................................................................ 10Materiales ..................................................................................................................... 11

    Método de manejo y el dar la vuelta ................................................................................ 12

    Grados de movimiento ................................................................................................. 12La tracción .................................................................................................................... 13Las ruedas ..................................................................................................................... 15

    5.Sensores ............................................................................................................................. 16

    Sensores de proximidad .................................................................................................... 18Sensores de distancia ........................................................................................................ 19

    6.Motores .............................................................................................................................. 21

    Motores C.C. .................................................................................................................... 21

    Motores paso a paso ......................................................................................................... 22

    Servo motores ................................................................................................................... 22

    7.Baterías .............................................................................................................................. 23

    8.Análisis de algoritmia ........................................................................................................ 24

    Algoritmos con laberinto conocido. ................................................................................. 24

    Algoritmo de DIJKSTRA: ........................................................................................... 26Búsqueda de BREADTH FIRST .................................................................................. 32Algoritmo de BELLMAN-FORD ................................................................................ 33

    Algoritmos con el laberinto desconocido ......................................................................... 34

    Seguir la pared .............................................................................................................. 34Llenar caminos ............................................................................................................. 35

    Algoritmo aleatorio ...................................................................................................... 36

  • 8/18/2019 Robots Laberinto Grupo E

    3/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 2 —

    Algoritmo de la colonia de la hormiga ......................................................................... 36Gaston Tarry y Edouard Lucas ..................................................................................... 37Recursividad ................................................................................................................. 37Algoritmo de Microtauro .............................................................................................. 39

    ¿Cómo se consigue un control tan perfecto? .................................................................... 41

    Diagonales ........................................................................................................................ 41

    En línea recta ................................................................................................................ 42Las curvas ..................................................................................................................... 44

    9.Simuladores ....................................................................................................................... 47

    10.Consideraciones a tener en cuenta a la hora del diseño: ................................................. 50

    11.Algoritmo para salir del laberinto: .................................................................................. 51

    12.Descripción de estructura y hardware del robot .............................................................. 56

    El cerebro ......................................................................................................................... 57

    El sistema sensorial .......................................................................................................... 58

    Los actuadotes .................................................................................................................. 58

    Estructura física ................................................................................................................ 59

    13.Catia. ................................................................................................................................ 61

    Introducción a Catia. ........................................................................................................ 61

    Sketcher. ........................................................................................................................... 61

    Part Desing ....................................................................................................................... 62

    Assembly Dessing ............................................................................................................ 63

    Diseño de nuestro robot. ................................................................................................... 63

    Desarrollo por partes del diseño. ...................................................................................... 64

    Base del robot. .............................................................................................................. 64GP2D12. ....................................................................................................................... 64

    Placa ............................................................................................................................. 65Motor paso a paso......................................................................................................... 65Bumper ......................................................................................................................... 66CD ................................................................................................................................ 66Aguja. ........................................................................................................................... 67

    Sub-ensamblaje ................................................................................................................ 67

    Montaje completo ............................................................................................................. 68

    14.Montaje real del robot: .................................................................................................... 70

  • 8/18/2019 Robots Laberinto Grupo E

    4/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 3 —

    15.Conclusiones. .................................................................................................................. 82

    16.Bibliografía. ..................................................................................................................... 84

  • 8/18/2019 Robots Laberinto Grupo E

    5/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 4 —

    1. 

    INTRODUCCION

    El documento desarrollado a continuación trata sobre los “Robots de laberinto” o “Robotsde Micromouse”. El trabajo está desarrollado por un grupo de estudiantes de la UAH parala asignatura de Microrrobots. El fin principal de este trabajo es aportar una base con la queenfrentarse al desarrollo de un robot de laberinto.

    Durante todo el texto abordamos diversos temas relacionados con este tipo de robots.Para poder desarrollar el tema con la mayor sencillez y amplitud posible hemos dividido eltrabajo en varios aspectos.

    Empezamos desarrollando el trabajo dando unas pinceladas de historia acerca de lascompeticiones que se han realizado tanto a nivel nacional como internacional. Seguimoscon un análisis de las estructuras más usadas con sus ventajas e inconvenientes.

    Obviamente necesitamos algún método para salir del laberinto, esto lo abordamos en unapartado dedicado exclusivamente a la algoritmia, control y simulación. Para completar eltrabajo desarrollado hemos realizado una propuesta de diseño utilizando herramientas dediseño en 3 dimensiones y llevando acabo el proyecto.

    Finalmente aportamos unas conclusiones y consejos para que quien lo desee puedarealizar un robot sin tener los mismos problemas que nos ocurrieron a nosotros.

  • 8/18/2019 Robots Laberinto Grupo E

    6/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 5 —

    2. 

    Historia de las competiciones

    Las competiciones de micromouse surgieron a finales de los 70, fue a partir de los 80cuando empieza la forma de competición que conocemos actualmente.

    A continuación desglosamos la evolución por años:

    (http://micromouse.cannock.ac.uk/history.htm)

    1977

    En este año se introdujo el concepto de microsmouse por el IEEE. En mayo seanunció la primera “competición de Micromouse” que sería celebrada en 1979 en

     Nueva York.

    1980

    El profesor Juan Billinsley, de la escuela politécnica de Portsmouth, introdujo la primera competición europea y modificó las reglas, consiguiendo que lascompeticiones sean parecidas a las de la actualidad.

    1981

    En la exposición micro de París hubo cinco micromouse, el primer lugar fue parael ratón Esterlina, alcanzando la meta en menos de 3 minutos.

    En la segunda competición Británica de micromouse, Dave Woodfield consiguióun tiempo de 47 segundos, proclamándose campeón. Esterlina consiguió unsegundo lugar con 1min 37sec.

    1985

    Se llevo a cabo el “First World Micromouse Competiton” en Tsukuba, Japón.

    1986

    Los E.E.U.U. hicieron su primera competición, celebrada en Atlantic City.

    1987

    Se produjo la primera competición de Singapur  

  • 8/18/2019 Robots Laberinto Grupo E

    7/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 6 —

    1989

    Se lanzó la primera competición internacional de Micromouse de Singapur.

    1992Tenemos ya la séptima entrega de competición anual del micromouse de IEE, enLondres. 

  • 8/18/2019 Robots Laberinto Grupo E

    8/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 7 —

    3. CompeticionesA continuación presentamos las competiciones más conocidas.

    ALCABOT

    o  2000   NORMATIVA: El concurso será ganado por aquél micro-robot que

    consiga salir del laberinto en el menor tiempo. Se dispone de unaúnica entrada y una única salida.http://www.depeca.uah.es/alcabot/alcabot2000/normativa.htm

       Nº PARTICIPANTES: 5

    o  2001   NORMATIVA: El laberinto tiene una entrada y una salida y los

    robots tienen que entrar en el laberinto y salir en el menor tiempo posible.

    http://www.depeca.uah.es/alcabot/alcabot2001/normativa.htm   Nº PARTICIPANTES PRESENTADOS: 10

    o  2002   NORMATIVA: La prueba consistirá en sacar al robot desde un punto

    de partida conocido mediante sorteo, quince minutos antes delcomienzo de cada sesión. Podrá salir por cualquiera de las dossalidas del laberinto. El plano del laberinto es conocido para los

     participantes.

    http://www.depeca.uah.es/alcabot/alcabot2002/normas_laberinto.htm

       Nº PARTICIPANTES PRESENTADOS: 35

    o  2003   NORMATIVA: Coincide con Hispabot 2003. Es equivalente a la de

    Alcabot 2002.http://www.depeca.uah.es/alcabot/hispabot2003/laberinto.pdf

  • 8/18/2019 Robots Laberinto Grupo E

    9/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 8 —

       Nº PARTICIPANTES PRESENTADOS: 12

    o  2004

       NORMATIVA: Se introducen novedades respecto años anteriores:•  Dado que el laberinto es conocido, se primará a los Robots

    capaces de incorporar algoritmos de navegación.

    •  Las salidas del laberinto son dos: una de ellas será válida,mientras que la otra tendrá una penalización.

    •  El Ratón obtendrá bonificación, si logra introducir una pelotade ping-pong estándar en esa casilla central.

    http://www.depeca.uah.es/alcabot/data/doc/HISPA04_Normativa_La berinto_v1_0.pdf

    Por lo demás la normativa es equivalente a la de los años 2002 2003.

       Nº PARTICIPANTES PRESENTADOS: 11

    o  2006   NORMATIVA: Se introducen novedades respecto años anteriores:

    •  Rampa de entrada

    •  Balizas.

    •  Globos.

    •  La canasta está en el exterior.•  El mapa del laberinto no es conocido.

    http://www.depeca.uah.es/alcabot/data/doc/HISPA06_Normativa_La berinto_v2_1.pdf

       Nº PARTICIPANTES PRESENTADOS: 4

    HISPABOTLa normativa de cada año de Hispabot es equivalente a la de Alcabot de cada añorespectivamente.

  • 8/18/2019 Robots Laberinto Grupo E

    10/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 9 —

    COMPETICIONES A NIVEL INTERNACIONAL

    MICROMOUSE:

    El campeonato de Reino Unido Micromouse es una competición internacional de larobótica, que se ha sostenido cada año en el Reino Unido desde el los años 80.

    Acontecimientos similares también se llevan a cabo en los E.E.U.U, Japón, Singapur, Coreay a otras partes. Los micromouses “ratones” compite con contra el reloj para buscar elcentro de un laberinto en el tiempo más corto. El laberinto es desconocido.

    El laberinto consiste en 256 cuadrados (células) dispuestos en un formato 16 x 16, en unarejilla de 180mm. Cada pared es 50 mm de alto y 12 mm de grueso, por lo tanto la distanciamínima de la pared a la pared es 168 mm.

    El campeonato ha sido apoyado por una variedad de organizaciones y las institucionesacadémicas incluyendo Euromicro, el instituto de ingenieros eléctricos, la universidad deLondres del este, el RAC, la universidad de Manchester, universidad de Loughborough, elBBC, universidad de Exeter, Unversity de Bristol, el departamento de la informática enHolloway real, el centro de la innovación de la tecnología de la universidad de Inglaterracentral, y otros.

    Universidad naciones de Colombia

    (http://www.ing.unal.edu.co/eventos/un_robot2006/categorias2.htm)

       NORMATIVA: La prueba consiste en entrar y recorrer el laberinto,desconocido, (siguiendo la línea negra central o las paredes) y sacar de él uncubo rojo de 5 cm. x 5 cm., se considera terminada cuando el robot sale dellaberinto con el cubo y entra completamente a la zona de meta. La meta esun rectángulo de color negro en el piso que marca el final del laberinto. A

    continuación mostramos algunos modelos de posibles laberintos:

       Nº PARTICIPANTES: 11

  • 8/18/2019 Robots Laberinto Grupo E

    11/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 10 —

    4. 

    Análisis de estructuras y diseños de robots delaberinto

    A priori puede parecer que cualquier estructura es válida para nuestro robot, que loimportante es lo que tiene dentro, pero esto no es del todo cierto. Dependiendo de lafunción de dicho robot será conveniente utilizar una u otra, incluso una mala elección puedehacer que se compliquen mucho las cosas en un futuro. Por ello, es conveniente utilizar

     parte del tiempo en pensar donde colocar las partes del robot y de forma de hacerlo.

    A continuación estudiamos las partes más importantes de un robot micromouse:

    El chasis

    El chasis es la estructura que sostiene y aporta rigidez y forma a nuestro robot. Un buen símil sería el compararlo con el esqueleto humano. Por lo tanto queda justificada laimportancia de una correcta elección.

    Forma

    Imaginemos que hemos decidido hacer el robot con sensores de contacto, es decir, elmicromouse va por el laberinto, se choca contra una pared y da media vuelta. En este casola forma es importantísima puesto que tendremos que pensar en que el robot debe ser capazde girar sobre si mismo sin que la pared se lo impida, por ejemplo, con un cuadrado pasaría

    lo que vemos a continuación:

    Sin embargo, si elegimos una forma redondeada no tendríamos este problema.

  • 8/18/2019 Robots Laberinto Grupo E

    12/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 11 —

    Ahora bien, ¿Que pasaría si utilizamos sensores de distancia?, ¿Ya no seríaimportante la forma?, en este caso, la forma seguiría siendo igual de importante puesto que,aunque en un principio pudiéramos pensar que el robot nunca tocaría las paredes, encualquier momento esto podría ocurrir y nos será mucho más fácil salir del problema

    eligiendo una buena forma para el robot.

    Una buena solución a esto podría ser no preocuparse de la forma del chasis, o no preocuparse demasiado, y más tarde colocar una carcasa externa con la forma quequeramos. Esta técnica es la empleada por ejemplo por el robot PI:

    http://www.rbzrobotdesign.com/index.php?module=3&id=21

    Materiales

    Los micromouse se han construido de diversos materiales: metal, plástico, madera…El mejor criterio para elegir uno u otro será, en primer lugar, que dicho material estedisponible, ya que de poco nos servirá pensar en uno que no podamos conseguir. Y, entrelos que encontremos, habrá que elegir entre uno u otro por aspectos como la resistencia,facilidad de mecanizado y peso.

    Las soluciones que se han ido viendo en las competiciones son muy variadas, porejemplo en el 2002 el robot AURELIO (a la derecha) utilizó

     policarbonato diciendo que: “este material es resistente, a la parque ligero, permite ser cortado y troquelado sin presentar

     problemas.”

    Mientras que robots como TURING (ala izquierda) aprovecha el propiocircuito impreso como chasis.

  • 8/18/2019 Robots Laberinto Grupo E

    13/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 12 —

    MÉTODO DE MANEJO Y EL DAR LA VUELTA

    En este apartado estudiaremos las distintas técnicas que se utilizan para conseguir buenos giros y movimientos. Esto es algo que debemos estudiar especialmente en losmicromouse puesto que tenemos grandes restricciones de movimiento por el laberinto.

    Grados de movimiento

    Empezaremos viendo los dos tipos de movimiento que podemos tener, en función delos grados de libertad en el giro.

    •  Movimiento en diagonal: Con este tipo de movimiento conseguimos unosdesplazamientos notablemente más rápidos, puesto que la distancia que

    recorremos es menor. A cambio, nos encontramos con varios inconvenientes.Para empezar, será más difícil de construir, ya que para moverse en diagonaltendremos que tener en cuenta factores que de otro modo no los tendríamos,como por ejemplo estudiar más a fondo la colocación de los sensores, además,estos deben tener la suficiente precisión como para detectar las zonas en lasque nos podemos mover en diagonal y no chocarnos con las paredes. Encuanto al control del movimiento, este debe ser muy preciso, ya que un

     pequeño desvío en la trayectoria podría hacernos rozar con las esquinas.

    BR3 MOUSE

    •  Movimiento en línea recta: este tipo de movimiento será mucho más sencillode realizar que el diagonal, pero a cambio los desplazamientos serán máslentos al tener que recorrer más distancia. Con este tipo, nos podemosencontrar problemas como que alguna rueda patine o que los giros no seanexactamente de 90-180º haciendo al robot tener un error acumulativo que

     puede tener graves consecuencias si no lo corregimos.

  • 8/18/2019 Robots Laberinto Grupo E

    14/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 13 —

    La tracción

    Básicamente la tracción nos importará en función del tipo de giro que proporcione.Para ver el giro que necesita un robot debemos pensar en la función que va a desempeñar,es decir, es posible que en ciertos casos necesitemos más estabilidad que maniobrabilidad oal contrario.

    Existen muchos tipos de tracciones, pero en nuestro caso nos va a interesarfundamentalmente solo una, por ello diferenciamos, a continuación, dos tipos, la másutilizada y la que no debemos utilizar, explicando porqué:

    •  Diferencial

    Para el caso que nos ocupa (micromouse) podemos decir que en el 100% delos robots premia la maniobrabilidad, y por este motivo utilizaremos una tracción

    diferencial, gracias a esto conseguiremos hacer giros de 90-180º sin ningunacomplicación.

    Un ejemplo de tracción diferencial podría ser la utilizada por el robotFLORENCIA:

  • 8/18/2019 Robots Laberinto Grupo E

    15/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 14 —

    Si estudiamos un poco más detenidamente el movimiento que se genera,llegamos a la siguiente ecuación:

    nc

     D

    d   ⋅

    =

    π  

     Donde:

    d = distancia recorrida.D = diámetro de la rueda.c = número de pulsos del encoder por vuelta.n = número de pulsos leidos.

    La anterior expresión sería en el caso de que las dos ruedas se moviesen a lavez.

    Si lo que queremos es hacer un giro de x grados la ecuación sería lasiguiente:

    n Dc

     D x

    base

    rueda⋅

    =

    360 

    Donde:x = grados girados.Drueda = diámetro de la rueda.D base = diámetro de la base tomando como limite de lacircunferencia el inicio de las ruedas.c = número de pulsos del encoder por vuelta.n = número de pulsos.

    Este movimiento habrá que proporcionarlo a ambas ruedas motrices, cadauna en un sentido.

    •   No diferencial

    Por otro lado tenemos la tracción no diferencial, en la que las dos ruedasgiran a la vez y el tipo de giro es de la forma en que lo que movemos es un eje que

    une ambas ruedas, produciéndose así el giro de estas.

    Si la usáramos, el giro sería más tedioso e incluso podría darnos problemas.Lo vemos a continuación:

  • 8/18/2019 Robots Laberinto Grupo E

    16/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 15 —

    Como se ve en la figura, el robot se puede encontrar graves problemas a la hora dedesplazarse por el laberinto, porque es posible que los giros no sean lo suficientementecerrados como para pasar de una casilla a otra sin rozar con alguna pared, esto se puedeconvertir en un gran problema puesto que nos podría, por ejemplo, desviar de la trayectoriacon los consiguientes efectos.

    Las ruedas

    Antes de ponernos a montar las ruedas debemos ver dónde deben estar colocadas. En principio podemos pensar en una colocación equidistante en la base lo mas separadas posible para mayor estabilidad, ahora bien, si lo hacemos así debemos tener en cuenta cualserá el eje de giro, en este caso, significaría que el robot no girará entorno al centro delcírculo que forma su planta y por tanto colisionará con el obstáculo.

    Un ejemplo de esta colocación sería la utilizada por el robot Charrito

  • 8/18/2019 Robots Laberinto Grupo E

    17/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 16 —

    http://www.sec.upm.es/agustin/charrito/charrito.html 

    Aquí vemos como las ruedas motrices están colocadas de tal forma que el robot harálos giros sobre un punto distinto al centro de la base, en concreto, los giros serán los quevemos en la figura siguiente:

    Una forma sencilla de realizar giros sobre el centro de la base sería el adoptado por elrobot Pi de RBZ Robot Design, el cual, como vemos en la fotografía, utiliza dos ruedasmotrices colocadas en el diámetro de la base y dos ruedas locas para la estabilidad:

  • 8/18/2019 Robots Laberinto Grupo E

    18/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 17 —

    El gran inconveniente de este tipo de solución es que solo nos podremos mover porzonas completamente lisas, ya que si una de las ruedas locas pasase por algún elevamiento,

     por muy pequeño que fuera, alguna rueda motriz dejaría de tocar el suelo.

  • 8/18/2019 Robots Laberinto Grupo E

    19/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 18 —

    5. 

    SENSORES

    Los micromouse necesitan una manera de detectar las paredes dentro del laberinto,esto lo harán mediante sensores. Distinguimos dos tipos: de proximidad simples o dedistancia.

    Sensores de proximidad

    Estos tipos de sensores nos dan información sobre si hay o no hay algo, es decir, nosdan una señal binaria (verdadero o falso). Generalmente se montan en las “alas” de losrobots, de modo que puedan detectar las paredes mirando los techos de estas. Si hay una

     pared directamente debajo del sensor, su valor será verdadero, mientras que si no la hay elvalor será falso. Un micromouse de este tipo tendría el siguiente aspecto:

    Un ratón con los sensores de proximidad

    Un diseño así tendrá por lo menos siete sensores, uno mirando al frente y por lomenos tres a cada lado. El sensor delantero evita que el ratón se estrelle con una pared

     próxima al frente, mientras que los laterales permiten que el ratón corrija su trayectoria. Enel caso de la figura anterior, si los sensores izquierdos leen un valor de 010 indica que elratón esté centrado dentro de la casilla. Si leemos un valor de 100, indicaría que el ratónestá descentrado a la derecha y necesita corregir a la izquierda, y al contrario con un valor001.

  • 8/18/2019 Robots Laberinto Grupo E

    20/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 19 —

    Usar este tipo de sensores tiene otra ventaja. Si por ejemplo leemos el sensorderecho con un valor de 011, indicaría que tenemos una pared perpendicular a la derechasin necesidad de desplazarnos a la correspondiente casilla, y por lo tanto invirtiendo menostiempo en la exploración del laberinto

    La forma de utilizar estos sensores es la siguiente:

    •  El emisor: En el caso de la figura, polarizamos el diodo a través deun resistor, R, este se elige para establecer la corriente apropiada que

     pasará a través del LED. También podemos usar otra opción en laque lo conectamos a través de un transistor controlado para que elLED emita solo cuando sea necesario, ahorrando así la energía quedel otro modo desperdiciaríamos.

    •  El receptor: Este recibirá la señal, o no, dependiendo de siesta rebota en alguna superficie, dando una tensión nula, o

     positiva respectivamente.

    El emisor y receptor pueden ser componentes separados, o estar contenidos juntosen un paquete plástico. En la siguiente fotografía los vemos juntos:

    Sensores de distancia

    Al contrario que los sensores de proximidad, los de distancia no devuelven un simpleverdadero/falso. Estos miden la distancia física entre el robot y la pared, y devuelven unvalor, el cual, el microcontrolador pueda interpretar como distancia.

  • 8/18/2019 Robots Laberinto Grupo E

    21/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 20 —

    Una forma de poner este tipo de sensores en funcionamiento es utilizar un circuitosimilar al del sensor de proximidad. La gran diferencia es que el fototransistor no esforzado a la saturación. El emisor genera una luz que se reflejará en la pared y, cuanto máscercano esté el robot de esta, más brillante será la luz reflejada y por lo tanto mayor señal

    recibirá el receptor.

    Un método bastante popular para medir distancia es utilizando el GP2D12.

    Este sensor emiten una luz IR sobre la pared que es reflejada y recibida por eldispositivo de detección de posición (PSD). Dependiendo del ángulo de reflexión elmicrocontrolador obtendrá el correspondiente dato para poder actuar. Los sensores de estetipo suelen ser más inmunes a variaciones del color y de iluminación.

  • 8/18/2019 Robots Laberinto Grupo E

    22/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 21 —

    6. 

    MOTORES

    Los motores serán los encargados de generar los desplazamientos en el robot, por lo

    tanto, la elección de estos será algo determinante para conseguir un buen movimiento, tantoen aceleración como en velocidad punta.

    A continuación comentamos, brevemente, los principales motores, que podremosutilizar.

    Motores C.C.

    En un motor C.C. la tensión se aplica directamente a los terminales de este produciéndose el movimiento. Una vez polarizado, se alcanza, rápidamente, una velocidadconstante que dependerá dicho voltaje aplicado y de las características del motor. La

    cantidad de fuerza que se puede generar será función de la corriente por las bobinas, siendomayor al aumentar esta, es decir, si queremos generar una cierta velocidad, la corriente quedebemos generar será mayor si el motor tiene una carga que si no.

    Generalmente, para polarizar el motor utilizaremos un puente en H, consiguiendo así un buen control de la tensión aplicada y pudiendo invertir la polaridad, y por tanto el sentidode giro, si se necesita.

  • 8/18/2019 Robots Laberinto Grupo E

    23/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 22 —

    Puente en H

    Motores paso a paso

    La principal característica de estos motores es el hecho de poder moverlos paso a paso aplicando pulsos. Dependiendo del motor, un paso puede ser desde 90° hasta 1.8°, esdecir, se necesitarían 4 pasos en el primer caso (90°) y 200 en el segundo (1.8°), paracompletar un giro completo de 360°.

    La gran ventaja de estos motores es que no necesitamos usar encoders para controlarel movimiento y saber donde estamos, es decir, seremos capaces de conocer en todomomento la posición sin más que llevar un control de los pulsos aplicados.

    Podemos clasificarlos en dos grupos:

    •  Unipolares•  Bipolares

    Servo motoresLos servos se caracterizan por ser capaces de mantener cualquier posición, dentro de

    su intervalo de operación, en función de la señal de entrada.

    Para el caso que nos ocupa, quizá lo más práctico sería utilizarlotras haberle quitado los topes y la electrónica encargada de mantener la

     posición, es decir, lo usaremos como un motor de continua, siendo estos baratos y con buenas prestaciones.

    Esto es lo que utiliza por ejemplo el robot HERTRON:

  • 8/18/2019 Robots Laberinto Grupo E

    24/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 23 —

    HERTRON

    7. 

    Baterías 

    La baterías serán la alimentación de nuestro robot, sin ellas nuestro robot no sería másque un amasijo de hierros que no serviría para mucho, por eso habrá que pensardetenidamente cual será el consumo para conseguir que en un futuro no nos encontremos

     problemas como que la energía que tenemos no sea la suficiente. No obstante, un graninconveniente es el peso de las mismas, por lo que no conviene poner pilas de más sino sololas que sean necesarias.

    La tabla siguiente enumera algunas de las características más típicas de los tipos más populares de baterías:

    Alcalinas NiCad NiMH unidadVoltaje de la célula 1.5 1.2 1.2 voltio

    Capacidad 2000 500 1100 mAh

    Densidad de la energía 190 44 53 Wh/kg

    Resistencia interna 150 10 30 ohm

    Cargador ninguno simple difícilmente

    •  Alcalinas: Éste tipo se encuentra fácilmente en cualquier tienda y proporciona un

    voltaje mayor que las recargables. Como inconveniente tenemos su alta resistenciainterna, por lo que es posible que no puedan proporcionar mucha corriente endeterminados motores.

    •   NiCad: Como inconveniente nos encontramos con que tienen una menor tensiónque las alcalinas, necesitando un mayor numero para alcanzar un voltaje dado. Sinembargo, por su baja resistencia interna pueden llegar a proporcionar una mayorcorriente a los motores, por esta razón suelen ser comunes en los micromouse dealto rendimiento.

    •   NiMH: La única ventaja que encontramos en este tipo de baterías es que,manteniendo una buena resistencia interna, tienen mayor capacidad de las de NiCad.Y como inconveniente la dificultad a la hora de cargarlas.

  • 8/18/2019 Robots Laberinto Grupo E

    25/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 24 —

    8. 

    Análisis de algoritmia

    Para abordar un estudio sobre la algoritmia usada en los robots de laberinto, vamos ahacer una clasificación basada en si el laberinto es o no conocido.

    Algoritmos con laberinto conocido.

    Aunque los posibles algoritmos a utilizar dependen del tipo del laberinto y de lasnormas de la competición, en este apartado se van a explicar los más utilizados encompeticiones de robots. En el caso de que el robot se encuentre en un laberinto y noconozca su posición exacta dentro del mismo, conlleva a que necesariamente debe disponeren memoria de un plano del laberinto, que le indique la situación de los muros. Tras laactivación del robot, su primer objetivo será analizar su entorno recorriendo las casillasadyacentes. De esta forma, y con la ayuda de los sensores adecuados, podrá reconstruir ellaberinto con el fin de comparar ese resultado con el mapa del laberinto en memoria. Estemétodo es el que usó el robot Fribotte/Cnossos en la competición Hispabot 2004.

  • 8/18/2019 Robots Laberinto Grupo E

    26/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 25 —

    Se puede observar que dicho robot tiene codificado en memoria la situación de losmuros horizontales y verticales. Además, a cada celda le asigna un número que le indica ladistancia hasta la salida. De esta manera, en el momento que el robot localice su posición,deberá desplazarse a la casilla con el número más bajo. Este método es muy utilizado, yaunque existen diversas variantes, todos se basan en la misma idea:

    Con los sensores de distancia, el robot puede detectar los muros a una casilla dedistancia en las cuatro direcciones, y memoriza la información.

    El robot se mueve hasta encontrar una coincidencia con el mapa en memoria probando todas las posibilidades, en las cuatro posibles direcciones.

  • 8/18/2019 Robots Laberinto Grupo E

    27/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 26 —

    Una vez que ha localizado su situación, aplicando el algoritmo adecuado, el robotcalcula el camino más corto hacia el centro (para marcar un gol), y para llegar a la salida.En este caso el algoritmo utilizado es el de Dijkstra, explicado a continuación:

    Algoritmo de DIJKSTRA: 

    Para explicar este algoritmo hemos recurrido al siguiente ejemplo:

    Cada uno de los puntos es un nodo, que en nuestro caso puede representar un crucedel laberinto. El nodo de partida es a, y las distintas flechas nos muestran los posiblescaminos para ir de un nodo a otro, con su longitud.

  • 8/18/2019 Robots Laberinto Grupo E

    28/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 27 —

    Los nodos de color rojo son aquellos que podemos alcanzar desde el nodo iniciala. La distancia desde a  a esos nodos es b=4, d =85. De esta forma, b  tiene la distanciamínima al nodo inicial, ya que cualquier otro camino pasará por más nodos, y por tanto serámás largo. A continuación, b es coloreado de naranja para indicar que es el camino máscorto.

    Ahora las aristas rojas apuntan a los nodos que ya tienen una distancia final. Lasdistancia desde a  a los siguientes nodos es de c=22, d =85 y e=16. Como e es el caminomás corto, lo coloreamos de naranja.

  • 8/18/2019 Robots Laberinto Grupo E

    29/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 28 —

    Continuando con el algoritmo, las distancia de a  a los siguientes nodos es c=22,d =82,  f =92, h=49. Se observa que la distancia a d  ha cambiado de 85 a 82, ya que se haencontrado un camino más corto a través de los nodos b y e. El nodo c tiene la distanciamás corta, y por tanto lo coloreamos de naranja.

    El algoritmo se repite buscando de nuevo los nodos más cercanos a a. La distanciaa los siguientes nodos es d =82,  f =92, h=49,  j=34. El nodo j es el más cercano, así que locoloreamos de naranja.

  • 8/18/2019 Robots Laberinto Grupo E

    30/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 29 —

    En este caso la distancia a los nodos es d =82, f =42, h=49. La distancia a f  ha vueltoha cambiado, ya que se ha encontrado otro camino más corto a través de los nodos b, c, j.Coloreamos de naranja el nodo f , ya que tiene la distancia más corta.

    Las distancias son d =82, h=49, i=53. El nodo h tiene la distancia más corta, así quelo coloreamos de naranja.

  • 8/18/2019 Robots Laberinto Grupo E

    31/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 30 —

    En esta situación ya tenemos a la vista todos los nodos del ejemplo. Las distanciassond =82, g=51, i=53. Coloreamos de naranja el nodo g pues tiene la distancia mínima.

  • 8/18/2019 Robots Laberinto Grupo E

    32/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 31 —

    La distancia al nodo d  ha cambiado, ya que se ha encontrado otro camino más cortoa través de los nodos b, e, h y g. Las distancias son d =63, i=53. El nodo con la distanciamínima es i, que coloreamos de naranja.

    Por último, solo nos queda el nodo d , con distancia d =63, así que lo coloreamos denaranja, y por tanto el algoritmo ha finalizado.

    ¿Qué hemos conseguido? Pues si queremos llegar a un nodo determinado partiendode a, únicamente tendremos que seguir las aristas naranjas y encontraremos el camino máscorto a ese nodo.

    http://alumnos.unican.es/uc900/Algoritmo.htm 

  • 8/18/2019 Robots Laberinto Grupo E

    33/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 32 —

    Búsqueda de BREADTH FIRST

    Breadth first es un método pensado para ser aplicado en grafos, pero también puedeser utilizado en un laberinto conociéndolo a priori ya que el funcionamiento de ambos essimilar. El método breadth first empieza en un nodo X con un valor 0, en los nodoscircundantes se introduciría el valor 1 y con los circundantes del 1 el valor 2, así hastacompletar todos los nodos, donde cada nodo se correspondería con una casilla del laberinto.

    Paso 1 Paso 2 

    Paso 3 Paso 4 

    Paso 5 Paso 6 

    Paso 7 Paso 8 

    Paso 9 

  • 8/18/2019 Robots Laberinto Grupo E

    34/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 33 —

    Entonces el primero que llegue al nodo de destino será el camino más corto y lasolución a nuestro laberinto. Entonces lo único que resta es volver siguiendo los númerosinmediatamente inferiores para volver a la casilla de inicio.

    Las imágenes del BREADTH FIRST se han extraído de:

    http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/GraphAlgor/breadthSearch.htm 

    Algoritmo de BELLMAN-FORD

    Es un algoritmo que se utilizó en un principio para el enrutamiento de redes dedatos, el funcionamiento de éste se basa en el tiempo que se tarda de un nodo hasta elsiguiente. Así si partimos de un nodo inicial que tendrá un valor 0 y queremos dirigirnoshacia el siguiente, tendremos que ver el tiempo que demora por esa línea y sumarlo anuestro valor inicial que en este caso es 0, entonces si el valor de la línea es de 7 el nodosiguiente será 7 y si la línea del siguiente nodo al cual nos dirigimos es 3, el valor delsiguiente nodo será 10.

    La diferencia que posee con respecto al método de Dijkstra es que permite valoresnegativos en los arcos del grafo, estos valores se colocarán en los arcos si el próximo nododista menos del nodo origen.(Floyd-Warshal)

    www.cs.umu.se 

  • 8/18/2019 Robots Laberinto Grupo E

    35/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 34 —

    ALGORITMOS CON EL LABERINTO DESCONOCIDO

    Seguir la pared

    Un método muy conocido es el de “la mano en la pared”. Este algoritmo simula elcomportamiento de un humano que resuelve el laberinto colocando su mano en una de las

     paredes (derecha o izquierda), y siguiéndola. Si se quiere, se pueden marcar los sitios pordonde se ha pasado y los que se han visitado dos veces de manera que al final se puedaresolver el laberinto pasando por los caminos utilizados una sola vez. Es seguro que seencontrará la salida, a pesar de que la ruta, con mucha probabilidad, no será la más corta.Este procedimiento también funciona en el laberinto tradicional, en el que la meta está en elinterior, pero partiendo de la consideración de que no hay ruta por la que se pueda caminaralrededor de la meta y regresar a donde se empezó. Si la meta está rodeada por uno o más

    de estos circuitos cerrados, el método de “la mano en la pared” con seguridad lo llevará porla ruta más larga y lo sacará del laberinto; nunca podrá llevarlo a la "isla" dentro delcircuito.

    A los laberintos que no contienen circuitos cerrados, tales como el laberinto que semuestra en el siguiente dibujo, se les conoce como "simplemente conectados". Estoequivale a decir que el laberinto no tiene muros separados. Los laberintos con murosseparados sí contienen circuitos cerrados, y se les conoce como laberintos de "conexionesmúltiples"; un ejemplo es el siguiente laberinto.

    http://www.astrolog.org/labyrnth/algrithm.htm 

    La técnica de la mano en la pared, que se usa sólo para laberintos "simplementeconectados", conduce una sola vez en cada dirección a lo largo de cada sendero, así que esseguro que en algún momento dentro de la ruta, se encontrará la salida.

  • 8/18/2019 Robots Laberinto Grupo E

    36/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 35 —

    http://www.astrolog.org/labyrnth/algrithm.htm 

    Llenar caminos

    Un algoritmo muy sencillo es el de llenar los caminos sin salida. Solamente esnecesario examinar el laberinto de forma aleatoria y eliminar los caminos que no tengansalida. Al final sólo quedará la solución, o las soluciones si hay más de una. Sin embargo,

    hay que tener mucho cuidado de utilizar este algoritmo en el laberinto adecuado, ya queevidentemente, será totalmente ineficaz en un laberinto que no tenga caminos sin salida. Elotro inconveniente es que, tal y como muestra el ejemplo, el robot tendrá que examinar ellaberinto casi en su totalidad, y por tanto no será adecuado para laberintos muy complejosque impliquen mucho tiempo de exploración.

    http://www.astrolog.org/labyrnth/algrithm.htm 

    SOLUCION

    CAMINO RECORRIDOSIN SALIDA

    SIN RECORRER

    SOLUCION

    CAMINO RECORRIDOSIN SALIDA

    SIN RECORRER

  • 8/18/2019 Robots Laberinto Grupo E

    37/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 36 —

    Algoritmo aleatorio

    Este algoritmo se basa en moverse al azar, es decir, desplazarse en una dirección yseguir el pasadizo hasta el siguiente cruce, sin hacer giros de 180º hasta que no seanecesario. Simula el comportamiento de un ser humano sin memoria y no recuerda pordonde ha pasado, por lo que no garantiza la llegada al final. En contraposición, es unalgoritmo muy simple.

    Algoritmo de la colonia de la hormiga

    La optimización de la colonia de la hormiga, ACO (Ant Colony Optomization), lacual se utiliza en los laberintos desconocidos, está basado en el comportamiento que poseenlas hormigas al encontrar una fuente de alimento y encontrar la trayectoria más corta. Estecomportamiento es el de dejar un rastro de feromonas por el camino así el resto dehormigas pueden seguir el rastro. El movimiento de una hormiga es aleatorio pero aldetectar que un camino fue atravesado tienden a seguirlo, así que si a una hormiga “A”

    llega antes a la colonia con alimento que la hormiga “B” estará reforzando las feromonas(retroalimenta el camino) que marcan el camino de esta forma aumenta la probabilidad paraque las demás hormigas lo atraviesen, provocando un movimiento colectivo general dondeel camino elegido será el más corto.

    En el Hispabot de 2006, VIRIATO (robot desarrollado en la Universidad deSalamanca) que fue el ganador de esta edición utilizó este algoritmo. En esta ocasión ellaberinto era desconocido, por lo que los desarrolladores del robot optaron porimplementarle el algoritmo de la hormiga.

    http://www.ucy.ac.cy/~gracm05/PROCS1/10.pdf  

  • 8/18/2019 Robots Laberinto Grupo E

    38/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 37 —

    Imagen del robot Viriato.

    Gaston Tarry y Edouard Lucas

    Gaston Tarry y Edouard Lucas enumeraron una serie de pasos que debemosimplementar para conseguir resolver un laberinto si estamos dentro de él. Cuando entremos

     por primera vez en un pasillo hay que dejar 2 marcas en la entrada. Cuando lleguemos auna estancia, en la salida del pasillo haremos una marca si ya ha sido visto y en el caso deque no lo hayamos visitado todavía dejaremos 3 marcas. Siempre tenemos que elegir elcamino que no haya sido explorado o que posean una marca (que solo se hayan recorrido enun sentido)

    Edouard Lucas en "Recréations mathématiques" (volumen 1, 1882), habla de una

    forma de salir de un laberinto que consiste en que mientras se va andando por uno hay queir marcando la pared derecha del laberinto. Si llega a una intersección se puede tomarcualquier camino y si regresa a una unión en donde ya ha estado, o llega a un callejón, tieneque regresar por donde vino. Si se esta yendo por un camino marcado por la parteizquierda y llega a un cruce ya visitado, tiene que elegir un camino nuevo, en caso de queno haya ninguno por descubrir pase otra vez por un camino en el que solo haya ido en unadirección. Lo más importante es que nunca se ha de dirigir a un camino que este marcado

     por ambos lados del pasillo.

    Recursividad

    Este método se utiliza para resolver un laberinto haciendo uso de la recursividad.Esto significa que una función se llama continuamente hasta que se resuelva el laberinto,utilizando las siguientes prioridades, izquierda, derecha, arriba y abajo. x0, y0 indican la

     posición de entrada y xf , yf la de salida. Cada casilla puede tener algunos de los siguientesvalores: muro, camino sin visitar y camino visitado

  • 8/18/2019 Robots Laberinto Grupo E

    39/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 38 —

    Funciones utilizadas:

    Función “válida”:Se le pasa como datos de entrada la fila y la columna hacia donde se dirige y retorna unvalor booleado indicando si la posición es correcta.

    Algoritmo: 

    resultado vale VERDADEROsi nos hemos salido del laberinto o si a donde vamos hay pared o ya fue visitada

    resultado vale FALSO

    Función recorrer:

    Retorna un valor buleano para así ver si se llegó o no al final, esta es la función que utilizala recursividad para moverse por el laberinto, los datos de entrada es la posición actualdonde se encuentra y dentro de la función se pasa a si misma los valores en X e Y delsiguiente movimiento, marcando cada casilla por donde ha pasado para no retroceder eintentando moverse primero a izquierdas, derechas, arriba y finalmente abajo peroasegurándose antes que la casilla donde se moverá será válida. La condición de salida deesta función es ver si se llegó a la salida o ver si nos encontramos en un callejón.

    Algoritmo: 

    Si listo vale falso

    Se marca la casilla

    Si llegamos al final del laberinto

    Devolver verdadera

    Si no se resolvió el laberinto y la casilla de la izquierda es un movimiento validoSe llama a recorrer (recursividad) con el valor de la posición izquierda

    Si no se resolvió el laberinto y la casilla de la derecha es un movimiento valido

  • 8/18/2019 Robots Laberinto Grupo E

    40/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 39 —

    Se llama a recorrer (recursividad) con el valor de la posición izquierdaSi no se resolvió el laberinto y la casilla de la arriba es un movimiento valido

    Se llama a recorrer (recursividad) con el valor de la posición izquierdaSi no se resolvió el laberinto y la casilla de la abajo es un movimiento valido

    Se llama a recorrer (recursividad) con el valor de la posición izquierda

    Si no se resolvió el laberinto listo todavía vale FALSOQuitar marca de la casilla

    devolver listo con el valor de verdadero o falso

    Función main:Encargado de visualizar el laberinto y la solución y de llamar a la función recorrer

    Algoritmo:

    Se imprime el laberinto sin resolverSe llama a ala función recorrer pasándole ( x0, y0 )Si no se pudo resolver

    Imprimir en pantalla “no hay solución”Si existe una solución

    Se imprime el laberinto resuelto

    La recursividad tiene un potencial problema asociado al diseño de microrrobots, yes que si se implementa en un micro no demasiado potente puede llegar a saturarlo.

    Algoritmo de Microtauro

    El laberinto se considera como una gran matriz donde cada cuadrante de éste es unacasilla del array, cada pared se considera como un 1 y el lugar por donde no ha pasado elrobot se considera como 4. Cada vez que llega a una intersección de 4 caminos transformael 4 en un 3(que significaría que el robot puede pasar hasta 3 veces por esa casilla), cuando

    se encuentra en un camino bidireccional lo transforma en un 2 (que significaría que el robot puede pasar hasta 2 veces) cuando se encuentra en un callejón al retroceder vadisminuyendo una unidad cada casilla entonces las casillas que tenían un 2 (ya que es un

     pasillo) se transformará en 1, dejando así imposibilitado el paso ya que se tratara ahora deuna pared. Pero el robot no solo descuenta una unidad en los callejones, sino que lo hace amedida que va avanzando, entonces si antes había pasado por una casilla que tenían unvalor de 3 al pasar nuevamente, significará que ya solo puedo pasar 2 veces más. Es decir,el programa sabe por donde hemos pasado y por donde hay posibilidades de ir.

  • 8/18/2019 Robots Laberinto Grupo E

    41/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 40 —

    El robot intenta dirigirse hacia el número más alto que lo rodea pero en el caso deque el número más alto se repita, a la hora de elegir intenta ir por defecto a la derecha dellaberinto, ya que allí se encuentra la salida, y a la hora de elegir entre ir arriba o abajo, noteniendo la posibilidad de seguir avanzando hacia la salida, el robot reconoce en quedirección se encuentra esta, calcula si se encuentra arriba o debajo de él y se dirige haciaella.

    Por último el robot posee un sistema de descarte de caminos, que consistesimplemente en que el robot cuando consigue llegar a una pared establece lo que se hallamado “puntos de anclaje”, entonces cuando el robot consigue llegar a una pared diferentea ésta, se establecería otro punto de anclaje, formando una línea continua que se

    corresponderá con el movimiento realizado por el robot. Finalmente observa donde seencuentra la salida, y dependiendo de si esta se encuentra arriba o abajo de nuestra línea deanclaje, se procederá a eliminar la parte en la que esta no se encuentre, ya que si el robot se

     pudo mover entre esas 2 paredes, la parte eliminada no será de ayuda a la hora de encontrarel camino hacia la salida. 

  • 8/18/2019 Robots Laberinto Grupo E

    42/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 41 —

    ¿CÓMO SE CONSIGUE UN CONTROL TANPERFECTO?

    Para poder competir en una carrera de Micromouse, o en una prueba de laberinto engeneral, hay que desarrollar unos buenos métodos de exploración, optimización del caminoa seguir mediante algoritmos, pero todos hemos visto en videos de competiciones que,además de tardar muy poco tiempo en recorrer el laberinto, los robots realizan unosmovimientos muy precisos al girar, al recorrer largos tramos rectos de laberinto, y lo mássorprendente, tomar diagonales. ¿Cómo lo consiguen? Para ello se tienen que tener encuenta lo siguiente:

    Diagonales

    Recorrer el circuito en diagonal es una buena forma de ahorrar tiempo, pero tambiénes muy peligrosa. Los competidores expertos suelen estructurar sus diseños de tal formaque sus robots puedan identificar y realizar tramos en diagonal, disminuyendo la longitudtotal del recorrido y evitando así perder tiempo en realizar giros. Dependiendo de lasdimensiones de cada celda, nuestro laberinto tendrá un ancho en diagonal determinado, queen las pruebas de micromouse suele estar entorno a unos 110-130 mm, y por supuesto, elrobot deberá ser más estrecho que dicha longitud. Como es lógico, cuanto más grande seanuestro robot, más precisos deberemos ser, aunque tampoco interesa que el robot seademasiado estrecho, porque podríamos tener problemas en curvas a velocidades altas. Por

    ejemplo, si circulamos a una alta velocidad y realizamos un giro sobre una de las ruedas para entrar en la diagonal, corremos el riesgo de que, por inercia, el cuerpo del robot sedesplace hacia uno de los lados. En definitiva: debemos disponer de una tolerancia mínimaque nos permita recorrer sin problemas el tramo de la diagonal, así como permitir pequeñosmovimientos en torno a las posiciones calculadas. No es raro que durante la competición

     preliminar, muchos de los robots se choquen contra alguna de las esquinas del circuito.

  • 8/18/2019 Robots Laberinto Grupo E

    43/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 42 —

    www.robots-dreams.com 

    Los sensores deben realizar trabajo extra en las diagonales. En el caso de usarsensores laterales, ahora ya no disponemos de una superficie perpendicular de reflexión. Lavariación de distancia al muro es mayor y asimétrica, por lo que no podemos disponer deinformación simultánea del lado derecho e izquierdo.

    Entonces, ¿cómo se consigue? La respuesta es sencilla, a base de probar y probar, yrealizar los ajustes necesarios. Es en este momento cuando aparecen los beneficios dedisponer de márgenes seguros desde el comienzo del diseño, para después modificar elcontrol y poder correr más o menos riesgos.

    En línea recta

    Recorrer largos tramos rectos puede parecer sencillo, pero ¿estamos seguros de queel diámetro de las ruedas es el mismo (en el caso de usar motores paso a paso) o que los

     bucles de control son los adecuados ¿Qué ocurriría si nuestro robot llegase a chocar contrauna pared del laberinto? Para evitar esto, debemos tener en cuenta los distintos tipos deerrores que podemos cometer para poder actuar convenientemente. Corregir dichos erroresserá una labor necesaria para obtener unos buenos resultados. A continuación se detallanalgunos de esos errores:

    ERROR FRONTAL

    http://micromouse.cannock.ac.uk/navigation/straights.htm 

  • 8/18/2019 Robots Laberinto Grupo E

    44/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 43 —

    Error de distancia frontal: Se produce cuando nuestro robot se encuentra muy cercao muy lejos de la pared frontal. Este error es uno de los más sencillos de corregir, ya que esmuy común utilizar sensores de posición que nos permiten realizar la calibración con

    suficiente antelación. Sin embargo, algunos aspectos como la reflectividad de las distintas paredes, la dirección e intensidad de la luz ambiental o simplemente la acumulación deotros errores, hace que no haya nada establecido sobre este proceso de recalibración. Según[1] utilizar un sensor IR de corto alcance montado en la parte delantera del robot es unmétodo muy preciso. Hay que tener mucho cuidado con acumular errores de este tipo. En el

     peor de los casos, un error frontal de unos 2 cm cada 15 celdas representa un error del0.7%, que puede ser suficiente para que se produzca una colisión al llegar a una curva. Enalgunos casos, aunque no se haya producido colisión, tendremos un error de offset despuésde un giro de 90º. En motores paso a paso, un error de más o menos un paso representa unerror de unos 0.4 mm, que acumulado durante 15 celdas provoca un error de offset de unos6 mm al realizar un giro. Este error debería ser corregible. En realidad, grandes

    correcciones en el error frontal son síntoma de que hemos podido cometer errores graves enotras partes del sistema de control del robot.

    ERROR DE OFFSET

    http://micromouse.cannock.ac.uk/navigation/straights.htm

    Error de offset: Se produce cuando nos encontramos demasiado cerca o lejos de unode los muros laterales, y que aparece tras cometer un error de distancia frontal en un giro.Para poder corregir este error, será inevitable acumular un error frontal, ya querecorreremos un tramo recto del laberinto en diagonal.

    Error en la dirección: Se produce cuando el robot, tras tomar una curva, seencuentra orientado a los muros laterales, y no al centro de la celda. Si el robot está enmarcha, el corregir este error supondría reducir o aumentar la velocidad de una de lasruedas, aunque no sería apropiado si el robot ya circula a la máxima velocidad, o si va muylento. En estos casos sería conveniente realizar el giro pero con el robot parado.

    ERROR DE DIRECCIÓN

  • 8/18/2019 Robots Laberinto Grupo E

    45/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 44 —

    http://micromouse.cannock.ac.uk/navigation/straights.htm

    Un ejemplo de robot que corrige su posición es Fribotte/Cnossos, ya nombradoanteriormente. Dicho robot conoce su posición gracias a dos encoders ópticos en sus ruedasy, aunque consigue una gran precisión, hay pequeños errores que pueden aumentar hasta eldesastre. Para evitar esto, el robot dispone de cuatro sensores de distancia. A grandesrasgos, el robot realiza las siguientes operaciones:

    http://fribotte.free.fr/ 

    Las curvas

    El giro más sencillo que puede hacer un robot se basa en hacer girar las ruedas ensentido opuesto, y de esta manera rotar sobre su centro. Una vez que se tienen calibradoslos motores se pueden realizar giros de 90º y 180º con gran precisión. Los giros de 180ºson necesarios cuando encontramos un camino sin salida y el robot no es bidireccional. Hayque tener mucho cuidado con los momentos de inercia y para ello, sería convenientecolocar la masa del robot lo más cerca posible del centro, y si podemos reducir la masa delrobot, mucho mejor. Los sensores de los muros pueden aumentar de forma sorprendente elmomento de inercia en las ecuaciones, según [1] en términos de la distancia al centro al

    cuadrado. Si se considera el giro sobre una sola rueda, hay que tener en cuenta que una delas ruedas recorre más distancia que la otra, y tal vez no sea provechoso en términos develocidad, además de que los problemas de inercia son peores en este tipo de giro.

    Otro de los aspectos que permiten una velocidad alta en los robots de Micromousees el modo en el que se trazan las curvas del laberinto.

    En un primer punto, vamos a centrar nuestra atención en los giros de 180º, lo cualnos lleva a pensar en dos estrategias a seguir a la hora de trazarlos, estas estrategias son lasque vienen representadas en el dibujo inferior. Se puede observa que el dibujo de laizquierda va asociado a un control más rudimentario mientras que la forma de afrontar la

  • 8/18/2019 Robots Laberinto Grupo E

    46/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 45 —

    curvas según el dibujo de la derecha presenta un control más depurado, ofreciendo asímejores prestaciones.

    http://www.robots-dreams.com

    Una de las formas de poder mantener una velocidad tan considerable en un robot essaber si la siguiente casilla a la que el robot va a acceder tiene o no pared. Para ello se vaobteniendo información por unos sensores colocados en la parte frontal del robot. Estossensores pueden ser de ultrasonidos o luminosos. Los sensores se colocan como se muestraen la figura siguiente:

    http://www.robots-dreams.com

    Primeramente podemos ver que hay un sensor que apunta directamente hacia alfrente. Este sensor es, intuitivamente, sencillo de entender. Está colocado para poderdetectar posibles paredes situadas en celdas adyacentes. Esta estrategia de diseño hace tenerque obviar muchos posibles errores en la información enviada por los sensores, lo que hacetrabajar de forma aproximada.

  • 8/18/2019 Robots Laberinto Grupo E

    47/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 46 —

    http://www.robots-dreams.com

    En esta segunda imagen vemos como se comportan los sensores colocados de formaoblicua. En un primer momento se puede llegar a pensar que la colocación de los sensoresde esta forma es un poco inútil, pero posicionando los 2 emisores con el mismo ángulo

     permiten, como se puede observar en la figura, que el ángulo de incidencia y el de reflexiónes el mismo, y así poder conseguir tener información sobre paredes laterales en celdasadyacentes. 

    De la experiencia de los distintos competidores de Micromouse, se llega a laconclusión de que el ángulo óptimo para posicionar los sensores, no es de 45º sino unángulo algo menor.

  • 8/18/2019 Robots Laberinto Grupo E

    48/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 47 —

    9. Simuladores

    En relación al apartado de simulación, tras realizar una búsqueda por diferentessitios dentro de la Red que podemos hacer uso de diferentes herramientas para poder probarlos distintos algoritmos, es decir, existen soluciones comerciales para responder a talnecesidad.

    Por el contrario, podemos utilizar programas comerciales con el fin de simular elcomportamiento de nuestro robot. Un ejemplo es el programa Matlab. Gracias a queincorpora la Fuzzy Logic Toolbox, Matlab nos permite diseñar un controlador borroso paranuestro robot. A continuación mostraremos un ejemplo.

    El laberinto consiste en un mapa de bits blancos y negros, donde los bits negrosrepresentan las paredes. El robot deberá desplazarse continuamente por el laberinto sinchocarse con las paredes, utilizando para ello dos sensores de distancia colocados a +45º y -45º con respecto a su eje longitudinal.

  • 8/18/2019 Robots Laberinto Grupo E

    49/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 48 —

    En este ejemplo no se ha utilizado el entorno Simulink de Matlab, sino que se harealizado directamente a partir de funciones (archivos.m): una función gestiona lainformación de los sensores, otras dos se encargan del movimiento del robot y de surepresentación sobre el mapa, y por último se encuentra la función principal que llama al

    resto de funciones. El controlador tiene como entradas las distancias detectadas por lossensores (distancia hasta el primer píxel negro) y como salidas la velocidad angular y linealdel robot.

    El resultado de la simulación es el siguiente:

    Pero cada desarrollador de microrrobots, además de poder usar soluciones como lasque se ofertan en MATLAB, se puede realizar su propio simulador mediante cualquierherramienta de desarrollo, como puede ser el lenguaje C, JAVA, etc. En este trabajo se va a

     proponer un posible simulador, implementada en lenguaje C, probándose sobre él, dos de

    los algoritmos arriba explicados.

    Simulamos los 2 métodos que nos han parecido los más destacados pos su sencillezy eficacia:

    El primero es el método de tirar a derechas, este algoritmo es fácil de aplicar, yaque en su algoritmo solo hay que poner una serie de prioridades que serían: primero tirar aderechas, en caso contrario, seguir recto, después tirar a la izquierda, y por ultimo ir haciaatrás. Con este algoritmo tenemos la certeza de que encontrará la salida.

  • 8/18/2019 Robots Laberinto Grupo E

    50/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 49 —

    El segundo que simulamos fue el de BREADTH FIRST, utilizado en laberintosconocidos. En la simulación lo único que no se puede apreciar son los nodos superiores a 9,

    ya que al ser números de 2 cifras necesitan 2 casilleros para representarse. Para utilizar elalgoritmo tenemos que colocar un “1” en la entrada, para así indicarle el comienzo de lacuenta. Una vez colocado, el programa recorrerá el laberinto buscando el número 1 ycolocando un 2 (número superior al que buscamos) alrededor de este, antes de colocarlo, setomará en cuenta si en donde se ubicará existe una pared o ya hay un número asignado aesa casilla, en este caso, no se escribirá ningún número. Luego se buscará el 2, el 3etc.;hasta que en la casilla de salida, que está en blanco, se escriba un número. Una vezescrito el número en la casilla de salida, el programa empieza a contar hacia atrás hastallegar al número “1” que se corresponde con el inicio. Mientras se cuenta, se van marcandolas casillas por las que pasa, formando así el camino solución.

  • 8/18/2019 Robots Laberinto Grupo E

    51/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 50 —

    10. 

    Consideraciones a tener en cuenta a la hora deldiseño:

    Para comenzar el diseño de nuestro robot de laberinto es necesario plantearse ciertas preguntas que nos facilitaran el diseño de nuestro robot. Estas preguntas son:

    •  ¿Cuáles son las normas del concurso en el que queremos participar?•  ¿Cuánto presupuesto tenemos?•  ¿Qué material podemos reciclar?•  ¿Cuánto tiempo tenemos?•  ¿Cuál es nuestra meta?

    En nuestro caso las respuestas a estas preguntas no son del todo reales, ya que hemoscreado nuestra propia competición a la que ajustar el robot. Aún así las respuestas son lassiguientes:

    •  Viendo la normativa podemos ver como partes importantes que:1.  Las medidas no pueden exceder los 25x25.2.  el objetivo principal es salir del laberinto.3.  El laberinto es conocido a priori pero no la posición de partida.4.  Se conseguirá bonificación si pinchamos algún globo.

    •  En nuestro caso el presupuesto no queríamos que excediese los 100€.•  Con mucho ahínco hemos conseguido unos motores sacados de unas

    disqueteras de 5.25”, también disponemos de un micro-controlador quetenemos de una práctica de años anteriores.

    •  Tiempo no teníamos el suficiente como para llegar con el robot montado yfuncionando, además de tener ciertos problemas técnicos lo cual nos ha hechono poder traer el modelo pensado inicialmente.

    •   Nuestra meta es poder presentarnos en la siguiente edición de Alcabot.

    Una vez tenemos una base sobre la que poder trabajar debemos empezar a idear unaalgoritmia, en nuestro caso y debido a la reutilización del microcontrolador debemos saberque tenemos ciertos limites impuestos a priori. Una vez decidida la algoritmia, tendremos

    que establecer los bloques necesarios para aportar datos suficientes al algoritmo, segúnsabemos los sensores que necesitamos realizamos una estructura inicial del robot que permita manejar dichos sensores con un mínimo de garantías, es decir, que los pulsadoresestén colocados de forma estratégica o que los sensores de distancia estén dentro de sumargen de actuación sin que se les impida en ningún momento su visión.

  • 8/18/2019 Robots Laberinto Grupo E

    52/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 51 —

    11. 

    Algoritmo para salir del laberinto:

    Debido a la naturaleza de la prueba el problema que se nos plantea es conseguir salirde un laberinto que sabemos conocido, desde una posición de partida desconocida y conorientación aleatoria dentro de la casilla de salida, para ello lo que vamos a intentar esconocer nuestra posición dentro del laberinto, para ello nos iremos moviendo por ellaberinto y almacenando la posición de las paredes de las distintas celdas por las que hemos

     pasado.Dicho así parece una tarea no demasiado complicada, pero debido al problema de que

    la salida no es conocida se nos plantean dos problemas:

    •  ¿Dónde estamos?•  ¿Hacia dónde vamos?

    Estas preguntas suenan un poco existenciales, pero realmente es un problema a la horade que el robot sea capaz de encontrar la salida ya que al no tener una entrada y una salidalos posibles caminos para salir dependen de donde nos encontremos en el momento en elque nos hemos posicionado dentro del laberinto.

    Para almacenar tanto el laberinto inicial como los datos recopilados en el laberintousaremos matrices bidimensionales.

    Debido a que la orientación inicial no es conocida vamos a encontrar el problema deque el laberinto conocido no será único desde el punto de vista del robot, viendo lasiguiente imagen será mucho más fácil comprenderlo:

  • 8/18/2019 Robots Laberinto Grupo E

    53/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 52 —

    Como podemos observar en la imagen anterior el robot no sabe hacia donde está

    mirando, es por esto que almacenamos el laberinto con sus cuatro posibles orientaciones:

    Debido a lo anterior tendremos 4 formatos de laberinto e intentaremos ir buscandocoincidencias en cada uno de ellos hasta conseguir ubicarnos únicamente en uno de ellos.

  • 8/18/2019 Robots Laberinto Grupo E

    54/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 53 —

    Una vez resuelto el problema de la orientación nos queda por solucionar el problemade la casilla de salida. Debido a que el laberinto esta formado por un campo de 9 celdas por9 celdas lo máximo que podemos movernos hacia un lado u otro son 8 celdas, y debido a

    que no queremos perder información haremos una matriz de 17 celdas por 17 celdas paraasí aun saliendo desde una esquina podamos almacenar todos los datos en nuestra matrizsin perder ningún valor, para ello empezaremos a guardar los datos desde el centro de lamatriz de datos:

    Cada color representa el peor caso dependiendo de la orientación de la salida ysuponiendo que partimos desde alguna de las esquinas, con ese gráfico demostramos que enel peor de los casos conseguimos almacenar todos los datos. En los casos no tan extremosnos encontraremos dentro de esa tabla sin llegar a las esquinas de la matriz. Debemos

  • 8/18/2019 Robots Laberinto Grupo E

    55/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 54 —

    destacar que la celda central siempre es común a cualquiera de los casos así que nuestra búsqueda siempre partirá desde la celda central.

    El problema que se nos presenta en este caso es el uso de memoria RAM necesaria para poder implementar el algoritmo.

    Los mapas conocidos a priori se almacenarán siempre en memoria no volátil, deforma que así siempre estarán disponibles y no ocuparan memoria RAM, es por esto quenecesitaremos únicamente memoria para la matriz de adquisición de datos, esto implica untamaño de memoria mínimo de 289 bytes disponibles en la memoria RAM.

    Inicialmente las casillas tendrán el valor 0xFF para así poder diferenciar las que sehan recorrido y las que no. Cada byte tendrá la siguiente estructura, válida tanto para loslaberintos grabados inicialmente en ROM como para el que está en RAM:

    BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0Posición de paredes 0-15 Distancia a la salida 0-15

    Tabla de posición de paredes:

    Paredes referenciadas con el mapa hacia arriba BIT 7 BIT 6 BIT 5 BIT 6Sin paredes 0 0 0 0Pared abajo 0 0 0 1Pared arriba 0 0 1 0Pared izquierda 0 1 0 0Pared derecha 1 0 0 0Pared abajo y arriba 0 0 1 1Pared arriba, izquierda, derecha 1 1 1 0

    … … ... ... …

    El algoritmo a seguir es bastante intuitivo, una vez que sabemos en que posiciónestamos lo único que falta es encontrar un camino mínimo hasta la salida. Para ellotendremos en cuenta el número de casillas hasta la salida, es decir, equivale a usar un mapaen cualquier ciudad.

    La información necesaria para salir, la buscaremos en los bytes de las casillas,guiaremos el camino dándole valores a cada casilla, cuanto más lejos esta la salida mayorserá el número asignado, de esta forma el robot lo que tiene que hacer es ir hacia la casillaque tenga un valor menor. A continuación mostramos un ejemplo según el mapa queestamos usando en esta presentación.

  • 8/18/2019 Robots Laberinto Grupo E

    56/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 55 —

    De esta forma en cuanto sepamos donde estamos solo tenemos que consultar lascasillas que nos rodean y seleccionar la apropiada, pudiendo haber caminos que tengan lamisma distancia hacia la salida. Bien es cierto que en la figura anterior quizás fuese mejor ir

     por el camino verde ya que tiene menos giros, en este caso si queremos que solo vaya por elverde lo único que deberíamos hacer es cambiar el nombre la casilla que inicia el caminorojo por una de mayor valor, de esta manera evitamos que seleccione ese camino.

    Debido a la limitación que tenemos en la memoria (lo que nos lleva a usar variables

    tipo char y no tipo int) no podemos pasar de una distancia 15ª la salida, esto nos hace andara ciegas durante unas cuantas casillas hasta encontrar casillas con valor menor a 15, en casode querer evitar esto deberíamos usar variables de tipo int, por lo que necesariamentetendríamos que cambiar de microcontrolador. Como alternativa para no cambiar el microcontrolador es guardar en memoria ROM un mapa con valores y un mapa con las paredes.

    Una vez adquirimos los datos debemos encontrar en que matriz la dirección del mapaen la que estamos y con que orientación nos encontramos, para ello la idea inicial quetenemos es empezar a buscar comparando los datos que tenemos por filas, inicialmenteempezaremos a buscar por la casilla central de los datos recogidos tal y como se ha dichoanteriormente, ya que es la única celda que tenemos en común, según avancemos por el

    laberinto iremos recopilando más datos lo que nos lleva a descartar mapa por mapa yencontrarnos. Para saber la dirección en la que estamos mirando llevaremos un historial delos índices de la matriz de las últimas celdas recorridas sabiendo de donde venimos, siañadimos a esto el número de giros dados sabemos hacia donde miramos.

  • 8/18/2019 Robots Laberinto Grupo E

    57/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 56 —

    12. 

    Descripción de estructura y hardware del robot

    Para poder ubicarse dentro del laberinto nuestro robot necesita un sistema sensorial nodemasiado complicado, para ello hemos decidido usar sensores de distancia medianteinfrarrojos así como un bumper para detectar el contacto frontal del robot contra el globo.

     Nuestro robot sigue el diagrama de bloques mostrado a continuación:

  • 8/18/2019 Robots Laberinto Grupo E

    58/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 57 —

    El cerebro

    Todo robot que tiene que tomar decisiones de forma autónoma necesita un “cerebro”,en este caso y por el motivo de aprovechar lo que tenemos hemos decidido usar un68HC08 que reutilizamos de la práctica del laboratorio de SED de Ingeniería deTelecomunicación. Esto nos aporta la ventaja de que al menos alguno de los integrantesdel grupo conoce las herramientas de trabajo.

    El uso de este micro no es debido únicamente al ahorro de coste, ya que si nocumpliese ciertas necesidades este no sería útil. Podemos destacar las siguientescaracterísticas técnicas del microcontrolador:

    •  Microcontrolador de 8 bits•  32Kbytes de memoria FLASH

    •  512 bytes de memoria RAM•  Velocidad de bus de hasta 8MHz•  2 Timers de 16bits•  ADC de 8 bits con 8 canales•  Admite tanto lenguaje C como lenguaje Ensamblador

    Hemos destacado estas características porque nos resulta necesario el tener un ADCcon una resolución aceptable y al menos un temporizador.

    Debido a la tarjeta de desarrollo tenemos un pequeño impedimento en el ADC, esto es

    que el margen dinámico viene fijado entre 0 y 5 voltios

  • 8/18/2019 Robots Laberinto Grupo E

    59/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 58 —

    El sistema sensorial

    Para saber en que posición estamos en cada momento solo necesitamos tener 3sensores de distancia, colocados de forma que sepamos la distancia hacia el frente,derecha e izquierda. Con el fin de mejorar el posicionamiento de nuestro robot leincluimos uno en la parte trasera.

    Usamos como sensores de distancia unos GP2D12. Como ya sabemos son sensores dedistancia mediante infrarrojos, la medida que nos aporta estos sensores es una tensiónanalógica con un rango de valores de 0.4V a 2.6V.

    Con el fin de obtener una mejor resolución usaremos un circuito que adapte la señalde manera que amplificaremos de 2.6V a 5V, esto nos da una ganancia de 1.9. En el casode querer tener todavía más resolución, la solución es tan sencilla como bajar los 0.4V a 0y luego amplificar

    El problema que nos dan estos dispositivos es que distancias menores de 10cm lasmedidas no son válidas. Este inconveniente se tiene en cuenta ya en el diseño de laestructura.

    A los sensores de distancia se les suma un bumper delantero que nos indicaría cuandohemos pinchado un globo.

    Los actuadotes

    Obviamente necesitamos algún mecanismo que nos permita movernos por el

    laberinto, para ello hemos creído conveniente utilizar motores paso a paso, ya que de estaforma tenemos un control sobre el número de vueltas que llevamos dadas, así como giros

     parciales con una gran exactitud.

  • 8/18/2019 Robots Laberinto Grupo E

    60/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 59 —

    Para llevar un control sobre la velocidad y el número de vueltas de los motoresutilizamos el temporizador del microcontrolador. Concretamente usaremos la interrupciónde overflow, de esta forma cambiando el valor de la referencia de desbordamiento

     podemos crear rampas de aceleración evitando así la posible pérdida de tracción debida aun arranque brusco de los motores.

    Para el acondicionamiento de los motores con el micro hemos utilizados el driverULN2003 es cual es un circuito integrado compuesto por una serie de componentes tipoDarligton. La conexión de acondicionamiento es la siguiente:

    Estructura física

     Nuestra idea es realizar una base con forma elíptica con el fin de tener suficiente

    espacio, evitar esquinas y poder contener las ruedas dentro del perímetro de la base,

  • 8/18/2019 Robots Laberinto Grupo E

    61/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 60 —

    evitando así posibles roces con las paredes que podrían hacer que el robot pasease a serun robot de escalada, llegando a volcar.

    Las ruedas se realizarán con Cd´s ya que conseguimos un perímetro suficientemente

    grande, avanzando mucho con pocas vueltas lo que también aumenta la velocidad.

    Los sensores los hemos colocado estratégicamente para poder conocer la posición delas paredes así como la posición dentro de la celda. Además en la parte frontal se hancolocado dos sensores, uno más elevado que otro, el fin de colocar los sensores con estaconfiguración es detectar el globo. En la siguiente figura se demuestra el porque:

    Como podemos observar la distancia que ve el sensor superior hacia el globo es bastante menor que del sensor inferior, esto nos indicaría que tenemos un globo delante por lo que procederíamos a pincharlo.

    El resto de sensores se colocan formando un ángulo de 90º para ver todas las paredesque nos rodean.

    Con esta posición de los sensores sabemos en cada momento la distancia en cada pared, lo que nos indica si estamos posicionados correctamente dentro de la celda, así podemos conseguir rectificar pequeños errores en el movimiento

  • 8/18/2019 Robots Laberinto Grupo E

    62/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 61 —

    13. 

    Catia.

    Para diseñar el robot nos hemos ayudado del programa Catia, que nos permite realizarun modelo en 3D, con todo tipo de medidas. Con ello conseguimos saber las cualidades queva a tener nuestro robot antes de construirlo físicamente.

    Introducción a Catia.

    Catia tiene distintos módulos, cada uno enfocados a distintos aspectos del diseño. Secomienza con la generación de figuras 2D(Sketcher), se crean sólidos (Part Desing) yfinalmente se ensamblan(Assembly).

    Hay otros muchos más módulos que permiten hacer un estudio físico del productorealizado, que dan datos sobre costes o precios y hasta pruebas de resistencia.

    Debido a que el entorno de Catia era desconocido para todos nosotros, nos hemoscentrado en el modulo de diseño mecánico (Mecanical Desing).

    Sketcher.

    La base de todo diseño se realiza con esta herramienta. Su función es crear unos planos 2D, que luego podremos dar volumen con la herramienta Part Desing.

    Se pueden hacer todo tipo de formas (rectángulos, círculos, elipses, formas libres…),que luego se deben acotar implantando unas “constraint”. Las “constraint” son las medidasde la figura 2d realizada. Es muy importante dar medidas correctas para que luego en elensamblado todo siga una misma escala.

  • 8/18/2019 Robots Laberinto Grupo E

    63/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 62 —

    Part Desing

    Una vez que tenemos el plano 2D definido, hay que darle volumen. Con el PartDesing podemos darle volumen, hacer agujeros a un volumen ya creado, rotar una pieza

     para formar un volumen de revolución, hacer contornos…

    El desarrollo de todas las piezas se hace dentro de Part Desing, entrando en elSketcher siempre que se necesite un nuevo volumen; para ello solo hace falta elegir el plano

    donde se dibujara la figura 2D.

    El gran potencial de esta herramienta es la posibilidad de hacer todo tipo devolúmenes, sin excepción, a base de figuras simples. Podemos realizar operaciones

     booleanas entre piezas para conseguir nuevos volúmenes.

     No hay que olvidar que hay que seguir dando las medidas de la pieza que queremosrealizar, incorporando todas las constraints necesarias.

  • 8/18/2019 Robots Laberinto Grupo E

    64/86

     Introducción al Diseño de Microrrobots Móviles Trabajos en Grupo

     — Página 63 —

    En las primeras sesiones de uso de Catia, moverse entre volúmenes es complicado, ytener una visión espacial de la pieza es importante. Saber que volumen hay que definir,donde hay que agujerear, que plano es cada uno es la base del desarrollo de piezas.

    Hay veces que se necesitan volúmenes que son iguales a otros ya creados, para novolver a realizarlos nos ayudamos de herramientas de simetría, que mueven lo que hayrespecto a un eje de simetría (que define el usuario). Con ellos conseguimos piezas igualesy simétricas.

    Assembly Dessing

    Herramienta en donde se unen todas las part