Robots_laberinto_grupo_E.pdf

download Robots_laberinto_grupo_E.pdf

of 86

Transcript of Robots_laberinto_grupo_E.pdf

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    1/86

    Robots de Laberinto

    Trabajo realizado para la asignatura de Diseo de

    Microrrobots Mviles de la Universidad de Alcal

    por

    Diaz Collazo, Adrin Marcelo ([email protected]),

    Echeanda Snchez, Carlos ([email protected]),

    Espejo Gmez , Victor ([email protected]),

    Garca Castilla, Fernando ([email protected]),

    Gude Rodrguez, Isaac ([email protected]) ,

    Lzaro Rubio, Carlos ([email protected]),

    Muoz Babiano, Federico ([email protected]),

    Prez Couso, Alberto ([email protected])

    Noviembre 2006

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    2/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 1

    NDICE

    1.Introduccin ......................................................................................................................... 4

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

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

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

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

    4.Anlisis de estructuras y diseos de robots de laberinto ................................................... 10

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

    Mtodo de manejo y el dar la vuelta ................................................................................ 12

    Grados de movimiento ................................................................................................. 12La traccin .................................................................................................................... 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.Bateras .............................................................................................................................. 23

    8.Anlisis de algoritmia ........................................................................................................ 24

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

    Algoritmo de DIJKSTRA:........................................................................................... 26Bsqueda de BREADTH FIRST .................................................................................. 32Algoritmo de BELLMAN-FORD ................................................................................ 33

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

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

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    3/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 2

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

    Cmo se consigue un control tan perfecto? .................................................................... 41

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

    En lnea recta ................................................................................................................ 42Las curvas ..................................................................................................................... 44

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

    10.Consideraciones a tener en cuenta a la hora del diseo: ................................................. 50

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

    12.Descripcin de estructura y hardware del robot .............................................................. 56

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

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

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

    Estructura fsica ................................................................................................................ 59

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

    Introduccin a Catia. ........................................................................................................ 61

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

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

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

    Diseo de nuestro robot. ................................................................................................... 63

    Desarrollo por partes del diseo. ...................................................................................... 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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    4/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 3

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

    16.Bibliografa. ..................................................................................................................... 84

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    5/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 4

    1.

    INTRODUCCION

    El documento desarrollado a continuacin 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 anlisis de las estructuras ms usadas con sus ventajas e inconvenientes.

    Obviamente necesitamos algn mtodo para salir del laberinto, esto lo abordamos en unapartado dedicado exclusivamente a la algoritmia, control y simulacin. Para completar eltrabajo desarrollado hemos realizado una propuesta de diseo utilizando herramientas dediseo 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    6/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 competicin que conocemos actualmente.

    A continuacin desglosamos la evolucin por aos:

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

    1977

    En este ao se introdujo el concepto de microsmouse por el IEEE. En mayo seanunci la primera competicin de Micromouse que sera celebrada en 1979 en

    Nueva York.

    1980

    El profesor Juan Billinsley, de la escuela politcnica de Portsmouth, introdujo laprimera competicin europea y modific las reglas, consiguiendo que lascompeticiones sean parecidas a las de la actualidad.

    1981

    En la exposicin micro de Pars hubo cinco micromouse, el primer lugar fue parael ratn Esterlina, alcanzando la meta en menos de 3 minutos.

    En la segunda competicin Britnica de micromouse, Dave Woodfield consiguiun tiempo de 47 segundos, proclamndose campen. Esterlina consigui unsegundo lugar con 1min 37sec.

    1985

    Se llevo a cabo el First World Micromouse Competiton en Tsukuba, Japn.

    1986

    Los E.E.U.U. hicieron su primera competicin, celebrada en Atlantic City.

    1987

    Se produjo la primera competicin de Singapur

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    7/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 6

    1989

    Se lanz la primera competicin internacional de Micromouse de Singapur.

    1992Tenemos ya la sptima entrega de competicin anual del micromouse de IEE, enLondres.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    8/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 7

    3.CompeticionesA continuacin presentamos las competiciones ms conocidas.

    ALCABOT

    o 2000 NORMATIVA: El concurso ser ganado por aqul micro-robot que

    consiga salir del laberinto en el menor tiempo. Se dispone de unanica 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 tiempoposible.

    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 sesin. 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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    9/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 8

    N PARTICIPANTES PRESENTADOS: 12

    o 2004

    NORMATIVA: Se introducen novedades respecto aos anteriores: Dado que el laberinto es conocido, se primar a los Robots

    capaces de incorporar algoritmos de navegacin.

    Las salidas del laberinto son dos: una de ellas ser vlida,mientras que la otra tendr una penalizacin.

    El Ratn obtendr bonificacin, si logra introducir una pelotade ping-pong estndar en esa casilla central.

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

    Por lo dems la normativa es equivalente a la de los aos 2002 2003.

    N PARTICIPANTES PRESENTADOS: 11

    o 2006 NORMATIVA: Se introducen novedades respecto aos 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_Laberinto_v2_1.pdf

    N PARTICIPANTES PRESENTADOS: 4

    HISPABOTLa normativa de cada ao de Hispabot es equivalente a la de Alcabot de cada aorespectivamente.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    10/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 9

    COMPETICIONES A NIVEL INTERNACIONAL

    MICROMOUSE:

    El campeonato de Reino Unido Micromouse es una competicin internacional de larobtica, que se ha sostenido cada ao en el Reino Unido desde el los aos 80.

    Acontecimientos similares tambin se llevan a cabo en los E.E.U.U, Japn, Singapur, Coreay a otras partes. Los micromouses ratones compite con contra el reloj para buscar elcentro de un laberinto en el tiempo ms corto. El laberinto es desconocido.

    El laberinto consiste en 256 cuadrados (clulas) 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 distanciamnima de la pared a la pared es 168 mm.

    El campeonato ha sido apoyado por una variedad de organizaciones y las institucionesacadmicas incluyendo Euromicro, el instituto de ingenieros elctricos, 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 informtica enHolloway real, el centro de la innovacin de la tecnologa 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 lnea 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 rectngulo de color negro en el piso que marca el final del laberinto. A

    continuacin mostramos algunos modelos de posibles laberintos:

    N PARTICIPANTES: 11

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    11/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 10

    4.

    Anlisis de estructuras y diseos de robots delaberinto

    A priori puede parecer que cualquier estructura es vlida para nuestro robot, que loimportante es lo que tiene dentro, pero esto no es del todo cierto. Dependiendo de lafuncin de dicho robot ser conveniente utilizar una u otra, incluso una mala eleccin 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 continuacin estudiamos las partes ms importantes de un robot micromouse:

    El chasis

    El chasis es la estructura que sostiene y aporta rigidez y forma a nuestro robot. Unbuen smil sera el compararlo con el esqueleto humano. Por lo tanto queda justificada laimportancia de una correcta eleccin.

    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 importantsima 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 pasara

    lo que vemos a continuacin:

    Sin embargo, si elegimos una forma redondeada no tendramos este problema.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    12/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 11

    Ahora bien, Que pasara si utilizamos sensores de distancia?, Ya no seraimportante la forma?, en este caso, la forma seguira siendo igual de importante puesto que,aunque en un principio pudiramos pensar que el robot nunca tocara las paredes, encualquier momento esto podra ocurrir y nos ser mucho ms fcil salir del problema

    eligiendo una buena forma para el robot.

    Una buena solucin a esto podra ser no preocuparse de la forma del chasis, o nopreocuparse demasiado, y ms tarde colocar una carcasa externa con la forma quequeramos. Esta tcnica 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, plstico, maderaEl 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    13/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 12

    MTODO DE MANEJO Y EL DAR LA VUELTA

    En este apartado estudiaremos las distintas tcnicas que se utilizan para conseguirbuenos 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 funcin delos grados de libertad en el giro.

    Movimiento en diagonal: Con este tipo de movimiento conseguimos unosdesplazamientos notablemente ms rpidos, puesto que la distancia que

    recorremos es menor. A cambio, nos encontramos con varios inconvenientes.Para empezar, ser ms difcil de construir, ya que para moverse en diagonaltendremos que tener en cuenta factores que de otro modo no los tendramos,como por ejemplo estudiar ms a fondo la colocacin de los sensores, adems,estos deben tener la suficiente precisin 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

    pequeo desvo en la trayectoria podra hacernos rozar con las esquinas.

    BR3 MOUSE

    Movimiento en lnea recta: este tipo de movimiento ser mucho ms sencillode realizar que el diagonal, pero a cambio los desplazamientos sern mslentos al tener que recorrer ms 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    14/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 13

    La traccin

    Bsicamente la traccin nos importar en funcin del tipo de giro que proporcione.Para ver el giro que necesita un robot debemos pensar en la funcin que va a desempear,es decir, es posible que en ciertos casos necesitemos ms estabilidad que maniobrabilidad oal contrario.

    Existen muchos tipos de tracciones, pero en nuestro caso nos va a interesarfundamentalmente solo una, por ello diferenciamos, a continuacin, dos tipos, la msutilizada 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 traccin

    diferencial, gracias a esto conseguiremos hacer giros de 90-180 sin ningunacomplicacin.

    Un ejemplo de traccin diferencial podra ser la utilizada por el robotFLORENCIA:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    15/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 14

    Si estudiamos un poco ms detenidamente el movimiento que se genera,llegamos a la siguiente ecuacin:

    nc

    D

    d

    =

    Donde:

    d = distancia recorrida.D = dimetro de la rueda.c = nmero de pulsos del encoder por vuelta.n = nmero de pulsos leidos.

    La anterior expresin sera en el caso de que las dos ruedas se moviesen a lavez.

    Si lo que queremos es hacer un giro de x grados la ecuacin sera lasiguiente:

    nDc

    Dx

    base

    rueda

    =

    360

    Donde:x = grados girados.Drueda= dimetro de la rueda.Dbase= dimetro de la base tomando como limite de lacircunferencia el inicio de las ruedas.c = nmero de pulsos del encoder por vuelta.n = nmero de pulsos.

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

    No diferencial

    Por otro lado tenemos la traccin 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, producindose as el giro de estas.

    Si la usramos, el giro sera ms tedioso e incluso podra darnos problemas.Lo vemos a continuacin:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    16/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 podra, por ejemplo, desviar de la trayectoriacon los consiguientes efectos.

    Las ruedas

    Antes de ponernos a montar las ruedas debemos ver dnde deben estar colocadas. Enprincipio podemos pensar en una colocacin equidistante en la base lo mas separadasposible para mayor estabilidad, ahora bien, si lo hacemos as debemos tener en cuenta cualser el eje de giro, en este caso, significara que el robot no girar entorno al centro delcrculo que forma su planta y por tanto colisionar con el obstculo.

    Un ejemplo de esta colocacin sera la utilizada por el robot Charrito

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    17/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 16

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

    Aqu vemos como las ruedas motrices estn colocadas de tal forma que el robot harlos giros sobre un punto distinto al centro de la base, en concreto, los giros sern los quevemos en la figura siguiente:

    Una forma sencilla de realizar giros sobre el centro de la base sera el adoptado por elrobot Pi de RBZ Robot Design, el cual, como vemos en la fotografa, utiliza dos ruedasmotrices colocadas en el dimetro de la base y dos ruedas locas para la estabilidad:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    18/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 17

    El gran inconveniente de este tipo de solucin es que solo nos podremos mover porzonas completamente lisas, ya que si una de las ruedas locas pasase por algn elevamiento,

    por muy pequeo que fuera, alguna rueda motriz dejara de tocar el suelo.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    19/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 18

    5.

    SENSORES

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

    Sensores de proximidad

    Estos tipos de sensores nos dan informacin sobre si hay o no hay algo, es decir, nosdan una seal 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 tendra el siguiente aspecto:

    Un ratn con los sensores de proximidad

    Un diseo as tendr por lo menos siete sensores, uno mirando al frente y por lomenos tres a cada lado. El sensor delantero evita que el ratn se estrelle con una pared

    prxima al frente, mientras que los laterales permiten que el ratn corrija su trayectoria. Enel caso de la figura anterior, si los sensores izquierdos leen un valor de 010 indica que elratn est centrado dentro de la casilla. Si leemos un valor de 100, indicara que el ratnest descentrado a la derecha y necesita corregir a la izquierda, y al contrario con un valor001.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    20/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 19

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

    La forma de utilizar estos sensores es la siguiente:

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

    pasar a travs del LED. Tambin podemos usar otra opcin en laque lo conectamos a travs de un transistor controlado para que elLED emita solo cuando sea necesario, ahorrando as la energa quedel otro modo desperdiciaramos.

    El receptor: Este recibir la seal, o no, dependiendo de siesta rebota en alguna superficie, dando una tensin nula, o

    positiva respectivamente.

    El emisor y receptor pueden ser componentes separados, o estar contenidos juntosen un paquete plstico. En la siguiente fotografa 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 fsica entre el robot y la pared, y devuelven unvalor, el cual, el microcontrolador pueda interpretar como distancia.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    21/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 saturacin. El emisor genera una luz que se reflejar en la pared y, cuanto mscercano est el robot de esta, ms brillante ser la luz reflejada y por lo tanto mayor seal

    recibir el receptor.

    Un mtodo 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 deteccin de posicin (PSD). Dependiendo del ngulo de reflexin elmicrocontrolador obtendr el correspondiente dato para poder actuar. Los sensores de estetipo suelen ser ms inmunes a variaciones del color y de iluminacin.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    22/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 21

    6.

    MOTORES

    Los motores sern los encargados de generar los desplazamientos en el robot, por lo

    tanto, la eleccin de estos ser algo determinante para conseguir un buen movimiento, tantoen aceleracin como en velocidad punta.

    A continuacin comentamos, brevemente, los principales motores, que podremosutilizar.

    Motores C.C.

    En un motor C.C. la tensin se aplica directamente a los terminales de esteproducindose el movimiento. Una vez polarizado, se alcanza, rpidamente, una velocidadconstante que depender dicho voltaje aplicado y de las caractersticas del motor. La

    cantidad de fuerza que se puede generar ser funcin 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 unbuen control de la tensin aplicada y pudiendo invertir la polaridad, y por tanto el sentidode giro, si se necesita.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    23/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 22

    Puente en H

    Motores paso a paso

    La principal caracterstica de estos motores es el hecho de poder moverlos paso apaso aplicando pulsos. Dependiendo del motor, un paso puede ser desde 90 hasta 1.8, esdecir, se necesitaran 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 posicin sin ms 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 posicin, dentro de

    su intervalo de operacin, en funcin de la seal de entrada.

    Para el caso que nos ocupa, quiz lo ms prctico sera utilizarlotras haberle quitado los topes y la electrnica encargada de mantener la

    posicin, es decir, lo usaremos como un motor de continua, siendo estosbaratos y con buenas prestaciones.

    Esto es lo que utiliza por ejemplo el robot HERTRON:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    24/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 23

    HERTRON

    7.

    Bateras

    La bateras sern la alimentacin de nuestro robot, sin ellas nuestro robot no sera msque un amasijo de hierros que no servira para mucho, por eso habr que pensardetenidamente cual ser el consumo para conseguir que en un futuro no nos encontremos

    problemas como que la energa que tenemos no sea la suficiente. No obstante, un graninconveniente es el peso de las mismas, por lo que no conviene poner pilas de ms sino sololas que sean necesarias.

    La tabla siguiente enumera algunas de las caractersticas ms tpicas de los tipos mspopulares de bateras:

    Alcalinas NiCad NiMH unidadVoltaje de la clula 1.5 1.2 1.2 voltio

    Capacidad 2000 500 1100 mAh

    Densidad de la energa 190 44 53 Wh/kg

    Resistencia interna 150 10 30 ohm

    Cargador ninguno simple difcilmente

    Alcalinas: ste tipo se encuentra fcilmente 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 tensinque 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 razn suelen ser comunes en los micromouse dealto rendimiento.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    25/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 24

    8.

    Anlisis de algoritmia

    Para abordar un estudio sobre la algoritmia usada en los robots de laberinto, vamos ahacer una clasificacin 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 competicin, en este apartado se van a explicar los ms utilizados encompeticiones de robots. En el caso de que el robot se encuentre en un laberinto y noconozca su posicin exacta dentro del mismo, conlleva a que necesariamente debe disponeren memoria de un plano del laberinto, que le indique la situacin de los muros. Tras laactivacin 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. Estemtodo es el que us el robot Fribotte/Cnossos en la competicin Hispabot 2004.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    26/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 25

    Se puede observar que dicho robot tiene codificado en memoria la situacin de losmuros horizontales y verticales. Adems, a cada celda le asigna un nmero que le indica ladistancia hasta la salida. De esta manera, en el momento que el robot localice su posicin,deber desplazarse a la casilla con el nmero ms bajo. Este mtodo 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 informacin.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    27/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 26

    Una vez que ha localizado su situacin, aplicando el algoritmo adecuado, el robotcalcula el camino ms 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 continuacin:

    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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    28/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 distanciamnima al nodo inicial, ya que cualquier otro camino pasar por ms nodos, y por tanto serms largo. A continuacin, bes coloreado de naranja para indicar que es el camino mscorto.

    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 ees el caminoms corto, lo coloreamos de naranja.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    29/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 dha cambiado de 85 a 82, ya que se haencontrado un camino ms corto a travs de los nodos by e. El nodo ctiene la distanciams corta, y por tanto lo coloreamos de naranja.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    30/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 29

    En este caso la distancia a los nodos es d=82,f=42, h=49. La distancia afha vueltoha cambiado, ya que se ha encontrado otro camino ms corto a travs de los nodos b, c,j.Coloreamos de naranja el nodof, ya que tiene la distancia ms corta.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    31/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 30

    En esta situacin ya tenemos a la vista todos los nodos del ejemplo. Las distanciassond=82,g=51, i=53. Coloreamos de naranja el nodo gpues tiene la distancia mnima.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    32/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 31

    La distancia al nodo dha cambiado, ya que se ha encontrado otro camino ms cortoa travs de los nodos b, e, h yg. Las distancias son d=63, i=53. El nodo con la distanciamnima 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 mscorto a ese nodo.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    33/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 32

    Bsqueda de BREADTH FIRST

    Breadth first es un mtodo pensado para ser aplicado en grafos, pero tambin puedeser utilizado en un laberinto conocindolo a priori ya que el funcionamiento de ambos essimilar. El mtodo breadth first empieza en un nodo X con un valor 0, en los nodoscircundantes se introducira el valor 1 y con los circundantes del 1 el valor 2, as hastacompletar todos los nodos, donde cada nodo se correspondera con una casilla del laberinto.

    Paso 1 Paso 2

    Paso 3 Paso 4

    Paso 5 Paso 6

    Paso 7 Paso 8

    Paso 9

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    34/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 33

    Entonces el primero que llegue al nodo de destino ser el camino ms corto y lasolucin a nuestro laberinto. Entonces lo nico que resta es volver siguiendo los nmerosinmediatamente inferiores para volver a la casilla de inicio.

    Las imgenes del BREADTH FIRST se han extrado 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 lnea y sumarlo anuestro valor inicial que en este caso es 0, entonces si el valor de la lnea es de 7 el nodosiguiente ser 7 y si la lnea del siguiente nodo al cual nos dirigimos es 3, el valor delsiguiente nodo ser 10.

    La diferencia que posee con respecto al mtodo de Dijkstra es que permite valoresnegativos en los arcos del grafo, estos valores se colocarn en los arcos si el prximo nododista menos del nodo origen.(Floyd-Warshal)

    www.cs.umu.se

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    35/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 34

    ALGORITMOS CON EL LABERINTO DESCONOCIDO

    Seguir la pared

    Un mtodo 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 siguindola. 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 ms corta.Este procedimiento tambin funciona en el laberinto tradicional, en el que la meta est en elinterior, pero partiendo de la consideracin 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 ms

    de estos circuitos cerrados, el mtodo de la mano en la pared con seguridad lo llevar porla ruta ms 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 "conexionesmltiples"; un ejemplo es el siguiente laberinto.

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

    La tcnica de la mano en la pared, que se usa slo para laberintos "simplementeconectados", conduce una sola vez en cada direccin a lo largo de cada sendero, as que esseguro que en algn momento dentro de la ruta, se encontrar la salida.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    36/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 slo quedar la solucin, o las soluciones si hay ms 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 exploracin.

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

    SOLUCION

    CAMINO RECORRIDOSIN SALIDA

    SIN RECORRER

    SOLUCION

    CAMINO RECORRIDOSIN SALIDA

    SIN RECORRER

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    37/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 36

    Algoritmo aleatorio

    Este algoritmo se basa en moverse al azar, es decir, desplazarse en una direccin 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 contraposicin, es unalgoritmo muy simple.

    Algoritmo de la colonia de la hormiga

    La optimizacin 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 ms 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 dems hormigas lo atraviesen, provocando un movimiento colectivo general dondeel camino elegido ser el ms corto.

    En el Hispabot de 2006, VIRIATO (robot desarrollado en la Universidad deSalamanca) que fue el ganador de esta edicin utiliz este algoritmo. En esta ocasin 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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    38/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 todava 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 "Recrations mathmatiques" (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 interseccin se puede tomarcualquier camino y si regresa a una unin en donde ya ha estado, o llega a un callejn, 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 unadireccin. Lo ms importante es que nunca se ha de dirigir a un camino que este marcado

    por ambos lados del pasillo.

    Recursividad

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

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    39/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 38

    Funciones utilizadas:

    Funcin vlida:Se le pasa como datos de entrada la fila y la columna hacia donde se dirige y retorna unvalor booleado indicando si la posicin es correcta.

    Algoritmo:

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

    resultado vale FALSO

    Funcinrecorrer:

    Retorna un valor buleano para as ver si se lleg o no al final, esta es la funcin que utilizala recursividad para moverse por el laberinto, los datos de entrada es la posicin actualdonde se encuentra y dentro de la funcin 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 peroasegurndose antes que la casilla donde se mover ser vlida. La condicin de salida deesta funcin es ver si se lleg a la salida o ver si nos encontramos en un callejn.

    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 izquierdaes un movimiento validoSe llama arecorrer(recursividad) con el valor de la posicin izquierda

    Si no se resolvi el laberinto y la casilla de laderechaes un movimiento valido

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    40/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 39

    Se llama arecorrer(recursividad) con el valor de la posicin izquierdaSi no se resolvi el laberinto y la casilla de laarribaes un movimiento valido

    Se llama arecorrer(recursividad) con el valor de la posicin izquierdaSi no se resolvi el laberinto y la casilla de laabajoes un movimiento valido

    Se llama arecorrer(recursividad) con el valor de la posicin izquierda

    Si no se resolvi el laberinto listo todava vale FALSOQuitar marca de la casilla

    devolver listocon el valor de verdadero o falso

    Funcin main:Encargado de visualizar el laberinto y la solucin y de llamar a la funcinrecorrer

    Algoritmo:

    Se imprime el laberinto sin resolverSe llama a ala funcin recorrer pasndole (x0,y0)Si no se pudo resolver

    Imprimir en pantalla no hay solucinSi existe una solucin

    Se imprime el laberinto resuelto

    La recursividad tiene un potencial problema asociado al diseo 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 interseccin de 4 caminos transformael 4 en un 3(que significara que el robot puede pasar hasta 3 veces por esa casilla), cuando

    se encuentra en un camino bidireccional lo transforma en un 2 (que significara que el robotpuede pasar hasta 2 veces) cuando se encuentra en un callejn al retroceder vadisminuyendo una unidad cada casilla entonces las casillas que tenan 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 haba pasado por una casilla que tenan unvalor de 3 al pasar nuevamente, significar que ya solo puedo pasar 2 veces ms. Es decir,el programa sabe por donde hemos pasado y por donde hay posibilidades de ir.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    41/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 40

    El robot intenta dirigirse hacia el nmero ms alto que lo rodea pero en el caso deque el nmero ms 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 quedireccin 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 establecera otro punto de anclaje, formando una lnea 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 lnea 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    42/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 41

    CMO 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 mtodos de exploracin, optimizacin del caminoa seguir mediante algoritmos, pero todos hemos visto en videos de competiciones que,adems 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 mssorprendente, tomar diagonales. Cmo 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 tambines muy peligrosa. Los competidores expertos suelen estructurar sus diseos 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 ms estrecho que dicha longitud. Como es lgico, cuanto ms grande seanuestro robot, ms precisos deberemos ser, aunque tampoco interesa que el robot seademasiado estrecho, porque podramos tener problemas en curvas a velocidades altas. Por

    ejemplo, si circulamos a una alta velocidad y realizamos un giro sobre una de las ruedaspara 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 mnimaque nos permita recorrer sin problemas el tramo de la diagonal, as como permitir pequeosmovimientos en torno a las posiciones calculadas. No es raro que durante la competicin

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    43/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 reflexin. Lavariacin de distancia al muro es mayor y asimtrica, por lo que no podemos disponer deinformacin simultnea del lado derecho e izquierdo.

    Entonces, cmo 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 mrgenes seguros desde el comienzo del diseo, para despus modificar elcontrol y poder correr ms o menos riesgos.

    En lnea recta

    Recorrer largos tramos rectos puede parecer sencillo, pero estamos seguros de queel dimetro 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 ocurrira 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 continuacin se detallanalgunos de esos errores:

    ERROR FRONTAL

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    44/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 ms sencillos de corregir, ya que esmuy comn utilizar sensores de posicin que nos permiten realizar la calibracin con

    suficiente antelacin. Sin embargo, algunos aspectos como la reflectividad de las distintasparedes, la direccin e intensidad de la luz ambiental o simplemente la acumulacin deotros errores, hace que no haya nada establecido sobre este proceso de recalibracin. Segn[1] utilizar un sensor IR de corto alcance montado en la parte delantera del robot es unmtodo 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 colisin al llegar a una curva. Enalgunos casos, aunque no se haya producido colisin, tendremos un error de offset despusde un giro de 90. En motores paso a paso, un error de ms 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 debera ser corregible. En realidad, grandes

    correcciones en el error frontal son sntoma 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 direccin: 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 supondra reducir o aumentar la velocidad de una de lasruedas, aunque no sera apropiado si el robot ya circula a la mxima velocidad, o si va muylento. En estos casos sera conveniente realizar el giro pero con el robot parado.

    ERROR DE DIRECCIN

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    45/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 44

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

    Un ejemplo de robot que corrige su posicin es Fribotte/Cnossos, ya nombradoanteriormente. Dicho robot conoce su posicin gracias a dos encoders pticos en sus ruedasy, aunque consigue una gran precisin, hay pequeos 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 ms 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 precisin. Los giros de 180son 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, sera convenientecolocar la masa del robot lo ms 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, segn [1] en trminos 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 ms distancia que la otra, y tal vez no sea provechoso en trminos develocidad, adems 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 atencin 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 ms rudimentario mientras que la forma de afrontar la

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    46/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 45

    curvas segn el dibujo de la derecha presenta un control ms depurado, ofreciendo asmejores 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 informacin 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 diseo hace tenerque obviar muchos posibles errores en la informacin enviada por los sensores, lo que hacetrabajar de forma aproximada.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    47/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 colocacin de los sensoresde esta forma es un poco intil, 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 reflexines el mismo, y as poder conseguir tener informacin sobre paredes laterales en celdasadyacentes.

    De la experiencia de los distintos competidores de Micromouse, se llega a laconclusin de que el ngulo ptimo para posicionar los sensores, no es de 45 sino unngulo algo menor.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    48/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 47

    9.Simuladores

    En relacin al apartado de simulacin, tras realizar una bsqueda 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 disear un controlador borroso paranuestro robot. A continuacin 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    49/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 funcin gestiona lainformacin de los sensores, otras dos se encargan del movimiento del robot y de surepresentacin sobre el mapa, y por ltimo se encuentra la funcin principal que llama al

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

    El resultado de la simulacin es el siguiente:

    Pero cada desarrollador de microrrobots, adems 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, probndose sobre l, dos de

    los algoritmos arriba explicados.

    Simulamos los 2 mtodos que nos han parecido los ms destacados pos su sencillezy eficacia:

    El primero es el mtodo de tirar a derechas, este algoritmo es fcil de aplicar, yaque en su algoritmo solo hay que poner una serie de prioridades que seran: primero tirar aderechas, en caso contrario, seguir recto, despus tirar a la izquierda, y por ultimo ir haciaatrs. Con este algoritmo tenemos la certeza de que encontrar la salida.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    50/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 49

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

    ya que al ser nmeros 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 nmero 1 ycolocando un 2 (nmero 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 nmero asignado aesa casilla, en este caso, no se escribir ningn nmero. Luego se buscar el 2, el 3etc.;hasta que en la casilla de salida, que est en blanco, se escriba un nmero. Una vezescrito el nmero en la casilla de salida, el programa empieza a contar hacia atrs hastallegar al nmero 1 que se corresponde con el inicio. Mientras se cuenta, se van marcandolas casillas por las que pasa, formando as el camino solucin.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    51/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 50

    10.

    Consideraciones a tener en cuenta a la hora deldiseo:

    Para comenzar el diseo de nuestro robot de laberinto es necesario plantearse ciertaspreguntas que nos facilitaran el diseo de nuestro robot. Estas preguntas son:

    Cules son las normas del concurso en el que queremos participar? Cunto presupuesto tenemos? Qu material podemos reciclar? Cunto tiempo tenemos? Cul es nuestra meta?

    En nuestro caso las respuestas a estas preguntas no son del todo reales, ya que hemoscreado nuestra propia competicin a la que ajustar el robot. An 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 posicin de partida.4. Se conseguir bonificacin si pinchamos algn globo.

    En nuestro caso el presupuesto no queramos que excediese los 100. Con mucho ahnco hemos conseguido unos motores sacados de unas

    disqueteras de 5.25, tambin disponemos de un micro-controlador quetenemos de una prctica de aos anteriores.

    Tiempo no tenamos el suficiente como para llegar con el robot montado yfuncionando, adems de tener ciertos problemas tcnicos lo cual nos ha hechono poder traer el modelo pensado inicialmente.

    Nuestra meta es poder presentarnos en la siguiente edicin de Alcabot.

    Una vez tenemos una base sobre la que poder trabajar debemos empezar a idear unaalgoritmia, en nuestro caso y debido a la reutilizacin 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, segnsabemos los sensores que necesitamos realizamos una estructura inicial del robot quepermita manejar dichos sensores con un mnimo de garantas, es decir, que los pulsadoresestn colocados de forma estratgica o que los sensores de distancia estn dentro de sumargen de actuacin sin que se les impida en ningn momento su visin.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    52/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 posicin de partida desconocida y conorientacin aleatoria dentro de la casilla de salida, para ello lo que vamos a intentar esconocer nuestra posicin dentro del laberinto, para ello nos iremos moviendo por ellaberinto y almacenando la posicin 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:

    Dnde estamos? Hacia dnde 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 orientacin 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 ms fcil comprenderlo:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    53/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    54/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 53

    Una vez resuelto el problema de la orientacin 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 mximo que podemos movernos hacia un lado u otro son 8 celdas, y debido a

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

    Cada color representa el peor caso dependiendo de la orientacin de la salida ysuponiendo que partimos desde alguna de las esquinas, con ese grfico 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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    55/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 54

    destacar que la celda central siempre es comn a cualquiera de los casos as que nuestrabsqueda siempre partir desde la celda central.

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

    Los mapas conocidos a priori se almacenarn siempre en memoria no voltil, deforma que as siempre estarn disponibles y no ocuparan memoria RAM, es por esto quenecesitaremos nicamente memoria para la matriz de adquisicin de datos, esto implica untamao de memoria mnimo de 289 bytes disponibles en la memoria RAM.

    Inicialmente las casillas tendrn el valor 0xFF para as poder diferenciar las que sehan recorrido y las que no. Cada byte tendr la siguiente estructura, vlida 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 0Posicin de paredes 0-15 Distancia a la salida 0-15

    Tabla de posicin 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 posicinestamos lo nico que falta es encontrar un camino mnimo hasta la salida. Para ellotendremos en cuenta el nmero de casillas hasta la salida, es decir, equivale a usar un mapaen cualquier ciudad.

    La informacin necesaria para salir, la buscaremos en los bytes de las casillas,guiaremos el camino dndole valores a cada casilla, cuanto ms lejos esta la salida mayorser el nmero asignado, de esta forma el robot lo que tiene que hacer es ir hacia la casillaque tenga un valor menor. A continuacin mostramos un ejemplo segn el mapa queestamos usando en esta presentacin.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    56/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 quizs 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 deberamos 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 limitacin 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 deberamos usar variables de tipo int, por lo que necesariamentetendramos 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 direccin del mapaen la que estamos y con que orientacin 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 comn, segn avancemos por el

    laberinto iremos recopilando ms datos lo que nos lleva a descartar mapa por mapa yencontrarnos. Para saber la direccin en la que estamos mirando llevaremos un historial delos ndices de la matriz de las ltimas celdas recorridas sabiendo de donde venimos, siaadimos a esto el nmero de giros dados sabemos hacia donde miramos.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    57/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 56

    12.

    Descripcin 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 continuacin:

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    58/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 57

    El cerebro

    Todo robot que tiene que tomar decisiones de forma autnoma necesita un cerebro,en este caso y por el motivo de aprovechar lo que tenemos hemos decidido usar un68HC08 que reutilizamos de la prctica del laboratorio de SED de Ingeniera deTelecomunicacin. 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 sera til. Podemos destacar las siguientescaractersticas tcnicas 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 caractersticas porque nos resulta necesario el tener un ADCcon una resolucin aceptable y al menos un temporizador.

    Debido a la tarjeta de desarrollo tenemos un pequeo impedimento en el ADC, esto es

    que el margen dinmico viene fijado entre 0 y 5 voltios

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    59/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 58

    El sistema sensorial

    Para saber en que posicin 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 tensinanalgica con un rango de valores de 0.4V a 2.6V.

    Con el fin de obtener una mejor resolucin usaremos un circuito que adapte la sealde manera que amplificaremos de 2.6V a 5V, esto nos da una ganancia de 1.9. En el casode querer tener todava ms resolucin, la solucin 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 vlidas. Este inconveniente se tiene en cuenta ya en el diseo de laestructura.

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

    Los actuadotes

    Obviamente necesitamos algn mecanismo que nos permita movernos por el

    laberinto, para ello hemos credo conveniente utilizar motores paso a paso, ya que de estaforma tenemos un control sobre el nmero de vueltas que llevamos dadas, as como giros

    parciales con una gran exactitud.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    60/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 59

    Para llevar un control sobre la velocidad y el nmero de vueltas de los motoresutilizamos el temporizador del microcontrolador. Concretamente usaremos la interrupcinde overflow, de esta forma cambiando el valor de la referencia de desbordamiento

    podemos crear rampas de aceleracin evitando as la posible prdida de traccin 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 conexin de acondicionamiento es la siguiente:

    Estructura fsica

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

    espacio, evitar esquinas y poder contener las ruedas dentro del permetro de la base,

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    61/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 60

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

    Las ruedas se realizarn con Cds ya que conseguimos un permetro suficientemente

    grande, avanzando mucho con pocas vueltas lo que tambin aumenta la velocidad.

    Los sensores los hemos colocado estratgicamente para poder conocer la posicin delas paredes as como la posicin dentro de la celda. Adems en la parte frontal se hancolocado dos sensores, uno ms elevado que otro, el fin de colocar los sensores con estaconfiguracin 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 esbastante menor que del sensor inferior, esto nos indicara que tenemos un globo delantepor lo que procederamos a pincharlo.

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

    Con esta posicin de los sensores sabemos en cada momento la distancia en cadapared, lo que nos indica si estamos posicionados correctamente dentro de la celda, aspodemos conseguir rectificar pequeos errores en el movimiento

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    62/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 61

    13.

    Catia.

    Para disear 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 fsicamente.

    Introduccin a Catia.

    Catia tiene distintos mdulos, cada uno enfocados a distintos aspectos del diseo. Secomienza con la generacin de figuras 2D(Sketcher), se crean slidos (Part Desing) yfinalmente se ensamblan(Assembly).

    Hay otros muchos ms mdulos que permiten hacer un estudio fsico 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 diseo mecnico (Mecanical Desing).

    Sketcher.

    La base de todo diseo se realiza con esta herramienta. Su funcin es crear unosplanos 2D, que luego podremos dar volumen con la herramienta Part Desing.

    Se pueden hacer todo tipo de formas (rectngulos, crculos, 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.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    63/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 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 revolucin, 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 devolmenes, sin excepcin, a base de figuras simples. Podemos realizar operaciones

    booleanas entre piezas para conseguir nuevos volmenes.

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

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    64/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 63

    En las primeras sesiones de uso de Catia, moverse entre volmenes es complicado, ytener una visin 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 volmenes que son iguales a otros ya creados, para novolver a realizarlos nos ayudamos de herramientas de simetra, que mueven lo que hayrespecto a un eje de simetra (que define el usuario). Con ellos conseguimos piezas igualesy simtricas.

    Assembly Dessing

    Herramienta en donde se unen todas las partes ya creadas. El desarrollo delensamblado debe ser ordenado y estructurado por sub-partes, es decir, no se debe intentarmontar todo el conjunto a la vez.

    Una vez que aadimos al producto nuevo una de las partes ya hechas en el PartDesing hay que ir agregando nuevas partes e irlas colocando. Para ello esta herramienta nos

    presenta funciones para el movimiento en el espacio de las piezas y el asignamiento denuevas constraints.

    Definir constraints en esta parte del ensamblado es muy importante. Aqu se definenlos mrgenes del producto creado. Seguir paralelismos, unir caras, unir ejes poco a poco

    hacen que se cree un producto ordenado y exacto.

    La exactitud es la principal caracterstica que nos brinca Catia, por lo que hay queexplotarla al mximo definiendo toda constraint que veamos necesaria.

    El ensamblado final de los sub-ensamblados hay que realizarlo con especial cuidado,uniendo todas las caras, siguiendo paralelismo(o perpendicularidades), siguiendo medidas,etc. La precisin es importantsima, una pieza mal colocada o mal diseada nos puedechocar con otro volumen. Catia da la posibilidad de ver todas las intersecciones de

    piezas, con lo que podremos arreglar posibles fallos.

    Diseo de nuestro robot.

    Para el diseo de nuestro robot comenzamos con un boceto a mano alzada en unahoja. La base de las ideas estaba ya realizada, faltaba manejar el Catia.

    Primero se realizaron las primeras piezas simples (la base, los cds, los GP2D12).En estos primeros pasos en el Sketcher y en el Part Desing se toma un primer contacto conlas herramientas, que hace que se coja soltura poco a poco.En cada una de las partes creadas se ha utilizado una forma de dar volumen. No hay una

    sola forma de crear una pieza. Por ejemplo, un cilindro puede hacerse como un rectngulo

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    65/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 64

    girado 360 sobre uno de sus lados o como una circunferencia a la que se le da volumenvertical (u horizontal). De ah la gran posibilidad de diseos de piezas y figuras.

    El ensamblado es una parte extremadamente compleja y debe realizarse paso a paso.

    Una vez que se tenan todas las piezas simples, se hace un pre-ensamblado de piezas. Porejemplo, los cds se unen o se pone el soporte al motor. A su vez estas piezas compuestas sevuelven a ensamblar con otras. El ensamblado recursivo nos hace tener un orden deensamblado, que hace que el conjunto est ordenado.

    El ensamblado final requiere que todos los sub-ensamblados esten correctos. Si esas, es muy sencillo, ya que todas las medidas han sido previstas y encaja todo. En cuantouna medida es errnea, el montaje puede dar fallos como la superposicin de piezas.

    Los posibles errores se pueden corregir directamente en las piezas simples, y alguardarlas se actualizar directamente en los conjuntos de piezas.

    Esta estructuracin permite simplificar el diseo, que an as es complicado.

    Desarrollo por partes del diseo.

    Base del robot.

    La base sigue una forma elptica, siguiendo los conceptos de estructuras estudiados.

    Con esta forma conseguimos hacer los giros con mayor facilidad y evitar atascos con lasparedes. Las ruedas se incluyen dentro del permetro de la elipse base, para que no choquendirectamente contra la pared en caso de haber perdido la referencia. A continuacin semuestran sus planos:

    GP2D12.

    Los sensores es una parte fundamental del robot. Se han diseado en catia siguiendolas medidas de la hoja de caractersticas.

  • 7/25/2019 Robots_laberinto_grupo_E.pdf

    66/86

    Introduccin al Diseo de Microrrobots Mviles Trabajos en Grupo

    Pgina 65

    PlacaEs el cerebro de nuestro robot. Se ha diseado siguiendo las medidas de la placa

    original. Con ello conseguimos saber perfectamente donde puede ser ensamblada y suposicin ideal dentro del conjunto del robot.

    Motor paso a paso.Es el elemento que hace que se mue