• Nenhum resultado encontrado

Métodos de mapeamento e exploração

N/A
N/A
Protected

Academic year: 2021

Share "Métodos de mapeamento e exploração"

Copied!
122
0
0

Texto

(1)

Universidade de Aveiro Departamento deElectr´onica, Telecomunica¸c˜oes e Inform´atica, 2012

Carina Sofia

Pinto Moura

(2)
(3)

Universidade de Aveiro Departamento deElectr´onica, Telecomunica¸c˜oes e Inform´atica, 2012

Carina Sofia

Pinto Moura

etodos de Mapeamento e Explora¸

ao

Disserta¸c˜ao apresentada `a Universidade de Aveiro para cumprimento dos requisitos necess´arios `a obten¸c˜ao do grau de Mestre em Engenharia de Eletr´onica e Telecomunica¸c˜oes, realizada sob a orienta¸c˜ao cient´ıfica de Ant´onio Neves e Nuno Lau, Professores do Departamento de Eletr´onica, Telecomunica¸c˜oes e Inform´atica da Universidade de Aveiro

(4)
(5)

o j´uri / the jury

presidente / president Prof. Doutor Luis Filipe de Seabra Lopes professor associado da Universidade de Aveiro

vogais / examiners committee Prof. Doutor Armando Jos´e Miranda de Sousa

professor auxiliar da Faculdade de Engenharia da Universidade do Porto

Prof. Doutor Ant´onio Jos´e Ribeiro Neves professor auxiliar da Universidade de Aveiro (orientador)

Prof. Doutor Jos´e Nuno Panelas Nunes Lau professor auxiliar da Universidade de Aveiro (coorientador)

(6)
(7)

agradecimentos Os meus agradecimentos v˜ao em primeiro lugar para os meus pais. Foram eles que proporcionaram as condi¸c˜oes necess´arias para que eu pudesse ter o conhecimento que tenho hoje e, por isso, desenvolver este trabalho. Gostaria de agradecer tamb´em aos meus orientadores, por toda a ajuda que me deram e paciˆencia que tiveram.

O meu ´ultimo agradecimento vai para os meus amigos que me apoiaram sempre no desenvolvimento deste trabalho.

(8)
(9)

Resumo Este documento trata do estudo e implementa¸c˜ao de algoritmos de mapea-mento e explora¸c˜ao rob´otica. O mapeamento abordado encontra-se orien-tado para ambientes dom´esticos. ´E pretendida a recolha de informa¸c˜ao do mundo para a cria¸c˜ao de um mapa do mesmo.

A explora¸c˜ao pretende complementar o mapeamento no ato de mapear um local por completo. Isto porque o mapeamento, por si s´o, n˜ao disp˜oes de t´ecnicas de planeamento.

Os algoritmos desenvolvidos s˜ao testados na plataforma do Ciber-rato, sendo apresentados os devidos resultados.

(10)
(11)

Abstract This paper deals with the study and implementation of mapping and ex-ploration algorithms. The addressed mapping is oriented to home environ-ments. It is desired to collect information from the world in order to create it’s map.

The exploration aims to complement the mapping in the act of complete coverage mapping. This is because the mapping itself, does not have any planning technic.

The developed algorithms are tested on Ciber-rato’s platform, and the re-sults are presented.

(12)
(13)
(14)

Conte´

udo

Conte´udo 3

Lista de Figuras 7

Lista de Tabelas 11

1 Introdu¸c˜ao 13

1.1 Mapeamento e explora¸c˜ao em rob´otica . . . 15

1.2 Objetivos . . . 16 1.3 Estrutura . . . 17 2 T´ecnicas de Mapeamento 19 2.1 Conceitos . . . 19 2.1.1 Conceito de confian¸ca . . . 19 2.1.2 Regra de Bayes . . . 20

2.1.3 Distribui¸c˜ao Normal de Probabilidade . . . 20

2.2 T´ecnicas . . . 21 2.2.1 Filtro de Bayes . . . 21 2.2.2 Filtro Gaussiano . . . 22 2.2.3 Filtro de Kalman . . . 22 2.2.4 Algoritmo de Lu/Milios . . . 23 2.2.5 Expectation Maximization . . . 24

2.2.6 Incremental Maximum Likelihood Method (Incremental ML) . . . 24

2.2.7 H´ıbridos . . . 24

2.2.8 Occupancy Grid Maps . . . 25

2.2.9 Dogma . . . 25

2.2.10 YAM . . . 25

2.2.11 Mapeamento de um ambiente dinˆamico . . . 26

2.2.12 Mapas Cognitivos . . . 28

2.3 Resumo . . . 29

3 Explora¸c˜ao 31 3.1 T´ecnicas . . . 31

3.1.1 Explora¸c˜ao Baseada na Transformada de Distˆancia (Zelinsky) . . . 32

Transformada de obst´aculos . . . 34

3.1.2 Explora¸c˜ao Baseada em Fronteiras . . . 35

(15)

3.1.4 Explora¸c˜ao por Zig-zag de Linhas Paralelas . . . 38

3.1.5 Decomposi¸c˜ao Trapezoidal . . . 39

3.2 Resumo . . . 40

4 Implementa¸c˜ao 43 4.1 Plataforma de simula¸c˜ao do ciber-rato . . . 43

4.1.1 Caracter´ısticas do Simulador . . . 43

4.1.2 Caracter´ısticas do Agente . . . 45

4.1.3 Caracter´ısticas da ´Area de Jogo . . . 46

4.2 Algoritmo de Mapeamento . . . 46

4.2.1 Marca¸c˜ao do mapa . . . 46

4.2.2 Modelo do corpo do robˆo . . . 47

4.2.3 Modelo da ´area de incidˆencia dos sensores . . . 47

4.2.4 Comportamentos . . . 50

4.2.5 Diagrama de fluxo do processo de mapeamento . . . 51

4.2.6 YAM . . . 52

4.3 Algoritmo de Explora¸c˜ao . . . 54

4.3.1 Algoritmo de explora¸c˜ao baseado em fronteiras . . . 54

4.3.2 Mapa de fronteiras . . . 56

4.3.3 Comportamentos . . . 56

Algoritmo A* . . . 58

Mapa de obst´aculos expandidos . . . 60

4.4 Implementa¸c˜oes complementares . . . 65

4.4.1 Mapeamento a partir de logs . . . 65

4.4.2 Interface gr´afico . . . 65

4.5 Estrutura da implementa¸c˜ao . . . 66

4.5.1 Diagrama de fluxo completo . . . 66

4.5.2 Organiza¸c˜ao de classes . . . 66 class actions . . . 68 class map . . . 69 class exploration . . . 69 class pathFinding . . . 70 class parserXML . . . 70 class MainWindow . . . 70 class cell . . . 70 class myrobot . . . 70 struct points . . . 71 4.6 Resumo . . . 71 5 Resultados 73 5.1 Mapeamento . . . 73

5.1.1 Sele¸c˜ao dos valores usados no algoritmo de YAM . . . 74

5.1.2 Mapas obtidos com o algoritmo de mapeamento . . . 75

5.2 Explora¸c˜ao . . . 87

5.2.1 Sele¸c˜ao dos valores de threshold e de minimum length usados na sele¸c˜ao de fronteiras . . . 87 5.2.2 Mapas obtido com o uso dos algoritmos de mapeamento e explora¸c˜ao 88

(16)

5.3 Resumo . . . 106

6 Conclus˜ao 107

6.0.1 Trabalho futuro . . . 108

(17)
(18)

Lista de Figuras

1.1 Exemplos de robˆos m´oveis e aut´onomos . . . 15

2.1 Distribui¸c˜ao Normal de Probabilidade (adaptado de [3]). . . 21

2.2 Corpo do agente e os seus sensores de obst´aculos. . . 26

2.3 Dete¸c˜ao de um obst´aculo. . . 26

2.4 Diferentes ´areas de marca¸c˜ao dos sensores segundo o algoritmo YAM. . . 27

2.5 Exemplo de aumento de resolu¸c˜ao de uma parti¸c˜ao [11]. . . 29

3.1 Categorias de explora¸c˜ao. . . 32

3.2 Representa¸c˜ao dos 8-vizinhos de uma c´elula. . . 33

3.3 Transformada de distˆancia. . . 33

3.4 Exemplos de aplica¸c˜ao da TD para obten¸c˜ao de trajet´orias. . . 34

3.5 Aplica¸c˜ao da transformada de distˆancia, de trajet´oria e de obst´aculos a um mapa de exemplo [46]. . . 35

3.6 Transformada de distˆancia com adi¸c˜ao da transformada de obst´aculos e re-spetiva transformada de trajet´oria [46]. . . 36

3.7 Aplica¸c˜ao da transformada de distˆancia e de trajet´oria de cobertura total a um mapa de exemplo [46]. . . 36

3.8 Transformada de distˆancia com adi¸c˜ao da transformada de obst´aculos e re-spetiva transformada de trajet´oria de cobertura total [46]. . . 37

3.9 Explora¸c˜ao de um gabinete [43]. . . 38

3.10 Explora¸c˜ao do mapa em zig-zag. . . 39

3.11 V´arias fases da explora¸c˜ao de um mapa com inlets e ilhas [15]. . . 40

3.12 Processo de decomposi¸c˜ao do mapa em c´elulas trapezoidais [15]. . . 40

3.13 Movimentos de vai-vem para explora¸c˜ao de c´elulas. . . 40

4.1 Sistema de simula¸c˜ao (adaptado de [1]). . . 44

4.2 Plataforma de simula¸c˜ao Ciber-rato. . . 44

4.3 Corpo do robˆo virtual e caracter´ısticas mais importantes (adaptado de [1]). . 45

4.4 Arena. . . 46

4.5 Representa¸c˜ao do mapa. . . 47

4.6 Representa¸c˜ao do corpo do robˆo. . . 48

4.7 Representa¸c˜ao gr´afica de situa¸c˜oes de dete¸c˜ao de obst´aculos por parte dos sen-sores de obst´aculos. . . 49

4.8 Marca¸c˜ao da posi¸c˜ao dos sensores. . . 50

4.9 Diagrama de fluxo do comportamento avoid. . . 51

(19)

4.11 Dete¸c˜ao de obst´aculos. . . 53

4.12 Diferentes ´areas de incidˆencia dos sensores segundo o algoritmo de YAM im-plementado. . . 54

4.13 Esquemas do estado dos mapas numa fase inicial. . . 55

4.14 Exemplos de mapas de fronteiras. . . 56

4.15 Diagramas de fluxo da obten¸c˜ao do mapa de fronteiras. . . 57

4.16 Diagrama de fluxo do comportamento goToDestiny. . . 58

4.17 Mapa exemplo para aplica¸c˜ao do algoritmo A* . . . 59

4.18 Mapa com indica¸c˜ao dos valores dos custos G. . . 60

4.19 Algumas fases de evolu¸c˜ao do algoritmo A* num mapa exemplo. . . 61

4.20 Diagrama de Fluxo do processo de planeamento de trajet´orias A*. . . 62

4.21 Diagrama da obten¸c˜ao do caminho gerado pelo A* a partir da Closedlist cor-respondente ao exemplo da Figura 4.19. . . 63

4.22 Exemplo de um caso onde o A* ´e necess´ario para alcan¸car a rota em seguran¸ca. 63 4.23 Exemplo de um mapa alterado para a implementa¸c˜ao do A*. . . 64

4.24 Interface gr´afico com os mapas gerados em tempo real. . . 66

4.25 Diagrama de fluxo de todos os processos implementados. . . 67

4.26 Classes desenvolvidas. . . 68

5.1 Mapas obtidos pelo algoritmo de mapeamento implementado. . . 73

5.2 Mapas obtidos do labirinto do Ciber 2003, Manga 1. . . 75

5.3 Mapas obtidos do labirinto do Ciber 2003, Manga 2. . . 76

5.4 Mapas obtidos do labirinto do Ciber 2003, Manga 3. . . 77

5.5 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1. . 78

5.6 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 2. . 79

5.7 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 3. . 80

5.8 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 3 -novo ensaio. . . 81

5.9 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2004, Manga 1. . 82

5.10 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2004, Manga 3. . 83

5.11 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2005, Final. . . . 84

5.12 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2005, Final - novo ensaio. . . 85

5.13 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber RTSS 2007, Stage 1. 86 5.14 Mapas obtidos pelos algoritmos implementados, de mapeamento e explora¸c˜ao, do labirinto Ciber 2003, Manga 1. . . 87

5.15 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 10 e threshold = 5. . . 89

5.16 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 10 e threshold = 10. . . 91

5.17 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 10 e threshold = 20. . . 92

5.18 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 10 e threshold = 30. . . 93

5.19 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 8 e threshold = 5. . . 94

(20)

5.20 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1, com minimum length = 8 e threshold = 10. . . 95 5.21 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 8 e threshold = 20. . . 96 5.22 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 8 e threshold = 30. . . 97 5.23 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 5 e threshold = 5. . . 98 5.24 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 5 e threshold = 10. . . 99 5.25 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 5 e threshold = 20. . . 100 5.26 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 1,

com minimum length = 5 e threshold = 30. . . 101 5.27 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 2. . 102 5.28 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2003, Manga 3. . 103 5.29 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber 2005, Final. . . . 104 5.30 Mapas de algumas das fases de obten¸c˜ao do labirinto Ciber RTSS 2007, Stage 1.105

(21)
(22)

Lista de Tabelas

(23)
(24)

Cap´ıtulo 1

Introdu¸

ao

Nos dias de hoje, encontramo-nos rodeados de tecnologia e at´e dependentes da mesma, na generalidade dos casos. Quantas pessoas se conhece que n˜ao tenham um telem´ovel? Uma televis˜ao? Uma m´aquina de lavar roupa? Estes itens tornaram-se parte do nosso dia a dia ao ponto de j´a n˜ao sabermos viver sem eles. Trazem-nos seguran¸ca, comodismo, lazer. . . Fazem parte da nossa sociedade e est˜ao em constante evolu¸c˜ao.

As pessoas tornam-se cada vez mais exigentes com a tecnologia e a qualidade da mesma. A loi¸ca e a roupa s˜ao lavadas em m´aquinas, o ch˜ao ´e aspirado, as not´ıcias passaram a ser vistas na televis˜ao, as cartas foram substitu´ıdas por e-mails. . . Parece que quanto melhor ´e a tecnologia, melhor ainda se poder´a tornar.

Uma vertente de grande interesse na tecnologia ´e a rob´otica, uma ´area transversal que engloba computadores, eletr´onica e computa¸c˜ao [8]. O termo “robˆo” surgiu pela primeira vez na pe¸ca de teatro Rossum’s Universal Robots, escrita por Karel Capek em 1921 [4]. O escritor usou o termo robota, que significa na sua l´ıngua: “trabalho exercido de forma compuls´oria”. O termo rob´otica veio a ser popularizado mais tarde, em 1950, pelo filme de fic¸c˜ao cient´ıfica ”I, Robot ”(“Eu, Robˆo”). ´E interessante perceber o receio que existia nesta altura quanto `a cria¸c˜ao de robˆos. Temia-se que os robˆos se sobrepusessem `a ra¸ca humana. Apesar de tudo, sabia-se que seriam seres inteligentes e capazes de realizar qualquer tarefa, muitas das vezes melhor do que n´os. Por isso mesmo eram tamb´em temidos. Temia-se o que podia vir a ser descoberto, apesar da enorme curiosidade.

A verdade ´e que parece que esse medo desvaneceu e foi substitu´ıdo pelo prazer de aproveitar o que a rob´otica pode trazer de ben´efico para a sociedade. Uma simples tarefa de limpar o ch˜ao da casa ´e hoje em dia, facilmente, substitu´ıda por um robˆo aspirador aut´onomo (que funciona por si s´o). Os autom´oveis j´a ligam os far´ois assim que escurece e estacionam em seguran¸ca sem necessidade de interven¸c˜ao do condutor. As tarefas do dia-a-dia est˜ao a ser substitu´ıdas por robˆos.

Desde aplica¸c˜oes dom´esticas `a sua utiliza¸c˜ao para fins militares, a rob´otica tem vindo a sofrer uma grande evolu¸c˜ao com uma vasta ´area de implementa¸c˜ao. Um robˆo serve essencial-mente para facilitar o nosso dia-a-dia, realizando tarefas pelos humanos ou at´e algumas que seriam imposs´ıveis de realizar por estes.

Existem v´arios tipos de robˆos. Alguns deles assemelham-se a animais ou at´e mesmo a humanos (Figura 1.1 - a, b, c), enquanto que outros ficam muito longe desse prop´osito (Figura 1.1 - d, e, f, g). Apesar do desafio de fazer uma r´eplica de um ser vivo, e do que se pode aprender pelo seu desenvolvimento, numa grande parte das implementa¸c˜oes ´e prefer´ıvel que o

(25)

modelo se distancie dos animais [9]. Embora j´a existam v´arios robˆos com pernas, por exemplo, estes necessitam de um controlo complexo apenas para a tarefa de movimenta¸c˜ao, que requer muito equil´ıbrio. Isto leva a que tarefas de maior interesse sejam ainda mais complexas (como por exemplo o transporte de objetos). O robˆo Asimo da Honda ´e um bom exemplo de sucesso, para os robˆos com pernas. Este consegue andar, subir e descer escadas, transportar objetos e at´e correr. Em contrapartida, tem gastos energ´eticos elevados e custos fora do alcance do consumidor comum. Serve como um marco de evolu¸c˜ao e investiga¸c˜ao, sendo um grande avan¸co tecnol´ogico. Por outro lado, utilizar rodas em robˆos, em vez de pernas, torna-os mais est´aveis e at´e mais r´apidos. Os seus custos s˜ao tamb´em muito mais reduzidos. Estas vantagens levam a que a maioria dos robˆos desenvolvidos para comercializa¸c˜ao tenham esta caracter´ıstica.

Os agentes rob´oticos mais interessantes s˜ao aqueles que executam tarefas sem que haja a necessidade de interven¸c˜ao humana. S˜ao designados por robˆos aut´onomos. Estes robˆos tˆem a capacidade de agir e tomar decis˜oes sem que se necessite de um controlo remoto. Agem de acordo com as leituras dos seus sensores, com base em informa¸c˜ao guardada em mem´oria ou at´e pela sua aprendizagem.

Um robˆo aut´onomo pode ter comportamentos t˜ao simples como andar em frente e desviar-se de obst´aculos detet´aveis pelos seus sensores. A estes agentes d´a-se o nome de reativos, uma vez que, n˜ao tendo qualquer no¸c˜ao do mundo em que est˜ao inserido, reage apenas a est´ımulos com a¸c˜oes predefinidas. Outros robˆos tˆem comportamentos mais complexos, com algum tipo de planeamento e previs˜ao das consequˆencias das suas a¸c˜oes. Estes agentes usam o seu conhecimento do mundo (dado `a partida ou aprendido pelo mesmo) para decidir, a partir de um conjunto de algoritmos, que decis˜oes pretendem tomar. Os dois s˜ao interessantes, pois enquanto o primeiro tem baixo consumos computacionais, o segundo oferece solu¸c˜oes otimizadas.

(26)

(a) Nao da Aldebaran

Robotics [37]. (b) Aibo da Sony [29]. (c) Asimo da Honda [23].

(d) Big Dog da Boston Dy-namics para fins militares [18].

(e) Marsrover da NASA para uso em Marte [35].

(f) Robˆo da equipa CAM-BADA de futebol rob´otico da Universidade de Aveiro [14].

(g) Aspirador autom´atico Roomba da iRobot [25].

Figura 1.1: Exemplos de robˆos m´oveis e aut´onomos

1.1

Mapeamento e explora¸

ao em rob´

otica

Uma caracter´ıstica muito importante nos humanos ´e nossa no¸c˜ao do espa¸co, que nos permite deslocar em seguran¸ca e com objetivos, sendo capazes de alcan¸car locais espec´ıficos de forma eficiente. A nossa mem´oria permite-nos criar um mapa mental daquilo que nos rodeia, facilitando a nossa navega¸c˜ao.

Em rob´otica, agentes meramente reativos s˜ao capazes de navegar no mundo desviando-se de obst´aculos de forma relativamente segura. Mas quando se pretende uma busca e salvamento

(27)

ou uma cobertura de toda a ´area, torna-se dif´ıcil assegurar o sucesso da tarefa sem uma no¸c˜ao do espa¸co que o rodeia. Por isso ´e importante dotar um agente da capacidade de mapeamento, j´a que nem sempre se tem acesso ao mapa `a partida. Obt´em-se assim um agente mais eficaz e mais aut´onomo, capaz de tomar decis˜oes mais razo´aveis quanto ao seu trajeto, tanto para evitar obst´aculos como para cumprir objetivos.

O processo de mapeamento passa pela recolha de informa¸c˜ao do espa¸co e marca¸c˜ao dessa informa¸c˜ao de uma forma percet´ıvel para humanos, ou para o agente. A recolha e o proces-samento s˜ao feitos pelo robˆo, sem que lhe seja indicado `a partida qualquer informa¸c˜ao sobre a zona a mapear. Torna-se um desafio, pois o agente navega “`as cegas” pela ´area pretendida, tendo de se precaver de obst´aculos ao mesmo tempo que recolhe dados. A exatid˜ao do mapa ´e outro ponto de desafio, uma vez que as leituras obtidas pelo robˆo tˆem ru´ıdo. Devem ser, portanto, desenvolvidos m´etodos adequados a cada aplica¸c˜ao, de acordo com as especifica¸c˜oes de cada caso.

Ao mapear uma ´area desconhecida pode-se usar um agente cujo comportamento ´e sim-plesmente evitar obst´aculos. Garante-se com isto uma navega¸c˜ao minimamente segura, mas n˜ao ´e garantido que o robˆo seja capaz de obter toda a informa¸c˜ao necess´aria para a constru¸c˜ao do mapa. Sendo o agente meramente reativo, n˜ao possui a capacidade de decidir explorar zonas ainda n˜ao explorados. Por isso mesmo, deve haver um algoritmo de explora¸c˜ao aliado a um bom algoritmo de mapeamento. Este leva o robˆo a realizar uma navega¸c˜ao mais eficiente, conduzindo-o a zonas por explorar.

A explora¸c˜ao em rob´otica permite ao robˆo navegar de uma forma estrat´egica. Essa navega¸c˜ao pode ter como objetivo a pesquisa de objetos ou locais ou a cobertura de toda da ´area. O algoritmo de explora¸c˜ao garante que o robˆo se desloca com o intuito de desco-brir novos espa¸cos que ainda n˜ao foram visitados. A explora¸c˜ao ´e muito usada quando se pretende fazer mapeamento, uma vez que garante (se bem implementado) a obten¸c˜ao de um mapa completo da ´area pretendida.

O processo de mapeamento pode, por vezes, estar aliado a um processo de localiza¸c˜ao, caso n˜ao haja conhecimento da posi¸c˜ao do robˆo. Quando ´e realizado o mapeamento em simultˆaneo com a localiza¸c˜ao, d´a-se o nome de SLAM ao processo (Simultaneous Localization and Mapping ). Como se pode calcular, nestes casos o mapeamento torna-se um desafio maior, j´a que n˜ao h´a certezas da localiza¸c˜ao do robˆo e, consequentemente, dos obst´aculos.

1.2

Objetivos

Este trabalho tem como finalidade o estudo de v´arios tipos de algoritmo de mapeamento e explora¸c˜ao. Ser˜ao abordados v´arios algoritmos, com diferentes tipos de aplica¸c˜ao. A escolha de um algoritmo apropriado vai depender das caracter´ısticas do agente em que se pretende implementar o mesmo e das exigˆencias de performance que se esperam.

Para al´em do referido estudo, ser˜ao tamb´em implementados algoritmos de mapeamento e explora¸c˜ao. Atrav´es da implementa¸c˜ao destes algoritmos ser´a poss´ıvel analisar os resultados e tirar conclus˜oes, assim como entender os maiores desafios que h´a em dotar um robˆo com estes algoritmos. O algoritmo de mapeamento implementado ´e uma adapta¸c˜ao do algoritmo do YAM [36] (Sec¸c˜ao 2.2.10) e o algoritmo de explora¸c˜ao ´e uma adapta¸c˜ao do algoritmo baseado em explora¸c˜ao de fronteiras [38] (Sec¸c˜ao 2.2.10). Ser´a usada a plataforma de sim-ula¸c˜ao do concurso Ciber-Rato [1] (Sec¸c˜ao 4.1) para testar os algoritmos. Pretende-se mapear os labirintos do concurso, da forma mais eficiente poss´ıvel, sendo efetuados testes com

(28)

difer-entes parˆametros nos algoritmos, tentando encontrar os mais apropriados `as necessidades do trabalho.

Para a implementa¸c˜ao dos algoritmos, ser´a desenvolvido um agente rob´otico que, numa primeira fase, ir´a agir como um agente reativo, para efeitos de mapeamento, e que ir´a evoluir para um agente capaz de planear trajet´orias, atrav´es do algoritmo de explora¸c˜ao.

1.3

Estrutura

Esta disserta¸c˜ao encontra-se dividida em seis cap´ıtulos. Os Cap´ıtulos 2 e 3 descrevem alguns algoritmo de mapeamento e explora¸c˜ao, respetivamente. O Cap´ıtulo 4 descreve a implementa¸c˜ao do algoritmo YAM e do algoritmo baseado em explora¸c˜ao de fronteiras, sendo os resultados apresentados no Cap´ıtulo 5. O Cap´ıtulo final apresenta as conclus˜oes do trabalho e tamb´em refere algum trabalho futuro que possa ser desenvolvido no ˆambito deste assunto.

(29)
(30)

Cap´ıtulo 2

ecnicas de Mapeamento

O processo de mapeamento em rob´otica come¸ca pela recolha de informa¸c˜ao do espa¸co em que o agente se encontra e do estado do pr´oprio agente. Esta recolha ´e feita por sensores que devolvam, por exemplo, a posi¸c˜ao do robˆo e a posi¸c˜ao de obst´aculos em rela¸c˜ao ao mesmo. Com esta informa¸c˜ao ´e poss´ıvel criar um mapa com as caracter´ısticas de interesse.

A representa¸c˜ao dos mapas gerados varia conforme o tipo de aplica¸c˜ao que se pretende. Utilizando por exemplo uma grelha de c´elulas, com o aux´ılio de coordenadas cartesianas, obt´em-se um mapa com uma resolu¸c˜ao ajust´avel ao tamanho das c´elulas. E uma forma´ simples, que permite a visualiza¸c˜ao e perce¸c˜ao do mapa de uma forma direta. O uso de mapas topol´ogicos, como aqueles usados nos metros, permitem representar tro¸cos cont´ınuos, curvas, cruzamentos e marcos que permitem uma perce¸c˜ao simplificada do mundo, reduzida `

as suas caracter´ısticas de interesse. Existem tamb´em algoritmos que registam a forma de objetos e marcam as suas posi¸c˜oes no espa¸co, fazendo uma modela¸c˜ao dos objetos.

Para se gerar um bom mapa ´e necess´ario saber a localiza¸c˜ao do robˆo e a localiza¸c˜ao dos obst´aculos que o rodeiam. A localiza¸c˜ao do agente pode ser obtida a partir de sensores (como GPS), ou pode ser necess´ario localizar o agente no mapa gerado em simultˆaneo (SLAM). Tendo a localiza¸c˜ao do robˆo, os obst´aculos s˜ao marcados a partir da sua posi¸c˜ao com o uso da informa¸c˜ao de sensores como laser-range-finders, sensores de distˆancia ou sensores de colis˜ao, entre outros.

Esta ´area da rob´otica tem vindo a ser muito explorada. Desde uso militar ao uso dom´estico, a sua aplica¸c˜ao ´e muito vasta e tem despertado o interesse de muitos investigadores. Seguem-se alguns exemplos que tˆem vindo a ser estudados.

2.1

Conceitos

Esta sec¸c˜ao serve de suporte para alguns dos conceitos que ser˜ao abordados no decorrer deste cap´ıtulo. O objetivo ´e facilitar a leitura e compreen¸c˜ao dos assuntos a abordar.

2.1.1 Conceito de confian¸ca

A confian¸ca [41] ´e uma medida de probabilidade muito ´util em rob´otica. Esta ajuda a representar o conhecimento interno do robˆo sobre o estado do mundo.

Em termos probabil´ısticos, a confian¸ca de um dado xt´e denotada por bel(xt) que

(31)

S˜ao usadas duas nota¸c˜oes para a confian¸ca: bel(xt) (Equa¸c˜ao (2.1)) e bel(xt) (Equa¸c˜ao

(2.2)) [41].

bel(xt) = p(xt|z1:t, u1:t) (2.1)

bel(xt) = p(xt|z1:t−1, u1:t) (2.2)

bel(xt) representa uma distribui¸c˜ao de probabilidade sob xt, tendo em considera¸c˜ao todas

as a¸c˜oes de controlo u1:t e todas as medidas z1:tat´e ao momento t. J´a bel(xt) faz uma previs˜ao

sobre o estado xt, com a informa¸c˜ao de controlo u1:t at´e ao momento t, mas com as medidas

z1:t−1 apenas at´e ao instante anterior t − 1.

2.1.2 Regra de Bayes

A regra de Bayes permite relacionar p(x|y) com p(y|x) [42, 41]. Se se pretende inferir uma quantidade x a partir de y, ent˜ao p(x) ser´a denominada de probabilidade `a priori e p(x|y) de probabilidade `a posteriori. No contexto do mapeamento em rob´otica, x ser´a o mapa a obter e y qualquer tipo de informa¸c˜ao que o permita realizar, como por exemplo medidas de sensores ou a¸c˜oes executadas (distˆancia percorrida, etc). Esta regra, tal como a Equa¸c˜ao (2.3) indica, permite obter o mapa x a partir da informa¸c˜ao y - p(x|y) - atrav´es da probabilidade inversa p(y|x) que traduz a probabilidade de observar a informa¸c˜ao y sob a hip´otese de mapa x. Como o fator 1/p(y) da referida equa¸c˜ao ´e independente de x, este ser´a denominado de η. A Equa¸c˜ao (2.3) passa a tomar a forma da Equa¸c˜ao (2.4).

p(x|d) = p(d|x)p(x)

p(d) (2.3)

p(x|d) = ηp(d|x)p(x) (2.4)

2.1.3 Distribui¸c˜ao Normal de Probabilidade

Os casos que ser˜ao abordados nas sec¸c˜oes seguintes lidam com espa¸cos cont´ınuos. Estes espa¸cos s˜ao caracterizados por vari´aveis aleat´orias de valores de uma gama cont´ınua. Assume-se para algumas das situa¸c˜oes que estas vari´aveis tˆem uma distribui¸c˜ao normal de probabili-dade (Gaussiana).

A distribui¸c˜ao Gaussiana ´e uma distribui¸c˜ao probabil´ıstica com uma fun¸c˜ao de densidade de probabilidade na forma de um sino [3, 7] (ver Figura 2.1). Esta pode ser completamente definida pelas seus parˆametros µ (m´edia) e σ (desvio padr˜ao). A partir destes valores ´e poss´ıvel saber qualquer probabilidade da distribui¸c˜ao atrav´es da Equa¸c˜ao (2.5), em que σ2 ´e a variˆancia. A m´edia, ou valor esperado, corresponde ao ponto de maior concentra¸c˜ao dos dados da distribui¸c˜ao [6]. A variˆancia [10] diz respeito `a dispers˜ao estat´ıstica, ou seja, serve para medir qu˜ao longe se encontram os pontos da distribui¸c˜ao em rela¸c˜ao ao valor m´edio. O desvio padr˜ao [2], que ´e a raiz quadrada da variˆancia, traduz a mesma dispers˜ao mas numa escala equivalente `a dos valores da dispers˜ao.

p(x) = √ 1 2πσ2e

−(x−µ)2

(32)

Figura 2.1: Distribui¸c˜ao Normal de Probabilidade (adaptado de [3]).

2.2

ecnicas

Nesta sec¸c˜ao s˜ao analisados alguns algoritmos de mapeamento. Estes podem variar na forma como representam o mundo. Alguns com grelhas de c´elulas de tamanhos e formas iguais, ou c´elulas com formas adaptadas ao meio, outros com a utiliza¸c˜ao de mapas topol´ogicos, semelhantes aos dos metros, onde as diferentes zonas s˜ao marcadas com pontos e a rela¸c˜ao entre zonas (os caminhos) s˜ao marcados com arcos. Existem tamb´em algoritmos que criam modelos de objetos.

Mais diferen¸cas s˜ao encontradas na necessidades de certos algoritmos englobarem a esti-mativa da localiza¸c˜ao do robˆo juntamente com o processo de mapeamento (SLAM).

Enquanto que alguns dos algoritmo se baseiam em probabilidades `a posteriori para a marca¸c˜ao da probabilidade de ocupa¸c˜ao das c´elulas nos mapas, outros baseiam-se no conceito de “m´axima verosimilhan¸ca”, ou at´e numa conjuga¸c˜ao das duas abordagens. Os algoritmo abordados s˜ao essencialmente para implementa¸c˜ao em ambientes est´aticos, podendo alguns ser usados em ambientes dinˆamicos.

2.2.1 Filtro de Bayes

O filtro de Bayes [42, 41, 26] ´e uma extens˜ao da regra de Bayes para estima¸c˜ao temporal que calcula a confian¸ca, que nada mais ´e do que uma probabilidade `a posteriori. Faz isso a partir das medidas recolhidas pelos sensores (z) e da informa¸c˜ao de controlo(u).

Uma sec¸c˜ao do algoritmo do filtro de Bayes ´e dada pelo algoritmo (1), denominando-se por update rule. Este trecho de algoritmo ´e aplicado recursivamente para o c´alculo de bel(mt)

que ´e obtido a partir de bel(mt−1). Na linha 3 do Algoritmo 1 ´e feita a previs˜ao (Equa¸c˜ao

(2.2)) onde ´e calculada a confian¸ca de xtcom base em xt−1e na informa¸c˜ao de controlo. Esta

bel ´e calculada pelo somat´orio do produto da probabilidade `a priori de xt−1 (bel(xt−1) com

a probabilidade do controlo ut influenciar a transi¸c˜ao de xt−1 para xt (p(xt| ut, xt−1)). Na

linha 4 ´e feita a atualiza¸c˜ao da medida (Equa¸c˜ao (2.1)), sendo multiplicada a confian¸ca bel, calculada anteriormente, com a probabilidade da medida ztter sido observada com a condi¸c˜ao

(33)

do mapa xt. η ser´a a constante de normaliza¸c˜ao.

(1) Algoritmo BayesFilter ( bel(xt−1) , ut, zt):

(2) for for all xt do

(3) bel(xt) = R p(xt| ut, xt−1)bel(xt−1) dx

(4) bel(xt) = η p(zt| xt)bel(xt)

end

(5) return bel(xt)

Algorithm 1: Trecho de algoritmo do filtro de Bayes.

2.2.2 Filtro Gaussiano

Os filtros Gaussianos [41] foram os primeiros a implementar o filtro de Bayes em espa¸co cont´ınuo. Nestes, a confian¸ca ´e representada por distribui¸c˜oes normais de multi-vari´aveis, caracterizadas pela m´edia µ e covariˆancia Σ, cuja defini¸c˜ao matem´atica ´e dada por (2.6). Sendo uma distribui¸c˜ao Gaussiana unimodal, ou seja, possui apenas um m´aximo, esta pode n˜ao ser adequada a certas situa¸c˜oes em rob´otica, uma vez que podem coexistir v´arias hip´oteses plaus´ıveis ao inv´es de uma solu¸c˜ao isolada.

p(x) = det  1 √ 2πΣ  e−(x−µ)T (x−µ)2Σ (2.6)

Este tipo de filtro permite uma atualiza¸c˜ao constante de, por exemplo, a posi¸c˜ao do robˆo de acordo com os dados obtidos no momento. Esta atualiza¸c˜ao ´e feita com base na distribui¸c˜ao de probabilidade descrita.

2.2.3 Filtro de Kalman

O filtro de Kalman (FK) [42, 27, 32] foi inventado por Rudolph Emil Kalman em 1950, sendo este um filtro de Bayes que representa probabilidades `a posteriori com Gaussianas. Este permite filtrar e prever sistemas lineares em estados cont´ınuos, n˜ao funcionando para sistemas discretos.

Para um estado ser linear, a posi¸c˜ao do robˆo e o mapa no instante t tˆem de depender linearmente da posi¸c˜ao e do mapa anteriores (t − 1) e tamb´em do controlo em t. Tendo um mapa est´atico a linearidade assegura-se para o mapa. O mesmo j´a n˜ao acontece para a posi¸c˜ao do robˆo, uma vez que esta depende n˜ao linearmente da posi¸c˜ao anterior (s(t−1)) e do

controlo ut. Por isso se usa muitas vezes uma vers˜ao alterada deste filtro, `a qual se d´a o nome

de Filtro de Kalman Estendido (FKE) [32]. O FKE aproxima o modelo de movimenta¸c˜ao do robˆo por uma fun¸c˜ao linear, obtida por uma expans˜ao de s´erie de Taylor de primeira ordem. Desta forma resolve-se o problema da n˜ao linearidade da posi¸c˜ao do robˆo.

Para garantir que as probabilidades `a posteriori s˜ao Gaussianas [41], tem de se verificar o seguinte:

1. Dado que se conhece a informa¸c˜ao no presente, a informa¸c˜ao futura deve ser indepen-dente da informa¸c˜ao passada. Esta ´e a chamada “Markov Assumption” ou “Complete State Assumption”.

2. O pr´oximo estado de probabilidade tem de ser linear e com adi¸c˜ao de ru´ıdo Gaussiano, tal como se expressa na Equa¸c˜ao (2.7), em que At e Bt s˜ao matrizes, que ao

(34)

multi-plicarem por xt e ut, respetivamente, garantem a linearidade no filtro. εt ´e um vetor

Gaussiano aleat´orio, com m´edia zero e covariˆancia Rt, que modela o ru´ıdo.

xt= Atxt−1+ Btut+ εt (2.7)

3. Tamb´em a probabilidade da medida tem de ser linear e com adi¸c˜ao de ru´ıdo Gaussiano. A Equa¸c˜ao (2.8) expressa isso mesmo: Ct´e uma matriz e δt´e, `a semelhan¸ca de εt, uma

distribui¸c˜ao normal com m´edia zero e covariˆancia Qt.

zt= Ctxt+ δt (2.8)

4. Por fim, a primeira confian¸ca bel(0) tem de ser normalmente distribu´ıda. Tendo portanto uma forma familiar como se apresenta na Equa¸c˜ao (2.9).

bel(x0) = p(x0) = det  1 √ 2πΣ0  e−(x0−µ0) T (x0−µ0) 2Σ0 (2.9)

Este m´etodo sofre de algumas limita¸c˜oes. O filtro de Kalman n˜ao ´e capaz de resolver o problema de correspondˆencia, que consiste em associar medidas individuais dos sensores a car-acter´ısticas do mapa. Isto acontece pois, no caso de existirem duas carcar-acter´ısticas idˆenticas, estas gerariam uma distribui¸c˜ao multimodal quanto `a posi¸c˜ao do robˆo, que estaria em dis-crepˆancia com a suposi¸c˜ao do KF - com adi¸c˜ao de ru´ıdo Gaussiano unimodal.

Por esta raz˜ao, o filtro de Kalman tem um melhor desempenho se se recorrer ao uso de landmarks (etiquetas) - um conjunto de marcos no mapa que s˜ao facilmente distingu´ıveis pelas suas caracter´ısticas e tamb´em pelas suas localiza¸c˜oes. O seu uso tem, no entanto, o inconveniente de tornar o mapa pobre em pormenores geom´etricos e limita tamb´em o filtro a ambientes est´aticos, sendo que ´e dif´ıcil adaptar um ambiente dinˆamico a um sistema de landmarks.

Trata-se de um m´etodo incremental e executado em tempo real da aquisi¸c˜ao da informa¸c˜ao, que n˜ao necessita de informa¸c˜ao externa quanto `a posi¸c˜ao do robˆo, uma vez que pode executar esta mesma fun¸c˜ao em simultˆaneo com o mapeamento (SLAM). Permite o mapeamento de pequenas ´areas e de ambientes c´ıclicos j´a que a informa¸c˜ao registada aceita atualiza¸c˜oes.

2.2.4 Algoritmo de Lu/Milios

Esta t´ecnica [42, 30] de mapeamento (e localiza¸c˜ao - SLAM) destina-se especificamente `a aplica¸c˜ao em agentes que possuam “laser range finders”. Trata-se de um algoritmo iterativo que se divide em duas fases de estima¸c˜ao: primeiro usa o filtro de Kalman para o c´alculo da probabilidade `a posteriori sob os mapas e, de seguida, as medidas do laser, que foram repetidas v´arias vezes, s˜ao associadas. Esta associa¸c˜ao ´e feita pelo emparelhamento de medidas que se considerem pr´oximas, ou seja, pela associa¸c˜ao da “m´axima verosimilhan¸ca”.

O facto de ser estimada esta associa¸c˜ao meramente pela sua semelhan¸ca, torna o al-goritmo limitado. Por outro lado, desta forma, o alal-goritmo torna-se capaz de lidar com correspondˆencias erradas, pois, iterando as duas fases, acaba por conseguir corrigir erros. As suas limita¸c˜oes prendem-se com o facto de n˜ao ser poss´ıvel mapear ambientes dinˆamicos ou c´ıclicos e de n˜ao suportar erros na localiza¸c˜ao inicial.

(35)

Devido `a necessidade de obten¸c˜ao de v´arios varrimentos da mesma ´area para determinar as correspondˆencias mais semelhantes, este algoritmo n˜ao pode ser processado em tempo real, ou seja, as medidas s˜ao retiradas e s´o posteriormente ser˜ao todas processadas pelo Lu/Milios. Dado que recolhe a informa¸c˜ao do ambiente a partir de “laser range finders” e usa estes dados “puros”, sem ter de recorrer a landmarks, os mapas gerados por este algoritmo podem ser bastante detalhados.

2.2.5 Expectation Maximization

Baseado no filtro de Kalman e no conceito anterior da “m´axima verosimilhan¸ca”, surge o algoritmo estat´ıstico “Expectation Maximization” (EM) [42, 33]. Trata-se de um m´etodo n˜ao incremental de SLAM que necessita de percorrer a informa¸c˜ao v´arias vezes, iterativa-mente, gerando v´arios mapas, em busca do mais prov´avel - “hill climbing”. E, por isso,´ obrigatoriamente um algoritmo que opera offline.

Este m´etodo de mapeamento divide-se me duas fases: a fase de estima¸c˜ao (E-step), onde ´e feito o c´alculo da probabilidade `a posteriori sob a posi¸c˜ao do robˆo, seguido da fase de maximiza¸c˜ao (M-step), que calcula o mapa mais prov´avel dada a posi¸c˜ao obtida. Em termos matem´aticos, a equa¸c˜ao deste m´etodo ´e a apresentada em (2.10), sendo zt a informa¸c˜ao dos

sensores, st o caminho e x(i+1) o mapa no momento i + 1. Esta equa¸c˜ao deriva do filtro de

Bayes, com alguns pressupostos.

x(i+1) = argmax x

Est[log p(zt, st| x) | xi, zt] (2.10)

Como se pode imaginar, este ´e um m´etodo lento, mas com bom desempenho. ´E capaz de suportar mapas de grandes dimens˜oes e at´e c´ıclicos. Uma caracter´ısticas importante ´e o facto de resolver o problema da correspondˆencia de forma muito eficiente.

2.2.6 Incremental Maximum Likelihood Method (Incremental ML)

O incremental ML [42, 20, 34, 44, 45] deve a sua fama `a sua simplicidade. Este m´etodo cria um s´o mapa de forma incremental, em tempo real, sem lhe conferir qualquer tipo de incerteza, sendo a informa¸c˜ao uma vez registada jamais inalter´avel. Tanto o mapa como a posi¸c˜ao s˜ao calculados (SLAM) de forma semelhante ao M-step do EM, a partir da m´axima verosimilhan¸ca.

Trata-se de um algoritmo r´apido, mas limitado a ambientes est´aticos e sem ciclos.

2.2.7 H´ıbridos

Tal como o algoritmo Incremental ML, os algoritmos h´ıbridos [42, 21, 39, 40] calculam os seus mapas com base na m´axima verosimilhan¸ca. Contudo, com a melhoria de n˜ao gerar informa¸c˜ao est´atica, conferindo ao mapa uma no¸c˜ao de incerteza. Esta incerteza ´e obtida pela aplica¸c˜ao de uma vers˜ao do filtro de Bayes `as posi¸c˜oes do robˆo, gerando uma distribui¸c˜ao de probabilidades `a posteriori sob as ditas posi¸c˜oes.

Tamb´em como o anterior, os h´ıbridos mantˆem apenas um mapa, mas agora com a possi-bilidade de corre¸c˜ao de informa¸c˜ao. Em contrapartida, a decis˜ao de alterar a informa¸c˜ao pode resultar num desastre, uma vez poder surgir a necessidade de tomar decis˜oes em situa¸c˜oes demasiado complexas, como em ambientes com v´arios ciclos. Por esta raz˜ao, embora funcione

(36)

com mapas c´ıclicos, este algoritmo n˜ao ser´a o mais indicado, n˜ao funcionando tamb´em com ambientes dinˆamicos.

2.2.8 Occupancy Grid Maps

Tal como o nome indica, os mapas gerados por este algoritmo [42, 19, 20, 34] s˜ao rep-resentados por uma grelha. Esta grelha ´e composta por c´elulas que representam posi¸c˜oes no espa¸co, com o uso de coordenadas cartesianas. A cada c´elula ´e atribu´ıdo o seu respetivo estado de ocupa¸c˜ao: livre ou ocupado. Este estado ´e obtido com o uso do filtro de Bayes bin´ario, que calcula a probabilidade `a posteriori sobre a ocupa¸c˜ao de cada c´elula. Gera-se assim um mapa probabil´ısticos.

Ao contrario dos anteriores, este algoritmo n˜ao ´e capaz de detetar a localiza¸c˜ao do robˆo, sendo necess´ario que esta lhe seja fornecida `a partida.

Trata-se de um algoritmo recursivo, que permite a atualiza¸c˜ao incremental de cada c´elula individualmente. Tem uma boa convergˆencia mas ´e limitado em ambientes dinˆamicos.

2.2.9 Dogma

Muito resumidamente, este algoritmo [42] funciona por aprendizagem de modelos de ob-jetos, baseando-se no algoritmo anterior para a obten¸c˜ao do mapa. Tal como o anterior, necessita que a localiza¸c˜ao do robˆo seja fornecida.

Este algoritmo admite ambientes dinˆamicos, mas sofre com o problema de correspondˆencia, como seria de esperar. Esta limita¸c˜ao pode ser atenuada usando o mutual exclusivity constrait, que determina que um objeto s´o pode ser visto uma vez no mesmo mapa, durante a otimiza¸c˜ao.

2.2.10 YAM

O trabalho YAM (Yet Another Robot ) [36] foi desenvolvido em 1996 por Pedro Ribeiro, finalista da Licenciatura em Ciˆencias de Computadores da F.C.U.P. (Faculdade de Ciˆencias da Universidade do Porto). Este consistiu no desenvolvimento de um agente virtual para a participa¸c˜ao no concurso Ciber-Rato (descrito em maior detalhe na Sec¸c˜ao 4.1). Trata-se de um concurso de busca e salvamento, em que o robˆo ´e colocado num labirinto, sem qualquer conhecimento pr´evio deste, tendo de encontrar a meta e voltar ao ponto de partida. Uma parte muito importante do trabalho YAM ´e a implementa¸c˜ao de um algoritmo de mapeamento, que permite explorar mais facilmente o espa¸co e tamb´em facilita ao robˆo voltar `a partida com mais facilidade.

O agente fornecido pela plataforma do concurso tem trˆes sensores de distˆancia (`a direita, `

a esquerda e em frente como se apresenta na Figura 2.2) que devolvem valores inversamente proporcionais `a distˆancia do objeto mais pr´oximo. Ou seja, se o obst´aculo mais pr´oximo se encontrar a uma distˆancia de d do sensor, ent˜ao este emitir´a um valor de s = 1/d. O agente tem ainda outros sensores, mas estes s˜ao os que realmente interessam para a aplica¸c˜ao. Os sensores de obst´aculos tˆem um raio de abrangˆencia de 60◦, tendo uma zona de incidˆencia semelhante `a apresentada pelas zonas a azul na Figura 2.2.

A marca¸c˜ao de obst´aculos a partir deste tipo de sensores n˜ao ´e muito exata, devido ao ru´ıdo associado e `a incerteza na localiza¸c˜ao dos obst´aculos detetados. Como tal, no trabalho YAM foi desenvolvido um algoritmo de mapeamento que consiste em aumentar ou diminuir a probabilidade de ocupa¸c˜ao dos pontos pertencentes `a zona de incidˆencia dos sensores. A ideia ´e ent˜ao dividir esta zona de incidˆencia por partes, definindo as que se pensam estar

(37)

livres ou ocupadas. Tomando como exemplo a imagem da Figura 2.3 onde o sensor deteta um obst´aculo na parte vermelha, ´e f´acil perceber que todos os pontos at´e ao limite dessa linha vermelha deveriam estar livres e os que se encontram marcados pela mesma deveriam estar ocupados. Como n˜ao h´a certeza absoluta quanto `a leitura do sensor, o algoritmo usa trˆes zonas de marca¸c˜ao, como indicado na Figura 2.4. Segundo este modelo, se o sensor detetar um obst´aculo `a distˆancia 1/s (linha vermelha da Figura 2.4) e tendo em conta que a leitura tem ru´ıdo Gaussiano, ent˜ao, h´a uma probabilidade baixa do obst´aculo estar para l´a da distˆancia de 1/(s + ru´ıdo). A zona A ´e por isso marcada com probabilidade m´ınima de ter um obst´aculo. Na zona B, que corresponde `a distˆancia at´e 1/s, a probabilidade de ter obst´aculo ´e reduzida em rela¸c˜ao ao valor l´a armazenado, por um valor proporcional `a distˆancia 1/s. Por fim, na zona C, que vai at´e `a distˆancia de 1/s + largura da parede, a probabilidade `a aumentada com um valor tamb´em proporcional `a distˆancia 1/s. Para evitar falsas marca¸c˜oes, a marca¸c˜ao na zona C aumenta quatro vezes menos a probabilidade de ter parede em rela¸c˜ao `

a diminui¸c˜ao de probabilidade na zona B. A zona de passagem do corpo do robˆo ´e marcado com a mesma probabilidade da zona A.

A marca¸c˜ao do mapa desta forma, confere uma certa incerteza ao mapa, o que permite a corre¸c˜ao de erros de marca¸c˜ao. ´E um algoritmo simples que se encontra bem adaptado ao problema, conseguindo contornar as suas limita¸c˜oes.

Figura 2.2: Corpo do agente e os seus sensores de obst´aculos.

Figura 2.3: Dete¸c˜ao de um obst´aculo.

2.2.11 Mapeamento de um ambiente dinˆamico

Dirk H¨ahnel et al. desenvolveram um algoritmo de mapeamento [24] para ambientes dinˆamicos, baseado no algoritmo de EM (descrito na Sec¸c˜ao 2.2.5). Estando o mapeamento

(38)

Figura 2.4: Diferentes ´areas de marca¸c˜ao dos sensores segundo o algoritmo YAM.

j´a sujeito a erros de medi¸c˜oes, no caso de ambientes dinˆamicos a situa¸c˜ao ´e ainda mais agravada. O que este algoritmo tenta fazer ´e a supress˜ao dos objetos dinˆamicos para a obten¸c˜ao do modelo est´atico do mapa.

Ao contr´ario de muitos dos algoritmos que lidam com ambientes dinˆamicos e usam mode-los predefinidos para a identifica¸c˜ao de objetos dinˆamicos, o algoritmo em discuss˜ao considera cada medida individualmente e estima a sua probabilidade condicional para saber se a in-forma¸c˜ao foi ou n˜ao gerada por um objeto dinˆamico. Este c´alculo corresponde `a primeira fase do EM (fase de estima¸c˜ao), sendo na segunda fase determinada a posi¸c˜ao do robˆo e o mapa (fase de maximiza¸c˜ao). Este processo ´e efetuado iterativamente at´e que n˜ao possam haver mais melhoramentos.

O problema de identificar aspetos dinˆamicos no mapa ´e referido como o problema de dete¸c˜ao de discrepˆancias, ou seja, de informa¸c˜ao que est´a longe do que seria previsto. Para que as discrepˆancias possam ser identificadas ´e necess´ario considerar as medidas como um todo, interpret´a-las e process´a-las de forma a obter uma representa¸c˜ao global (um mapa). S´o depois se podem identificar medidas individuais como sendo ou n˜ao discrepˆancias.

Seja z = {z1, ..., zT} a sequˆencia de informa¸c˜ao obtida dos sensores, em que cada zt

corresponde a um conjunto de informa¸c˜ao, como acontece no uso de “laser-range-finders” (zt = zt1, ..., ztN); m o modelo gerado a partir de z e filtrado para n˜ao conter objetos

dinˆamicos; ct,n uma vari´avel bin´aria que indica se a informa¸c˜ao zt,ncorresponde a um objeto

est´atico (ct,n = 1) ou dinˆamico (ct,n = 0); st a posi¸c˜ao do robˆo e f a fun¸c˜ao que retorna,

para cada posi¸c˜ao do robˆo, o ´ındice do feixe do laser k e o valor do mesmo n (f (st, n, k)).

A probabilidade da medida zt,n, dados ct,n e o mapa x ´e ent˜ao calculada da seguinte forma,

para o caso do sensor detetar um obst´aculo:

p (zt,n| ct,n, st, x) =xf (st,n,zt,n) ct,n1 − x f (st,n,zt,n) (1−ct,n) zt,n−1 Y k=0 1 − xf (st,n,k) (2.11)

A primeira parcela da equa¸c˜ao diz respeito aos objetos est´aticos (ct,n= 1) enquanto que a

segunda diz respeito a objetos dinˆamicos (ct,n = 0). A ´ultima parte da equa¸c˜ao faz o c´alculo

da probabilidade como sendo o produto das probabilidades dos pontos que o sensor abrangeu at´e atingir o obst´aculo.

(39)

Trata-se de um algoritmo bastante interessante. Baseia-se estritamente em probabilidades, n˜ao necessitando da cria¸c˜ao de modelos de objetos, como muitos dos algoritmo usados em ambientes dinˆamicos. Esta abordagem torna o algoritmo numa importante referˆencia em mapeamento rob´otico.

2.2.12 Mapas Cognitivos

O algoritmo de mapeamento desenvolvido dor Angelo Arleo et al. [11] integra o paradigma geom´etrico com o topol´ogico. No paradigma geom´etrico os obst´aculos s˜ao modelados de acordo com a sua forma e com o aux´ılio de uma grelha de representa¸c˜ao. Embora as grelhas sejam f´aceis de aprender e manter, estas est˜ao sujeitas a erros provenientes da localiza¸c˜ao do robˆo e da distˆancia dos objetos ao mesmo. S˜ao tamb´em dispendiosas em quest˜oes de mem´oria e tempo utilizados. Por outro lado, o paradigma topol´ogico baseia-se numa representa¸c˜ao qualitativa, sendo o mapa representado por n´os e arcos. Os n´os dizem respeito `as diferentes ´

areas (landmarks) e os arcos representam as rela¸c˜oes espaciais entre n´os. Trata-se de um modelo mais compacto e por isso usa menos mem´oria e tamb´em menos tempo para a sua atualiza¸c˜ao. Como armazena rela¸c˜oes entre ´areas, vem facilitar o processo de planeamento de trajet´orias.

Este algoritmo baseia-se na conjuga¸c˜ao dos dois paradigmas, criando assim um modelo de parti¸c˜oes de resolu¸c˜ao vari´avel. Segundo este modelo, o mundo ´e dividido em sub-´areas de tamanhos diferentes, de acordo com as necessidades. Desta forma controla-se a resolu¸c˜ao do mapa, sendo dado mais pormenor apenas em ´areas onde a navega¸c˜ao do robˆo se considere mais complexa, devido `a existˆencia de obst´aculos.

A modela¸c˜ao de um objeto ´e feita contornando o mesmo para definir os seus cantos. Ser´a a partir destes que se vai particionar mais a zona geogr´afica do objeto. Sempre que o agente encontra um novo objeto a resolu¸c˜ao da parti¸c˜ao em que se insere ´e aumentada. Dado como exemplo a zona da Figura 2.5a, assim que o robˆo define os cantos do objeto l´a inserido, tra¸ca linhas que conectem esses mesmos cantos `as retas perpendiculares mais pr´oximas que pertencem a outras parti¸c˜oes (Figura 2.5b).

Trata-se de um algoritmo on-line e incremental, para uso em ambientes dom´esticos. A sua capacidade de adapta¸c˜ao da resolu¸c˜ao do mapa ´as necessidades do mesmo torna-o muito eficiente em termo de processamento e uso de mem´oria.

(40)

(a) Parti¸c˜ao com resolu¸c˜ao de-sadequada.

(b) Aumento da resolu¸c˜ao da parti¸c˜ao para modela¸c˜ao do objeto.

Figura 2.5: Exemplo de aumento de resolu¸c˜ao de uma parti¸c˜ao [11].

2.3

Resumo

Este Cap´ıtulo tem como finalidade abranger um leque variado de algoritmos de mapea-mento, capazes de satisfazer diferentes necessidades, de acordo com a implementa¸c˜ao que se pretenda. Os algoritmos abordados variam desde os mais complexos e eficientes, como o Expectation Maximization (Sec¸c˜ao 2.2.5), aos mais simples e mais r´apidos, como ´e o caso do Incremental ML (Sec¸c˜ao 2.2.6). Tˆem por objetivo diferentes tipos de implementa¸c˜ao, de acordo com o tipo de ambiente a mapear, ou tamb´em com base nas caracter´ısticas do robˆo (tipos de sensores, capacidade de processamento, . . . ). Sendo todos capazes de mapear ambi-entes est´aticos, apenas alguns deles s˜ao capazes de funcionar em ambientes dinˆamicos (como o Dogma e o algoritmo de Dirk H., et al., nas Sec¸c˜oes 2.2.9 e 2.2.11, respetivamente). Certos algoritmos destinam-se a robˆos espec´ıficos, como o de Lu/Milios (Sec¸c˜ao 2.2.4), desenvolvido para o uso em robˆos com laser-range-finders, e o YAM, desenvolvido para o agente virtual do concurso Ciber-rato (ou similar).

Os mapas podem ser gerados de diferentes formas. A maioria dos algoritmos faz uso de grelhas de c´elulas, enquanto que outros podem usar modela¸c˜ao de objetos, que ´e o que acontece no algoritmo Dogma (Sec¸c˜ao 2.2.9), ou usam mapas cognitivos (Sec¸c˜ao 2.2.12) que dividem o mundo em parti¸c˜oes com diferentes tipos de resolu¸c˜ao.

Este estudo pretende servir como base `a fase de implementa¸c˜ao. ´E j´a poss´ıvel prever que este n˜ao ser´a o ´unico algoritmo necess´ario para a garantia de obten¸c˜ao de um mapa por completo. No Cap´ıtulo seguinte ser˜ao abordados algoritmo que complementar˜ao o de mapeamento.

(41)
(42)

Cap´ıtulo 3

Explora¸

ao

A capacidade de um agente para navegar de forma segura num ambiente com obst´aculos ´e garantida por algoritmos de navega¸c˜ao que permitem uma desloca¸c˜ao ponto-a-ponto, tendo um ponto de partida e de chegada definidos. O caminho escolhido por estes algoritmos ´e normalmente baseado no percurso mais curto, mais r´apido ou mais seguro (afastado de obst´aculos por exemplo), ou outro, conforme o objetivo da aplica¸c˜ao.

Mas e se o desafio for outro? E se o objetivo n˜ao for chegar o mais depressa poss´ıvel `a meta, mas sim percorrer todo o espa¸co em busca de objetos, ou limpar toda a ´area? Nestes casos, e noutros semelhantes, os algoritmos referidos n˜ao s˜ao suficientes. ´E necess´ario recorrer a algoritmos de explora¸c˜ao de cobertura completa.

Os algoritmos de explora¸c˜ao tˆem por objetivo percorrer todo o mapa em quest˜ao (cober-tura total), quer este seja dado `a partida ou n˜ao. Caso n˜ao se tenha acesso ao mapa do ambiente, pode, no entanto, nunca se conseguir uma solu¸c˜ao ´otima para a explora¸c˜ao de v´arios ambientes.

3.1

ecnicas

O trabalho de Howie Choset [15] prop˜oe uma divis˜ao dos algoritmos de explora¸c˜ao por quatro categorias:

• heur´ıstica; • aproximada;

• parcialmente aproximada; • decomposi¸c˜ao celular exata.

As diferen¸cas destas abordagens residem na forma como o mapa ´e ou n˜ao repartido e no(s) comportamento(s) de que ´e dotado o agente. No esquema da Figura 3.1 verifica-se que, embora um algoritmo heur´ıstico tenha baixo consumo de recursos, um algoritmo de decomposi¸c˜ao celular exata ´e menos suscet´ıvel a erros. Vejamos com mais detalhe o porquˆe.

Um algoritmo heur´ıstico baseia-se na “regra de ouro” que, embora n˜ao tenha qualquer garantia probabil´ıstica, ´e f´acil de implementar e requer baixos consumos computacionais. Balch [13] defende que estes gastos s˜ao cinco vezes mais baixos em compara¸c˜ao com algoritmos mais exatos. O(s) agente(s) envolvido(s) nesta explora¸c˜ao ´e(s˜ao) dotado(s) de um ou mais

(43)

Figura 3.1: Categorias de explora¸c˜ao.

comportamentos simples, como por exemplo seguir paredes. Como se trata de um algoritmo que n˜ao necessita de muita precis˜ao para funcionar, estes robˆos n˜ao necessitam de sensores exatos como GPS para determinar a sua posi¸c˜ao, o que torna o robˆo mais barato para esta aplica¸c˜ao.

H. Choset [15] d´a como exemplo para um algoritmo de decomposi¸c˜ao celular aproximada o algoritmo de Zelinsky [46], baseado na transformada de distˆancia (TD). Este divide o espa¸co livre em c´elulas iguais, `as quais s˜ao atribu´ıdos valores (conforme a TD) que levam o agente a percorrer o mapa por completo ou apenas ponto-a-ponto. Na Sec¸c˜ao 3.1.1 ser´a abordado este algoritmo com mais detalhe.

No caso de uma decomposi¸c˜ao parcialmente aproximada, a divis˜ao por c´elulas ´e feita pela divis˜ao do espa¸co livre em sec¸c˜oes com um das lados de tamanho fixo. Um bom exemplo [15] para este algoritmo ´e o proposto por Hert e Lumelsky [22, 31] que fixa a largura das c´elulas, fazendo os topos das mesmas adaptarem-se `as formas do mapa. A explora¸c˜ao ´e feita ent˜ao por zig-zag ao longo das linhas verticais definidas pelas ditas c´elulas e por um algoritmo de seguir paredes nos topos. Este algoritmo encontra-se mais detalhado na Sec¸c˜ao 3.1.4.

Por ´ultimo, numa decomposi¸c˜ao celular exata a grelha ´e constitu´ıda por c´elulas sem forma ou tamanho definido. A forma da c´elula deve ser tal que permita ao robˆo a sua cobertura com movimentos simples de ida e volta. O artigo [15] d´a como exemplo a decomposi¸c˜ao trapezoidal [28] cujas c´elulas s˜ao, como o nome indica, trap´ezios. Na Sec¸c˜ao 3.1.5 explicado o algoritmo.

3.1.1 Explora¸c˜ao Baseada na Transformada de Distˆancia (Zelinsky)

Num ambiente em que o espa¸co livre ´e representado por uma grelha de c´elulas do mesmo tamanho (normalmente igual ao do robˆo), facilmente se estabelece um caminho entre dois pontos, visitando c´elulas adjacentes. Mas o problema est´a em saber que caminho tomar.

A transformada de distˆancia [46] o que faz ´e atribuir a cada c´elula um valor proporcional `

a distˆancia da mesma `a c´elula alvo, contornando obst´aculos. Considere-se que a distˆancia entre c´elulas adjacentes ´e de d. Uma meta tem de ser estabelecida para que este algoritmo funcione e , partindo desta c´elula, marcam-se os seus 8-vizinhos (Figura 3.2) com o valor d. De seguida, os vizinhos das c´elulas com valor d s˜ao marcados com um valor 2d. Este processo repete-se para todo o espa¸co livre, ficando com um aspeto semelhante ao da Figura 3.3.

(44)

Tendo todas as c´elulas assinaladas desta forma ´e poss´ıvel determinar, quer o caminho mais curto entre a partida e a meta, quer um trajeto de cobertura de todas as c´elulas (dado que, uma vez visitada, uma c´elula est´a explorada por completo). Para tra¸car ent˜ao a trajet´oria da partida para a meta, procura-se nos vizinhos da partida a c´elula com menor valor e visita-se essa mesma c´elula. A partir desta, segue-se novamente para o vizinho de menor valor. Repete-se este procedimento at´e se alcan¸car a meta, obtendo assim um trajeto semelhante ao da Figura 3.4a.

Para a explora¸c˜ao completa das c´elulas o algoritmo j´a ´e diferente. Neste caso o trajeto come¸ca a ser tra¸cado pela visita `a c´elula vizinha da partida que tem maior valor e s´o se visitam c´elulas de valor mais baixo quando nos seus vizinhos n˜ao existir nenhuma c´elula com valor igual ou superior. A ideia aqui ´e visitar sempre o vizinho com maior valor at´e alcan¸car a meta, obtendo uma trajet´oria semelhante `a da Figura 3.4b.

´

E necess´ario ter em aten¸c˜ao que, se o tamanho das c´elulas exceder o tamanho do robˆo, tem de se garantir que o agente ao visitar a c´elula a vai cobrir por completo, quer seja com os seus sensores de obst´aculos ou com um comportamento complementar (que lhe permita, por exemplo, por movimentos de vai e vem, como na Figura 3.13, abranger toda a c´elula). Se, por outro lado, o tamanho das c´elulas for menor que o tamanho do robˆo, estas trajet´orias deixam de ser eficientes, j´a que v˜ao ser exploradas as mesmas c´elulas v´arias vezes, desnecessariamente.

Figura 3.2: Representa¸c˜ao dos 8-vizinhos de uma c´elula.

(45)

(a) Transformada de trajet´oria. 24

(b) Transformada de trajet´oria de cober-tura total.

Figura 3.4: Exemplos de aplica¸c˜ao da TD para obten¸c˜ao de trajet´orias.

Transformada de obst´aculos

Apesar de alcan¸car os objetivos pretendidos, a TD usada por si s´o n˜ao ´e cem por cento eficiente. No caso do trajeto tra¸cado pela transformada de trajet´oria, este n˜ao previne o robˆo de navegar demasiado perto dos obst´aculos, enquanto que no caso da explora¸c˜ao por cobertura total o robˆo ´e for¸cado a realizar demasiadas curvas que podiam ser evitadas. S˜ao dados como exemplos destes casos as Figuras 3.5a e 3.7, respetivamente. De ter em aten¸c˜ao que nestas Figuras a TD usa dois valores para d, sendo d = 3 para os vizinhos verticais e horizontais e d = 4 para os vizinhos que se encontram nas diagonais. O facto de d ser igual para os 8-vizinhos ou n˜ao, vai depender do grau de precis˜ao e exigˆencia que se pretende, pois embora a distˆancia na diagonal seja diferente da distˆancia na horizontal/vertical, isso pode n˜ao ser relevante para a aplica¸c˜ao em causa.

Uma solu¸c˜ao para ambas as aplica¸c˜oes ´e o uso de outra transformada, que usada em conjunto com a anterior melhora em muito o desempenho do robˆo. Trata-se da transformada de obst´aculos (TO), que funciona de forma muito semelhante `a transformada de distˆancia. Basta considerar cada um dos obst´aculos como sendo metas e a aplica¸c˜ao da TO ´e feita usando a mesma metodologia da TD, criando um mapa semelhante ao da Figura 3.5b.

A ideia ´e, portanto, adicionar uma taxa de desconforto aos caminhos, que corresponde a andar muito perto das paredes, para assim escolher o percurso mais adequado. Seja ent˜ao Φ a transforma de trajet´oria de uma c´elula c cuja meta ´e cg:

Φ(c, cg) = argmin C∈Xccg  l(C) + α X ci∈C cdanger(ci)   (3.1) Na equa¸c˜ao anterior, Xcg

c ´e o conjunto de caminhos poss´ıveis de c para cg, sendo C

um desses caminhos; l(C) ´e o comprimento do caminho C; ci ´e uma c´elula no caminho C;

cdanger(ci) ´e a fun¸c˜ao que traduz o desconforto de entrar na c´elula ci e α ´e um fator de

(46)

fun¸c˜ao cdanger(ci) ´e calculada a partir da transformada de obst´aculos (Ω):

cdanger(ci) =



(X − Ω(ci))3 if Ω(ci) ≤ X

0 else (3.2)

Nesta equa¸c˜ao X ´e a distˆancia m´ınima aos obst´aculos a que se pretende que o robˆo navegue.

Como exemplo para o planeamento de trajet´orias, tendo uma transforma de distˆancia como a da Figura 3.5a e uma transformada de obst´aculos como a da Figura 3.5b (n˜ao se usaram necessariamente estes valores), obtˆem-se transformadas de trajet´orias semelhantes `as das Figuras 3.6. A raz˜ao pela qual os trajetos s˜ao diferentes nessas figuras deve-se aos valores usados na fun¸c˜ao cdanger(ci). Quanto maior for o seu valor, mais afastado dos obst´aculos anda

o robˆo, que ´e o que acontece na Figura 3.6b em rela¸c˜ao ´a Figura 3.6a.

Para o caso da explora¸c˜ao, ao serem somadas as duas transformadas (TD e TO) obt´ em-se, por exemplo, um mapa marcado com os valores da Figura 3.8a. Ao contr´ario do que se passava no mesmo mapa s´o com a TD (Figura 3.7b), agora o robˆo faz muito menos curvas como se pode ver na Figura 3.8b.

24 (a) Transformada de distˆancia e de trajet´oria.

24

(b) Transformada de obst´aculos.

Figura 3.5: Aplica¸c˜ao da transformada de distˆancia, de trajet´oria e de obst´aculos a um mapa de exemplo [46].

Tendo uma representa¸c˜ao do mundo armazenada numa grelha de c´elulas, esta ´e uma boa abordagem para garantir a explora¸c˜ao do mapa. Para o funcionamento do algoritmo, ´e sempre necess´ario que sejam definidos os pontos de chegada e partida e tamb´em tem de se saber o mapa completo antes de aplicar as transformadas. Com estas limita¸c˜oes, n˜ao ´e poss´ıvel usar este algoritmo para explora¸c˜ao com o objetivo de mapeamento do mapa, uma vez que este tem de ser dado `a partida.

3.1.2 Explora¸c˜ao Baseada em Fronteiras

Define-se fronteira como sendo uma regi˜ao nos limites da ´area explorada e da ´area por explorar. Brian Yamauchi prop˜oe um algoritmo de explora¸c˜ao de fronteiras [43] que permite uma explora¸c˜ao sem a necessidade de conhecimento do mundo `a priori. O seu algoritmo consiste em levar o robˆo a dirigir-se sempre para as fronteiras, at´e que n˜ao hajam mais fronteiras no mapa. Desta forma garante que todo o espa¸co ´e explorado.

(47)

(a) (b)

Figura 3.6: Transformada de distˆancia com adi¸c˜ao da transformada de obst´aculos e respetiva transformada de trajet´oria [46].

(a) Transformada de distˆancia.

(b) Transformada de trajet´oria de cobertura total.

Figura 3.7: Aplica¸c˜ao da transformada de distˆancia e de trajet´oria de cobertura total a um mapa de exemplo [46].

O mapa ´e marcado numa grelha de c´elulas com uma probabilidade inicial de P I. Ao ser obtida informa¸c˜ao para a constru¸c˜ao do mapa, as suas c´elulas ficar˜ao num dos trˆes estados:

• livre: P L < P I;

• desconhecido: P D = P I; • ocupado: P O > P I.

A dete¸c˜ao de fronteiras ´e feita depois em quatro passos:

1. uma c´elula marcada como livre, que seja adjacente a uma ou mais c´elulas desconhecidas, ´

e marcada como candidata a c´elula de fronteira;

(48)

(a) Transformada de distˆancia com adi¸c˜ao da transformada de obst´aculos.

(b) Transformada de trajet´oria de cobertura total.

Figura 3.8: Transformada de distˆancia com adi¸c˜ao da transformada de obst´aculos e respetiva transformada de trajet´oria de cobertura total [46].

3. apenas as regi˜oes fronteira com um certo tamanho m´ınimo (aproximadamente o tamanho do robˆo) s˜ao consideradas fronteiras;

4. ´e encontrado e marcado o centroide de cada fronteira.

Tendo as fronteiras marcadas, o robˆo decide ent˜ao dirigir-se para o centroide mais pr´oximo de si. Para navegar at´e l´a usa um algoritmo de planeamento de trajet´orias juntamente com um comportamento reativo de desvio de obst´aculos. O que vai acontecer quando alcan¸ca o centroide pretendido ´e que vai possivelmente encontrar mais obst´aculos e mais espa¸cos livres, criando novas fronteiras e espa¸co para explorar. As Figuras 3.9 d˜ao como exemplo alguns estados do mapa quando ´e feita a explora¸c˜ao de um gabinete, usando este algoritmo. As c´elulas livres (P L) s˜ao representadas com espa¸cos em branco, as desconhecidas (P D) com pontos pequenos e os pontos maiores dizem respeito a obst´aculos (P O). As cruzes s˜ao os centroides de cada fronteira e encontram-se etiquetados com n´umeros.

Este algoritmo ´e uma boa escolha para situa¸c˜oes em que se pretende explorar o mundo para efeitos de mapeamento, garantindo que todo o espa¸co ´e explorado, sem necessidade de conhecimento do mundo `a priori.

3.1.3 Transformada de explora¸c˜ao

A transformada de explora¸c˜ao [38] foi desenvolvida por Stephan Wirth e Johannes Pellenz e consiste numa conjuga¸c˜ao da transformada de distˆancia (Sec¸c˜ao 3.1.1) com a explora¸c˜ao baseada em fronteiras (Sec¸c˜ao 3.1.2). O mapa gerado pelo algoritmo mant´em registo das fronteiras existentes no mesmo, mas em vez do robˆo de dirigir para a fronteira mais pr´oxima, este vai usar a transformada de trajet´oria em conjunto com a transformada de obst´aculos para determinar o caminho mais seguro. Por outras palavras, a transformada de trajet´oria ´e alterada de forma a usar como destino uma fronteira e n˜ao uma c´elula alvo. A equa¸c˜ao da

(49)

Figura 3.9: Explora¸c˜ao de um gabinete [43].

transformada de explora¸c˜ao ´e ent˜ao dada pela Equa¸c˜ao (3.3).

Ψ(c) = argmin C∈Xccg  l(C) + α X ci∈C cdanger(ci)   ∀cg∈F (3.3)

Como se pode verificar, esta equa¸c˜ao ´e muito semelhante `a equa¸c˜ao da transformada de trajet´oria (Equa¸c˜ao (3.1)). F ´e o conjunto de todas as c´elulas de fronteira, sendo cg a c´elula

selecionada como destino e as restantes vari´aveis s˜ao as mesmas da equa¸c˜ao de trajet´oria. ´

E uma solu¸c˜ao elegante que leva o robˆo a navegar a uma distˆancia segura em rela¸c˜ao aos obst´aculos, sem que com isso comprometa a explora¸c˜ao e o mapeamento.

3.1.4 Explora¸c˜ao por Zig-zag de Linhas Paralelas

Hert e Lumelsky prop˜oem um algoritmo de explora¸c˜ao que leva o robˆo a percorrer o mundo num movimento de zig-zag at´e que toda a ´area seja coberta [22, 31]. Limitam-se as c´elulas do mapa com retas verticais (paralelas) de largura fixa e topos ajustados aos limites do mapa.

(50)

O objetivo ´e levar o robˆo a navegar nessas mesmas linhas que definem as c´elulas. No exemplo na Figura 3.10 o robˆo come¸ca a explorar no ponto assinalado (podendo come¸car em qualquer parte do mapa) e executa ent˜ao movimentos em zig-zag pelas linhas que limitam as c´elulas e os topos do mapa.

Pode acontecer que, enquanto se desloca, encontra zonas (definido pelo autor como inlets) que j´a foram ou que n˜ao seriam exploradas se se usasse este procedimento tal e qual como foi descrito. Ao serem encontradas, estas zonas ser˜ao exploradas de imediato e o mesmo acontece para inlets dentro de inlets. ´E necess´ario marcar o ponto de entrada e sa´ıda das inlets, de forma a garantir que n˜ao ser˜ao exploradas mais de uma vez. O robˆo entra nas inlets movendo-se ao longo das bordas do mapa e explora essa ´area. Quando sai da mesma, retoma o trajeto que deixou pendente. Um procedimento semelhante ´e usado para mapas que contenham ilhas, armazenando alguns pontos chave que permitem uma correta explora¸c˜ao. Este processo ´e exemplificado na Figura 3.11.

Este algoritmo tem a vantagem de poder ser executado sem conhecimento do mapa, ou at´e mesmo para esse fim (mapeamento). Embora seja um algoritmo que confere alguma exatid˜ao, tem como contrapartida alguns gastos computacionais.

Figura 3.10: Explora¸c˜ao do mapa em zig-zag.

3.1.5 Decomposi¸c˜ao Trapezoidal

Na decomposi¸c˜ao trapezoidal, tal como o nome indica, as c´elulas do mapa s˜ao trap´ezios, sem dimens˜oes definidas. Choset e Pignon [16, 17] desenvolveram uma forma para decompor o mapa em trap´ezios, `a qual chamaram boustrophedon decomposition. A ideia ´e fazer deslizar um segmento de reta ao longo de toda a ´area. Assim que essa reta seja interrompida por um obst´aculo, s˜ao criadas duas novas c´elulas, como acontece na Figura 3.12a. Chegando a reta ao fim do obst´aculo, as c´elulas novas ser˜ao juntas numa s´o (Figura 3.12b). No final, o mapa estar´a dividido em c´elulas exatas, como as do exemplo da Figura 3.12c.

A explora¸c˜ao agora ´e feita pela visita a cada c´elula. Basta que em cada uma delas o robˆo execute movimentos de vai e vem (Figura 3.13) e a c´elula pode se dar como explorada.

Devido `a exatid˜ao das c´elulas usadas, este procedimento torna-se bastante dispendioso em recursos computacionais. Outra desvantagem ´e a necessidade de ser dado `a priori ao algoritmo o mapa.

(51)

Figura 3.11: V´arias fases da explora¸c˜ao de um mapa com inlets e ilhas [15].

(a) slice atinge um obst´aculo criando duas novas c´elulas.

(b) slice chega ao fim de um obst´aculo fundindo as duas c´elulas numa s´o.

(c) Estado final do mapa decomposto por c´elulas.

Figura 3.12: Processo de decomposi¸c˜ao do mapa em c´elulas trapezoidais [15].

Figura 3.13: Movimentos de vai-vem para explora¸c˜ao de c´elulas.

3.2

Resumo

Este Cap´ıtulo trata do estudo de alguns algoritmos de explora¸c˜ao, que podem servir para uma desloca¸c˜ao controlada, que possam complementar o processo de mapeamento. Os algoritmo de explora¸c˜ao permitem que o mundo possa ser percorrido por completo, quer o mapa deste seja dado como base, quer o objetivo seja exatamente a sua obten¸c˜ao.

Os algoritmos de Zelinsky (Sec¸c˜ao 3.1.1) e de decomposi¸c˜ao trapezoidal (Sec¸c˜ao 3.1.5), embora que interessantes, necessitam de um mapa `a priori. Isto significa que estes algoritmos

(52)

n˜ao podem ser usados com o objetivo de mapeamento do mundo.

J´a os restantes algoritmos n˜ao necessitam que o mapa lhes seja dado `a partida. Estes podem funcionar com o objetivo de obten¸c˜ao do mapa completo do mundo. O algoritmo de explora¸c˜ao baseada em fronteiras (Sec¸c˜ao 3.1.2) tem por objetivo a procura constante de zonas inexploradas, levando a uma explora¸c˜ao completa. Uma alternativa a este, que proporciona um comportamento mais eficiente e seguro, ´e a transformada de explora¸c˜ao (Sec¸c˜ao 3.1.3). Esta leva o robˆo a deslocar-se, n˜ao para a fronteira `a menor distˆancia do robˆo (como o anterior), mas sim pelo uso das transformadas de trajet´oria e de obst´aculos, para selecionar o ponto fronteira de destino. Por ´ultimo, a explora¸c˜ao por zig-zag (Sec¸c˜ao 3.1.4) tem o inconveniente de ser muito dispendiosa a n´ıvel computacional.

Pretende-se que estas bases te´oricas sejam ´uteis para o estudo e implementa¸c˜ao deste al-goritmo, em conjunto com um algoritmo de mapeamento. Segue-se a fase de implementa¸c˜ao destes algoritmos, onde se pretende consolidar melhor os conhecimentos `a cerca desta tem´atica.

(53)

Referências

Documentos relacionados

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

Em relação ao art. 557 do CPC, muitos também afirmam a sua importância normativa para embasar este processo de aproximação entre os modelos de controle

A placa EXPRECIUM-II possui duas entradas de linhas telefônicas, uma entrada para uma bateria externa de 12 Volt DC e uma saída paralela para uma impressora escrava da placa, para

As questões acima foram a motivação para o desenvolvimento deste artigo, orientar o desenvol- vedor sobre o impacto que as cores podem causar no layout do aplicativo,

Desta forma, conforme Winnicott (2000), o bebê é sensível a estas projeções inicias através da linguagem não verbal expressa nas condutas de suas mães: a forma de a

Nesse contexto, o presente trabalho tem como objetivo realizar testes de tração mecânica e de trilhamento elétrico nos dois polímeros mais utilizados na impressão

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se