30

Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Embed Size (px)

Citation preview

Page 1: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada
Page 2: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

2

Page 3: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Índice general

1. Introducción 5

2. Estado del Arte 7

2.1. Los Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2. Definición de Robots . . . . . . . . . . . . . . . . . . . . . 82.1.3. Historia de los robots . . . . . . . . . . . . . . . . . . . . 82.1.4. Características de los robots . . . . . . . . . . . . . . . . . 92.1.5. Autonomía de los robots . . . . . . . . . . . . . . . . . . . 10

2.2. Vehículos Autónomos . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. Fundamentos Teóricos 13

3.1. Mapeo y Localización Simultáneo . . . . . . . . . . . . . . . . . . 133.1.1. SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2. Redes Bayesianas . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1. Definición de red bayesiana . . . . . . . . . . . . . . . . . 143.2.2. Tipos de Redes . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3. Redes Markovianas . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1. Definición de redes markovianas . . . . . . . . . . . . . . 15

4. Desarrollo 17

4.1. Planificación y Herramientas Utilizadas . . . . . . . . . . . . . . 174.1.1. Planificación del Proyecto . . . . . . . . . . . . . . . . . . 17

4.2. Herramientas Utilizadas . . . . . . . . . . . . . . . . . . . . . . . 184.2.1. Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2.2. Webots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3. Mano Derecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.3.1. Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.3.2. Webots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5. Conclusiones 27

3

Page 4: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

4 ÍNDICE GENERAL

Page 5: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Capítulo 1

Introducción

El presente trabajo tiene como objetivo principal el desarrollo e imple-mentación de la localización de un robot móvil y del mapeado simultáneo desu entorno cerrado, basándose en la información recibida por un sistema com-puesto por odometría y múltiples sensores. A su vez se estudian los problemasfundamentales de la navegación de robots.

Para explicar la importancia de la robótica en la actualidad primero tenemosque comenzar dando conceptos como ¿Qué es la robótica? El término de robot esdefinido como una máquina que realiza una tarea específica, también conocidocomo un manipulador reprogramable. Entonces la robótica es la rama que seencarga de diseñar, construir y hasta operar toda clase de Robots, algo queparece una verdadera solución a los problemas de la vida cotidiana, aunqueactualmente tenemos aplicaciones mucho más sencillas y quizá no nos damoscuenta. En nuestra vida cotidiana estamos acostumbrados a utilizar toda clasede dispositivos electrónicos que fundamentalmente tienen la complicada misiónde solucionarnos o simplificarnos una gran cantidad de dificultades o problemasque tenemos, convirtiéndose entonces en una herramienta de trabajo más yen muchas ocasiones hasta nos permite reducir el tiempo de trabajo o bienincrementar notoriamente la productividad y rendimiento.

Actualmente se investigan técnicas y herramientas para realizar mapas conrobots móviles, su función principal permite mapear en todo tipo de entornos,incluso en los que el ser humano no puede acceder, tales como cuevas, zonasradioactivas, etc. Las técnicas que se utilizan para la realización de mapeo, sontécnicas de algoritmos probabilísticos. La localización de los robots no es untarea sencilla ya que implica la construcción de un robot con todos los elemen-tos sensoriales y actuadores necesarios para captar y navegar el entorno en elque se encuentre. Por otro lado, los algoritmos que determinan tanto su nave-gación como la detección del entorno no son muy sencillos de entender. En basea lo discutido anteriormente hace la pregunta ¿Es posible que un robot móvilpueda ser colocado en un entorno desconocido y más aún pueda construir in-crementalmente un mapa coherente de este ambiente al mismo tiempo que ladeterminación de su localización dentro de este mapa? Una solución al proble-

5

Page 6: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

6 CAPÍTULO 1. INTRODUCCIÓN

ma es hacer un robot verdaderamente autónomo ya que estas máquinas seráncapaces de operar al lado de humanos, compartiendo la capacidad de respondera su entorno, y con una necesidad similar de comportamiento.

Para poder lograr el objetivo se utilizó como herramienta la plataforma We-bots, en [20] Webots es un entorno de desarrollo utilizado para modelar, pro-gramar y simular robots móviles. En esta herramienta se tiene configuracionesde varios robots, entre ellos el e-puck que se utilizó, simulado en un laberin-to de LEGO, que se usó dentro del concurso Rats Life[15]. Para esto se tuvoen cuenta el análisis y la implementación de dicho código, donde se manipulode tal forma que el robot pudiera avanzar y girar, para asi poder recorrer ellaberinto siguiendo la regla de la mano derecha. Retomando la plataforma deWebots mencionado anteriormente se manipuló el robot móvil conocido como ele-puck en Webots, incluye soporte para los motores de las ruedas, los sensoresinfrarrojos de proximidad y de luz, el acelerómetro, la cámara, los 8 leds de losalrededores, el cuerpo y los Leds frontales, el modelo también proporciona dosranuras que se pueden utilizar para ampliar la funcionalidad y para equipar elrobot con dispositivos adicionales. Para implementar las distintas funciones seutilizo la plataforma eclipse tomando de referencia una matriz como simuladorde laberinto de Webots. Una vez teniendo las funciones en eclipse se hicieronlas implementaciones pero ahora a la plataforma de Webots con la diferenciade que se contaba con sensores del propio robot, para esto se tomo en cuentala pose con una rotación del robots a 90 grados conforme a la posición x, y.Posteriormente se creó un método que medía la distancia del robot con respectoa la pared, creando una función que dependía de los valores que arrojaban cadasensor. Después se pretendió realizar una función para hacer el mapeo en su en-torno ocupando las redes Markovianas conjuntamente con las funciones creadasanteriormente, la regla de la mano derecha que facilito la localización del robotpara poder llevar a acabo el mapeo.

Este trabajo está conformado por 4 capítulos, el primer capítulo fue dar aconocer una breve introducción sobre el trabajo, el segundo capítulo que llevapor nombre el estado del arte fue a dar a conocer los antecedentes e historia delos robots, en el tercer capítulo son los fundamentos teóricos y posteriormenteel cuarto capítulo que es el desarrollo del proyecto.

Page 7: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Capítulo 2

Estado del Arte

2.1. Los Robots2.1.1. Antecedentes

Desde el inicio de los tiempos, el ser humano ha tratado de construir entesartificiales capaces de realizar todo tipo de tareas: desde trabajos mecánicoscomo animales de carga hasta complejos cálculos matemáticos, entre otros. Enel siglo I a.C., Herón de Alejandría inventó muchos aparatos mecánicos que semovían gracias a complicados ingenios hidráulicos y rudimentarias máquinas devapor: portones que se abrían sólo en horarios predeterminados, estatuas ani-madas que representaban animales, hombres y dioses. Durante la Edad Media seprodujo el crecimiento de la tecnología mecánica: engranajes, ruedas dentadasque se fueron perfeccionando para construir molinos de viento y ruedas hidráuli-cas utilizados en la moledura del grano. También el arte musical dio un granimpulso al desarrollo de la tecnología mecánica: los primeros grandes órganoseran obras maestras de ingeniera.

De acuerdo a [16] fue publicado un tratado sobre la tecnología de los autó-matas, y en ese mismo año diferentes ingenieros inventaron muñecas capacesde moverse en todas las direcciones y de llevar una taza de té al amo. Pero losmás famosos autómatas de la época fueron, ciertamente, el escribano automáti-co de Pierre Jacquet-Droz, de 1774, y el pato mecánico construido en 1738 porJacques de Vaucanson, que también inventó varios músicos de tamaño humano.

El pato de Vaucanson estaba hecho de cobre y era capaz de nadar, aletear,beber agua y comer grano extendiendo el cuello y moviendo la papada.

Naturalmente, todos estos seres artificiales nada tenían que ver con la in-teligencia: eran simples marionetas relativamente sofisticadas. Más tarde comen-zaron a utilizarse fuelles1, ruedas dentadas no sólo para imitar partes del cuer-po humano y de otros animales, sino para perseguir otro antiguo sueño: el demecanizar y automatizar el cálculo matemático y el razonamiento lógico; hacer

1“fuelle es un dispositivo mecánico cuya función es la de contener aire y lanzarlo a cierta

presión”

7

Page 8: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

8 CAPÍTULO 2. ESTADO DEL ARTE

máquinas que no sólo se moviesen imitando al hombre sino que, como el hombre,supiesen calcular, aprender y razonar. En [16] menciona que la revolución in-dustrial impulsó el desarrollo de este tipo de agentes mecánicos, entre los cualesdestacaron el torno motorizado de Babbitt (1892) y el mecanismo programablepara pintar con spray de Pollard y Roselund (1939).

2.1.2. Definición de RobotsLa palabra robot se empleó por primera vez en 1920 en una obra de teatro de

nombre R. U. R. (Robots Universales Rossum) escrita por el dramaturgo checoKarel Capek (la palabra checa “Robótica” significa esclavo, trabajador forzado,y como curiosidad, es la palabra de origen checo más difundida en el mundo).

Entre los escritores de ciencia muy importante, Isaac Asimov contribuyó convarias narraciones relativas a robots. A él se le atribuye el acuñamiento del tér-mino robótica. La imagen de robot que aparece en su obra es el de una máquinabien diseñada y con una seguridad garantizada que actúa de acuerdo con tresprincipios, “Las Tres Leyes de la Robótica”[1], que se enuncian a continuación:

Primera Ley: Un robot no debe dañar a un ser humano.

Segunda Ley: Un robot debe obedecer las órdenes que le son dadas por unser humano, excepto si estas órdenes entran en conflicto con la PrimeraLey.

Tercera Ley: Un robot debe proteger su propia existencia, hasta dondeesta protección no entre en conflicto con la Primera o la Segunda Ley.

Actualmente, se define un robot como un “manipulador reprogramable y mul-tifuncional diseñado para trasladar materiales, piezas, herramientas o aparatosa través de una serie de movimientos programados para llevar a cabo una var-iedad de tareas” [16]; son capaces de desenvolverse por sí mismos en entornosdesconocidos.

2.1.3. Historia de los robotsComo ya se ha mencionado anteriormente utilizamos el trabajo de [16] donde

encontramos que otros desarrollos importantes en la historia de la robótica hansido:

1. El primer robot móvil de la historia, pese a sus muy limitadas capaci-dades, fue ELSIE (Electro-Light-Sensitive Internal-External), construidoen Inglaterra en 1953. Se limitaba a seguir una fuente de luz utilizando unsistema mecánico realimentado sin incorporar inteligencia adicional.

2. En 1968 apareció SHACKEY, del SRI (Standford Research Institute),que estaba provisto de una diversidad de sensores así como una cámarade visión y sensores táctiles y podía desplazarse por el suelo. El proceso sellevaba en dos computadores conectados por radio, uno a bordo encargadode controlar los motores y otro remoto para el procesamiento de imágenes.

Page 9: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

2.1. LOS ROBOTS 9

3. En 1971 el “Standford Arm”, un pequeño brazo de robot de accionamientoeléctrico, se desarrolló en la Standford University.

4. En 1978 se introdujo el robot PUMA (Programmable Universal Machinefor Assembly) para tareas de montaje.

2.1.4. Características de los robotsUna de las características que posee un robot son los sensores ya que son el

medio de comunicación donde se toman decisiones y acción. No todos los robotsposeen el mismo sensor, eso varía de acuerdo a sus necesidades. A continuaciónpresentamos algunos de los sensores utilizados para que el robot sea autónomo:

1. Sensores de distancia: Su función es evitar que el robot choque contraalgún objeto. Este tipo de sensores se divide en:

Capacitivos: Sensores capaces de detectar objetos

Fotoeléctricos: Son sensores capaces de detectar objetos midiendo laintensidad de la luz reflejada en ellos.

Ultrasónico: Son sensores capaces de detectar objetos a distancias dehasta 8metros, emite impulsos ultrasónicos.

2. Sensores magnéticos: Su función es medir una variación en el campo mag-nético, con esto se puede saber la dirección del robot respecto al campomagnético terrestre.

3. Sensores de velocidad: Su función es medir la velocidad a la que se mueveun objeto.

Otra de las caracteristicas, es que el robot cuenta a su vez con una cámara.Tambiénexisten en el robot unos contadores mecánicos que proporcionan informaciónmétrica de los desplazamientos que realiza. La Odometria es el estudio de laestimación de la posición de vehículos con ruedas durante la navegación. Porejemplo los robots usan odometría para estimar su pocisión relativa a su local-ización

En particular los robots autónomos deben ser capaces de adquirir informa-ción sobre el entorno. Para ello han de contar con sensores que proporcionenlas medidas y datos necesarios. Aunque no son estrictamente imprescindibles,los robots móviles suelen incorporar sensores propioceptivos que suministranmedidas relativas a su estado: velocidad, incremento de posición y aceleración.

A continuación se muestra uno de los robots que cumple con algunas delas características mencionadas anteriormente, conocido como e-puck que es-tán equipados con 8 sensores de proximidad de infrarrojos colocados como semuestra en la figura:

Page 10: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

10 CAPÍTULO 2. ESTADO DEL ARTE

Más información se puede encontrar en [3]

2.1.5. Autonomía de los robotsComo se hablo un poco en la sección anterior sobre la historia de los robots y

sus caraterísticas, entre ellos se destaca la palabra sensor, ahora en este capítulose hablará sobre el movimiento que genera los robots de forma independienteen sus entornos que los rodean de acuerdo a eso mecanismos que llo ayudan amoverse. En [2] se plantea el estudio de la navegación autónoma que consiste entres preguntas ¿dónde estoy? (localización), ¿hacia dónde quiero ir? (planeaciónde tareas), y ¿cómo puedo llegar allí? (planeación de movimiento). Con respectoa estas tres preguntas, coincidimos con el autor , ya que para localizar a un robotautónomo se tiene que hacer una planeación de tareas con respecto al estudiode mapeo, usando técnicas que nos sirvan para su localización, que se verá másadelante en el capítulo 3. Con respecto al problema para la navegación del robotse definen dichas características de la planeación de movimiento, localización yplaneación de tareas a realizar.

El problema de la localización consiste en conocer en todo momento lascoordenadas del robot respecto a un cierto sistema fijo de referencia. Algunasveces, en el mapeado también hay que resolver el problema de localización, yaque no se conocen las posiciones desde las que el robot ha realizado las lecturas.Existen tres tipos de autonomía:

No Autónomos: Son completamente dirigidos de forma remota por sereshumanos. La inteligencia desarrollada por estos robots consiste en inter-pretar los comandos recibidos de los controladores humanos.

Semi-Autónomos: Pueden navegar por sí mismos pero existe cierto gradode intervención del hombre.En otro caso consiste en proporcionar el mapadel entorno dónde van a desarrollar las tareas.

Autónomos: No requieren la interacción humana para cumplir con sustareas.

Page 11: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

2.2. VEHÍCULOS AUTÓNOMOS 11

2.2. Vehículos AutónomosEs un automóvil autónomo capaz de imitar las capacidades humanas de

manejo y control, capaz de percibir el medio que le rodea.Desde 1939 se empezó a investigar y a obtener logros en materia de ve-

hículos autónomos y que con el paso del tiempo ya se han logrado enormesavances, gracias a investigaciones desarrolladas por empresas de nivel mundialespecializadas en diferentes campos, mediante la aplicación de los más moder-nos avances en materia de computación, cámaras fotográficas, radares, lidares2,que son radares que van sobre los autos tratando de detectar todo lo que seencuentre hacia los lados y con alcances hasta cien metros o más, dependiendodel tipo de instrumento, sistemas de posicionamiento global y otros tipos de in-strumentos que le permiten al vehículo que circula la detección de todo tipo deobstáculos hacia todos lados y siendo capaces de interpretar los muy diferentestipos de dispositivos para el control del tránsito y respetándolos.

La agencía de Investigación del Departamento de la Defensa (DARPA, De-fense Advanced Research Projects Agency) fue creada en 1958 como consecuen-cia tecnológica de la llamada Guerra Fría, y del que surgieron, décadas después,los fundamentos de ARPANET, red que dio origen a Internet. La agencia fuerenombrada en 1972 como la Agencia de Proyectos Avanzados de Investigaciónen Defensa (DARPA en inglés), y a principios de los 70, se enfatizó en programasde energía directa, procesamiento de información y tecnología táctica.

Darpa fue creado para estimular el desarrollo de las tecnologias necesariaspara crear los primeros vehículos terrestres autónomos capaces de completarun curso sustancial en un tiempo limitado que permita inovar y desarrollar lasinterfaces de hardware, software y sensores de la máquina humana que permitana sus robots completar una serie de tareas.

De acuerdo a [6] la primera competición de la DARPA Grand Challenge secelebró el 13 de marzo de 2004 en el desierto de Mojave región de los EstadosUnidos, a lo largo de 150 millas. La segunda competencia comenzó a las 06:40horas del 8 de octubre de 2005. Según [19] un equipo japonés de la empresaSchaft, propiedad de Google, recibió el premio al mejor robot de rescate en unacompetición organizada por la agencia DARPA del Pentágono. El robot Schaftobtuvo 27 de los 32 puntos en juego en esta competencia de robótica, en la quelos equipos debían conseguir que su máquina fuera capaz de retirar escombros,caminar por terreno pedregoso, abrir puertas o subir escaleras.

Cabe mencionar que el desafío más reciente en el 2012 mejor conocido2“Es una tecnología que permite determinar la distancia desde un emisor láser a un objeto

o superficie utilizando un haz láser pulsado.”

Page 12: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

12 CAPÍTULO 2. ESTADO DEL ARTE

DARPA ROBOTICS CHALLENGE, se centró en los robots de mantenimien-to de emergencia autónomas; en la actualidad se requieren de los robots quecumplan con cuatro capacidades para que sean eficases que son: movibilidady destreza para manejarse en los entornos de mal estado de zonas donde se haproducido un desastre; habilidad para manejar y utilizar diversas clases dde her-ramientas; habilidad para ser dirigidos por humanos y por último la autonomíaparcial para tomar decisiones de algunas tareas, basándose en las órdenes deloperador y en los datos de sus sensores.

Page 13: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Capítulo 3

Fundamentos Teóricos

3.1. Mapeo y Localización Simultáneo3.1.1. SLAM

SLAM (por sus siglas en inglés, simultaneous localization and mapping) esuna técnica en la cual un robot autónomo opera en un entorno desconocido, uti-lizando únicamente sus sensores mencionados en el capítulo anterior. De acuerdoa la investigación sobre dicha técnica; hasta hace pocos años, las técnicas SLAMse utilizaban básicamente en el campo de la robótica móvil utilizando principal-mente sensores[5]. A medida, que la investigación fue avanzando, se demostróque el uso de sistemas de visión para realizar localización y mapeado es posi-ble. Incluso, la aplicación de estas técnicas se está aplicando a campos como lalocalización de personas.

Cabe mencionar que una de sus desventajas de esta técnica es que suelenpresentar problemas de aproximación y tiempo de ejecución sobre grandes en-tornos.

Uno de los puntos relevantes sobre la técnica, es que los sensores del robottienen un gran impacto en los algoritmos usados en SLAM. Los primeros análisisse centraron en el uso de sensores de rango como sónares. Sin embargo, hayalgunas dificultades con el uso de este tipo de sensores, como la asociación dedatos es difícil, a su vez son costosos.

Otros de los enfoques principales es que se están centrando en el uso decámaras como sensor principal, ya que generan mucha información y están bi-en adaptadas para su aplicación en sistemas embebidos ya que son ligeros ybaratos. Sin embargo, a diferencia de los sensores de rango, se basan en sensoresangulares, los cuales están principalmente basados en técnicas especiales parala inicialización de características en el sistema, permitiendo el uso de sensoresangulares en SLAM. Conforme fue avanzando las investigaciones se fueron en-contrando algunos problemas al localizar un móvil autónomo en un entorno;para tratar de resolver dicho problema, se han desarrollado diversos métodosprobabilísticos como redes bayesianas, filtros de kalman, Monte Carlo, método

13

Page 14: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

14 CAPÍTULO 3. FUNDAMENTOS TEÓRICOS

de Markov entre otros; en nuestro caso haremos enfásis en las redes markovianasque se hablará en el siguiente capítulo.

3.2. Redes Bayesianas

3.2.1. Definición de red bayesiana

Una red bayesiana es una herramienta matemática que permite, retroalimen-tar la fórmula que calcula la probabilidad de un suceso. Estos métodos no sepueden conocer con total certeza, tanto la posición y orientación del móvil. Elobjetivo de estas redes consiste en estimar el estado del sistema en cada instantede tiempo, primero realizando una predicción de dicho estado y posteriormentetras realizar medidas se corrige y se actualiza dicha predicción. En las siguientessecciones veremos ejemplos de redes bayesianas.

3.2.2. Tipos de Redes

Redes Bayesianas

Son una representación gráfica de dependencias para razonamiento proba-bilístico, en la cual los nodos representan variables aleatorias y los arcos repre-sentan relaciones de dependencia directa entre las variables.

A continuación se muestra un ejemplo encontrado sobre de una red bayesiana[14]que representa cierto conocimiento sobre medicina.

En este caso, los nodos representan enfermedades, síntomas y factores quecausan algunas enfermedades. La variable a la que apunta un arco es dependientede la que está en el origen de éste, por ejemplo la fiebre depende de tifoidea ygripe.

La red también representa las independencias condicionales de una variabledada(s) otra(s) variable(s). Por ejemplo, en la red que se muestra en la imagen;reacciones es condición independiente C; G; F ; D dado tifoidea. (Donde: C escomida, T es tifoidea, G es gripe, R es reacciones, F es fiebre y D es Dolor).Esto se representa de la siguiente manera:

P (R|C, T, G, F, D) = P (R|T )

Page 15: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

3.3. REDES MARKOVIANAS 15

También se utiliza para calcular la probabilidad a “posteriori” , que se puedeexpresar cómo la probabilidad p( z

t

|xt

) de la última medida z

t

, ponderada porla función de probabilidad apriori1 p( x

t

|xt≠1,a

t≠1) de la posición del robot, yla probabilidad a posteriori2, p (x

t≠1):

p(xt

) = –p(zt

|xt

)⁄

xt≠1

p(xt

|xt≠1, a

t≠1)

donde – es un factor de normalización⁄

xt

p(x) = 1 (3.1)

3.3. Redes Markovianas3.3.1. Definición de redes markovianas

En [12] presenta el análisis de Markov, llamado así en honor al matemáti-co ruso que desarrollo el método en 1907, dicho análisis permite encontrar laprobabilidad de que un sistema se encuentre en un estado en particular en unmomento dado, de acuerdo a lo anterior se define como una serie de eventos, enla cual la probabilidad de que ocurra un evento depende del evento anterior.

Existen otras definiciones de las redes markovianas; como en [8] las cadenasde markov son modelos probabilísticos que se usan para predecir el compor-tamiento a corto y largo plazo de determinados sistemas. Otros autores como[9]menciona que son procesos estocásticos como se define en [10]. En [11] diceque es una técnica para estimar la posición sobre el conjunto de posibles posturasdel robot.

1“Apriori:Asigna una probabilidad a un suceso antes de que este ocurra”

2“Posteriori:Conocida como probabilidad condicionada , es la probabilidad de que ocurra

un evento dado que ha ocurrido otro evento.”

Page 16: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

16 CAPÍTULO 3. FUNDAMENTOS TEÓRICOS

Características

Tiene número finitos de estados.

Probabilidades de transición estacionarias.

Se puede localizar desde cualquier posición desconocida en el mapa.

Propiedad de Markov: Dada una secuencia de variables aleaotorias X1,X2...tales que el valor de X

n

es el estado del proceso en el tiempo n. Si la distribuciónde probabilidad condicional de X

n+1 en estados pasados es una función de X

n

por sí sola, entonces:P(X

n+1=X

n+1/X

n

=X

n

,Xn≠1=X

n≠1,...X2=X2,X1=X1)= P(Xn+1=X

n+1/X

n

=X

n

),donde X

i

es el estado de proceso en el instante i. A esta propiedad se le llamapropiedad de Markov.

Los módelos de Markov se han aplicado en la resolución de problemas denavegación en la robótica, como por ejemplo los trabajos de Simmons y Koenig(1995),Cassandra (1996) [13]. En la siguiente sección se hablará un poco sobre otrosmétodos probabilísticos.

Filtro de Kalman

El filtro de Kalman es una herramienta utilizada en la estimación estocásticaa partir de mediciones ruidosas de sensores. Existen tres tipos de filtros dekalman.

El filtro de Kalman continuo: Aplicable a sistemas continuos lineales. Seusa para estimar el estado de sistemas dinámicos lineales, y se estima porel siguiente modelo: X

k

= AX

k≠1+ BU

k≠1+W

k≠1

El filtro de Kalman discreto:Aplicable a sistemas discretos lineales

El filtro extendido de Kalman: Aplicable a sistemas discretos no lineales

Filtro Extendido de Kalman (EKF)

Sirve para estimar la posición del robot a partir de las ecuaciones de laodometría y de las medidas de los sensores. Para modelar dicho filtro se usa lasiguiente ecuación: Z

k

=h( X

k

,Vk

)Donde Z

k

son las medidas de los ángulos a las balizas en el instante k, h esla función de la ecuación anterior, x

k

la posición del robot en el instante k y V

k

el error en las medidas para el instante k.A continuación en el siguiente capitulo hablaremos sobre las herramientas

utilizadas en e desarrollo del proyecto.

Page 17: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Capítulo 4

Desarrollo

4.1. Planificación y Herramientas Utilizadas

En este capítulo se muestra la planificación seguida para poder realizar elproyecto, también se hace referencia a las herramientas del software utlilizado.

4.1.1. Planificación del Proyecto

En esta sección se explica la planificación del proyecto y las tareas realizadaspara poderlo llevar a cabo. Cabe mencionar que el proyecto se esta realizandoentre dos personas conjuntamente con el asesor. A continuación se hace unabreve explicación de las tareas realizadas.

Inicio. El proyecto se empezó a realizar desde el trimestre 13-O, el primerdia de reunión se dieron las especificaciones del proyecto, con el fin decorregir errores en el trabajo realizado, solucionar los diversos problemasque han ido surgiendo.

Seguimiento. Consistió en realizar posibles movimientos del robot esto conla finalidad de que sea maú fácil localizarlo. Para ello se profundizó en lastécnicas probabilisticas y en el tema de SLAM. Una vez investigado sobreestos temas se procedió a la realización de las subrutinas en Java paramanipular al robot.

Finalización. Esta parte se hizo las mejoras al proyecto que fueron im-plementar con exactitud el calculo de las distancias. En los siguientesapartados se explica un poco sobre lo que se hizo, de igual manera se haceuna breve explicación sobre la herramienta que se utilizo.

17

Page 18: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

18 CAPÍTULO 4. DESARROLLO

4.2. Herramientas Utilizadas4.2.1. Eclipse

Es un entorno de desarrollo integrado, de código abierto. Fue desarrolladooriginalmente por IBM. Actualmente es desarrollado por la Fundación Eclipse,una organización independiente sin ánimo de lucro que fomenta una comunidadde Código abierto y un conjunto de productos complementarios.

4.2.2. WebotsWebots es un entorno de desarrollo utilizado para modelar, programar y

simular robots móviles. Con Webots el usuario puede diseñar configuracionesrobóticos complejos, con uno o varios, similares o diferentes de robots, en unentorno compartido.

Como se define en [7] dicha herramienta es utilizado por más de 1,110 uni-versidades y centros de investigación de todo el mundo. Con Webots, tomarventaja de una tecnología probada que ha sido codesarrollada por el InstitutoFederal Suizo de Tecnología en Lausanne, probado a fondo, bien documentado ymantenido de forma continua durante más de 17 años. Dentro de la herramientase encuentra un proyecto que fue iniciado y es conocido como Ratslife que sedefine a continuación.

Ratslife

El concurso Rats Life (vida de ratas) [15], es un concurso que fue iniciadopor el proyecto ICEA (financiado por el IST Unidad de Sistemas, ComisiónEuropea) para promover los resultados de investigación y estimular un mayorinterés en el control de la robótica de inspiración biológica.

4.3. Mano DerechaEn esta sección se muestra los avances en Java y en webots para la simulación

del robot, en la primera parte se hablará de la implementación en Java, creandofunciones y creando el laberinto; en la segunda parte se muestra el código enwebots con unas pequeñas diferencias en las funciones ya que en la parte dewebots con respecto al robot ya se usan sensores.

4.3.1. JavaHablaremos un poco sobre la implementación de las funciones en Java para

que el e-puck avance de manera que pueda girar a la izquierda, derecha y puedaavanzar. Para entender un poco sobre lo que teniamos que hacer se realizó enJava un laberinto en base a una matriz, en donde los 1 representaran pared ylos 0 representaran pasillos y el laberinto creado se ve en la Figura 4.1

Page 19: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

4.3. MANO DERECHA 19

Figura 4.1: Muestra los valores 0 representa pasillo, 1 representa pared

Así mismo se implementaron las funciones necesarias para poder llevar acabola regla de la mano derecha, en el que consistió crear funciones que fueron:manoderecha(), giraizquierda(), giraderecha(), avanzar().

public boolean manoderecha(int y, int x, int pose)\\{int nuevapose=giraderecha(pose);

if(avanzaR(y,x,nuevapose)){ return false;}else{ return true;}

}

public int giraderecha(int pose){int pose1=(pose+3)%4;return pose1;

}public int giraizquierda(int pose){int pose2=(pose+1)%4;return pose2;

}public boolean avanzaR(int i, int j, int cp) {int y1,y2,x1,x2;x1=j; y1=i;

// Trata de avanzarx2=x1+delta[cp][0];

Page 20: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

20 CAPÍTULO 4. DESARROLLO

y2=y1+delta[cp][1];if (x2>=0 && x2<6 && y2>=0 && y2<6 &&

Integer.valueOf(l[y2][x2].getText())!=1)return true;elsereturn false;}

Al ejecutar el programa el robot avanza de manera que siga la regla de lamano derecha como se ve en la siguiente Figura 4.2.

Figura 4.2: Muestra los resultados del robot al ejecutar el programa, los valoresque se muestras son: 0 representa pasillo, 1 representa pared, 8 representa elrobot

Una vez realizado el programa en Java se empezó a programar en Webotspasando las funciones que se hicieron en eclipse, para esto se analizó el códigoque estaba en el archivo de rat0 de Webots.

4.3.2. WebotsAntes de empezar a programar se analizó el código de Rat0 que se encuentra

en el entorno de Webots, para ver el contenido de este archivo lo primero quese hace es abrir Webots, en este caso se trabajó con dos sistemas operativos quefue de Windows 7 y Ubuntu versión 11.10.

Posteriormente se abre el programa webots como se ve en la figura 4.3La parte donde se esta modificando el código es en el archivo de Rat0 ya que

es ahi donde manipulamos al e-puck. Para esto se implementaron las funcionesque se hicieron en eclipse, cambio un poco en la implementación ya que ahi semaneja el e-puck con 8 sensores distance. Por ejemplo para la mano derecha

Page 21: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

4.3. MANO DERECHA 21

Figura 4.3: Muestra la plataforma de webots

se manipuló el sensor 5 y el sensor 1, en otro caso como el de avanzar se ma-nipularon los sensores 0 y 7 ya que esos sensores de acuerdo al diagrama quese encuentra en la sección 2.4 son los que se manejan en la parte de enfrente.En cada función se agregaron las velocidades izquierda y derecha que fuerondeclaradas al inicio de la clase Rat0 de Java en webots.

double leftSpeed = maxSpeed;double rightSpeed = maxSpeed;

Ahora hablaremos un poco de las funciones en particular, empezemos conla función de avanzar.La función de avanzar() es de tipo boolean, es decir siavanza regresa un verdadero , esto que quiere decir, púes que si cumple con lacondición inicial púes esta avanzando el robot por lo tanto es veradero en otrocaso no avanza es falso ver la siguiente Fig5.

boolean avanzar(){

if(distance[0] <600 && distance[7] < 600){ leftSpeed = maxSpeed;

rightSpeed = maxSpeed;return true;

}else{parar();return false; }

}

En la función izquierda es de tipo boolean, se ocupo un contador dist que seinicializó en la clase como de tipo double dist=0, se comparo si la dist<=40,el valor de 40 se puso ya que como el robot gira a la izquierda dando un girode 90 grados entonces a ese valor el robot gira a 90 grados, posteriormente semanipuló las velocidades en su caso fueron:

Page 22: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

22 CAPÍTULO 4. DESARROLLO

leftSpeed = -maxSpeed;

rightSpeed = maxSpeed

La función de giraizquierda() quedo de la siguiente manera.

boolean giraizquierda(){

pose+= 0.041336745f;pose = (pose > Math.PI*2) ? pose - 2*Math.PI : pose;dist++;if(dist<=40)

{leftSpeed = -maxSpeed;rightSpeed = maxSpeed;

// System.out.println("GIRA IZQUIERDA");return true;

}else{

parar();dist=0;

return false;}

}

La función giraderecha() es de tipo boolean, se ocupo un contador cont quese inicializó en la clase como de tipo double cont=0, se comparo si la cont<=40,el valor de 40 se puso ya que como el robot gira a la derecha dando un girode 90 grados entonces a ese valor el robot gira a 90 grados, posteriormente semanipuló las velocidades en su caso fueron:

leftSpeed = maxSpeed;rightSpeed = -maxSpeed

La función de giraderecha() nos queda:

boolean giraderecha(){pose-=0.039269908f; // 1/2 pi / 40 ; 39pose = (pose < 0) ? 2*Math.PI-pose : pose;

cont++;// System.out.println("contadorderecha"+cont);if(cont<=40) {

leftSpeed = maxSpeed;rightSpeed = -maxSpeed;

// System.out.println("GIRA DERECHA");

Page 23: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

4.3. MANO DERECHA 23

return true; }else{parar();

cont=0;return false;}

}

Posteriormente se creó la función manoderecha() de tipo boolean, el cualverificaba si el robot tenia pared a mano derecha para hacer esto se ocuparonlo sensores 1 y 2 que representaban la mano derecha del robot, en caso de tenerpared en la mano derecha retornaba true de lo contrario retorna false.

boolean manoderecha(){

if(distance[2]<=800 && distance[1]<=50){ return false;}else{return true;}

}

Una vez implementado las funciones anteriores se creó una condición derecorrido para que mandara a llamar las funciones anteriores y poder llevar acabo la regla de la mano derecha:

// reglamanoderechaif(avanzar()==true){ if(manoderecha()==false)

{giraderecha();}}else{ giraizquierda();}

Posteriormente se procedió a implementar una función de distancia, el cualconsistió en retornar la proximidad de cualquier sensor que se quisiera saber conrespecto a la pared, estas aproximaciones fueron tomadas a partir de la siguientegráfica.

Page 24: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

24 CAPÍTULO 4. DESARROLLO

Para esto se hicieron varias aproximaciones a través del método de Lagrange yde Newton para poder crear una función que arrojara los resultados que nece-sitabamos, dado que no se logró la exactitud de los datos, concluimos que lagráfica no era una función continua, el cual implico crear funciones para cadapedazo continuo de la gráfica.

Una vez creada las respectivas funciones se creó una función de validarrango()que consistió en determinar en qué rango se encontraba la distancia que arrogabael sensor para poder evaluarla con respecto la función que le fue asignada.

int validarrango(double dist){

if((dist>3474.0) && (dist<=4095.0))return 1;

else{

if((dist>2211.0) && (dist<=3474.0))return 2;

else{ if((dist>676.0) && (dist<=2211.0))

return 3;else{ if((dist>306.0) && (dist<=676.0))

return 4;else{ if((dist>153.0) && (dist<=306.0))

return 5;else{ if((dist>76.5) && (dist<=153.0))

return 6;else{ if((dist>34.0) && (dist<=76.5))

Page 25: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

4.3. MANO DERECHA 25

return 7;else{ if(dist<=34)

return 8;elsereturn 0;

}}

}}

}}

}}

Una vez teniendo valor que arrojaba la función de validarrango() se evaluabael valor del sensor correspondiente a la función que le fuera asignada:

void distancia(int valor, double dist){

switch(valor){ case 1:

distancia=-8.05*Math.pow(10,-6)*dist-0.032971014;break;

case 2:distancia=-1.53704273*Math.pow(10,-6)*dist + 0.538968644;break;

case 3:distancia=-1.5350*Math.pow(10,5)*dist + 3.746*Math.pow(10,3);break;

case 4:distancia=-3.7*Math.pow(10,4)*dist + 1.4160*Math.pow(10,3);break;

case 5:distancia=-1.53*Math.pow(10,4)*dist + 7.64*Math.pow(10,2);break;

case 6:distancia=-1.307*Math.pow(10,-4)*dist + 0.06;break;

case 7:distancia= -5.4275*Math.pow(10,-18)*Math.pow(dist,5) + 5.8993*Math.pow(10,-14)*Math.pow(dist,4) -2.2828*Math.pow(10,-10)*Math.pow(dist,3)+ 3.7526*Math.pow(10,-7)*Math.pow(dist,2)- 2.5248*Math.pow(10,-4)*dist+ 0.078159;break;

Page 26: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

26 CAPÍTULO 4. DESARROLLO

case 8:distancia=0.07;break;

}System.out.println("distancia("+dist+")="+distancia);

}

En cuanto al mapeo y localización del e-puck se implementó una matrizde 100*100, esto se debió a la medida del laberinto de Webots, para poder ircreando el mapa.

//IMPRIMIR MATRIZ con valores de pared

for(int y=0; y<100;y++){for(int x=0; x<100;x++){switch(matriz[x][y]) {case 0: System.out.print(" ");break;case 2: System.out.print("*");break;}

}System.out.println();}

Page 27: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Capítulo 5

Conclusiones

Nuestros objetivos iniciales fueron desarrollar e implementar la localizaciónde un robot y el mapeo simultáneo de su entorno cerrado. Para alcanzar los obje-tivos nos pusimos a la tarea de investigar como manipular este nuevo programa,perfeccionando el trabajo de la mejor manera posible y a su vez analizar su fun-cionamiento de los bloque de código que están implementados en el programade Webots, conjuntamente con la implementación del mapeo. Cabe mencionarque se nos facilito el proyecto haciendolo primero en la plataforma de eclipsepara después traspasar todo al entorno Webots, con la finalidad de visualizarmás claro los requerimientos que se necesitaban para realizar la regla de la manoderecha, posteriormente fue más fácil implementar el mapeo del robot. En cuan-to al mapeo y localización del e-puck se implementó una matriz de 100*100, estose debió a la medida del laberinto de Webots, para poder ir creando el mapa.

Los objetivos alcanzados fueron: la localización de un robot que se logró através de funciones implementadas mencionadas en el dessarrollo y el mapeosimultáneo de su entorno cerrado no se logró alcanzar al 100 por ciento ya quela implementación del mapeo nos costo trabajo por falta de exactitud de larotación de robot.

Para poder seguir con la investigación creemos conveniente investigar mássobre las rotaciones de dicho robot ya que no es algo trivial manipularlo y asipoder darle seguimiento con exactitud y poder crear el mapa de acuerdo a suentorno; de igual manera se podría seguir con este proyecto a un entorno másreal, es decir, poder crear un minirobot en el cual se le codifique dichas funcionespara su funcionamiento.

27

Page 28: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

28 CAPÍTULO 5. CONCLUSIONES

Page 29: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

Bibliografía

[1] Isaac Asimov. Yo Robot. DEBOLSILLO, 2006.

[2] Bermúdez Giovanni. Artículo: Robots Móviles Teoría,Aplicaciones y Expe-riencias. , 2002, pp 14-15.

[3] Stephan Zibner. E-Puck- a mobile robot. , 2009.

[4] Ramírez Benavides Kryscia . CI-2657 Róbotica. , 2013

[5] Fernández Alcantarilla Pablo . Localización y mapeado simultáneo(SLAM)en tiempo real mediante cámara estéreo movida con la mano. , 2008, pag 8.

[6] Wikipedia. http://translate.googleusercontent.com. , 2013.

[7] Página web. [email protected] , 2008.

[8] Gonzalez López Beatriz. Introducción a las cadenas de Markov de primerorden , 2013.

[9] Rodriguez Teodoro. Introducción a los métodos estadísticos, numéricos yprobabílisticos. , 2002, pág 8.

[10] es.wikipedia.org/wiki/Procesoestocástico , 2013.

[11] Fox,Burgard and Thrun. Markov Localization for Mobile Robots in Dy-namic Environments , published 199.

[12] Espejo Rodarte Raúl. Cadena de Markov , última consulta en 2014

[13] Cuaya Germán. Procesos de Decisión de Markov aplicados a la locomociónde robots. , INAOE 2007, pág 49.

[14] Sucar Enrique Luis. Chapter 1, Redes Bayesianas , INAOE

[15] Ratslife http://catarina.udlap.mx/ , 2014

[16] Sanchez Arcos José Alberto. Sistema de navegación y modelado del entornopara un robot móvil. , 2009, pp 5-8, pp 12.

[17] Wikipedia http://es.wikipedia.org/wiki/Robocup , 2014

29

Page 30: Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16755.pdf · Estado del Arte 7 2.1. Los Robots ... creando una función que dependía de los valores que arrojaban cada

30 BIBLIOGRAFÍA

[18] Francisco Martin, Pablo Barrera

[19] Wikipedia http://www.emol.com/noticias/tecnologia/2013/12/24/636419/equipo-japones-gana-premio-de-la-agencia-darpa-al-mejor-robot-de-rescate.html ,2013

[20] Oliver Michel, Cibertbotics’ Robot Cirriculum PDF, 18 Enero 2010 , pag21