Simulação de coleta de dados em redes de sensores sem o por robôs móveis utilizando a ferramenta Player/Stage

Tamanho: px
Começar a partir da página:

Download "Simulação de coleta de dados em redes de sensores sem o por robôs móveis utilizando a ferramenta Player/Stage"

Transcrição

1 Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM Simulação de coleta de dados em redes de sensores sem o por robôs móveis utilizando a ferramenta Player/Stage Aluno: Gabriel Angelo Nazário Matrícula: Orientador: Andréa Iabrudi Tavares Ouro Preto 1 de julho de 2011

2 Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM Simulação de coleta de dados em redes de sensores sem o por robôs móveis utilizando a ferramenta Player/Stage Relatório de atividades desenvolvidas apresentado ao curso de Bacharelado em Ciência da Computação, Universidade Federal de Ouro Preto, como requisito parcial para a conclusão da disciplina Monograa I (BCC390). Aluno: Gabriel Angelo Nazário Matricula: Orientador: Andréa Iabrudi Tavares Ouro Preto 1 de julho de 2011

3 Resumo As Redes de Sensores Sem Fio (RSSF, ou WSN, sigla de Wireless Sensor Networks) são redes usadas com o intuito de monitorar algum fenômeno, onde se tem diversos dispositivos distribuídos no espaço a ser estudado. As RSSFs podem ser usadas em diversos estudos, como por exemplo, no monitoramento de condições ambientais de uma oresta. Porém, um fator importante que deve ser observado diz respeito ao consumo de energia no processo de transmissão dos dados coletados até um nó central, onde os mesmos serão estudados. Para essa tarefa, é possível contar com o apoio de robôs móveis, o que pode representar uma diminuição do consumo de energia. Palavras-chave: Redes de sensores sem o. Coleta de dados. Robôs móveis.

4 Sumário 1 Introdução 1 2 Justicativa 3 3 Objetivos Objetivo geral Objetivos especícos Metodologia 6 5 Desenvolvimento Instalação e conguração do Player/Stage Aprendizado do uso do Player/Stage Trabalhos Futuros 12 7 Cronograma de atividades 13

5 Lista de Figuras 1 Capacidade de comunicação dos sensores Envio dos dados dos sensores de forma multi-hop Coleta dos dados com ajuda de robôs Situação real Situação simplicada Caminhamento simples Desvio simples do obstáculo Desvio com vetor de repulsão entre robô e obstáculo Lista de Tabelas 1 Cronograma de Atividades Trabalhos futuros a serem desenvolvidos

6 1 Introdução O uso de Redes de Sensores Sem Fio (RSSF) é algo relativamente novo. Esse novo tipo de tecnologia se fez possível graças ao avanço no desenvolvimento de circuitos integrados, micro-processadores e comunicação sem o. Uma rede de sensores (não somente as wireless, mas também as cabeadas) é constituída basicamente de: Fenômeno: aquilo que se deseja observar ou estudar. Observador: usuário nal, grupo de usuários, ou até mesmo um sistema computacional, que deseja obter respostas sobre o fenômeno monitorado através de seu estudo. Sensor: responsável pela monitoração do fenômeno (através de medidas), e por passar as informações ao observador, que depois irá estudá-las. Cada nó da rede possui pelo menos um tipo de sensor, de acordo com o que se deseja observar. Esses sensores podem ser para medidas de temperatura, umidade, calor, acústico, infravermelho, entre outros. E cada sensor possui uma certa capacidade de armazenamento de dados, e um raio de comunicação, onde seu sinal pode ser alcançado (gura 1). As RSSFs podem ser usadas num amplo conjunto de áreas e aplicações onde se queira monitorar algo. Entre essas áreas, podem ser citadas como exemplo: Meio ambiente: monitoramento de variáveis ambientais (calor, umidade, temperatura, etc) em prédios, casas, orestas, oceanos, entre outros. Militar: monitoramento, rastreamento, segurança, principalmente em áreas perigosas e/ou de difícil acesso. Tráfego: monitoramento de vias, controle de tráfego. Industrial. 1

7 Figura 1: Capacidade de comunicação dos sensores 2

8 2 Justicativa Numa Rede de Sensores Sem Fio (RSSF), cada sensor pode operar por longos períodos de tempo, indo de semanas até mesmo a anos. Isso, é claro, depende da quantidade de energia disponível na bateria que o alimenta e sua capacidade de armazenamento de dados. Logo, percebe-se que a questão de energia é um ponto muito importante nesse contexto. Muitas vezes, o processo de envio de dados dos sensores até o observador (ou nó central) se dá de forma multi-salto (gura 2), ou seja, passando de um nó para o outro, o que leva a um grande consumo de energia. Nesse tipo de aplicação, o bom aproveitamento dos recursos energéticos é um ponto essencial. Figura 2: Envio dos dados dos sensores de forma multi-hop Uma alternativa a esse tipo de coleta é a utilização de robôs móveis, como mostrado na gura 3. Com isso, não há necessidade de transmissão dos dados de forma multisalto, passando por todos os nós da rede até o nó central. Com a ajuda dos robôs, há economia da energia, tornando esse processo viável. Outra vantagem: pode-se alcançar ambientes de difícil acesso para seres humanos (por exemplo, um ambiente muito frio). A coleta dos dados armazenados nos nós sensores da rede se faz com os robôs percorrendo o ambiente onde estão localizados. Um ponto importante a se observar é que essa atividade geralmente se dá em um domínio estocástico, guiado por fatores não determinísticos. Por exemplo, um nó sensor pode estar numa posição diferente daquela que o robô procura (ou que ele esperava encontrá-lo). Estudar esse problema levando em conta as suas características não determinísticas implica em um alto grau de complexidade computacional, devido a incerteza de suas ações, tomadas de decisão, aspectos físicos, etc. 3

9 Figura 3: Coleta dos dados com ajuda de robôs As simulações são importantes pelo fato de permitir modelar e estudar uma situação real em um ambiente virtual, ou seja, caso uma simulação não dê certo, não haverá perdas e/ou danos a equipamentos. Com isso, há uma diminuição dos custos (dinheiro, tempo, equipamentos, etc.) envolvidos no estudo. Através da simulação, é possível também explorar diferentes cenários. A modelagem é uma abstração do problema real. Além dessa abstração, o problema será ainda simplicado, não considerando suas características não determinísticas. Para essas simulações, serão utilizados os softwares Player e Stage. O Player é uma ferramenta voltada a aplicações de controle de robôs móveis. É muito utilizado em universidades e centros de pesquisa. É de código aberto e de livre distribuição, e por isso está em constante desenvolvimento. Utiliza a arquitetura cliente/servidor, e possui suporte a diversas linguagens (entre elas C, C++, Python e Java). Nesse trabalho, o código-fonte dos programas de controle que se comunicam com o Player será em C++. O Stage é um simulador de robôs e ambientes em 2 dimensões, compatível com o Player. O Stage é muito usado no desenvolvimento inicial de código, através das simulações, para que depois possa ser testado em robôs reais. 4

10 3 Objetivos 3.1 Objetivo geral O principal objetivo desse trabalho é o estudo da coleta de dados em redes de sensores sem o auxiliada por robôs móveis, onde os nós sensores podem ter diferentes capacidades de armazenamento. Para esse estudo, serão feitas simulações utilizando o Player/Stage. Como descrito anteriormente, serão feitas de forma bem mais simples do que da maneira que realmente ocorrem na natureza. 3.2 Objetivos especícos Para que o objetivo geral do trabalho seja alcançado, podemos destacar como etapas intermediárias: Instalação e conguração do Player/Stage. Realizar simulações simples, visando o aprendizado de como usar o software, e conhecer seus recursos e limitações. Estudo de estratégias para o problema da coleta dos dados. Denições das políticas (comportamento do robô, forma de atuação com o meio, percepção de outros objetos que constituem o meio) que serão adotadas durante a coleta, de acordo com as estratégias estudadas e escolhidas. Implementação dessas estratégias. Realização das simulações. Estudo dos resultados obtidos. 5

11 4 Metodologia Para a realização desse trabalho, o primeiro passo é a instalação e conguração do Player/Stage. Feito isso, é preciso um breve estudo sobre a ferramenta em questão: como funciona, linguagens de programação suportadas, tipos de arquivos necessários, como congurá-lo, etc. Com a ferramenta já instalada e congurada, através de um pequeno tutorial (disponível pela própria desenvolvedora), deve-se implementar uma pequena simulação, com o intuito de se familiarizar com o ambiente de desenvolvimento e também para testar se tudo está funcionando corretamente. Após essa etapa inicial, pode-se dar início ao próximo passo, que é desenvolver outras simulações mais simples, para um melhor aprendizado. Com as ferramentas necessárias já disponíveis, deve-se iniciar o estudo das estratégias que serão usadas no trabalho, as quais podem resultar num melhor desempenho dos robôs que farão a coleta dos dados. As políticas usadas nas simulações são resultado desse estudo de estratégias. Com isso, é possível realizar as simulações e, na etapa nal, um estudo dos resultados obtidos. Esse problema será abordado de forma simplicada, isto é, serão feitos estudos e simulações voltadas para problemas de natureza mais simples do que realmente ocorrem em situações do mundo real. Não serão levadas em conta todas as características encontradas numa situação real. Não simplicar o problema tomaria um tempo muito maior do que o disponível para realização desse trabalho. A gura 4 exemplica uma situação real, com os sensores e seus respectivos raios de comunicação. Entre eles, encontram-se alguns obstáculos. Já a gura 5 mostra como será um ambiente mais simples. O ambiente de simulação será um grid de tamanho xo. Nesse grid, encontram-se os elementos que constituem o mundo: robôs, nós sensores e obstáculos. Uma posição pode estar vazia, pode conter um sensor ou um obstáculo. Os elementos que estarão disponíveis no mundo serão denidos previamente, ou seja, trata-se de um ambiente estático: não haverão interferências externas (como mudança na posição do sensor, por exemplo). Feito isso, será implementado o comportamento do robô nesse mundo. É nessa implementação que serão denidas quais decisões o robô deverá tomar caso encontre um nó sensor, por exemplo. Denido que cada nó da rede possui uma certa capacidade de armazenamento, é preciso fazer uma coleta de forma minimizar a perda de dados. Para isso é necessário denir a ordem de visita dos nós. Esse é um ponto importante do planejamento da rota a ser seguida, como dito anteriormente, a m de se evitar perda de dados. Por exemplo: um sensor com menor capacidade de armazenamento deve ser visitado antes de um com maior capacidade? Tudo isso será estudado de acordo com as decisões tomadas. Serão comparadas soluções mais simples (como as soluções gulosas) e soluções mais elaboradas. Ao se denir uma rota, deve-se levar em conta que há um deadline para a coleta ser feita, ou seja, um prazo que, caso seja extrapolado, acarretará na perda dos dados armazenados no sensor. O problema do roteamento entre os nós deve ser muito bem explorado, pois a perda dos dados coletados signica desperdício de tempo e recursos envolvidos na aplicação da rede sem o. Os códigos serão implementados na linguagem C. Os testes serão feitos através da execução desse código sobre o robô. Com isso, será feita a análise de seu desempenho: se as ações tomadas eram as esperadas, se o objetivo foi alcançado, etc. Caso o desem- 6

12 penho não seja satisfatório, deve-se voltar ao código e modicá-lo, até que o objetivo esperado seja alcançado. Figura 4: Situação real 7

13 Figura 5: Situação simplicada 8

14 5 Desenvolvimento Seguindo os passos descritos nos objetivos, as atividades desenvolvidas serão apresentadas a seguir. 5.1 Instalação e conguração do Player/Stage O Player e o Stage formam um conjunto de ferramentas usadas em aplicações voltadas a pesquisa e atividades que envolvem robótica. Está disponível para diversos sistemas operacionais, e possui suporte a várias linguagens de programação. Foi escolhida a versão para Linux. A primeira tentativa de instalação foi na distribuição Ubuntu Nessa distribuição, a instalação do Player se fez seguindo um pequeno tutorial ( [6]), com sucesso ao nal. Já a instalação do Stage (também seguindo os passos em [6]) não foi bem sucedida. Mesmo procurando a causa dos erros, o programa não funcionou. A wiki do Player/Stage ( [2]) informa que algumas distribuições Linux possuem esses programas diretamente nos seus repositórios. Mudando para o sistema operacional Fedora 14, os programas foram procurados no assistente de instalação e, após encontrá-los, foram instalados sem nenhum problema. Em seguida, foram realizados alguns testes (disponíveis pelo próprio programa), funcionando corretamente. Porém, ocorreram erros quando um programa fonte (na linguagem C++) precisava ser compilado para rodar sobre uma simulação. Esse erro não era de instalação do Player/Stage, mas devido a falta do pacote com o compilador GCC. Esse erro foi sanado instalando-se o pacote com o compilador. Após isso, um pequeno programa foi compilado e rodado sobre o Player, com sua execução ocorrendo como esperado. 5.2 Aprendizado do uso do Player/Stage Através do tutorial ( [6]) disponível no próprio site do Player/Stage ( [1]), é possível aprender sobre o funcionamento da plataforma. Através desse guia, é explicado ao novo usuário sobre o funcionamento, tipos de arquivos necessários para o desenvolvimento das simulações, parâmetros envolvidos em cada tipo de arquivo, etc. Paralelamente a essa explicação, um pequeno exemplo bem simples é desenvolvido, para que o usuário possa ir acompanhando tudo aos poucos. Através dele, foi possível sabe como criar um robô, sua forma, seus dispositivos, obstáculos, etc. O guia foi seguido e, depois de algumas tentativas e vários erros, o exemplo pôde ser concluído. O próximo passo foi a realização de pequenas simulações, ainda com o objetivo de se familiarizar mais com a plataforma. A primeira delas consistiu em um mundo simples, com apenas um objeto: um robô. O objetivo foi fazer com que o robô caminhasse de um ponto para outro. Tanto o ponto inicial do robô quanto o nal são conhecidos. Essa simulação foi realizada com sucesso. A segunda simulação também consistiu no deslocamento do robô de um ponto a outro, mas foi dividida em 3 partes: na primeira, a posição inicial já era conhecida pelo robô, e a nal seria informada pela linha de comando; na segunda, tanto a posição inicial quanto a nal seriam informadas pela linha de comando, fazendo com que o robô utilizasse algum sensor para se localizar; e na terceira, a posição inicial seria informada pela linha de comando, e a nal seria aleatória, gerada durante a execução do programa, onde novamente o robô seria obrigado a usar algum sensor para perceber sua posição. Todas essas três partes foram implementadas e executadas corretamente. Uma terceira simulação consisitiu em fazer 9

15 o robô se deslocar num ambiente com obstáculo, ou seja, o robô deveria desviar caso algum objeto estivesse em seu caminho. Em todas as situações, o caminhamento foi feito da forma mais simples: primeiro o robô se deslocava no eixo x, depois no eixo y, como mostrado na gura 6. Figura 6: Caminhamento simples Como foi desenvolvida uma atividade onde o robô se desloca e desvia de obstáculos, foi preciso escolher a forma de se fazer esse desvio. A primeira opção, onde o robô contorna o obstáculo de forma mais simples, é apresentada na gura 7. Foi proposta também uma outra forma de desvio, onde seria calculado um vetor de repulsão entre o robô e o obstáculo, onde a cada momento que o robô se aproximasse do obstáculo sua rota sofreria um desvio (gura 8). Porém não foi possível desenvolvê-lo, devido a diculdades de implementação. Assim, essa opção foi descartada, e o desvio simples (mostrado anteriormente) será utilizado. 10

16 Figura 7: Desvio simples do obstáculo Figura 8: Desvio com vetor de repulsão entre robô e obstáculo 11

17 6 Trabalhos Futuros Algumas estratégias que serão utilizadas no trabalho já foram estudadas e escolhidas. A forma de como o problema será abordado, de maneira simplicada, uso do grid de tamanho xo, escolha do caminhamento do robô e desvio de obstáculos foram estratégias escolhidas tendo em vista a simplicação do problema. Para trabalhos futuros, cam as decisões de implementação das ações do robô com relação a coleta de dados: quantos nós serão visitados, ordem dessas visitas. Juntamente com essas decisões implementadas, será analisado se houve perda de dados, eciência da estratégia. Essas decisões fazem parte do estudo da coleta sem perda de dados. 12

18 7 Cronograma de atividades Na Tabela 1, é apresentado o cronograma das atividades que serão realizadas durante esse trabalho. Os trabalhos futuros estão na tabela 2 Atividades Março Abril Maio Junho Julho Instalação e conguração do Player/Stage Estudo do funcionamento da ferramenta, através de tutoriais Estudo de algumas estratégias que serão utilizadas Apresentação do Relatório de Atividades X X X X X X Tabela 1: Cronograma de Atividades. X Atividades Futuras Estudo das estratégias que serão implementadas Implementação Realização das simulações Estudo dos resultados obtidos Redigir a Monograa Apresentação da Monograa Tabela 2: Trabalhos futuros a serem desenvolvidos. 13

19 Referências [1] The Player Project. Acessado pela última vez em 15/05/2011. [2] Player/stage wiki. Acessado pela última vez em 15/05/2011. [3] Leslie Pack Kaelbling, Michael L. Littman, and Anthony R. Cassandra. Planning and acting in partially observable stochastic domains. ARTIFICIAL INTELLI- GENCE, [4] Antonio Alfredo Ferreira Loureiro. Redes de sensores sem o. Disponível em http: // [5] Mário Montenegro Campos Marcelo Boghetti Soares. On robotic data collection strategies in wireless sensor networks: From deterministic to stochastic approaches. [6] Jennifer Owen. How to Use Player/Stage, Disponível em playerstage.sourceforge.net/index.php?src=doc. [7] Denis Fernando Wolf. Player/Stage: controlador e simulador de robôs móveis. Disponível em 14