• No se han encontrado resultados

Algoritmos para exploración de ambientes desconocidos utilizando múltiples robotsAlgorithms for exploring unknown environments using multiple robots

N/A
N/A
Protected

Academic year: 2020

Share "Algoritmos para exploración de ambientes desconocidos utilizando múltiples robotsAlgorithms for exploring unknown environments using multiple robots"

Copied!
63
0
0

Texto completo

(1)

Superior de Ensenada, Baja California

MR

Maestr´ıa en Ciencias

en Ciencias de la Computaci ´

on

Algoritmos para exploraci ´

on de ambientes desconocidos

utilizando m ´

ultiples robots.

Tesis

para cubrir parcialmente los requisitos necesarios para obtener el grado de

Maestro en Ciencias

Presenta:

Luis Enrique Canul Arceo

Ensenada, Baja California, M ´exico

(2)

Luis Enrique Canul Arceo

y aprobada por el siguiente Comit ´e

Dr. Edgar Leonel Ch ´avez Gonz ´alez

Codirector del Comit ´e

Dr. Ubaldo Ruiz L ´opez

Codirector del Comit ´e

Dra. Mar´ıa del Carmen Maya S ´anchez

Dr. Carlos Alberto Brizuela Rodr´ıguez

Dr. Jes ´us Favela Vara

Coordinador del Programa de Posgrado en Ciencias de la Computaci ´on

Dra. Rufina Hern ´andez Mart´ınez

Directora de Estudios de Posgrado

Luis Enrique Canul Arceo © 2017

(3)

Resumen de la tesis que presenta Luis Enrique Canul Arceo como requisito parcial para la obtenci ´on del grado de Maestro en Ciencias en Ciencias de la Computaci ´on

Algoritmos para exploraci ´on de ambientes desconocidos utilizando m ´ultiples robots.

Resumen aprobado por:

Dr. Edgar Leonel Ch ´avez Gonz ´alez

Codirector de Tesis

Dr. Ubaldo Ruiz L ´opez

Codirector de Tesis

Desde hace d ´ecadas, existe un gran inter ´es por robots que asistan a la humanidad en tareas de la vida diaria. Para lograrlo deben ser capaces de navegar a trav ´es de ambientes de forma aut ´onoma. Existen gran variedad de aplicaciones donde se requiere la ayuda de robots para rea-lizar tareas de exploraci ´on, inspecci ´on y rescate. El resultado de la exploraci ´on tiene distintas aplicaciones, entre las que se encuentran la b ´usqueda de un objeto est ´atico y la verificaci ´on de riesgos en ambientes compuesto por m ´ultiples elementos. La exploraci ´on de ambientes es un te-ma que se ha estudiado durante muchos a ˜nos. Existen gran variedad de trabajos que abordan la exploraci ´on de ambientes desconocidos, sin embargo, la mayor´ıa utilizan sensores sofisticados y abordan el problema suponiendo restricciones que muchas veces son dif´ıciles de satisfacer en ambientes reales. La mayor parte de las soluciones propuestas no ofrecen garant´ıas te ´oricas de que la tarea ser ´a completada adecuadamente. El objetivo de este trabajo es garantizar la explo-raci ´on completa del ambiente bajo ciertas restricciones. En esta tesis suponemos que los robots tienen limitantes de comunicaci ´on, que s ´olo poseen sensores que detectan discontinuidades y no son capaces de obtener su posici ´on dentro del ambiente. Se proponen algoritmos para la explora-ci ´on de ambientes m ´ultiplemente conectados, de manera distribuida que garantizan la exploraexplora-ci ´on completa del ambiente. Los resultados experimentales muestran que al realizar la exploraci ´on en modo cooperativo y aplicando los algoritmos propuestos se obtienen recorridos menores que al realizar la tarea de forma individual.

(4)

Abstract of the thesis presented byLuis Enrique Canul Arceo as a partial requirement to obtain the Master of Science degree in Master in Computer Science in Computer science.

Algorithms for exploring unknown environments using multiple robots.

Abstract approved by:

Dr. Edgar Leonel Ch ´avez Gonz ´alez

Thesis Co-Director

Dr. Ubaldo Ruiz L ´opez

Thesis Co-Director

For decades, there has been a lot of interest for robots capable of assisting humans in every-day tasks. To achieve this the robots must be able to navigate through environments autonomously. There are many applications where the help of robots is required to perform exploration tasks, ins-pection and rescue. The result of the exploration has several applications, among which are the search for a static object and the verification of risks in environments composed by multiple ele-ments. The exploration of environments is a problem that has been studied for many years. There many works that address the exploration of unknown environments, however, most of them make use of sophisticated sensors and approach the problem by assuming constraints that are often difficult to satisfy in real environments. Most of the proposed solutions do not offer theoretical gua-rantees that the task will be completed properly. The goal of this work is to guarantee the complete exploration of the environment under certain restrictions. In this work we assume that robots have communication constraints, only have sensors that detect discontinuities and are not able to ob-tain their position within the environment. Algorithms are proposed for the exploration of multiple connected environments in a distributed way using several robots that guarantee the complete exploration of the environment. The experimental results show that performing the exploration in cooperative mode applying the proposed algorithms results in shorter paths than when the task is performed individually.

(5)

Dedicatoria

A mis padres.

A mis hermanos.

(6)

Agradecimientos

A Dios, por permitirme vida, salud y fortaleza ante las adversidades.

A mis padres por apoyarme incondicionalmente en las buenas y en las malas, por ser el motor

de mi vida, por sus consejos, la educaci ´on y el car ´acter que forjaron en m´ı, cada ´exito es por ellos

y para ellos.

A mis asesores, Dr. Edgar Leonel Ch ´avez Gonz ´alez y Dr. Ubaldo Ruiz L ´opez, por la

oportu-nidad que me dieron de trabajar bajo sus asesor´ıas y por haberme guiado para la culminaci ´on

de esta tesis, por el apoyo, la dedicaci ´on y la paciencia demostrada a lo largo del proceso de

realizaci ´on de este trabajo.

A los miembros del comit ´e, Dra. Mar´ıa del Carmen Maya S ´anchez y Dr. Carlos Alberto Brizuela

Rodr´ıguez, por el tiempo dedicado en las correcciones y sugerencias para mejorar el trabajo.

A mis compa ˜neros de piso Manuel Combarro y Laura Aneiros, por hacerme sentir parte de su

familia, por compartir parte de su cultura conmigo, por aconsejarme y estar siempre al pendiente

de m´ı.

A mis amigos, compa ˜neros y gente que conoc´ı durante mi estancia en Ensenada, dentro y

fuera del CICESE, por los consejos brindados, la motivaci ´on, la confianza depositada en m´ı y por

haber hecho mi estad´ıa m ´as amena.

Al Centro de Investigaci ´on Cient´ıfica y de Educaci ´on Superior de Ensenada, por haberme

admitido y otorgarme la infraestructura necesaria para llevar a cabo este trabajo de tesis.

Al Consejo Nacional de Ciencia y Tecnolog´ıa (CONACyT) por brindarme el apoyo econ ´omico

(7)

Tabla de contenido

P ´agina

Resumen en espa ˜nol . . . ii

Resumen en ingl ´es . . . iii

Dedicatoria . . . iv

Agradecimientos . . . v

Lista de figuras . . . viii

Lista de tablas . . . ix

1. Introducci ´on . . . . 1

1.1 Antecedentes . . . 1

1.2 Planteamiento del problema . . . 2

1.3 Propuesta de soluci ´on . . . 3

1.4 Justificaci ´on . . . 4

1.5 Objetivos . . . 5

1.5.1 Objetivo general . . . 5

1.5.2 Objetivos espec´ıficos . . . 5

1.6 Organizaci ´on de la tesis . . . 5

2. Marco Te ´orico . . . . 7

2.1 Visibilidad computacional . . . 7

2.1.1 Curva poligonal cerrada . . . 7

2.1.2 Pol´ıgono . . . 7

2.1.3 Visibilidad . . . 7

2.1.4 Pol´ıgono con agujeros . . . 8

2.1.5 Arreglos de segmento de l´ınea . . . 8

2.1.6 Conjunto convexo . . . 8

2.1.7 N ´ucleo de un conjunto . . . 8

2.1.8 Pol´ıgono de visibilidad . . . 9

2.1.9 Visibilidad d ´ebil y fuerte . . . 9

2.1.10 Triangulaci ´on . . . 9

2.1.11 Grafo de visibilidad . . . 9

2.1.12 L´ınea bitangente . . . 10

2.2 Algoritmos insectos . . . 10

2.3 Robot m ´ovil . . . 11

2.3.1 Holon ´omicos . . . 12

2.3.2 No-holon ´omicos . . . 12

2.4 Cuadr´ıcula de ocupaci ´on . . . 12

3. Estado del arte . . . . 14

3.1 Problemas Relacionados . . . 14

3.1.1 Problema de exploraci ´on . . . 14

3.1.2 Problema de cobertura . . . 15

3.1.3 B ´usqueda de objetos . . . 15

3.1.4 Problemarendezvous . . . 16

3.2 Precursores del trabajo . . . 16

3.2.1 Boundary place graph . . . 16

3.2.2 Gap navigation Tree . . . 17

3.2.3 Exploraci ´on con m ´ultiples robots . . . 18

(8)

4. Algoritmos de exploraci ´on propuestos . . . . 20

4.1 Algoritmos para obst ´aculos distinguibles . . . 20

4.1.1 Sinbacktracking . . . 20

4.1.2 Conbacktracking . . . 23

4.1.3 Fusi ´on de las estrategias. . . 26

4.2 Algoritmos para obst ´aculos no distinguibles . . . 26

4.3 Completitud de las estrategias de exploraci ´on . . . 31

5. Experimentos y resultados . . . . 34

5.1 Dise ˜no de los experimentos . . . 35

5.2 Ejecuci ´on de los algoritmos . . . 35

5.3 Resultados . . . 37

6. Concluisiones y trabajo futuro . . . . 49

6.1 Resumen . . . 49

6.2 Conclusiones . . . 49

6.3 Trabajo futuro . . . 50

(9)

Lista de figuras

Figura P ´agina

1 Tipos de ambientes. . . 2

2 Clasificaci ´on de obst ´aculos. Tomado de (Tovaret al.,2007). . . 3

3 Ejemplo de visibilidad en un pol´ıgono. Tomado de (Asanoet al., 2000). . . 8

4 Grafo de visibilidad. . . 10

5 Bitangentes en un conjunto de pol´ıgonos. . . 10

6 Clasificaci ´on de los robots de acuerdo a su aplicaci ´on y a las capacidades de des-plazamiento. Tomado de (Chac ´on-Rivas y Garita, 2013). . . 12

7 Ejemplo de robot holon ´omico. Tomado de (Warburton, 2017). . . 13

8 Ejemplo de una cuadr´ıcula de ocupaci ´on. Tomado de (Duanet al., 2016). . . 13

9 Ambiente de ejemplo. . . 21

10 Ejemplo de aplicar la estrategia de exploraci ´on al ambiente de la Figura 9. . . 24

11 Bitangentes en un ambiente con obst ´aculos no distinguibles. . . 26

12 Ejemplo de dos de las bitangentes generadas por dos tri ´angulos. . . 31

13 Proceso de agregar nuevos tri ´angulos de la proposici ´on anterior. (b) al agregar el tri ´angulo Bk, las bitangentes existentes no se ven modificadas. (c) en cambio al agregarBluna bitangente desaparece, dando lugar a una nueva. . . 32

14 Ambientes de prueba. . . 34

15 Ejemplos de la ejecuci ´on de la exploraci ´on. . . 36

16 Promedio de distancias, utilizando 9 robots. . . 39

17 Promedio de visitas, utilizando 9 robots. . . 40

18 Promedio de distancias, utilizando 25 robots. . . 41

19 Promedio de visitas, utilizando 25 robots. . . 42

20 Promedio de distancias, utilizando 144 robots. . . 43

21 Promedio de visitas, utilizando 144 robots. . . 44

22 Comparativa de las distintas estrategias en obst ´aculos distinguibles . . . 45

23 Exploraci ´on en ambientes no distinguibles. . . 46

24 Distancias correspondientes al per´ımetro y a las bitangentes . . . 46

(10)

Lista de tablas

Tabla P ´agina

1 Precursores del trabajo. . . 19

2 Informaci ´on almacenada en el ´arbol de la figura 10. . . 24

3 Informaci ´on de los ambientes . . . 35

4 Alturas del ´arbol y promedios de realizar la exploraci ´on sinbacktracking. . . 36

5 Exploraci ´on de los ambientes con un robot. . . 37

(11)

Cap´ıtulo 1.

Introducci ´

on

1.1. Antecedentes

Desde hace a ˜nos, existe un gran inter ´es por robots aut ´onomos capaces de asistir a la

huma-nidad en tareas de la vida diaria. Para lograrlo, estos deben ser capaces de navegar a trav ´es de

ambientes de forma aut ´onoma.

La planificaci ´on de movimiento, se refiere a la habilidad de un robot para calcular sus

movi-mientos con el fin de alcanzar ciertas metas. Esta se relaciona con el problema desplazamiento

del piano (Schwartz y Sharir, 1983) en rob ´otica, la b ´usqueda de una secuencia de operadores

l ´ogicos o de acciones que pasan de un estado inicial a uno final (objetivo) en inteligencia

artifi-cial y el dise ˜no de algoritmos que encuentran trayectorias para sistemas no lineales en teor´ıa de

control.

Actualmente, la planificaci ´on de movimiento se utiliza en una gran variedad de campos. En

rob ´otica, se enfoca en el dise ˜no de algoritmos que generen movimientos ´utiles para procesar

modelos geom ´etricos complicados, dentro de la inteligencia artificial en el dise ˜no de sistemas que

usen modelos de decisi ´on para realizar acciones apropiadas, en teor´ıa de control, para calcular

trayectorias factibles para sistemas con retroalimentaci ´on y optimalidad (Lavalle, 2006).

La planificaci ´on de movimientos tiene como finalidad la generaci ´on de un conjunto de acciones

que permitan a un robot moverse a trav ´es de un entorno conocido o desconocido para alcanzar

uno o m ´as objetivos partiendo de su posici ´on inicial. Una de las tareas m ´as comunes que se

puede resolver mediante la planificaci ´on de movimientos es la navegaci ´on en entornos con una

gran cantidad de obst ´aculos.

Para llevar a cabo la planificaci ´on de movimientos se requiere tener informaci ´on del ambiente

que permita conocer la estructura del mismo. Para recabar esa informaci ´on el robot hace uso de

sensores, los cuales var´ıan en su complejidad as´ı como en la cantidad de informaci ´on que

reca-ban. Generalmente, mayor informaci ´on implica una mejor calidad en la planificaci ´on del

movimien-to, sin embargo, tener mayor informaci ´on viene acompa ˜nada de un mayor costo de procesamiento

y consumo de energ´ıa por parte del robot, por lo tanto, mientras menor sea la cantidad de

informa-ci ´on que se recabe para realizar adecuadamente una tarea tambi ´en ser ´an menores los recursos

(12)

En muchos casos, para conocer la estructura del ambiente se requiere realizar una exploraci ´on

del mismo. La exploraci ´on de ambientes junto con la planificaci ´on de movimientos es un tema que

se ha estudiado durante muchos a ˜nos. Existen gran variedad de trabajos (Duckett y Nehmzow,

1999; Yao y Gupta, 2011; Kimet al., 2013) que abordan la exploraci ´on de ambientes

descono-cidos, sin embargo, la mayor´ıa utilizan sensores sofisticados y abordan el problema suponiendo

gran variedad de restricciones que muchas veces son dif´ıciles de satisfacer en ambientes reales.

Para resolver el problema de exploraci ´on, los ambientes se modelan con pol´ıgonos y se

clasifi-can en dos tipos: los simplemente conectados y los m ´ultiplemente conectados (Tovaret al., 2007).

En la primera clasificaci ´on est ´an los pol´ıgonos c ´oncavos y convexos, que no contienen pol´ıgonos

en su interior. En la segunda clasificaci ´on se encuentran aquellos que en su interior cuentan con

pol´ıgonos ya sean c ´oncavos o convexos, estos pol´ıgonos juegan el papel de obst ´aculos en el

ambiente. Ejemplo de estos ambientes se observan en la Figura 1.

(a)Ambiente simplemente conectado. (b)Ambiente m ´ultiplemente conectado.

Figura 1.Tipos de ambientes.

En los ambientes m ´ultiplemente conectados, se consideran dos casos. En el primero, se

su-pone que los obst ´aculos son distinguibles entre s´ı de acuerdo a alguna caracter´ıstica visual, por

ejemplo, el color. En el segundo caso, los obst ´aculos no se pueden distinguir entre ellos. En la

Figura 2 se muestra un ejemplo de ambos casos.

1.2. Planteamiento del problema

La exploraci ´on de ambientes juega un papel muy importante en la rob ´otica m ´ovil. Para realizar

(13)

(a)Obstaculos distinguibles (b)Obst ´aculos no distinguibles

Figura 2.Clasificaci ´on de obst ´aculos. Tomado de (Tovaret al.,2007).

de robots, los sensores, la comunicaci ´on, entre otros.

En la literatura se reportan soluciones al problema de exploraci ´on, con uno o m ´ultiples robots,

utilizando tecnolog´ıa y mecanismos sofisticados para compartir informaci ´on.

En este trabajo, los ambientes se modelan como pol´ıgonos y los robots como puntos en el

plano. Los robots no tienen acceso a su posici ´on en el ambiente y solo puede detectar

discon-tinuidades en (profundidad) distancia. Estos pueden formar equipos y comunicarse ´unicamente

cuando se encuentren en el mismo lugar. El problema consiste en recorrer el per´ımetro de todos

los obst ´aculos que contenga el ambiente de manera cooperativa y garantizando que la tarea se

realice en un tiempo finito.

El objetivo es desarrollar estrategias que garanticen que la exploraci ´on de ambientes m

´ultiple-mente conectados se realice completa´ultiple-mente.

1.3. Propuesta de soluci ´on

En este trabajo se aborda el problema de exploraci ´on de ambientes desconocidos m

´ultiple-mente conectados utilizando m ´ultiples robots, con limitantes de comunicaci ´on y con sensores que

s ´olo detectan discontinuidades en profundidad.

Se supone que los robots son capaces de detectar discontinuidades, seguirlas, rodear obst

´acu-los, llevar un registro de los obst ´aculos explorados y compartir la informaci ´on con los miembros

(14)

Para solucionar el problema, se proponen estrategias y algoritmos que garantizan la

explo-raci ´on completa del ambiente. Se descarta utilizar mapas exactos del ambiente e informaci ´on

acerca de la posici ´on de los robots dentro del ambiente y se opta por construir una estructura de

´arbol que permita viajar a trav ´es de los obst ´aculos utilizando ´unicamente la informaci ´on de las

discontinuidades en profundidad.

Se proponen tres estrategias para la exploraci ´on de ambientes con obst ´aculos distinguibles y

una para los no distinguibles con el prop ´osito de evaluarlas y compararlas entre si. En la primera,

se crea el ´arbol de la estrategia hasta explorar todos los obst ´aculos. En la segunda, se crea el

´arbol hasta alcanzar un nivel dado, se aplica un backtracking sobre el ´arbol, se intercambia la

informaci ´on, se generan nuevos equipos y continua la exploraci ´on repitiendo el backtracking al

alcanzar m ´ultiplos del nivel seleccionado. La tercer estrategia es una fusi ´on de las primeras dos

realizando s ´olo un regreso durante toda la exploraci ´on. Para obst ´aculos no distinguibles, cada

robot crea su ´arbol y deja marcas en los obst ´aculos disponibles para el resto de los equipos.

Para cada estrategia se forman equipos y se distribuyen los obst ´aculos por explorar. Al

co-mienzo del algoritmo el equipo se posiciona en un obst ´aculo, se selecciona un robot del equipo

que se encarga de rodearlo partiendo de la posici ´on en la que se encuentra, en busca de obst

´acu-los visibles. Al regresar nuevamente a la posici ´on inicial, comparte la informaci ´on con el resto del

equipo con el fin de crear nuevos equipos y asignarles obst ´aculos que no se han explorado.

1.4. Justificaci ´on

En la vida real, existen gran variedad de aplicaciones donde se requiere la ayuda de robots

pa-ra realizar tareas de explopa-raci ´on, por ejemplo, labores de inspecci ´on, explopa-raci ´on y rescate, etc. En

estos casos los ambientes a explorar son modelados en su mayor´ıa con pol´ıgonos m ´ultiplemente

conectados. Existen trabajos que realizan estas tareas con ayuda de sensores sofisticados, sin

embargo, cada sensor posee error en los datos recabados. Generalmente, se supone que

mien-tras mayor sea la cantidad de informaci ´on recabada mejor ser ´a el desempe ˜no de los algoritmos,

sin embargo, al recabar una mayor cantidad de informaci ´on tambi ´en implica un mayor error

acu-mulado en la misma. Por esta raz ´on, se pretende minimizar el sensado para reducir los errores

de lectura. Adem ´as, el tener una menor cantidad de informaci ´on reduce significativamente el

pro-cesamiento en cada robot lo cual se traduce en un menor consumo de energ´ıa extendiendo la

(15)

Otro punto importante es realizar la exploraci ´on del ambiente de modo cooperativo, as´ı se

pueden enviar m ´ultiples robots con el objetivo de que el trabajo se realice r ´apidamente. Esto es

importante para aplicaciones donde el tiempo sea un factor decisivo, por ejemplo, en labores de

rescate.

El resultado de la exploraci ´on tiene variedad de aplicaciones. Entre estas se encuentra la

b ´usqueda de un objeto est ´atico en un ambiente desconocido y la verificaci ´on de riesgo en

am-bientes compuestos por m ´ultiples elementos.

1.5. Objetivos

1.5.1. Objetivo general

Dise ˜nar e implementar algoritmos para la exploraci ´on de ambientes desconocidos m

´ultiple-mente conectados utilizando m ´ultiples robots que minimicen la informaci ´on necesaria para realizar

sus tareas y garanticen la culminaci ´on de las mismas.

1.5.2. Objetivos espec´ıficos

Analizar y estudiar las t ´ecnicas en el estado del arte.

Caracterizar las soluciones existentes.

Dise ˜nar el algoritmo para el problema planteado.

Establecer estrategias para un trabajo cooperativo entre los robots.

Implementar el algoritmo en simulaci ´on.

Realizar la comparativa entre la exploraci ´on con uno y m ´ultiples robots.

Realizar pruebas de las estrategias en ambientes controlados.

1.6. Organizaci ´on de la tesis

La tesis se divide en 6 cap´ıtulos, organizados de la siguiente manera: En el cap´ıtulo 2, se

presentan algunos conceptos importantes para una mejor comprensi ´on del trabajo. En el cap´ıtulo

(16)

4, se describen los algoritmos que se proponen para la soluci ´on al problema planteado.

Poste-riormente se presentan los experimentos y los resultados de aplicar los algoritmos propuestos,

todo esto en el cap´ıtulo 5. Finalmente, en el cap´ıtulo 6, se presentan las conclusiones obtenidas y

(17)

Cap´ıtulo 2.

Marco Te ´

orico

En este cap´ıtulo, se describen conceptos b ´asicos utilizados en el ´area de planeaci ´on de

movi-miento que servir ´an para formalizar el problema de exploraci ´on de ambientes. Se destacan temas

de geometr´ıa computacional tomados principalmente de los autores (Asanoet al., 2000; de Berg

et al., 2008) y algoritmos insecto de (Choset, 2005).

2.1. Visibilidad computacional

Para definir visibilidad se requiere de ciertos conceptos los cuales se mencionan a

continua-ci ´on.

2.1.1. Curva poligonal cerrada

Una curva poligonal cerrada es una curva que se compone de un conjunto de v ´ertices de

al menos tres elementos, V = {v1, v2, . . . , vn}, tal que vi ∈ R2 y por un conjunto de aristas E =

{e1, e2, . . . , en}donde cadaeies un segmento de l´ınea con extremos que van deviavi+1, adem ´as

es necesario que se intersecten pares de aristas, la intersecci ´on de estas debe ser de la forma

ei,ei+1.

2.1.2. Pol´ıgono

Un pol´ıgono es una curva poligonal cerrada junto con su ´area. El v ´ertice de un pol´ıgono es

llamado convexo si el ´angulo interior entre dos v ´ertices incidentes es menor aπ, de otra manera

es llamado c ´oncavo.

2.1.3. Visibilidad

Se define la visibilidad dentro del plano cartesiano, se dice que x y y son visibles en un

pol´ıgono, si el segmento xy no contiene puntos del exterior del pol´ıgono en cuesti ´on, esto se

puede ver en la Figura 3, se aprecia queay eno son visibles. Esta definici ´on permite que todos

los segmentos de visibilidad pasen por alg ´un v ´ertice c ´oncavo o por una arista. Tambi ´en se puede

(18)

e

a

b c

d

Figura 3.Ejemplo de visibilidad en un pol´ıgono. Tomado de (Asanoet al., 2000).

2.1.4. Pol´ıgono con agujeros

El pol´ıgono con agujeros, es aquel al que se le han removido subpol´ıgonos, con este se puede

modelar un cuarto sin luz con varios muebles, al encender una luz, ciertas ´areas no ser ´an parte

del pol´ıgono.

2.1.5. Arreglos de segmento de l´ınea

Un arreglo de segmentos de l´ınea es una colecci ´on de segmentos en el plano. Esta colecci ´on

puede ser el contorno de un pol´ıgono o de un pol´ıgono con agujeros. En estos arreglos tambi ´en

es posible definir la visibilidad. Dos puntosx y y en el plano son visibles si el segmento xy no

intersecta con alg ´un elemento del arreglo.

2.1.6. Conjunto convexo

Un conjunto de puntos (por ejemplo, un pol´ıgono) es llamado convexo si todos los puntos son

visibles, el conjuntoS es convexo si∀x, y∈S xve ay.

2.1.7. N ´ucleo de un conjunto

El n ´ucleo de un conjunto S, K(S) es el conjunto de todos los puntos en S que son visibles

entre si. Formalmente se define como K(S) = {x ∈ S | ∀y ∈ S x ve ay}. Es evidente que un

conjunto convexoStieneK(S) =S. El n ´ucleo de un conjunto tambi ´en se relaciona con conjuntos

(19)

2.1.8. Pol´ıgono de visibilidad

El pol´ıgono de visibilidad de un puntopen un pol´ıgonoP denotado porV(p), es el conjunto de

todos los puntos que son visibles porp. Formalmente, V(p) ={q ∈P |p ve aq}, esta definici ´on

es v ´alida tambi ´en para pol´ıgonos con agujeros y para arreglos de segmentos de l´ınea.

2.1.9. Visibilidad d ´ebil y fuerte

A continuaci ´on, se presentan los conceptos de visibilidad d ´ebil y visibilidad fuerte. Sea S un

subconjunto de un pol´ıgonoP, un puntopes d ´ebilmente visible deS si este es visible para alg ´un

punto del conjunto, al conjunto de todos esos puntos se le conoce como pol´ıgono de visibilidad

d ´ebil deS y se denota comoV(S). De manera similar, se dice que un punto del subconjuntoS es

completamente visible si para todos los puntos este es visible, al conjunto de esos puntos se le

conoce como pol´ıgono de visibilidad completa deS.

2.1.10. Triangulaci ´on

Una diagonal de un pol´ıgono es un segmento de l´ınea, que tiene por extremos pares de v

´erti-ces visibles. Una triangulaci ´on es la divisi ´on en tri ´angulos de un pol´ıgono a partir de sus

diago-nales. Aunque la definici ´on implica que la divisi ´on ´unicamente tome las diagonales, tambi ´en es

posible hacer una triangulaci ´on a partir de cualquier segmento, esto da como resultado puntos

de intersecci ´on, los cuales se conocen como puntos de Steiner, a este tipo de triangulaci ´on se

le conoce como triangulaci ´on con puntos de Steiner. En un pol´ıgono con triangulaci ´on, se habla

de oreja si el tri ´angulo est ´a formado por los v ´ertices consecutivosvi, vi+1yvi+2. Se puede utilizar

un ´arbol para representar la triangulaci ´on, el ´arbol de una triangulaci ´on es el que tiene un nodo

por cada tri ´angulo resultante de la divisi ´on y un arco entre los pares de nodos que comparten la

misma diagonal.

2.1.11. Grafo de visibilidad

Un grafo de visibilidad de un pol´ıgono P, denotado por V G(P) es un grafo que muestra la

relaci ´on de todos los v ´ertices que son visibles enP. Dado un conjunto de obst ´aculos con forma

poligonal en el plano cartesiano se dice que el grafo de visibilidad es aquel grafo en el cual cada

nodo representa un v ´ertice de los pol´ıgonos y las aristas son las conexiones visibles entre tales

(20)

el segmento de recta que conecta los v ´ertices correspondientes en el plano no se intersecta con

ning ´un pol´ıgono. Ejemplo de lo anterior se visualiza en la Figura 4. Un grafo de visibilidad se define

similarmente en pol´ıgonos con agujeros y en arreglos de segmentos de l´ınea.

Figura 4.Grafo de visibilidad.

2.1.12. L´ınea bitangente

Una bitangente es una l´ınea que es tangente a una curva cerrada en dos puntos distintos.

Si tenemos un conjunto de pol´ıgonos en el plano cartesiano, se puede decir que una bitangente

es una tangente que es com ´un a dos v ´ertices. En la Figura 5, se pueden observar todas las

bitangentes que son generadas por el conjunto de pol´ıgonos.

Figura 5.Bitangentes en un conjunto de pol´ıgonos.

2.2. Algoritmos insectos

Los algoritmos insecto son utilizados para la navegaci ´on de robots m ´oviles en ambientes

des-conocidos, cuando se busca minimizar la cantidad de informaci ´on requerida para efectuar la tarea.

(21)

ambiente. Suponen que el objetivo es conocido pero los obst ´aculos desconocidos (Buniyamin

et al., 2014). Los algoritmos insectos poseen caracter´ısticas id ´oneas para nuestro problema, por

lo tanto, se pretende aprovecharlas en el desarrollo de nuestra soluci ´on.

Los algoritmos insecto pueden ser implementados como planificadores simples para la

cons-trucci ´on de rutas de navegaci ´on en ambientes reales con presencia de obst ´aculos. En general

funcionan de la siguiente manera: se supone que se sabe cu ´al es el objetivo y se fija la direcci ´on

en la que el robot debe moverse para rodear los obst ´aculos cuando se presentan colisiones

du-rante la exploraci ´on. El robot se dirige hacia el objetivo, si se detecta alg ´un obst ´aculo dentro de la

trayectoria este lo rodea y guarda el punto que minimiza la distancia hacia el objetivo, una vez que

el obst ´aculo ha sido rodeado completamente, el robot regresa al punto para continuar su camino

hacia el objetivo.

Los algoritmos insecto act ´uan bajo tres hip ´otesis acerca del robot m ´ovil:

i) El robot es un punto.

ii) Maneja localizaci ´on perfecta (no incertidumbre).

iii) Sensores precisos.

El conjunto de algoritmos insecto se compone de los siguientes: Bug1 , Bug2 y DistBug, entre

otros (M ´arquezet al., 2011).

2.3. Robot m ´ovil

Un robot es una entidad virtual o mec ´anica artificial que normalmente es conducido por un

programa de una computadora o por un circuito el ´ectrico, por su apariencia o sus movimientos,

ofrece la sensaci ´on de tener un prop ´osito propio.

Entre las aplicaciones de los robots, se puede observar que en la industria los utilizan como

herramientas que sustituyen a los recursos humanos especialmente los robots manipuladores.

Pero tambi ´en se utilizan robots m ´oviles como veh´ıculos guiados automatizados.

Se clasifican los robots de acuerdo a sus aplicaciones como industriales o de servicio y de

acuerdo a sus capacidades de desplazamiento, entre los que se encuentran los brazos

(22)

algunos ejemplos que caen en dicha clasificaci ´on. A su vez los robots m ´oviles se clasifican en

holon ´omicos y no-holon ´omicos por la manera en la que se mueven.

Robots industriales

Robots de servicio Brazos manipuladores

Robots móviles Soldadura

Pintura

Manipulación

Sellado

Cortado

Ensamble de piezas

Robots quirúrgicos

Asistentes para rehabilitación

Robots teleoperados

Brazos sobre plataformas móviles

Vehículos de guiado automático Robots domésticos

Agricultores

Guías turísticos Mineros

Vigilantes

Exploradores

Figura 6.Clasificaci ´on de los robots de acuerdo a su aplicaci ´on y a las capacidades de desplazamiento. Tomado de (Chac ´on-Rivas y Garita, 2013).

2.3.1. Holon ´omicos

Holon ´omico se refiere a la relaci ´on entre los grados de libertad controlables y el total de grados

de libertad del robot. Si los grados de libertad que son controlables es igual al total de grados de

libertad, entonces se dice que el robot es holon ´omico. Un robot construido sobre ruedas giratorias

o ruedas omnidireccionales es un buen ejemplo de un robot holon ´omico en virtud de que puede

moverse libremente hacia cualquier direcci ´on, n ´otese que los grados de libertad controlables son

iguales a los grados de libertad totales que posee. La Figura 7, en (a) se muestra una rueda

giratoria la cual pude rotar en cualquier direcci ´on y en (b) un ejemplo de un robot hol ´onomico.

2.3.2. No-holon ´omicos

Si los grados de libertad que son controlables es menor al total de los grados de libertad,

entonces se dice que es un robot no-holon ´omico. Un robot similar a un carro cuenta con tres

grados de libertad; la posici ´on en dos ejes y su orientaci ´on. Sin embargo, ´unicamente dos son los

controlables, la aceleraci ´on y los ´angulos de vuelta de las ruedas, lo que provoca que sea dif´ıcil

que el robot gire a cualquier direcci ´on.

2.4. Cuadr´ıcula de ocupaci ´on

En la rob ´otica m ´ovil muchas veces es necesario crear un mapa del ambiente y definir m ´etodos

para localizar el robot dentro de ´el. El mapeo es el problema de determinar el mapa

(23)

(a)Rueda giratoria (b)Robot holon ´omico

Figura 7.Ejemplo de robot holon ´omico. Tomado de (Warburton, 2017).

Una caracter´ıstica a notar es que muchas t ´ecnicas de localizaci ´on dependen en esencia de la

representaci ´on del mapa. Una muy com ´un es el uso de cuadr´ıculas de ocupaci ´on (Milstein, 2008)

para aproximar el ambiente. Una cuadr´ıcula de ocupaci ´on representa el ambiente como bloques

de celdas. Se distinguen dos estados para cada celda: ocupado y desocupado. Cuando se habla

de una celda ocupada se entiende que el robot no puede atravesarla, ´unicamente cuando la celda

este desocupada puede ser atravesada. En la Figura 8, se aprecia un ejemplo de una cuadr´ıcula

de ocupaci ´on.

Figura 8.Ejemplo de una cuadr´ıcula de ocupaci ´on. Tomado de (Duanet al., 2016).

La calidad de la aproximaci ´on del ambiente depende del tama ˜no de las celdas, mientras m ´as

(24)

Cap´ıtulo 3.

Estado del arte

3.1. Problemas Relacionados

3.1.1. Problema de exploraci ´on

Desde los comienzos de la rob ´otica m ´ovil el problema de exploraci ´on ha sido fundamental en

el ´area. El objetivo de un proceso de exploraci ´on es cubrir totalmente el ambiente en un tiempo

finito. En (Burgardet al., 2005) el problema se resuelve utilizando m ´ultiples robots, la justificaci ´on

del por qu ´e se aborda de esta manera radica en las ventajas que ofrece el utilizar varios robots.

Por ejemplo, un conjunto robots, ofrece mayores posibilidades de acabar en menor tiempo del que

requiere un solo robot.

Bajo este enfoque los robots necesitan conservar el registro de las ´areas que han sido

explo-radas, crear un mapa global que les permita seguir un camino y coordinar sus acciones. Esto es

posible porque a medida que se crea el mapa, se comparte con otros robots y estos a su vez

comparten las posiciones que ocupan dentro del ambiente.

El mapa que se crea t´ıpicamente se representa como una cuadr´ıcula de ocupaci ´on, sin

embar-go, puede extenderse a un mapa topol ´ogico o un mapa de cobertura. A lo largo de esta secci ´on,

la representaci ´on utilizada ser ´a la cuadr´ıcula. Cada celda de la misma contiene un valor num ´erico

que representa la probabilidad de que dicha celda cubra un obst ´aculo.

Los mapas generalmente contienen celdas desconocidas hasta cierto instante, a medida que

el robot avanza se actualiza a un valor conocido, por lo tanto la exploraci ´on es un concepto binario,

entre ´areas conocidas y desconocidas.

Para las labores de exploraci ´on es indispensable identificar las ´areas conocidas de las no

conocidas para luego calcular el costo del recorrido de cada robot. El inter ´es radica en las celdas

l´ımite, es decir, aquellas a las cuales se les conoce su valor y tienen como vecina a al menos a

una celda con valor desconocido. Se espera que si se dirige el robot a las celdas l´ımite, al llegar,

este habr ´a reunido informaci ´on de las celdas por explorar. Para evitar que varios robots se dirijan

al mismo lugar, se necesita establecer ubicaciones objetivo.

Se utiliza un enfoque de decisi ´on te ´orico para determinar las ubicaciones objetivo apropiadas

(25)

cel-da, y la utilidad que esta posee. Con estos par ´ametros y con programaci ´on din ´amica es posible

realizar la exploraci ´on completa del ambiente.

3.1.2. Problema de cobertura

La cobertura es un paradigma para evaluar sistemas rob ´oticos, se definen tres tipos de

cober-tura b ´asicos, cobercober-tura general, cobercober-tura de barrera, cobercober-tura de barrido (Gage, 1992).

Cobertura general:El objetivo es alcanzar un arreglo est ´atico de elementos que maximicen

el total del ´area detectada.

Cobertura de barrera:El objetivo es minimizar la probabilidad de no detectar la penetraci ´on

de la barrera.

Cobertura de barrido: El objetivo es mover un grupo de elementos a trav ´es de un ´area de

cobertura, de manera que se alcance un balance entre maximizar el n ´umero de detecciones

por tiempo y minimizar el n ´umero de detecciones perdidas por ´area.

El problema de la cobertura general se ha estudiado ampliamente en rob ´otica m ´ovil para las

tareas de navegaci ´on libre de colisiones. El desarrollo del problema es similar a la exploraci ´on

con m ´ultiples robots y al problema de la creaci ´on de mapas. El problema de cobertura ha sido

estudiado por varios autores (Cort ´eset al., 2004; Iyengar, 2007; Misraet al., 2009; Liang y Chen,

2011).

Finalmente, el problema de cobertura general est ´a estrechamente relacionado al problema de

la galer´ıa de arte en geometr´ıa computacional. En el problema anterior, se busca determinar el

n ´umero m´ınimo de c ´amaras necesarias para garantizar que un ambiente poligonal es vigilado

completamente (O’Rourke, 1987).

3.1.3. B ´usqueda de objetos

Otro problema relacionado con la exploraci ´on de ambientes desconocidos es la b ´usqueda

de uno o m ´as objetos reconocibles (Taylor y Kriegman, 1995; Sarmientoet al., 2004; Tovaret al.,

2007; Veigaet al., 2016). Este problema, es equivalente al problema de encontrar todos los objetos

en un ambiente, ya que el robot puede tener que descubrir todos los objetos antes de decidir si el

(26)

de objetos en un ambiente desconocido, desde tareas sencillas como subir todas las cajas de

un mismo color a un cami ´on, inspeccionar un ´area en busca de fugas en barriles de residuos

nucleares, hasta labores dom ´esticas (Veigaet al., 2016).

Para llevar a cabo la b ´usqueda de los objetos, el robot est ´a equipado con un sistema de

reconocimiento visual, con el que realiza una exploraci ´on sistem ´atica del entorno en busca de uno

o m ´as objetos reconocibles.

3.1.4. Problemarendezvous

El problema de rendezvous se refiere al desaf´ıo algort´ıtmico para que dos o m ´as entidades

m ´oviles se re ´unan en el mismo tiempo y punto del espacio. El problema de reuni ´on puede ser

una tarea por s´ı sola o puede formar parte de un proceso de comunicaci ´on o coordinaci ´on m ´as

complejo en el que los robots est ´en involucrados. El espacio puede ser una red de nodos discretos

entre los cuales los robots puedan moverse a lo largo de las conexiones existentes o un entorno

geom ´etrico en el que el movimiento de los robots s ´olo est ´e restringido por las propiedades

to-pol ´ogicas del espacio. Con el fin de realizar la reuni ´on, los robots deben acordar un mecanismo

de encuentro. La viabilidad y eficiencia de la soluci ´on adoptada depende de la capacidad de los

robots para moverse, observar y comunicarse (Ga¸sieniec, 2013).

Al igual que los problemas anteriores existen distintas formas de abordar el problema,

depen-diendo del tipo y restricciones de comunicaci ´on que los robots posean (Park y Hutchinson, 2016).

3.2. Precursores del trabajo

3.2.1. Boundary place graph

El problema de explorar un ambiente desconocido en busca de uno o m ´as objetos

recono-cibles se considera en (Taylor y Kriegman, 1995), donde se suponen capacidades limitadas de

detecci ´on por parte del robot. El ambiente se representa con una estructura denominada

boun-dary place graphen el que se lleva el registro de puntos de referencia. Un punto de referencia es

simplemente un objeto distintivo o patr ´on, que el robot puede reconocer con su sistema de visi ´on

siempre que est ´e a la vista. Elboundary place graphregistra el conjunto de puntos de referencia

que son visibles desde los l´ımites de varios obst ´aculos dentro del ambiente. Esta estructura no

registra ninguna representaci ´on de la geometr´ıa del entorno ni almacena prescripciones expl´ıcitas

(27)

La estructura se va creando a medida que avanza la exploraci ´on. Una vez completada la

explo-raci ´on, se puede utilizar el resultado para planear o ejecutar futuras tareas de navegaci ´on dentro

del ambiente. Algunos aspectos importantes a resaltar son: no se supone ning ´un conocimiento

previo sobre la estructura geom ´etrica del entorno, no se proporciona ninguna informaci ´on

pre-via sobre las posiciones absolutas o relativas de los obst ´aculos, no se intenta medir distancias.

Tampoco se supone conocimiento sobre el n ´umero de obst ´aculos que se podr´ıa encontrar.

Se tiene como premisas que la exploraci ´on se realiza en un ambiente m ´ultiplemente

conec-tado. El robot es capaz de diferenciar cada uno de los objetos, entre opacos y transparentes. El

robot se representa por medio de un punto en el plano y se supone que es holon ´omico.

El robot ademas de detectar los objetos con un sistema de reconocimiento visual, puede

diri-girse a ellos y rodearlos. A medida que se desplaza el robot va creando la estructura. Cuando se

encuentra un obst ´aculo, el robot se dirige a ´el, lo rodea y agrega un elemento a la estructura.

En est ´a tesis se supone que el robot cuenta con caracter´ısticas similares a este enfoque, sin

embargo, las diferencias est ´an en el sensor que utiliza el robot, la representaci ´on de la exploraci ´on,

la caracterizaci ´on de los obst ´aculos y el n ´umero de robots que utiliza para la exploraci ´on.

3.2.2. Gap navigation Tree

El trabajo presentado en (Tovar et al., 2007) propone el uso de una estructura denominada

Gap Navigation Tree(GNT) para la navegaci ´on con un robot, sin utilizar coordenadas.

El robot se modela como un punto que se mueve dentro del ambiente. Se supone que el

ambiente es un pol´ıgono simplemente conectado en el plano cartesiano. El sensor que posee

el robot es llamadogap sensor y obtiene informaci ´on de las discontinuidades en profundidad, el

robot no tiene informaci ´on alguna de la posici ´on dentro del ambiente.

La informaci ´on de las discontinuidades es fundamental para la creaci ´on del mapa y

conse-cuentemente la planificaci ´on del movimiento dentro del ambiente. Cuando el robot detecta una

discontinuidad, se dirige hacia ella y puede seguirla (rodearla), detenerse en ella o seguir de

lar-go. La informaci ´on que recaba el sensor se utiliza para crear la lista de discontinuidades para

poder crear la estructura (Gap Navigation Tree). Un aspecto que se resalta es que bajo estas

condiciones se demuestra que la exploraci ´on es completa y ´optima.

(28)

la importancia de la forma del robot radica en que muchas situaciones de la vida real necesitan

modelos de robots complejos. El sensor para este enfoque detecta discontinuidades de dos tipos,

near to faryfar to near, es importante mencionar que esta clasificaci ´on es posible porque el robot

puede calcular la distancia hacia la discontinuidad detectada. El robot se va desplazando a trav ´es

del ambiente bas ´andose en la informaci ´on recabada y de la pol´ıticas de movimiento que posee,

rotar en el mismo sitio (derecha o izquierda), seguir una l´ınea recta hacia otro objetivo, girar en una

discontinuidad (derecha o izquierda). Con las condiciones establecidas, se logra una exploraci ´on

completa y se garantiza que sea ´optima.

3.2.3. Exploraci ´on con m ´ultiples robots

Algunas estrategias de exploraci ´on utilizan la exploraci ´on basada en la frontera y m ´ultiples

robots. En esencia cuando se trabaja con la frontera, el robot se dirige a la l´ınea imaginaria que

divide las partes conocidas y desconocidas del ambiente (Yamauchi, 1997).

Muchos trabajos abordan el problema de exploraci ´on utilizando m ´ultiples robots (Burgardet al.,

2005; Wurmet al., 2008). En (Burgardet al., 2005), el mapa se representa utilizando una

cuadr´ıcu-la de ocupaci ´on y cuadr´ıcu-las posibles ubicaciones para el siguiente paso de exploraci ´on se definen sobre

las celdas situadas en el borde entre las celdas conocidas y desconocidas. En (Wurmet al., 2008),

los autores proponen una estrategia de exploraci ´on multi-robot en la que en lugar de fronteras, los

autores utilizan una segmentaci ´on del ambiente para determinar objetivos de exploraci ´on para

ro-bots individuales. Esta segmentaci ´on mejora la distribuci ´on de los roro-bots dentro del ambiente. En

(Matignonet al., 2012), los autores proponen un m ´etodo para la exploraci ´on con m ´ultiples robots

basado en el proceso de decisi ´on descentralizado de Markov.

En (Leeet al., 2016), los autores proponen algoritmos distribuidos para la construcci ´on de una

triangulaci ´on con ayuda de m ´ultiples robots. Los enfoques que se aplican son exploraci ´on,

cober-tura y vigilancia, utilizando un conjunto de robots con capacidades limitadas. Algunas diferencias

importantes entre este trabajo de tesis y el de (Leeet al., 2016) son los siguientes: en este trabajo,

se consideran varios entornos m ´ultiplemente conectados mientras que en (Leeet al., 2016) los

au-tores consideran entornos simplemente conectados. En este trabajo, los robots siguen los l´ımites

de los obst ´aculos, esto hace que este trabajo se relacione de alguna manera con los algoritmos

insectos.

(29)

Tabla 1.Precursores del trabajo.

Representaci ´on de la estrategia Autor (es) N ´umero de

robots Tipo de sensor Informaci ´on

Tipo de ambiente

Boundary place graph (Taylor y Kriegman, 1995) Uno Sistema de visi ´on Puntos de referencia M ´ultiplemente

conectado

(Tovaret al., 2007) Uno Gap sensor Discontinuidades en

profundidad

Simplemente conectado Gap Navigation Tree

(Lopez-Padillaet al., 2013) Uno Gap sensor Discontinuidades en

profundidad

Simplemente conectado

(Burgardet al., 2005) M ´ultiples Sofisticados,

heterog ´eneos

Celdas conocidas,

desconocidas Ambos

Cuadricula de ocupaci ´on

(Matignonet al., 2012) M ´ultiples Sensor laser y

odom ´etrico

Celdas conocidas,

desconocidas Ambos

(Wurmet al., 2008) M ´ultiples Sofisticados,

heterog ´eneos

Objetivos de

exploraci ´on Ambos

Segmentaci ´on de ambientes

(Leeet al., 2016) M ´ultiples Sensor con capacidades limitadas

Triangulaciones Simplemente

conectado

Sin representaci ´on (Ng y Br ¨aunl, 2007) Uno Sensor de rango Objetivo y sus

coordenadas Ambos

t ´erminos de diferentes criterios, por ejemplo, la distancia recorrida para alcanzar una meta. Sin

embargo, no analizan el rendimiento de los sistemas con m ´ultiples robots para la tarea de cubrir

el ambiente. Tampoco se estudia el efecto de la comunicaci ´on limitada entre los robots y c ´omo

afecta en la distancia recorrida por los robots.

3.3. Caracter´ısticas importantes

En la Tabla 1 se presentan algunas caracter´ısticas de los trabajos que dieron pauta a esta

te-sis. Se observa que para ambientes simplemente conectados se utiliza una representaci ´on basada

en ´arboles y con garant´ıas te ´oricas de una exploraci ´on completa, sin embargo, para ambientes

m ´ultiplemente conectados a ´un no es posible. Los sensores m ´as simples se utilizan en ambiente

simplemente conectados por lo que el reto es poder utilizar dichos sensores en ambientes m

´ulti-plemente conectados.

Los trabajos mostrados en la Tabla 1 forman la base de este trabajo de tesis ya que se

com-binan caracter´ısticas como la representaci ´on, el tipo de sensor, la cantidad de robots a utilizar, el

(30)

Cap´ıtulo 4.

Algoritmos de exploraci ´

on propuestos

A continuaci ´on, se presentan los algoritmos propuestos para la exploraci ´on de ambientes m

´ulti-plemente conectados. Se consideran dos enfoques, en el primero los obst ´aculos son identificados

de manera ´unica mientras que en el segundo no.

4.1. Algoritmos para obst ´aculos distinguibles

En este enfoque se establece que cada obst ´aculo es identificable de manera ´unica, esto puede

interpretarse como que cada obst ´aculo tiene una caracter´ıstica visual distintiva, por ejemplo, su

color. Tambi ´en se supone que los robots se pueden comunicar con los dem ´as s ´olo si se

encuen-tran en el mismo punto del obst ´aculo.

Se recalca que un obst ´aculo se considera explorado si se visitan sus v ´ertices y se almacena las

bitangentes que parten de ´el. Se dice que la exploraci ´on es completa cuando todos los obst ´aculos

fueron explorados al menos una vez.

El objetivo es explorar todos los obst ´aculos utilizando m ´ultiples robots. Para comenzar la

ex-ploraci ´on, se crea un equipo con todos los robots y se posicionan en un obst ´aculo. Un robot del

equipo se encarga de rodear el obst ´aculo y almacenar las bitangentes que detecta, que equivale

a la informaci ´on que recaba el robot.

El robot que rodea el obst ´aculo es el encargado de compartir la informaci ´on con el resto del

equipo, con la finalidad de formar nuevos equipos y continuar la exploraci ´on de todo el ambiente.

El problema se aborda de tres formas distintas, en la primera se realiza la exploraci ´on y se

genera una estructura de ´arbol que contiene la informaci ´on relacionada con los obst ´aculos

explo-rados, en la segunda se realizabacktracking sobre la estructura para compartir informaci ´on y en

la tercera se combinan las estrategias anteriores.

4.1.1. Sinbacktracking

Supongamos que haynrobots ymobst ´aculos distinguibles enE. Cada robot se denota como

ri donde i = 1, ..., n y cada obst ´aculo como Oj tal que j = 1, ..., m, en la Figura 9 se muestra

un ejemplo de un ambiente con 7 obst ´aculos. Inicialmente todos los robots se encuentran en el

(31)

orden angular, en otras palabras significa encontrar la secuencia de obst ´aculos que son visibles

desde ese v ´ertice. Cada robot conserva el registro de los obst ´aculos detectados y los almacena

en un colaDi. Es probable que se detecten varias bitangentes hacia el mismo obst ´aculo, en ese

caso solo la primera se toma en cuenta. El procedimiento descrito se puede ver en el Algoritmo 1.

O1 O2

O3

O4

O5

O6

O7

Figura 9.Ambiente de ejemplo.

Algoritmo 1Inicio exploraci ´on obst ´aculo distinguible

Entrada: Un ambiente desconocidoE, un equipo R denrobots inicialmente posicionados en un v ´ertice de un obst ´aculo.

Salida: Arbol de la estrategia´ Se declaraDi dondei= 1, ..., n

Se fija la direcci ´on para rodear el obst ´aculo

Se defineOscomo el obst ´aculo en el que se encuentra el robot

parai= 0to nhacer

Agregar a la listaDi los obst ´aculos detectados por los robots

fin para

Se declaraT que es la representaci ´on de la estrategia Exploraci ´on obst ´aculo distinguible(E,R,Os,T,NIL)

regresar T

El Algoritmo 1 llama al Algoritmo 2. Se selecciona un robot rs del equipo, el cual tiene la

caracter´ıstica de poseer el identificador m ´as peque ˜no. Este rodea el obst ´aculo Ot en el que se

(32)

Algoritmo 2Exploraci ´on obst ´aculo distinguible

Entrada: Un ambiente desconocidoE, un equipo R dem robots, un obst ´aculoOsque se

explo-rar ´a, el ´arbolT de la estrategia, nodo actualnp enT.

Se define∂Oscomo el borde deOs

Seleccionar un robotrsdeR

Marcar conpsun punto deOs

repetir

rssigue∂Osy actualiza suDscon los nuevos obst ´aculos detectados

hasta queEncuentreps

Compartir elDscon el resto del equipo

Crear el nodont= (Os, R, Ds)

sinp6=NILentonces

Agregarntcomo hijo denp

si no

ntse agrega como ra´ız del ´arbol fin si

Declarar|Dsne|como el n ´umero de obst ´aculos no visitados enDS

si|Dsne| 6= 0entonces si|Dne

s |< nentonces

Crear una colaQcon losDs.

parai= 0tomhacer

Asignar visitado a todos obst ´aculos no explorados deDi.

fin para

CrearR0ital quei= 1, ...,|Dnes | Distribuir losmrobots en los equipos. parai= 0to|Dsne|hacer

Sacar un obstaculoOtdeQ

Mover el equipoR0ia∂Ot

Exploraci ´on obst ´aculo distinguible(E,R0i,Ot,T,np)

fin para si no

Crear la colaQcon los primerosmobst ´aculos no explorados enDs

para todoq∈Qhacer parai= 0tomhacer

Asignarq enDi como visitado

fin para fin para

CrearR0ital quei= 1, ..., m

parai= 0to|Dsne|hacer Sacar un obst ´aculoOtdeQ

Mover el equipoR0ia∂Ot

Exploraci ´on obst ´aculo distinguible(E,R0i,Ot,T,np)

fin para fin si fin si

Un robot es capaz de dirigirse hacia la discontinuidad detectada, sin embargo, debido a que

(33)

discon-tinuidad, detectar ´a discontinuidades distintas a la que lo dirigi ´o a su posici ´on. Al desplazarse en

cualquier otra direcci ´on, el robot no sabr ´a cual fue el punto al que lleg ´o al obst ´aculo. Para tratar

este problema, al llegar el robot coloca una marca que indica el punto del primer contacto entre el

robot y el obst ´aculo. En nuestro caso, debido a que el robot rodea el obst ´aculo, la marca tiene el

prop ´osito de indicar que se ha rodeado el obst ´aculo siempre y cuando se encuentre la marca que

se coloc ´o al llegar a este.

El robot rs se sit ´ua en el marcador de Ot, lo rodea y actualiza la cola Ds con los nuevos

obst ´aculos detectados. Al encontrar nuevamente el marcador se entiende que el obst ´aculo ha

sido explorado, por lo que se marca comoOte. Al estar nuevamente en la posici ´on del equipo toma

el marcador y comparte laDscon el resto de los miembros, por lo tantoDi =Ds. A partir de las

Di’s se calcula el n ´umero de obst ´aculos no explorados enDiy se denota con|Dnei |.

Para visitar los obst ´aculos enDi, se utiliza la siguiente estrategia. Si|Dine|< nentoncesk∈N

robots se asigna a cada elemento delDnei , donden = k|Dine|+ltal que l < |Dnei |. Los lrobots

restantes son tambi ´en distribuidos equitativamente, se puede notar que cada obst ´aculo no visitado

enDies visitado a lo m ´as pork+ 1robots. Por otra parte si|Dnei |> n, cada robot es asignado a

un obst ´aculo y en este caso se inicia una exploraci ´on independiente enE.

Antes de partir del obst ´aculo, todos los robots marcan como visitado los obst ´aculos que se

visitar ´an en suDi con la finalidad de evitar que los asignados se visiten nuevamente. Cuando el

equipo alcance al obst ´aculo asignado, se realiza nuevamente el procedimiento anterior hasta que

todos los elementos de lasDi est ´en marcados como visitados.

La estrategia antes descrita se puede representar por medio de un ´arbol, donde los nodos

almacenan informaci ´on del obst ´aculo visitado, los miembros del equipo que lo visit ´o, y lasDi

ac-tualizadas despu ´es de explorarlo. Los hijos de los nodos representan los obst ´aculos no explorados

que se han detectado desde el nodo padre. Un ejemplo de aplicar la estrategia se puede observar

en la Figura 10.

4.1.2. Conbacktracking

El resultado de aplicar la estrategia descrita anteriormente en el escenario de la Figura 9 se

(34)

Figura 10.Ejemplo de aplicar la estrategia de exploraci ´on al ambiente de la Figura 9.

Tabla 2.Informaci ´on almacenada en el ´arbol de la figura 10.

Nodo Obst ´aculo explorado Robots Colas

n1 O1 r1, ..., r6 D1,...,6 ={Oe1, O6, O4, O5, O2}

n2 O6 r1, r5 D1,5 ={Oe1, O6eOe4Oe5, O2e, O3, O7}

n3 O4 r2, r6 D2,6 ={Oe1, O6eOe4Oe5, O2e, O3, O7}

n4 O5 r3 D3 ={Oe1, O6eO4eOe5, Oe2, O3, O7}

n5 O2 r4 D4 ={Oe1, Oe6O4eOe5, Oe2, O3, O7}

n6 O3 r1 D1 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

n7 O7 r5 D5 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

n8 O3 r2 D2 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

n9 O7 r6 D6 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

n10 O3 r3 D3 ={Oe1, O6eO4eOe5, Oe2, O3e, O7}

n11 O3 r4 D4 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7}

n12 O7 r3 D3 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

n13 O7 r4 D4 ={Oe1, Oe6O4eOe5, Oe2, O3e, O7e}

La tabla claramente indica que existen obst ´aculos que se exploran varias veces por distintos

robots. En el peor de los casos todos los robots visitar ´an todos los obst ´aculos lo que representa

un inconveniente.

Este comportamiento es generado porque los robots una vez que dejan el obst ´aculo para

dirigirse a otro, actualizan su informaci ´on en funci ´on del nuevo obst ´aculo en el que se encuentren,

por lo que despu ´es de salir del obst ´aculo tendr ´an distinta informaci ´on y adem ´as es dif´ıcil que se

re ´unan nuevamente en alg ´un punto en el ambiente para compartir su progreso.

Para evitar esta situaci ´on se pretende forzar a que los robots regresen a cierto obst ´aculo

para compartir la informaci ´on con robots que hayan regresado a ese mismo obst ´aculo. Con la

informaci ´on que se comparte, se establecen nuevos obst ´aculos por explorar y con base a eso

(35)

la estrategia basada en un ´arbol. La idea es establecer un nivel que indique el regreso a un

obst ´aculo que en el ´arbol corresponde a un nodo cuya altura sea m ´ultiplo del valor establecido.

Por ejemplo, en el ´arbol de la Figura 10, supongamos que se establece que los robots regresar ´an

cuando alcancen niveles m ´ultiplos de2. Como se puede observar una vez que los robots alcancen

los nodosn6, n7, n8, n9, n10yn11, est ´an forzados a regresar al nodon1 y compartir la informaci ´on.

Como consecuenciar3yr4encuentran queO7ha sido explorado por lo que la exploraci ´on termina.

A diferencia de la primera estrategia, la exploraci ´on da como resultado un ´arbol de dos niveles.

El Algoritmo 3 describe la nueva estrategia. En este caso primero se aplica la estrategia que

describe el algoritmo con la restricci ´on de que acabar ´a mientras haya alcanzado el nivel

estable-cido o todos los obst ´aculos sean visitados, se mezclan los Di y se genera una nueva cola Dg

que mantiene la informaci ´on de los obst ´aculo explorados y los que no, hasta ese nivel. Con esa

informaci ´on se generan nuevos equipos y se aplica la estrategia de exploraci ´on de obst ´aculos y

se ejecuta recursivamente el Algoritmo 3.

Algoritmo 3Exploraci ´on obst ´aculo distinguible con backtracking

Entrada: Un ambiente desconocidoE, un equipoR demrobots, un obst ´aculoOsque se

explo-rar ´a, el ´arbolT de la estrategia, nodo actualnp enT y unnivel

Exploraci ´on obst ´aculo distinguible(E,Ri,Ot,T,np,nivel)

Regresar el equipoRal nodonp

Mezclar losDideR, generandoDg

Encontrar los Obst ´aculos que faltan por visitar|Dneg | si|Dgne| 6= 0entonces

si|Dneg |< nentonces

Crear una colaQcon losDg

CrearR0ital quei= 1, ...,|Dneg | Distribuir losmrobots en los equipos. parai= 0to|Dgne|hacer

Sacar un obst ´aculoOtdeQ

Mover el equipoR0ia∂Ot

Exploraci ´on obst ´aculo distinguible con backtracking(E,R0i,Ot,T,np,nivel)

fin para si no

Crear la colaQcon los primerosmobst ´aculos no explorados enDg

CrearR0ital quei= 1, ..., m

parai= 0to|Dne

g |hacer

Sacar un obst ´aculoOtdeQ

Mover el equipoR0ia∂Ot

Exploraci ´on obst ´aculo distinguible con backtracking(E,R0i,Ot,T,np,nivel)

(36)

4.1.3. Fusi ´on de las estrategias.

Una tercera estrategia que se propone es combinar las dos anteriores. Primero realizar la

exploraci ´on hasta alcanzar un nivel arbitrario, los robots regresan para compartir informaci ´on y

finalmente contin ´uan la exploraci ´on hasta culminar el proceso. Esto significa que durante toda la

exploraci ´on s ´olo se har ´a unbacktracking. Se pretende comparar los resultados con las estrategias

anteriores.

4.2. Algoritmos para obst ´aculos no distinguibles

En el segundo enfoque abordado en este trabajo, los obst ´aculos no son distinguibles, esto

puede interpretarse como si todos fueran de un mismo color.

An ´alogamente al enfoque anterior, contamos connrobots ri tal quei= 1, ..., n, se explora el

obst ´aculo y se almacenan las bitangentes a medida que se detectan. Inicialmente todos los robots

se localizan en el v ´ertice de un obst ´aculo, como se trata de obst ´aculos no distinguibles, la ´unica

informaci ´on disponible para los robots son las bitangentes. A medida que exploran los obst ´aculos

se almacena las bitangentes en orden angular de acuerdo a como vayan apareciendo en cada

v ´ertice.

Un aspecto a notar es que no es posible distinguir si dos o m ´as bitangentes pertenecen al

mismo obst ´aculo, sin embargo, se distingue el v ´ertice y con eso se diferencian unas de otras en un

mismo obst ´aculo. En la Figura 11 se puede apreciar las bitangentes detectadas en un obst ´aculo,

cada una se almacena de la forma(x, y)dondexes el n ´umero del v ´ertice yyla bitangente.

{( 1, i ) | i = 1,...,5 }U{( 2, 1 ) } U {( 6, 1) }U{( 7, j ) | j = 1, 2 }U{(8, k ) | k = 1,2 }

(37)

Los robots tienen limitantes en la comunicaci ´on, ´unicamente lo hacen enrendezvous. La

direc-ci ´on en la que se rodean los obst ´aculos se define antes de inidirec-ciar la estrategia. Los robots utilizan

las bitangentes para viajar a trav ´es de los obst ´aculos. Cada robot tiene una pila que utiliza para

visitar las bitangentes cuando superan el tama ˜no del equipo. El robot puede guardar y construir

su propio ´arbol.

El robot no conoce su ubicaci ´on dentro del ambiente, no tiene acceso a sus coordenadas, por

lo que para registrar el progreso de la exploraci ´on utiliza marcadores, estos pueden ser de dos

tipos:

1. Marcador de inicio: es un marcador ´unico que posee el robot para identificar la posici ´on en

la que inicia la exploraci ´on de un obst ´aculo. Este marcador contiene la informaci ´on del id del

robot y est ´a disponible para otros robots.

2. Marcador gen ´erico: es un marcador ilimitado que el robot utiliza para etiquetar los obst ´aculos

que ha visitado. Este marcador contiene la informaci ´on del robot que visit ´o el obst ´aculo.

La estrategia se representa por medio de un ´arbol, cada nodo contiene la lista de las

bitangen-tes que son visibles desde los v ´ertices de los obst ´aculos. Las bitangenbitangen-tes representan las aristas

del ´arbol, son el medio para llegar a los obst ´aculos y sirven para que el robot pueda regresar a los

anteriores.

Para entender el algoritmo de exploraci ´on (ver Algoritmo 6) se describen las funciones que lo

componen, como son la caracterizaci ´on de los obst ´aculos, la divisi ´on de los equipos y la

asigna-ci ´on de los obst ´aculos a explorar.

La exploraci ´on de los obst ´aculos se realiza de la siguiente manera: se selecciona el robot con

id menor de todo el equipo, coloca su marcador inicial y rodea el obst ´aculo, almacena posibles

obst ´aculos por visitar, por medio de las bitangentes que detecta en cada v ´ertice denotado como

Nc.

Este proceso se nombra caracterizaci ´on del obst ´aculo (ver Algoritmo 4) y uno de los siguientes

casos ocurre durante este proceso:

1. Si el robot no encuentra alg ´un marcador en el obst ´aculo o ´unicamente encuentra

(38)

posibles obst ´aculos por explorar. Cuando el robot rodee el obst ´aculo recoge su marcador

inicial y coloca uno gen ´erico indicando que todas las bitangentes asociados al obst ´aculo

han sido detectadas. La informaci ´on deNcse comparte con otros robots en el v ´ertice inicial

provocando la actualizaci ´on del ´arbol en cada robot.

2. Si el robot encuentra un marcador gen ´erico o un marcador inicial con un id menor al suyo

entonces el robot regresa al v ´ertice inicial y recoge su marcador inicial. Si el robot es el

´unico miembro del equipo y en su registro faltan obst ´aculos por explorar, sigue visit ´andolos,

de otra forma, el robot se apaga o regresa al obst ´aculo inicial.

Algoritmo 4Caracterizaci ´on del obst ´aculo

Entrada: Un ambiente desconocidoE, un robotrs, una bitangente de llegadagp,nodo padreque

es el nodo del ´ultimo obst ´aculo visitado. SeaNcel nodo del obst ´aculo actual.

SeaδOsel borde del obst ´aculo actual.

sig6=N ILentonces

El robot marca la bitangentegp que conduce al obst ´aculo anterior visitado.

fin si

El robotrscoloca su marcador inicialps en el v ´ertice en el que se encuentra.

repetir

rssigue∂Osy a ˜nade un elemento aNcpor cada bitangente detectada.

hasta queEncuentre un marcador gen ´erico, un marcador inicial con un id menor al dersops

si psfue encontradoentonces

rsrecoge su marcador inicial y coloca un marcador gen ´erico.

si no

Nc←N IL

rsse dirige a la bitangente de partida y toma su marcador inicial.

fin si

regresar Nc

Una vez caracterizado el obst ´aculo, se sabe cuales son los posibles obst ´aculos que ser ´an

explo-rados, la idea es distribuirlos entre los miembros del equipo. La regla para realizar la asignaci ´on

de los elementos delNcse basa en lo siguiente:

1. Si el n ´umero de elementos deNc es menor a la cantidad de miembros del equipo, este se

distribuye por cada elemento deNctal quen=|Nc|k+ldondek >0y0≤l < n. El n ´umero

de nuevos equipos que se forman est ´a dado por la cardinalidad deNc. A cada equipo nuevo

se le asigna un elemento deNc.

2. En el caso contrario, los elementos deNc se dividen entre los miembros del equipo, por lo

(39)

le asigna un elemento deNc.

El Algortimo 5 describe la creaci ´on de los equipos y la asignaci ´on de los obst ´aculos a explorar.

Como se observa, cada equipo repetir ´a recursivamente la exploraci ´on, Algoritmo 6.

Algoritmo 5Navegaci ´on del obst ´aculo

Entrada: Un ambiente desconocidoE, un equipoRconnrobots y una listaNcde obst ´aculos por

visitar.

Sea|Nc|el n ´umero de obst ´aculos por visitar.

si|Nc|< nentonces

Seak, l∈Z+tal quen=|N

c|k+ldonde k >0y0≤l < n

Los nuevos equipos son{Ri}

|Nc|

i=1 dondek≤ |Ri| ≤k+ 1y son una partici ´on deR

parai= 0to|Nc|hacer

El i- ´esimo elemento de|Nc|es asignado al equipoRi

Seages la bitangente para legar al i- ´esimo obst ´aculo enNc

El equipoRiviaja a trav ´es de la bitangenteg

Exploraci ´on obst ´aculos indistinguible(E,Ri,g,Nc)

fin para si no

Seak, l∈Z+tal que|N

c|=nk+ldonde k >0y0≤l <|Nc|

Los nuevos equipos sonR,{Ni}ni=1dondek≤ |Ni| ≤k+ 1y son una partici ´on deNc

para todori∈Rhacer Nise agrega a la pila deri

risaca un elemento de su pila y recorre la bitangenteghasta alacanzar el nuevo obst ´aculo.

Exploraci ´on obst ´aculos indistinguible(E,{ri},g,Nc)

fin para fin si

El algoritmo de exploraci ´on (ver Algoritmo 6), primeramente selecciona el robot con id m ´as

peque ˜no del equipo, al inicio el robot se encuentra en un v ´ertice del obst ´aculo, por lo que

deter-mina si este se encuentra marcado, si contiene una marca, agrega informaci ´on referente al nodo

anterior, la bitangente para llegar al obst ´aculo y la lista de los posibles obst ´aculos que faltan por

explorar. Si el equipo es solamente un robot este verifica si en la pila donde lleva el registro de los

obst ´aculos que no ha visitado esta vac´ıa, si lo est ´a, no tiene nada mas que hacer y se apaga. De

Referencias

Documento similar

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

Analizando la competencia anterior, podemos observar que el tipo de producto que ofrecen al consumidor en este mercado, es muy homogéneo suelen vender los mismos