uso da arquitetura aura - autonomous robot … · uso da arquitetura aura - autonomous robot...
Post on 22-Jun-2020
31 Views
Preview:
TRANSCRIPT
USO DA ARQUITETURA AURA - AUTONOMOUS ROBOT
ARCHITECTURE EM UM ROBÔ EXPLORADOR DE LABIRINTO
CONTROLADO POR RASPBERRY PI.
João Paulo Fernandes da Silva¹, Willame Balbino Bonfim
1. joaopauloibge@hotmail.com
Resumo
Este artigo apresenta um estudo sobre um robô móvel, que utiliza uma arquitetura de
comportamento para definir seu próprio trajeto em um labirinto de paredes ortogonais, ambiente
no qual o robô terá que explorar até encontrar a saída, o qual é o único ponto distinto
reconhecido pelo robô. Apresenta ainda a plataforma Raspberry Pi como controlador do robô
visando a autonomia do mesmo. A arquitetura referida trata-se da Autonomous Robot
Architecture (AuRA) onde a partir da análise dos comportamentos reativos e deliberativos
obtidos desta arquitetura poderá ser gerado um código que posteriormente pode ser inserido na
plataforma Raspberry Pi.
Palavras-chave: Robótica Móvel, Arquitetura, Comportamento, AuRA, Raspberry Pi.
Abstract
This article presents a study on a mobile robot that uses a behavioral architecture to define their
own path in a maze of orthogonal walls, environment in which the robot will have to explore
to find the exit, which is the only distinct point recognized by the robot. It also presents the
Raspberry Pi platform as the robot controller aimed at autonomy of it. Such architecture it is
the Autonomous Robot Architecture (AuRA) where the analysis of reactive behaviors and
deliberating obtained in this architecture can be generated code that can then be inserted into
the Raspberry Pi platform.
Keywords: Mobile Robotics, Architecture, Behavior, AuRA, Raspberry Pi.
Introdução
A robótica pode ser classificada em duas áreas distintas, industrial e móvel. De acordo com a
Norma ISO 10218 os robôs industriais são como uma máquina manipuladora, com vários graus
de liberdade, controlada automaticamente, reprogramável, multifuncional, que pode ter base
fixa ou móvel para utilização em aplicações de automação industrial. (ROMANO, 2002). A
robótica móvel se caracteriza por apresentar robôs com capacidade de se deslocarem de forma
autônoma, ou seja, andar em um ambiente desconhecido sem que haja total ou parcial a
intervenção humana.
Segundo Ribeiro, Costa e Romero (2001), robôs móveis inteligentes são agentes artificiais
ativos, com capacidade de locomoção, imersos no mundo físico real. Agentes por atuarem de
forma racional; artificiais por serem máquinas e não entidades criadas pela natureza; ativos por
atuarem no ambiente de forma propositada, não passiva; com capacidade de locomoção por
poderem se mover no ambiente.
Beket (2005, apud SANTOS, 2009) diz que um robô móvel é um dispositivo mecânico montado
sobre uma base não fixa, que age sob o controle de um sistema computacional, equipado com
sensores e atuadores que o permitem interagir com o ambiente.
Este trabalho visa apresentar um sistema de navegação autônomo para um robô móvel
explorador de Labirinto. O sistema criado tem a capacidade de se autoplanejar, executando as
tarefas geradas de forma autônoma. Para isso foi utilizada como base a arquitetura híbrida
AuRA (Autonomous Robot Arquitecture).
Materiais e métodos
Fundamenta-se em cinco tópicos: (i) Robô explorador de labirinto, (ii) Comportamento do robô,
(iii) Arquitetura AuRA, (iv) Divisão das camadas da arquitetura AuRA e (v) Raspberry Pi.
Robô explorador de labirinto
O robô explorador de labirinto é um AVG (Veículo Guiado Automaticamente). Dietsch e
Torrens (2007, tradução nossa) cita que um AVG é essencialmente um robô móvel utilizado
em áreas industriais para mover materiais de um ponto a outro. Dietsch e Torrens (2007,
tradução nossa) dizem ainda que há uma tendência para o desenvolvimento de robôs que
possuem um maior grau de autonomia, para que eles possam executar tarefas de forma mais
eficaz em um ambiente desestruturado sem orientação humana contínua ou intervenção.
O robô explorador de labirinto por ser autônomo usa sua percepção através dos sensores que
estão distribuídos em seu chassi para percorrer um caminho intrincado (labirinto) criado
intencionalmente para desorientar quem o percorre. A figura 1 abaixo ilustra o robô com a
disposição dos sensores, atuadores e a plataforma Raspberry Pi.
Figura 1 – Ilustração do robô com a disposição dos sensores, atuadores e a plataforma Raspberry Pi.
Fonte: Elaborada pelos autores.
Comportamento do robô
Existem dois tipos de comportamento em robôs móveis, que são: Reatividade e Deliberação.
Conforme Ribeiro, Costa e Romero (2001), reatividade corresponde a mapeamentos simples,
ligando estímulos sensoriais a respostas (ações), enquanto que deliberação implica em um
estágio intermediário de planejamento, baseado em modelo do ambiente no qual o robô atua. A
arquitetura AuRA, utiliza ambos os comportamentos, pois é híbrida.
Arquitetura AuRA-Autonomous Robot Arquitecture
As arquiteturas híbridas combinam deliberação e reatividade, sendo elas mais complexas e
predominantes na atualidade. Este tipo de arquitetura utiliza deliberação para planejar as ações
do robô a partir do modelo de mundo, de forma que os objetovos do robô possam ser atingidos.
Uma vez que as ações são planejadas, a execução do plano de ação é realizada utilizando a
reatividade, pois por meio dela é possível responder rapidamente as mudanças dinâmicas no
ambiente (GRASSI Jr, 2006). Uma das principais arquiteturas híbridas é a AuRA.
Divisão de camadas da arquitetura aura
O planejador hierárquico é composto de um planejador de missão, de um módulo de
raciocínio espacial, e um sequenciador de plano de execução. À semelhança dos
sistemas de planejamento tradicionais, o nível mais alto de hierarquia de planejamento
é ocupado pelo planejador de missão, responsável por estabelecer objetivos de alto
nível para o robô e restrições de raciocínio espacial, originalmente chamado de
navegador. Ele utiliza o conhecimento cartográfico do ambiente, armazenado em uma
memória de longa duração, para construir uma sequência de trechos de navegação que
devem ser executadas pelo robô para que a missão possa ser completada. Por fim, o
nível mais baixo na hierarquia de planejamento é ocupado pelo seqüenciador de plano,
também chamado de piloto em trabalhos anteriores. Para cada trecho de navegação
gerado pelo módulo de raciocínio espacial, o sequenciador de plano especifica um
conjunto de comportamentos motores que devem ser enviados para execução. Neste
ponto, a deliberação acaba e se inicia a execução reativa. O controlador de esquemas
é a parte reativa e é responsável pelo monitoramento dos comportamentos reativos em
tempo de execução. Cada comportamento motor (ou esquema) é associado a um
esquema perceptivo capaz de prover o estímulo requerido para um determinado
comportamento (GRASSI Jr, 2006, p. 36).
Nesta arquitetura há uma divisão clara da parte deliberativa e reativa e onde cada processo
ocorre, desde o mais alto nível até o mais baixo.
A Arquitetura AuRA é representada através do diagrama da figura 2 a seguir:
Figura 2 – Arquitetura AuRA.
Fonte: (GRASSI Jr, 2006).
Raspberry Pi
Como citado anteriormente, a plataforma Raspberry Pi é apresentada neste artigo como uma
ferramenta para que o robô através de uma codificação seja autônomo.
De acordo com Techtudo (2015), o Raspberry Pi é um mini-microcomputador que, do tamanho
de um cartão de crédito, abriga processador, processador gráfico, slot para cartões de memória,
interface USB, HDMI e seus respectivos controladores. Além disso, ele também apresenta
memória RAM, entrada de energia e barramentos de expansão. Ainda que minúsculo, o
Raspberry é um computador completo.
O Raspberry Pi pode ser usado para diversas aplicações, entre elas a de controlador. Na sua
barra de pinos para entradas e saídas de dados, como pode ser observado na parte superior
esquerda da figura 5, podem ser conectados sensores e atuadores, ideal para aplicações com
robótica móvel. Tal plataforma opera com vários sistemas operacionais, tais como o Linux,
onde temos interfaces ou ambientes de programação, podendo trabalhar com várias linguagens
de programação, tais como Java. Na figura 3 encontra-se a plataforma para programação,
Raspberry Pi.
Figura 3 – Raspberry Pi.
Fonte: (TECMUNDO, 2015).
Resultados
Fundamenta-se em três tópicos: (i) Análise de domínio, (ii) Descrição comportamental do robô
e (iii) Plano de teste.
Análise do domínio
A análise de domínio pode ser considerada como um planejamento de situações no qual robô
poderá encontrar no ambiente a ser explorado. Na análise de domínio é definido um conjunto
de características que descrevem problemas para os quais uma determinada aplicação pretende
dar solução. Abaixo está listado o domínio que o robô deverá ter ao percorrer o labirinto.
1. Sem obstáculo;
2. Com obstáculo a sua frente;
3. Com obstáculo a sua direita;
4. Com obstáculo a sua esquerda;
5. Com obstáculo a sua frete e a direita;
6. Com obstáculo a sua frente e a esquerda;
7. Com obstáculo a sua direita e a sua esquerda;
8. Com obstáculo a sua frente a sua direita e sua esquerda;
9. Sobre uma faixa preta (saída);
A figura 4 a seguir exemplifica melhor cada situação listada acima:
Figura 4 – Representação da análise de domínio.
Fonte: Elaborada pelos autores.
Descrição comportamental do robô
A descrição comportamental obedece a uma complexidade como mostra a figura 5, esta
complexidade relaciona comportamentos reativos que são mais simples e comportamentos
deliberativos que são mais complexos.
Figura 5 – Comportamentos: Escala de Complexidade.
Fonte: Elaborada pelos autores.
Um comportamento relaciona estímulos sensoriais a ações produzidas sobre os atuadores do
robô, de acordo com um plano realizado a partir de um modelo interno do ambiente:
(RIBEIRO; COSTA; ROMERO, 2001).
a = c (s, p) equação (1)
Onde:
a: ação que o robô realizará;
c: comportamento; s: sensores;
p: plano de ação.
Cada comportamento implementado no robô corresponde a uma função obtida na
análise de domínio, para isso tem-se:
O robô quando não detectar nenhum obstáculo deverá andar para frente com uma distancia
de 10 cm:
a = ([ ], p1 (10,F)) equação (2)
Quando o robô detectar obstáculo a sua frente girar 90° graus para sua direita:
a = ([s1], p2(90°, D)) equação (3)
Se ocorrer a possibilidade do robô detectar obstáculo a sua frente novamente, então:
Virar a direita se D1 = 1, W = 0, D = 0;
Virar a esquerda se D = 0, W = 1, D = 1. equação (4)
Quando o robô detectar obstáculo a sua esquerda o mesmo deverá andar para frente com
uma distancia de 10 cm:
a = ([s3], p1 (10, F)) equação (5)
Quando o robô detectar obstáculo a sua frete e a direita girar 90° graus para sua direita:
a = ([s1, s2], p2 (90°, D)) equação (6)
Quando o robô detectar obstáculo a sua frente e a esquerda girar 90° graus para sua direita:
a = ([s1, s3], p2 (90º,D)) equação (8)
Quando o robô detectar obstáculo a sua direita e a sua esquerda andar para frente com uma
distancia de 10 cm:
a = ([s2, s3], p1 (10, F)) equação (9)
Quando o robô detectar obstáculo a sua frente a sua direita e sua esquerda girar 180° graus
para trás:
a = ([s1, s2, s3], p2 (180°, T)) equação (10)
Quando detectar linha preta o robô deverá parar:
a = ([s4], p1 (0, F)) equação (11)
Onde:
p1: gera uma ação de andar em cm;
p2: gera uma ação de girar 90° para direita ou esquerda (D, E) ou 180° graus para trás
(T).
Plano de teste
O plano de teste trata-se de uma modelagem detalhada de como o robô atuará durante o seu
funcionamento, se o mesmo realizará ou não o que lhe foi proposto, para isso o plano de teste
tem como referência a analise de domínio já descrito neste trabalho.
Teste 1: Posicionar o robô sem obstáculos, acioná-lo, verificar se a missão foi atingida;
Teste 2: Posicionar o robô com obstáculo a sua frente e acioná-lo, verificar se a missão foi
atingida;
Teste 3: Posicionar o robô com obstáculo a sua direita e acioná-lo, verificar se a missão foi
atingida;
Teste 4: Posicionar o robô com obstáculo a sua esquerda e acioná-lo, verificar se a missão
foi atingida;
Teste 5: Posicionar o robô com obstáculo a sua frente e esquerda, acioná-lo, verificar se a
missão foi atingida;
Teste 6: Posicionar o robô com obstáculo a sua frente e direita e acioná-lo, verificar se a
missão foi atingida;
Teste 7: Posicionar o robô com obstáculo a sua direita e a esquerda, acioná-lo, verificar se a
missão foi atingida;
Teste 8: Posicionar o robô com obstáculo a sua frente, esquerda e direita, acioná-lo, verificar
se a missão foi atingida;
Teste 9: Posicionar o robô sobre uma faixa preta, acioná-lo, verificar se a missão foi atingida.
Considerações Finais
O estudo da robótica móvel é bastante amplo, o que possibilita uma diversificação em modelos
de robôs e a sua forma de atuação, assim como os tipos de arquiteturas e comportamentos que
podem ser desenvolvidos. Este trabalho mostrou o uso da arquitetura AuRA - Autonomous
Robot Architecture em um robô explorador de labirinto pode ser muito útil quando se quer um
robô cada vez mais autônomo em suas várias possibilidades de modelo de ambiente gerados
pelos comportamentos dessa aquitetura, onde é fundamentado em se utilizar a plataforma de
programação Raspberry Pi como controlador para que o robô seja autônomo. Sugere-se para
trabalhos futuros um estudo mais detalhado, mostrando a codificação a ser programada no
Raspberry Pi com base nos resultados obtidos neste trabalho, assim como o funcionamento
detalhado do robô.
Referências
DIETSCH, J.; TORRENS, B. Self-Guided Vehicle with Enhanced Control System.
Disponível em:
<http://www.growthconsulting.frost.com/web/images.nsf/0/40254B68ACBF00CF652572BF0
0405F85/$File/TI%20Alert%20NA.htm> Acesso: 19 de março de 2015.
GRASSI Jr, V. Arquitetura Hibrida para Robôs Móveis Baseada em Funções de
Navegação com Intervenção Humana. Tese (Doutor em Engenharia) – Universidade de São
Paulo. São Paulo, 2006.
RIBEIRO, C. H. C.; COSTA, A. H. R.; ROMERO, R. A. F. Robôs Móveis Inteligentes:
Princípios e Técnicas. 2001.
ROMANO, V. F. Robótica Industrial – Aplicações na Indústria de Manufatura e de
Processos. Edgard Blücher Ltda, 2002.
SANTOS, K. R. S. Sistema de Navegação Autônoma para Robôs Móveis Baseado em
Arquitetura Híbrida: Teoria e Aplicação. 2009. Dissertação (Pós-Graduação em Engenharia
Elétrica) – Universidade Federal de Itajubá. Minas Gerais, 2009.
TECHTUDO. Como funciona o Raspberry Pi? Entenda a tecnologia e sua aplicabilidade.
Disponível em: < http://www.techtudo.com.br/noticias/noticia/2014/11/como-funciona-o-
raspberry-pi-entenda-tecnologia-e-sua-aplicabilidade.html> Acesso: 22 de maio de 2015.
TECMUNDO. Raspberry Pi: como um computador de 50 reais pode revolucionar a
informática. Disponível em: <http://www.tecmundo.com.br/hardware/23175-raspberry-pi-
como-um-computador-de-50-reais-pode-revolucionar-a-informatica.htm> Acesso: 22 de maio
de 2015.
top related