3.1. Título: Módulo Gerador de Planos de Rotas para um Sistema de Navegação Autônoma Baseado na Arquitetura AuRA - PDF
Download "3.1. Título: Módulo Gerador de Planos de Rotas para um Sistema de Navegação Autônoma Baseado na Arquitetura AuRA"
Juliana Dias Sanches
1 UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ Curso de Bacharelado em Ciência da Computação UNIOESTE - Campus de Cascavel MODELO PARA ELABORAÇÃO DE PROJETOS DE TRABALHO DE CONCLUSÃO DE CURSO 1. IDENTIFICAÇÃO DA DISCIPLINA 1.1. Colegiado: Ciência da Computação 1.2. Nome da disciplina: Trabalho de Conclusão de Curso 1.3. Ano de realização: IDENTIFICAÇÃO DO ALUNO 2.1. Nome: Tiago Zilio Jesuino 2.2. Nº de matrícula: Professor orientador: Adriana Postal 2.4. Co-Orientador: Josué Pereira de Castro 3. PROJETO 3.1. Título: Módulo Gerador de Planos de Rotas para um Sistema de Navegação Autônoma Baseado na Arquitetura AuRA 3.2. Introdução A robótica móvel está cada vez mais presente em áreas como transporte, exploração, automação industrial e em sistemas autônomos. Atualmente muitas são as atividades que envolvem robôs, tanto na área acadêmica como, por exemplo, a competição internacional de futebol de robôs ROBOCUP [1], quanto na área militar onde o uso de robôs para desarmar bombas ou efetuar operações em ambientes hostis é cada vez maior [2], ou ainda na área de pesquisa e exploração como, por exemplo, a NASA que há algum tempo já envia robôs ao espaço para auxiliar em suas pesquisas espaciais [3]. É cada vez maior o número de robôs que estão entre nós nos auxiliando ou nos substituindo nas mais diversas atividades. Entretanto, para desempenhar tarefas com resultados satisfatórios, não basta apenas estar inseridos no mesmo ambiente que os humanos, eles precisam de um sistema navegação autônomo capaz de coordenar suas decisões para que suas tarefas sejam realizadas com o máximo de desempenho sem comprometer sua eficiência. Os sistemas de navegação autônoma se caracterizam por serem independentes da intervenção humana, sendo capazes de executar a tarefa a qual lhe foi destinada sem a interferência de qualquer mecanismo externo, além de possuírem a capacidade de se adaptar de forma a contornar situações imprevistas [4]. A navegação autônoma de um robô pode ser definida como o deslocamento de um ponto a outro dentro de um ambiente ou espaço determinado sem que exista a intervenção de um operador externo a esse espaço. O grau de complexidade da navegação pode variar conforme o tipo de sensores usados no robô, o poder de processamento, os objetivos impostos e o tipo de ambiente em que o robô irá navegar [5]. 1
2 Ao longo do tempo muitos pesquisadores propuseram arquiteturas voltadas a tarefas a serem executadas e as características do robô de modo a auxiliar no desenvolvimento de sistemas de navegação autônoma para aplicações. Uma arquitetura faz com que todas as percepções disponíveis pelos sensores sejam fornecidas a um programa que irá enviar aos atuadores as ações que foram geradas com base nas percepções. As arquiteturas para robôs móveis podem ser classificadas com relação ao uso da deliberação e da reatividade dentro do seu sistema de controle. Com base neste critério podese dividir as arquiteturas em [6]: Arquiteturas deliberativas: o foco principal está em formular um plano que permita da melhor maneira possível atingir os objetivos determinados; Arquiteturas reativas: o foco principal está na execução de ações em tempo real sem um plano específico podendo interagir com um ambiente dinâmico sujeito a mudanças inesperadas; Arquiteturas híbridas: procuram mesclar as principais características e funcionalidades das arquiteturas deliberativas e reativas. A Autonomous Robot Architecture, mais conhecida como arquitetura AuRA, é uma arquitetura de abordagem híbrida que foi desenvolvida em meados de 1980 por Ronald C. Arkin para ser aplicada na navegação robótica [7]. Esta arquitetura se caracteriza por possuir um planejador hierárquico que através das informações sobre o ambiente e o conhecimento sobre os comportamentos disponíveis, configura a sua parte reativa a fim de que o robô execute determinada tarefa ou função, como visto na figura 1. Figura 1. Arquitetura Aura (adaptada de [9]) No nível mais alto dos componentes deliberativos está o planejador de missão, no nível intermediário está o módulo de raciocínio espacial e no nível mais baixo está o sequenciador de planos. A seguir apresentamos uma explicação de cada um destes elementos, segundo Santos [8]: Planejador de Missão: Tem a função de estabelecer objetivos de alto nível para serem alcançados pelo robô e também estabelecer as restrições dentro das quais o robô irá operar enquanto tenta alcançar seu objetivo. Raciocinador Espacial: Possui uma memória de longa duração que armazena informações que são obtidas a partir do mapa do ambiente. Estas informações são utilizadas para construir uma sequência de trechos de navegação, que serão executados para que a missão destinada ao robô seja completada. 2
3 Sequenciador de Planos: Aponta um conjunto de comportamentos motores que serão enviados para execução a fim de cumprir cada trecho de navegação gerado pelo módulo de raciocínio espacial. O sequenciador de planos se encarrega de enviar os comportamentos para o controlador de esquemas finalizando a participação da execução deliberativa da arquitetura e iniciando a execução reativa ativando assim o controlador de esquemas. O controlador de esquemas é o responsável pelo controle e monitoramento dos comportamentos reativos do robô durante a execução da sua tarefa, possuindo um comportamento pré-definido para cada estímulo captado por um dos sensores do robô. Uma vez que os comandos são enviados ao controlador de esquemas ativando a parte reativa da arquitetura, a parte deliberativa fica monitorando o desenvolvimento da tarefa que foi destinada ao robô e só volta a ser completamente ativada caso alguma falha seja detectada durante a execução da mesma. Normalmente uma falha é caracterizada por ausência de evolução durante a execução da tarefa. Neste caso as camadas do planejador hierárquico são reativadas uma de cada vez conforme necessário, começando pelo sequenciador de planos até chegar ao planejador de missão [9]. A arquitetura AuRA é bastante modular e flexível, permitindo que seus componentes sejam trocados de acordo com a aplicação ou evolução da tecnologia usada na implementação dos seus módulos, além de permitir que o sistema utilize métodos de aprendizagem para se adaptar [6]. Neste trabalho pretende-se implementar um módulo responsável pela geração de planos de rotas, baseado nos componentes deliberativos da arquitetura AuRA. Este módulo deverá ser capaz de planejar rotas para a execução de tarefas que serão passadas ao robô, baseando-se no mapa de um determinado ambiente. O robô deverá executar suas tarefas e alcançar seus objetivos de maneira autônoma. Para isso, o módulo gerador de planos de rotas proposto deverá receber o mapa do ambiente, entendelo e com base em uma tarefa específica calcular qual será a melhor rota para alcançar o seu objetivo. Feito isso, este módulo passará quais são os planos e quais os comportamentos para o módulo reativo, que deverá executar a tarefa. Por se tratar de uma plataforma universal para o desenvolvimento de sistemas de controle para robôs móveis, o desenvolvimento deste trabalho servirá como base para a construção e melhoramento e ampliação de sistema de controle que possam ser utilizados em diversos modelos diferentes de robôs móveis. Existem inúmeras aplicações onde é possível usar robôs móveis para realização de alguma tarefa, por exemplo, no transporte, na inspeção, limpeza entre tantas outras. Entretanto, a falta de um sistema de controle e navegação robusto, flexível e ao mesmo tempo confiável, que permita que os robôs operem nos mais variados ambientes, pouco estruturados e habitados por seres humanos, limita o uso de robôs nestas aplicações[10]. Para que a navegação em ambientes internos de um robô móvel seja realizada de maneira confiável, este precisa saber sua localização (posição e orientação) dentro do ambiente ao qual está inserido. Através de seus sensores o robô deve ser capaz de saber qual a sua posição e orientação dentro de um mapa global. A localização do robô é importante tanto para a navegação quanto para a exploração, auxiliando o robô a se adaptar ao mapa do ambiente e a seguir suas rotas e planos. Usar os dados sensoriais do robô para estimar a sua localização em um ambiente é um problema comum da robótica móvel, por isso a integração de um módulo localizador no sistema de controle robótico amplia a capacidade e torna mais confiável a navegação do robô autônomo [10]. Neste trabalho espera-se desenvolver um módulo funcional responsável pela geração de planos de rotas para um robô autônomo, que será inserido em um sistema de navegação autônomo que está sendo desenvolvido pelo GPA-Grupo de Pesquisa em Algoritmos da UNIOESTE-Campus de Cascavel. 3
4 3.3. Objetivos: - Geral: implementar um módulo gerador de planos de rotas para a navegação autônoma de robôs, baseado na arquitetura híbrida AuRA [7]. - Específicos: 1. Entender melhor a biblioteca RWTH Mindstorms NXT toolbox que permite a iteração entre o Lego Mindstorms NXT 2.0 e o software MATLAB. Isso permitirá o teste prático do módulo planejador de rotas implementado. 2. Entender a arquitetura AuRA, base de desenvolvimento de sistemas de navegação autônoma que possuem inteligência artificial. 3. Implementar o módulo reativo, que será responsável pela percepção e iteração direta com o ambiente. 4. Implementar o módulo gerador de planos de rotas, que será baseado na arquitetura AuRA. Este módulo será responsável pela parte deliberativa desta arquitetura e passará rotas e planos de execução para o módulo reativo. 5. Realizar testes com os módulos implementados Metodologia: Neste projeto trataremos apenas da navegação em espaços de trabalhos estruturados, ou seja, o espaço de trabalho será previamente conhecido pelo robô, não havendo necessidade de mapeamento do espaço durante a execução de tarefas, e por se tratar de um mapa de um ambiente estático, não sofrendo mudanças quanto à posição de seus obstáculos. O ambiente considerado será plano, não serão consideradas as características topográficas do terreno. Para o desenvolvimento deste projeto será o usado o kit Lego Mindstorms NXT 2.0 [11]. Esse kit foi escolhido para servir de plataforma a este projeto em razão de sua flexibilidade em permitir que vários tipos de robôs diferentes, com características diferentes de movimentação possam ser montados, o que possibilita uma ampla gama de possibilidades de construção e testes do sistema de navegação. Outra vantagem desse kit é a possibilidade de abstrair as dificuldades de manipulação de hardware, permitindo que todo o esforço seja concentrado no desenvolvimento do sistema de controle. Na implementação deste projeto utilizaremos o Matlab, um software interativo de linguagem de alto nível interpretada que permite a execução de tarefas intensas em relação ao contexto computacional, permitindo resolver problemas de forma mais rápida do que em linguagens de programação tradicionais como o C, C++ e FORTRAN [12]. Optou-se por essa linguagem já que a mesma possui uma biblioteca especifica para a comunicação com o Kit Lego: a RWTH- Mindstorms NXT toolbox [13]. O desenvolvimento do sistema reativo será realizado conforme a metodologia de desenvolvimento bottom-up. Por este motivo, iniciaremos com os módulos básicos do módulo reativo, percepção e controle motor, seguindo para controlador de esquemas. O objetivo do módulo reativo na arquitetura escolhida (AuRA), é executar ações pré-definidas pelo módulo deliberativo. Essas ações são respostas a uma informação sensorial obtida através dos sensores disponíveis no robô. Os sensores disponíveis no kit Lego Mindstorms NXT 2.0 e que serão utilizados neste projeto são os de toque, o ultrassônico e o de cores. Seguindo a metodologia bottom-up, o próximo módulo a ser implementado é o deliberativo, que, ao final do projeto, deve ser capaz de tomar decisões e planejar as ações e movimentos do robô. As decisões e o planejamento utilizam um modelo interno do mundo no qual o robô está inserido e têm como objetivo alcançar uma determinada meta. Para que essa meta seja cumprida, será necessária a implementação dos três módulos definidos na figura 1, que mostra um esboço da arquitetura: o sequenciador de plano, o módulo de raciocínio espacial e o planejador de missão. 4
5 3.5. Cronograma de Atividades: ETAPAS Ano:2012 Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Onde as etapas enumeradas no cronograma são definidas como segue: Etapa Descrição 1 Revisão bibliográfica 2 Implementação do módulo reativo 3 Preparação da prévia 4 Implementação do módulo sequenciador de planos 5 Testes e adequações dos módulos 6 Escrita do texto final 7 Preparação da apresentação final 8 Correções finais 3.6. Referências Bibliográficas [1] THE ROBOCUP FEDERATION: What is Robocup Consultado na internet: em: 08/03/2012. [2] IROBOT CORPORATION: Irobot 510 Packbot Consultado na internet: em: 08/03/2012. [3] COULTER, DAUNA: Curiosity, The Stunt Double Consultado na internet: em: 08/03/2012. [4] FABRO, J. A. Grupos Neurais e Sistemas Nebulosos: Aplicação à Navegação Autônoma f. Dissertação (Mestrado) Curso de Engenharia Elétrica, Departamento de Engenharia de Computação e Automação Industrial, Universidade Estadual de Campinas, Campinas, Disponível em: < Acessado em: 15/03/2012. [5] SANTINI, G. Dispositivo de Navegação Autônoma f. Monografia (Conclusão de Curso)-Curso de Informática, Departamento de Engenharias e Ciência da Computação, Universidade Regional Integrada do Alto Uruguai e das Missões, Frederico Westphalen, Disponível em: < Acessado em: 21/03/
6 [6] GRASSI, J. V. Arquitetura Híbrida para Robôs Móveis Baseada em Funções de Navegação com interação Humana f. Tese (Doutorado) Curso de Engenharia Mecatrônica, Universidade de São Paulo, São Paulo, Disponível em: < Acessado em: 18/03/2012. [7] ARKIN, R. C. Towards Cosmopolitan Robots: Intelligent Navigation In Extended Man-Made Environments f. Dissertation Department of Computer and Information Science, University of Massachusetts, [8] SANTOS, K. R. da S. Sistema de Navegação Autônoma para Robôs Móveis Baseado em Arquitetura Hibrida. Teoria e aplicação f. Dissertação (Mestrado) Curso de Engenharia Elétrica, Departamento de Automação e Sistemas Elétricos Industriais, Universidade Federal de Itajubá, Itajubá, Disponível em: < Acessado em: 18/03/2012 [9] ARKIN, R. C.; BALCH T. AuRA: Principles and Practice in Review f. College of Computing, Georgia Intitute of Technology, Atlanta, Disponível em: < Acessado em: 21/03/2012. [10] HEINEM, Farlei José. Sistema de Controle Híbrido para Robôs Móveis Autônomos f. Dissertação (Mestrado)- Mestrado em Computação Aplicada, Centro de Ciências Exatas e Tecnológicas, Universidade do Vale do Rio dos Sinos, São Leopoldo, Disponível em: < Acessado em: 21/03/2012. [11] THE LEGO GROUP. What is NXT Consultado na internet: em: 20/03/2012. [12] THE MATHWORKS. MATLAB-The Language Of Technical Computing Consultado na internet: em: 16/03/2012. [13] LFB LEHRSTUHL FÜR BILDVERARBEITUNG. RWTH-Mindstorms NXT Toolbox Consultado na internet: em: 16/03/ COMPOSIÇÃO DA BANCA* Membro 1: Josué Pereira de Castro. Membro 2: Suzan Kelly Borges Piovesan, FAG/UNIPAR. Membro 3: Fernando Schutz, UTFPR-Medianeira. * para os membros constituintes da banca que não pertencem ao colegiado de Ciência da Computação, acrescentar a procedência. 5. ASSINATURAS Assinatura do Aluno 6
7 Assinatura do Professor Orientador 6. PARECERES/SUGESTÕES DA BANCA: (Composta por 3 professores do Curso, sendo 1 deles o próprio Professor-Orientador) 7