• Nenhum resultado encontrado

CAPÍTULO 6: CONTROLE INTELIGENTE DE ROBÔS MÓVEIS

6.1 Paradigmas de Programação de Agentes Inteligentes para Robôs Móveis

Para trabalhar de forma autônoma, os robôs móveis devem ser programados adequadamente. Um programa basicamente processa as informações obtidas pelos diversos sensores e envia comandos para os atuadores. A maneira pela qual esse processamento é feito diferencia os paradigmas de programação de robôs.

Existem três paradigmas principais para a programação de robôs móveis: (i) Deliberativo, (ii) Reativo, e (iii) Híbrido. Alguns autores costumam chamar esses paradigmas de “Arquiteturas de Software” ou, simplesmente, de “Arquiteturas Robóticas” [3]. O termo “Paradigmas de Programação” é mais genérico e evita possíveis confusões com a arquitetura de hardware do robô ou com arquiteturas de software especificas construídas com base em alguns destes paradigmas. Os três principais paradigmas são discutidos a seguir [10] [43].

6.1.1 Paradigma Deliberativo

O paradigma deliberativo foi o primeiro a ser utilizado na programação de robôs móveis e herda suas características dos sistemas de planejamento utilizados pela inteligência artificial clássica. Também chamado de Paradigma Hierárquico ou perceber-planejar-agir, o paradigma deliberativo organiza a execução de forma seqüencial [47]. Primeiramente, o robô obtém uma serie de informações sensoriais e constrói uma representação ou modelo do ambiente. O próximo passo consiste em executar um planejamento sobre essa representação de forma a obter uma seqüência de ações. Por fim, as ações são executadas e o processo começa novamente. Portanto, o paradigma deliberativo depende fortemente da construção de uma representação do mundo, sobre a qual o programa irá deliberar de forma a chegar à seqüência de ações desejada.

O paradigma deliberativo sofre de dois problemas principais. O primeiro deles está relacionado com a necessidade de se construir uma representação adequada do mundo. Em geral, robôs móveis trabalham em ambientes dinâmicos, parcialmente observáveis, e as informações sobre esses ambientes são obtidas por meio de sensores sujeitos a erros. Com isso, é difícil manter um modelo preciso do mundo e realizar o planejamento adequadamente. Outro problema está relacionado com o tempo gasto pelo processo seqüencial de “perceber- planejar-agir”. Em geral, a atualização do modelo com as informações sensoriais e o

planejamento das ações são processos computacionalmente caros que podem comprometer o desempenho do robô, principalmente em ambientes dinâmicos.

6.1.2 Paradigma Reativo

As limitações do paradigma deliberativo fizeram surgir, em meados da década de 1980, o paradigma reativo para programação de robôs [23]. No paradigma reativo, ao invés da implementação hierárquica e seqüencial do modelo perceber-planejar-agir, a programação dos robôs é feita através de uma série de módulos que executam em paralelo e conectam mais diretamente os processos de percepção e ação. Em geral, esses módulos recebem o nome de comportamentos (behaviors).

Os comportamentos funcionam como os blocos básicos na construção dos programas. No paradigma reativo, a programação dos robôs é feita combinando-se esses comportamentos de forma a obter as ações desejadas. Por exemplo, um robô cuja missão seja procurar e coletar itens possui vários comportamentos básicos, tais como “mover aleatoriamente”, “desviar de obstáculos”, “buscar item”, etc. Além da ligação forte entre percepção e ação, os comportamentos têm outras têm outras características importantes. Primeiramente, eles devem ser simples e executar de forma rápida, ou seja, reagir rápido aos dados obtidos pelos sensores. Além disso, os comportamentos devem ser autocontidos e independentes, de forma que eles possam ser reutilizados facilmente em diferentes programas. Por fim, eles devem se basear apenas em informações locais e não construir ou depender de uma representação do mundo. De fato, Rodney Brooks, um dos principais advogados desse paradigma, argumenta que a inteligência não depende de representações complexas do mundo e que o “próprio mundo é o seu melhor modelo” [10].

Um ponto importante no paradigma reativo é como combinar os diversos comportamentos. Brooks [10] propôs uma das arquiteturas seminais do paradigma reativo

são organizados em camadas de acordo com as suas competências e comportamentos de nível mais baixo ou mesmo inibi-los. Outra arquitetura, chamada de Motor Schemas considera que a ação a ser tomada pelo robô (nesse caso um vetor de movimento) é um somatório das ações geradas por diferentes comportamentos.

Uma das principais críticas ao paradigma reativo é que ele dificulta a realização de tarefas cognitivas de mais alto nível. Muitas vezes não se consegue prever exatamente qual será a ação resultante da combinação dos vários comportamentos. Por isso, esse comportamento resultante é em geral chamado de comportamento emergente. Enquanto os defensores do paradigma reativo dizem que isso é natural e não traz problemas, os críticos, principalmente os mais teóricos, argumentam que é impossível obter provas formais de que os robôs irão executar do modo desejado.

6.1.3 Paradigma Híbrido

Apesar do grande sucesso do paradigma reativo na programação de robôs móveis, a dificuldade em se prever os comportamentos emergentes fez com que o processo de definir e combinar os comportamentos básicos se tornasse “mais uma arte do que uma ciência”. Além disso, a eliminação por completo de uma representação do mundo e da possibilidade de planejamento sobre ela dificultou a programação de certas tarefas. Por exemplo, como fazer um robô percorrer o menos caminho em um ambiente com obstáculos sem armazenar informações do ambiente e raciocinar sobre elas?

O paradigma híbrido tenta combinar os benefícios dos dois paradigmas anteriores. A idéia principal é fazer uma decomposição, retirando do laço principal de percepção e ação os módulos responsáveis pela deliberação, ou seja, pela representação do mundo e pelo planejamento. Dessa forma, os processos deliberativos e reativos funcionam separadamente, com velocidades de execução diferentes, e são interligados por módulos responsáveis por seqüenciar as ações propostas pela camada deliberativa junto à camada reativa.

A forma mais utilizada para a implementação do paradigma hibrido é a construção de uma arquitetura de três camadas. A primeira camada, chamada de Camada Reativa, é responsável pelo controle de baixo nível do robô. Ela é composta por um ou mais módulos que implementam comportamentos (reativo, deliberativo...) como os descritos na seção anterior, ou seja, comportamentos simples que ligam diretamente sensores e atuadores e executam de forma extremamente rápida.

A segunda camada é a Camada Executiva ou Seqüenciador. Essa camada faz a ligação entre a camada deliberativa (descrita a seguir) e a camada reativa e tem duas responsabilidades principais: (i) decidir que comportamentos da camada reativa devem ser ativados a partir dos planos definidos pela camada deliberativa e (ii) montar uma representação do ambiente que possa ser usada por essa camada a partir das informações sensoriais obtidas.

Por fim, a Camada Deliberativa ou Planejador é responsável pela elaboração de planos complexos com base nos modelos construídos do ambiente. Normalmente, essa camada usa algoritmos computacionalmente caros não podendo, portanto ser executados nos níveis mais baixos da hierarquia. Dentre os algoritmos executados pela camada deliberativa estão algoritmos específicos para o planejamento de caminhos.

Documentos relacionados