OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um...

12
Anais do XVII Encontro de Iniciação Científica e Pós-Graduação do ITA XVII ENCITA / 2011 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 19 de outubro de 2011 OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM MANUTENÇÃO DA COMUNICAÇÃO POR UM GRUPO DE ROBÔS Marcos Ricardo Omena de Albuquerque Maximo Instituto Tecnológico de Aeronáutica - ITA HTO, apartamento 323, CEP: 12228-615, Campus do CTA, São José dos Campos, SP, Brasil Bolsista PIBIC-CNPq [email protected] Jackson Paul Matsuura Divisão de Eletrônica Instituto Tecnológico de Aeronáutica Praça Marechal Eduardo Gomes, 50, Vila das Acácias, CEP: 12.228-900, São José dos Campos, SP, Brasil [email protected] Resumo. O projeto apresentado objetiva buscar soluções para otimizar a cobertura de comunicação por um grupo de robôs. Essa questão é importante em diversas atividades em que grupos de robôs são desejáveis, como remoção de minas terrestres, limpeza e resgate. Assim, a cobertura ótima de comunicação é o tema do Deployment Test, um dos testes de qualificação da Robocup Rescue Simulation League, categoria de resgate da famosa competição de robótica Robocup. A ITANDROIDS, equipe de competições de robótica do ITA, participou dessa categoria em anos anteriores com bons resultados. Desse modo, a motivação principal desse trabalho foi desenvolver algoritmos para serem usados dentro do ambiente da competição de modo que pudessem ser utilizados no time da ITANDROIDS. Devido à alta complexidade do USARSim, ambiente de simulação usado na competição, fez-se um simulador próprio simplificado para facilitar os testes e verificar resultados mais rapidamente; este foi implementado com uso do framework de desenvolvimento de jogos XNA. Por conta disso, os algoritmos para solução do problema foram desenvolvidos foram em linguagem de programação C#. Palavras chave: cobertura, comunicação, robôs. 1. Introdução A cobertura ótima de comunicação é desejável em diversas aplicações. Na construção de uma infraestrutura de comunicação por antenas, por exemplo, é interessante que estas sejam dispostas de modo a oferecer sinal à máxima área possível. O problema torna-se bem mais complexo quando as unidades de comunicação são móveis. Este é um cenário comum quando se tem um grupo cooperativo de robôs, dado que em geral a comunicação via wireless é a forma mais conviente de troca de informações entre os robôs. Nesse contexto, deve-se tratar a movimentação, encontrando-se caminhos eficientes até as posições que resultam máxima cobertura. Remoção de minas terrestres, limpeza de ambientes e busca e resgate de vítimas são exemplos de atividades em que a manutenção da comunicação é muito importante para uma boa cooperação entre os agentes robóticos (Batalin), (Rekleitis, 2004). Uma outra problemática comum é o não conhecimento prévio do espaço. Assim, os robôs devem replanejar à medida que mapeiam o espaço. Dada a importância do problema, este motivou um dos testes de qualificação da Robocup Rescue Simulation League (Technical Commitee; Arnoud Visser et al, 2010), categoria de resgate virtual da Robocup, a competição de robótica mais famosa do mundo (procurar citação). Essa categoria envolve a programação de robôs virtuais para executar tarefas de resgate e tem como objetivo incentivar desenvolvimentos em robótica de resgate real (Rob11). O teste de qualificação citado é nomeado Deployment Test e consiste em criar uma infraestrutura de comunicação em torno de uma estação base buscando máxima área de cobertura de comunicação (Technical Commitee; Arnoud Visser et al, 2010). A ITANDROIDS, equipe de competições de robótica do ITA, participou da categoria com bons desempenhos em anos anteriores. Assim, a possibilidade de que a pesquisa desenvolvida melhore o desempenho da equipe foi a principal motivação desse projeto. Este artigo está organizado da seguinte forma: a seção 2 apresenta o ambiente da competição Robocup Rescue Simulation League, a 3 comenta sobre as restrições envolvidas no Deployment Test, a 4 apresenta os desenvolvimentos feitos durante o projeto e a 5 conclui o trabalho. Em seguida, são apresentados agradecimentos e as referências bibliográficas utilizadas. 2. Robocup Rescue Simulation League As ligas de resgate da Robocup foram criadas como uma forma de incentivo a pesquisa e desenvolvimento em resgate robótico. Em muitos cenários de desastre, o ambiente é muito hostil e apresenta grande riscos para agentes

Transcript of OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um...

Page 1: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII Encontro de Iniciação Científica e Pós-Graduação do ITA – XVII ENCITA / 2011

Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 19 de outubro de 2011

OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM MANUTENÇÃO DA

COMUNICAÇÃO POR UM GRUPO DE ROBÔS

Marcos Ricardo Omena de Albuquerque Maximo Instituto Tecnológico de Aeronáutica - ITA

HTO, apartamento 323, CEP: 12228-615, Campus do CTA, São José dos Campos, SP, Brasil

Bolsista PIBIC-CNPq

[email protected]

Jackson Paul Matsuura Divisão de Eletrônica

Instituto Tecnológico de Aeronáutica

Praça Marechal Eduardo Gomes, 50, Vila das Acácias, CEP: 12.228-900, São José dos Campos, SP, Brasil

[email protected]

Resumo. O projeto apresentado objetiva buscar soluções para otimizar a cobertura de comunicação por um grupo de robôs. Essa

questão é importante em diversas atividades em que grupos de robôs são desejáveis, como remoção de minas terrestres, limpeza e

resgate. Assim, a cobertura ótima de comunicação é o tema do Deployment Test, um dos testes de qualificação da Robocup Rescue

Simulation League, categoria de resgate da famosa competição de robótica Robocup. A ITANDROIDS, equipe de competições de

robótica do ITA, participou dessa categoria em anos anteriores com bons resultados. Desse modo, a motivação principal desse

trabalho foi desenvolver algoritmos para serem usados dentro do ambiente da competição de modo que pudessem ser utilizados no

time da ITANDROIDS. Devido à alta complexidade do USARSim, ambiente de simulação usado na competição, fez-se um

simulador próprio simplificado para facilitar os testes e verificar resultados mais rapidamente; este foi implementado com uso do

framework de desenvolvimento de jogos XNA. Por conta disso, os algoritmos para solução do problema foram desenvolvidos foram

em linguagem de programação C#.

Palavras chave: cobertura, comunicação, robôs.

1. Introdução

A cobertura ótima de comunicação é desejável em diversas aplicações. Na construção de uma infraestrutura de

comunicação por antenas, por exemplo, é interessante que estas sejam dispostas de modo a oferecer sinal à máxima área

possível.

O problema torna-se bem mais complexo quando as unidades de comunicação são móveis. Este é um cenário

comum quando se tem um grupo cooperativo de robôs, dado que em geral a comunicação via wireless é a forma mais

conviente de troca de informações entre os robôs. Nesse contexto, deve-se tratar a movimentação, encontrando-se

caminhos eficientes até as posições que resultam máxima cobertura. Remoção de minas terrestres, limpeza de

ambientes e busca e resgate de vítimas são exemplos de atividades em que a manutenção da comunicação é muito

importante para uma boa cooperação entre os agentes robóticos (Batalin), (Rekleitis, 2004).

Uma outra problemática comum é o não conhecimento prévio do espaço. Assim, os robôs devem replanejar à

medida que mapeiam o espaço.

Dada a importância do problema, este motivou um dos testes de qualificação da Robocup Rescue Simulation

League (Technical Commitee; Arnoud Visser et al, 2010), categoria de resgate virtual da Robocup, a competição de

robótica mais famosa do mundo (procurar citação). Essa categoria envolve a programação de robôs virtuais para

executar tarefas de resgate e tem como objetivo incentivar desenvolvimentos em robótica de resgate real (Rob11). O

teste de qualificação citado é nomeado Deployment Test e consiste em criar uma infraestrutura de comunicação em

torno de uma estação base buscando máxima área de cobertura de comunicação (Technical Commitee; Arnoud Visser

et al, 2010).

A ITANDROIDS, equipe de competições de robótica do ITA, participou da categoria com bons desempenhos em

anos anteriores. Assim, a possibilidade de que a pesquisa desenvolvida melhore o desempenho da equipe foi a principal

motivação desse projeto.

Este artigo está organizado da seguinte forma: a seção 2 apresenta o ambiente da competição Robocup Rescue

Simulation League, a 3 comenta sobre as restrições envolvidas no Deployment Test, a 4 apresenta os desenvolvimentos

feitos durante o projeto e a 5 conclui o trabalho. Em seguida, são apresentados agradecimentos e as referências

bibliográficas utilizadas.

2. Robocup Rescue Simulation League

As ligas de resgate da Robocup foram criadas como uma forma de incentivo a pesquisa e desenvolvimento em

resgate robótico. Em muitos cenários de desastre, o ambiente é muito hostil e apresenta grande riscos para agentes

Page 2: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

humanos, o que torna o uso de agentes robóticos é desejável nessas situações. Nesse contexto, o problema introduz

diversos temas de pesquisa em robótica e inteligência artificial, como percepção robótica, planejamento, mapeamento

do espaço, cooperação entre múltiplos agentes etc.

A categoria de resgate virtual da Robocup surgiu como a versão virtual da equivalente usando robôs reais. A

vantagem de se usar robôs virtuais é a possibilidade de se desenvolver soluções em software sem a necessidade de se

arcar com os altos custos de produção de um robô real. Isso permite que mais pesquisadores se envolvam na área. Além

disso, em simulação pode-se criar ambientes controlados para testes específicos sem que se tenha que submeter o robô a

um cenário de desastre real ou que se crie algum artificialmente.

Para simulação, é utilizado o USARSim (Unified System for Automation and Robot Simulation), um simulador de

alta fidelidade baseado na poderosa engine de jogos eletrônicos Unreal. Atualmente, o simulador já é executado com a

última versão da engine: a Unreal Engine 3. O USARSim é capaz de simular uma vasta gama de robôs, sensores e

atuadores.

O USARSim é baseado numa arquitetura cliente-servidor em que cada robô é um cliente independente. A câmera é

um sensor especial e é simulada com o sistema de renderização da Unreal. As demais percepções através de sensores e

o controle dos atuadores são feitos por meio de troca de mensagens TCP/IP seguindo protocolo próprio. Com isso,

procura-se simular a interface com o ambiente presente em robôs reais. A Fig. 1 apresenta a arquitetura do simulador.

Figura 1. Arquitetura do USARSim (Extraída de (Wang, et al.)).

A simulação procura ser a mais fiel possível; logo problemas físicos inerentes ao hardware são incluídos, como

ruído na comunicação, imprecisão dos sensores e atuadores etc. A Física é simulada pela engine de Física PhysX,

embutida na Unreal. Com isso, experimentos de validação mostraram forte correlação entre a simulação do USARSim

e o comportamento real dos robôs. Assim, diversos grupos de pesquisa usam o USARSim como ambiente de teste para

algoritmos antes que sejam implementados em sistemas reais.

A Figura 2 apresenta a renderização de uma simulação executada no USARSim.

Page 3: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 2. Simulação, no USARSim, de um robô P3AT usando um sensor gerador de linha laser (Extraída de

(Balakirsky)).

3. Deployment Test

O teste consiste em construir uma infraestrutura de comunicação. Cada time é provido de um grid de ocupação do

ambiente e um certo número de posições iniciais; pode-se utilizar até oito robôs na tarefa. O objetivo é posicionar os

robôs autonomamente (sem interferência de humanos) de modo que seja cobertura a máxima cobertura de comunicação

possível enquanto mantém-se conexão com uma estação base conhecida e fixa.

Apenas as posições finais dos robôs são levadas em conta para cálculo de pontuação. Um ponto do espaço é

considerado coberto nesse teste se o sinal de comunicação nesse ponto estiver acima de um certo limiar segundo

modelo de atenuação usado na simulação. Deve-se destacar que a área de comunicação deve estar conectada e incluir a

estação base, ou seja, cada entidade (robô ou estação base) da infraestrutura de comunicação deve ser capaz de se

comunicar com qualquer outra entidade nessa infraestrutura através de encaminhamento de mensagens na

infraestrutura.

4. Desenvolvimento

Como comentado na seção 2, o USARSim simula os robôs o mais fiel possível dos equivalentes reais. Assim, deve-

se fazer o devido tratamento de sensores e assim localizar o robô e mapear o ambiente. Também, deve-se controlar os

atuadores corretamente para movimentar o robô conforme desejado.

Embora a ITANDROIDS tenha participado da competição em anos anteriores, o time não foi continuado e o

desenvolvimento que havia foi perdido. Desse modo, esses tratamentos de baixo nível teriam de ser implementados

para que fossem feitos os testes dos algoritmos desenvolvidos.

Além disso, os erros de sensores e atuadores adicionam uma complicação extra ao problema e poderiam prejudicar

as análises dos resultados obtidos. Portanto, a primeira decisão tomada foi a implementação em uma plataforma

separada que permitisse melhor controle e resultados mais rápidos. A plataforma escolhida foi o framework de

desenvolvimento de jogos eletrônicos XNA.

Outro ponto é que o problema considerando todas as problemáticas envolvidas é demasiadamente complexo. Isso

motivou estabelecer uma metodologia de desenvolvimento incremental e iterativo em que se começaria com uma

versão simplificada do problema e iria se adicionando complexidade a cada nova iteração.

4.1. Implementação de simulador simplificado

O XNA é um framework de desenvolvimento de jogos em linguagem C# mantido pela Microsoft. O simulador

simplificado foi pensado de modo que provesse uma estrutura mínima para testes e análises dos algoritmos

desenvolvidos, dado que se trata apenas de uma plataforma de testes e não o foco da implementação. As principais

vantagens do uso do XNA foram devido às seguintes soluções já existentes na ferramenta:

Estruturas geométricas, como pontos e vetores;

Page 4: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Manipulação de imagens pixel a pixel;

Rotinas gráficas de alto nível para desenho de sprites;

Simples manipulação e desenho de texto;

Fácil tratamento de entrada de teclado e mouse;

Estrutura de simulação baseada em tempo.

Desse modo, o simulador foi implementado com uma interface gráfica 2D muito simples minimamente funcional,

apesar do poder gráfico do XNA, que utiliza DirectX 9 para renderização. A simulação consiste de um mapa (cenário)

estático em que apenas dois tipos de regiões são identificadas: regiões permitidas para os robôs trafegarem e as

proibidas. Seguindo a metodologia proposta, novas funcionalidades foram sendo adicionadas ao simulador conforme a

necessidade; essas são comentadas nas respectivas iterações em que foram implementadas.

O mapa é entrado como uma imagem em que foi convencionado que pontos pretos identificam posições proibidas e

pontos brancos indicam as permitidas. Isso permitiu a rápida confecção de mapas usando um editor simples de imagens

ou mesmo em código. Então, é feito um processamento da imagem que representa o mapa para transformar-lá num grid

de ocupação, ou seja, uma matriz de booleanos indicando posições proibidas. Para evitar problemas, antes desse

procedimento normaliza-se a imagem transformando-a em monocrática. A Figura 3 mostra um dos mapas gerados para

teste. Observe que não há diferenciação de terreno nas posições permitidas.

Figura 3. Mapa conforme convenção adotada no simulador: pontos brancos são posições permitidas e os pretos

representam as proibidas. A imagem foi criada à “mão livre” usando um simples editor de imagens.

Os robôs inicialmente foram implementados como são simples pontos sem que fossem consideradas a direção de

visada do robô, tipo de locomoção utilizada e outras questões irrelevantes dentro do escopo do trabalho. As demais

iterações tiveram que implementar movimento do robô e o conhecimento de mundo mantido por estes.

O modelo de comunicação utilizado considera que a área de cobertura é um círculo com centro no entidade de

comunicação (estação base ou robô) em questão. No caso, pontos proibidos do mapa nunca são considerados cobertos,

mesmo que estejam dentro do círculo de cobertura de algum entidade de comunicação. Não foi levada em conta a

atenuação do sinal devido à presença de obstáculos no caminho de propagação.

4.2. Primeira iteração

A primeira iteração envolveu a implementação de uma versão simplificada do problema com as seguintes

características:

Conhecimento prévio do mapa;

Robôs são posicionados diretamente nas localidades desejadas.

Dessa forma, o problema torna-se semelheante ao posicionamento de antenas sobre uma região conhecida de modo

que seja obtida a máxima área de cobertura.

A técnica pensada para tratar o espaço foi a de dividi-lo em uma malha de quadrados (grid) como mostra a Fig. 4.

Com isso, transforma-se o espaço contínuo em discreto e portanto mais tratável por algoritmos. Note que na utilização

dessa técnica, faz-se uma espécie de amostragem do espaço e cria-se uma relação de compromisso.

Quanto mais granulado o grid (i.e., quanto menores forem as células), melhor é a precisão e portanto espera-se

melhor resultados. Por outro lado, uma maior granularidade aumenta o número de elementos envolvidos, o que exige

mais recursos computacionais (memória e processamento). Assim, há uma relação de compromisso entre precisão e

Page 5: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

desempenho. Na realidade, o processo implementado envolve a passagem de grids (em especial do grid de ocupação

gerado diretamente da imagem do mapa) para outros de menor precisão com o objetivo de reduzir o processamento

requerido. As próxima referências a grid de ocupação nesse artigo serão referências à versão de menor precisão.

Figura 4. Aplicação de grid a uma figura no espaço.

A técnica de grids foi usada para determinar regiões permitidas para posicionamento dos robôs quanto as cobertas

pela comunicação de modo que trabalhou-se com dois tipos de grids: de ocupação e de comunicação. Na montagem de

grids de ocupação, considera-se que uma célula é ocupada caso algum ponto dentro desta seja ocupado (proibido). No

caso da Fig. 4, o procedimento de construção do grid é o de um grid de ocupação, em que pontos pretos representam

posições proibidas.

Já no caso de grids de comunicação, uma célula é considerada coberta apenas se todos os pontos desta são cobertos.

Note que construído um grid de comunicação, a área de cobertura é aproximadamente proporcional ao número de

células consideradas cobertas. Desse modo, a contagem das células cobertas no grid de comunicação foi usada para

avaliar se um determinado posicionamento é melhor (em termos de área coberta) que outro.

Perceba que, dada a restrição de conectividade completa, um robô só pode ser posicionado numa célula coberta no

grid de comunicação. Com essa observação, reduz-se consideravelmente o espaço de possibilidades.

A implementação do algoritmo para determinar a melhor disposição dos robôs feita segue uma estratégia gulosa.

Para cada robô, determina-se qual a posição ótima no grid para o momento atual e posiciona-se o robô em questão nela;

então, não se volta atrás na decisão feita. A determinação da posição ótima para cada robô é feita por força bruta: testa-

se todas as possibilidades e guarda-se aquela que resultou maior número de células cobertas no grid de comunicação.

Observe que a estratégia gulosa implementada faz com que nem sempre chegue-se a solução realmente ótima, porém

esta reduz consideravelmente a complexidade computacional do algoritmo enquanto produz soluções muito boas.

Nesse estágio, ainda não havia sido implementada a estação base de comunicação, logo a escolha do primeiro robô

era feita considerando que qualquer posição é possível para este, embora não seja coberta por comunicação. Assim,

iterava-se sobre todas as células permitidas no grid de ocupação para determinar a ótima. Para os demais robôs, caía-se

no caso em que só é interessante posicioná-los em células cobertas no grid de comunicação.

As Figuras 5 a 10 mostram resultados da simulação implementada nesta iteração para três diferentes mapas, com

visão do ambiente em si e em grid. As figuras em grid mostram células proibidas do grid de ocupação como pretas e

células cobertas no grid de comunicação como azuis. Em todos os testes mostrados, utilizou-se mapas com resolução

800x600 pixels e grid com células 10x10, o que resulta em grids de 80x60 células; o número de robôs utilizado foi

sempre oito. Diversos outros mapas além dos apresentados aqui foram testados e obteve-se resultados semelhantes.

Page 6: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 5. Posicionamento dos robôs no mapa 1 (mapa gerado à “mão livre”).

Figura 6. Grids (de ocupação e de comunicação) para o mapa 1.

Figura 7. Posicionamento dos robôs no mapa 2 (formado por figuras geométricas simples).

Page 7: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 8. Grids (de ocupação e de comunicação) para o mapa 2.

Figura 9. Posicionamento dos robôs no mapa 3 (elipse).

Page 8: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 10. Grids (de ocupação e de comunicação) para o mapa 3.

Embora o algoritmo desenvolvido tenha produzido boas soluções como mostram as Figs. 5 a 10, o tempo de

processamento foi demasiadamente alto nos testes realizados conforme apresenta a Tab. 1. Levando-se em conta que se

trata de um algoritmo que deve ser executado diversas vezes à medida que se toma maior conhecimento do cenário e

enquanto são processadas diversas outras tarefas do robô, esse não é um desempenho aceitável. Portanto, ficou para as

próximas iterações a tarefa de melhorar o desempenho do algoritmo gerado.

Tabela 1. Tempos de processamento médios para execução do algoritmo encontrar disposição que produz cobertura

ótima desenvolvido na primeira iteração. A máquina utilizada para testes possui processador Core i7 720QM e

6 GB RAM DDR3.

Mapa Tempo de Processamento Médio (s)

Mapa 1 (“mão livre”) ~2,5

Mapa 2 (figuras geométricas) ~1,8

Mapa 3 (elipse) ~1,2

4.3. Segunda iteração

A complexidade acordada para ser adicionada nessa iteração foi tratar a questão da movimentação dos robôs. Ainda

considera-se que o mapa é conhecimento previamente. Dado que se possui um grid de ocupação do ambiente,

movimentar os robôs até as posições desejadas, que são as posições da disposição considerada ótima pelo algoritmo

implementado na primeira iteração, é equivalente a achar uma sequência de posições no grid até a posição desejada sem

passar por uma célula proibida. O problema de se achar um caminho entre dois pontos de um grid (path finding) é

conhecido e extensivamente estudado, assim buscou-se por algoritmos desse domínio.

O algoritmo escolhido para implementação foi o A* (A star) (Buckland, 2005), (Patel). Trata-se de um algoritmo

de busca em grafo guiada por uma heurística que é uma estimativa do custo até o destino. O algoritmo faz a busca

dando preferência para expandir nós com menor estimativa de custo.

Primeiramente, um grid de ocupação pode ser visto como um grafo em que as células são vértices e as arestas são

movimentações possíveis entre as células. Isso é mostrado na Fig. 11 para o caso em que são permitidas apenas

movimentações horizontais e verticais. Note que embora sejam representados vértices na figura para células ocupadas,

elas são posições proibidas e não devem fazer parte do caminho.

Page 9: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 11. Grid de ocupação visto como um grafo.

Dado que não diferenciação de terreno, foi estipulado que o algoritmo deveria encontrar o caminho com menor

distância. Também, no modelo de movimentação implementado, considerou-se que são permitidas apenas

movimentações horizontais e verticais (não é possível se mover no grid em diagonal, por exemplo). Assim, a função de

custo assumida foi o número de células do caminho, que é equivalente a menor distância dadas as simplificações feitas.

Desse modo, a estimativa de custo do nó atual até o destino usada no A* foi a distância de Mannhatan (Patel),

apresentada na Eq. (1). Nessa equação, n e g são respectivamente o nó atual e o destino e as coordenadas utilizadas são

em relação ao grid.

| | | | (1)

Observe que essa estimativa da Eq. (1) é a menor distância considerando movimentações apenas na horizontal e na

vertical, logo é uma estimativa otimista. Num ambiente em que a movimentação pode se dar em qualquer direção como

acontece na realidade, uma menor estimativa seria a distância euclidiana (distância em linha reta). Para compor a

estimativa total de custo, o A* considera o custo despendido até o vértice em questão somado com a estimativa até o

destino.

A segunda tarefa realizada foi a melhora do desempenho do algoritmo de determinação de disposição que produz

cobertura ótima desenvolvido na primeira iteração. Na implementação que havia, o grid de comunicação era

armazenada em memória como uma matriz de mesma dimensão que o grid de ocupação. Assim, o algoritmo precisava

iterar sobre toda a matriz para verificar se aquela era uma célula coberta e portanto posição candidata para o robô em

questão e para contar o número de células cobertas.

Percebeu-se que a área de comunicação é pequena em relação ao tamanho do mapa, então decidiu-se passar a

armazenar o grid de comunicação como uma lista de pontos (coordenadas X e Y) referenciando o grid de ocupação.

Desse modo, precisa-se iterar apenas sobre uma lista de dimensão do número de células cobertas, o que reduz

consideravelmente a quantidade de computação necessária.

A Tabela 2 apresenta tempos de processamento para execução do algoritmo utilizando essa nova abordagem;

observe que houve uma melhora substancial. Comparando os dados da Tab. 1 e da Tab. 2, conclui-se que houve um

speedup (melhora de desempenho) médio de 4,78 (478%).

Tabela 2. Tempos de processamento médios para execução do algoritmo encontrar disposição que produz cobertura

ótima com alteração feita na segunda iteração. A máquina utilizada para testes possui processador Core i7

720QM e 6 GB RAM DDR3.

Mapa Tempo de Processamento Médio (ms)

Mapa 1 (“mão livre”) ~600

Mapa 2 (figuras geométricas) ~300

Mapa 3 (elipse) ~250

Algumas implementações adicionais foram feitas no simulador. Implementou-se a estação base e um mecanismo

para posicionar as entidades no cenário com uso do mouse. Também, foi necessário implementar a locomoção dos

robôs. Como trata-se de uma questão muito dependente da implementação feita no simulador e até mesmo do tipo de

robô utilizado, escolheu-se um modelo bem simples: faz-se o robô deslocar-se em linha reta com velocidade constante

até o próximo ponto do caminho determinado.

A Figura 12 mostra a simulação em execução como implementada na segunda iteração. Em amarelo, são mostrados

os caminhos encontrados até o destino pelos robôs.

Page 10: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 12. Simulação em execução como implementada na segunda iteração. Os caminhos encontrados são mostrados

em amarelo.

4.4. Terceira iteração

A última questão a ser tratada é a falta de conhecimento prévio do mapa por parte dos robôs. Nesse caso, adotou-se

que os robôs consideram que o grid de ocupação do mapa inicialmente é tal que não há regiões proibidas. Assim, o

algoritmo para encontrar as posições de cobertura ótima é primeiramente executado considerando apenas as regiões

proibidas na área observável pelos robôs em suas posições iniciais e envia-se os robôs para as posições determinadas.

Então, o algoritmo de determinação de posições que produzem cobertura ótima é reexecutado periodicamente

levando-se em conta as últimas atualizações de conhecimento do mapa (regiões proibidas descobertas) e sobrescreve-se

os destinos dos robôs.

Para evitar que um robô colidisse com os extremos do mapa caso esteja seguindo um caminho que passa por uma

região que num mapeamento posterior se releve uma região proibida, a cada momento o robô verifica se a próxima

posição no caminho não corresponde a um ponto proibido de acordo com o conhecimento do mapa mais atualizado. Se

isso ocorrer, o robô procura um outro caminho até o destino (reexecuta o algoritmo de path finding).

Caso seja impossível encontrar um caminho na situação descrita, significa que o destino se revelou na verdade uma

posição proibida. Assim, o robô pára e espera até que o algoritmo de determinação da cobertura ótima seja reexecutado

e um novo destino seja dado a ele.

Como o robô mapeia o ambiente em torno dele é algo também dependente do simulador e dos sensores utilizados,

então novamente decidiu-se por usar um modelo bem simples. O modelo de percepção do ambiente do robô utilizado

foi de que este é capaz de tomar perfeito conhecimento do ambiente ao redor dele num quadrado de 3x3 células do grid

de ocupação.

A Figura 13 mostra a implementação feita na terceira iteração. As células de grid em vermelho sobrepostas ao

mapa são as células conhecidas como ocupadas no momento pelos robôs.

Page 11: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Figura 13. Implementação feita na terceira iteração. As células de grid em vermelho mostram as células já mapeadas

como ocupadas.

5. Conclusão

O problema foco deste projeto foi a otimização da cobertura de comunicação por um grupo de robôs. Dada sua

importância, ele é o tema de um do teste de qualificação Deployment Test da Robocup Rescue Simulation League.

Dada a alta complexidade do simulador usado na competição, o USARSim, decidiu-se fazer as implementações dos

algoritmos em uma simulação própria para fins de testes de modo que pudessem ser obtidos resultados rápidos. Assim,

fez-se o desenvolvimento de um simulador bem simples utilizando o framework XNA. Os algoritmos foram

implementados em linguagem C# e com algumas ferramentas providas pela API do XNA.

Dada ainda a complexidade inerente ao problema, foi seguido um metodologia iterativa e incremental de

desenvolvimento de modo que a complexidade fosse tratada por partes. Inicialmente, considerou-se conhecido o mapa

previamente e que os robôs pudessem ser colocados nas posições desejadas sem necessidade de locomoção. Em

seguida, foi tratada a questão da movimentação dos robôs. Por fim, adicionou-se a falta de conhecimento prévio do

mapa de modo que os robôs passaram a precisar mapeá-lo enquanto tentam encontrar a melhor solução para o problema

com a porção de mapa já conhecida.

Esperava-se que esse trabalho fosse finalmente integrado à equipe de resgate virtual da ITANDROIDS que

acreditava-se que seria reativada em 2011. Infelizmente, isso não ocorreu. Desse modo, não foi possível integrar os

algoritmos desenvolvidos nesse projeto ao simulador USARSim dada a necessidade de tratar diversas outras questões

que fogem do escopo deste projeto e esperava-se que fossem tratadas pelo restante da equipe que se acreditava que seria

reativada.

6. Agradecimentos

Agradeço ao meu professor orientador Jackson Paul Matsuura pela orientação na busca de soluções para o

problema tratado neste trabalho. Ao ITA por me proporcionar um ensino de qualidade e participação em projetos de

pesquisa como esse.

Agradeço aos meus amigos e companheiros de quarto Guilherme Augusto Loureço Pereira e Humberto Consolo

Holanda pelo companheirismo e pela boa convivência.

Por fim, agradeço ao CNPq pelo apoio financeiro concedido.

7. Referências

Robocup Rescue. [Online] [Citado em: 11 de agosto de 2011.] http://www.robocuprescue.org/.

Balakirsky, Stephen. Line Laser. USARSim wiki. [Online] [Citado em: 11 de agosto de 2011.]

http://usarsim.sourceforge.net/wiki/index.php/Line_Laser.

Batalin, Maxim A. e Sukhatme, Gaurav S. Coverage, Exploration and Deployment by a Mobile Robot and

Communication Network. International Workshop on Information Processing in Sensor Networks.

Buckland, Mat. 2005. Programming Game AI by Example. Plano : Wordware Publishing, Inc., 2005.

Patel, Amit. Amit's A* Pages. Amit Patel's Home Page. [Online] http://theory.stanford.edu/~amitp/GameProgramming/.

Page 12: OTIMIZAÇÃO DA COBERTURA DE ESPAÇO COM … · A imagem foi criada à “mão livre” usando um simples editor de imagens. Os robôs inicialmente foram implementados como são simples

Anais do XVII ENCITA, ITA,19 de outubro de 2011

,

Rekleitis, Ioannis, et al. 2004. Limited Communication, Multi-Robot Team Based Coverage. IEEE International

Conference on Robotics & Automation. 2004.

Technical Commitee; Arnoud Visser et al. 2010. Robocup Rescue Simulation League Virtual Robots competition Rules

document. 2010.

Wang, J. e Balakirsky, S. USARSim v3.1.3 Manual.