ROBÔS MÓVEIS AUTÔNOMOS DA UNESP-SOROCABA NA “MISSÃO
MARTE”: DESCREVENDO UM SISTEMA REATIVO COM TRANSIÇÃO
SEQÜENCIAL DE COMPORTAMENTOS
Alexandre da Silva Simões
[email protected]
Laboratório de Automação e Processamento de Imagens (LAPI)
Campus de Sorocaba – Universidade Estadual Paulista (UNESP)
Av. Três de Marco, 511 – Alto da Boa Vista – 18087-180 – Sorocaba – SP – Brazil
ABSTRACT
This paper details the project of the reactive UNESP-Sorocaba
autonomous mobile robots team developed to accomplish the
“Mars Land” task, focusing on the robots behaviors. The team
was the champion of the II IEEE Brazilian robot competition in
the LEGO category in 2004.
KEYWORDS: Biologically
reactive paradigm.
inspired
robots,
behaviors,
RESUMO
Este artigo descreve em detalhes o projeto do time de robôs
móveis autônomos reativos da UNESP-Sorocaba desenvolvido
para completar a tarefa da “Missão Marte”, focando nos
comportamentos dos robôs. O time foi o campeão da II
Competição IEEE brasileira de robôs na categoria LEGO de
2004.
PALAVRAS-CHAVE: Robôs biologicamente inspirados,
comportamentos, paradigma reativo.
1
INTRODUÇÃO
Nas últimas décadas, a concepção de robôs tem sido
fundamentalmente baseada em três primitivas básicas: sentir,
planejar e agir. Embora a definição exata destas primitivas
possa variar ligeiramente de acordo com os diferentes autores e
suas linhas de pesquisa, uma definição bem aceita (Murphy,
2002) é apresentada a seguir. A primitiva básica sentir
preocupa-se com a tomada de dados dos sensores e a produção
de informações para o robô. O planejamento preocupa-se com
a elaboração de uma ou mais tarefas que o robô deve executar
baseado nas informações dos sensores. Por fim agir é a
primitiva que preocupa-se em enviar comandos aos atuadores
tomando como base as primitivas anteriores.
Fundamentados no tripé sentir-planejar-agir, três paradigmas
têm sido historicamente colocados para a robótica móvel: o
paradigma hierárquico, o paradigma reativo e o paradigma
híbrido (ou delibirativo-reativo). No paradigma hierárquico,
cujas raízes remontam à década de 60, tipicamente um robô
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
sente o mundo, planeja sua próxima ação, e então age. Entre
suas características principais estão uma representação
centralizada do conhecimento e o foco no planejamento.
Ao longo dos anos, a tarefa do planejamento mostrou-se
excessivamente complexa. No final da década de 80, um novo
modelo foi proposto, inspirado principalmente nos estudos
biológicos do comportamento animal e da psicologia cognitiva.
Nascia o paradigma reativo, cujo princípio básico é emular o
comportamento de animais em sistemas computacionais
simplificados. Para isso, a etapa de planejamento foi
sumariamente descartada, e uma organização baseada apenas
nas primitivas sentir-agir foi adotada.
Esse paradigma fundamenta-se na idéia de que múltiplas
instâncias simultâneas e concorrentes do par sentir-agir (ou
comportamentos) são suficientes para que ações – muitas
vezes não explicitadas em nenhum dos comportamentos –
emirjam da combinação de comportamentos, conferindo aos
sistemas robóticos a capacidade de interagir mais
satisfatoriamente com o ambiente.
Procurando fundir as vantagens dos robôs deliberativos com a
simplicidade dos robôs reativos surgiu o paradigma híbrido.
Nesta abordagem, o robô tipicamente decompõe uma tarefa em
subtarefas (de forma deliberativa), e depois decide quais são os
comportamentos (reativos) mais adequados para cumprir cada
subtarefa, estabelecendo uma organização planejar, sentir-agir.
Um diagrama esquemático dos três paradigmas é apresentado
na Figura 1.
A opção por um ou outro paradigma tem sido um dos pontos de
debate ao longo dos anos, e em suma pode ser entendido como
um problema dependente da aplicação. Para a tarefa da missão
Marte simplificada1, optamos pela adoção de um sistema
plenamente
reativo
com
transição
seqüencial
de
comportamentos. Para a concepção do projeto, adotamos uma
metodologia de projeto similar à proposta por Murphy (2002),
1
Por tarefa simplificada entenda-se: sem a necessidade de
exploração completa do ambiente e sem a presença de objetos
não previstos
apresentada esquematicamente na Figura 2. Esta metodologia
propõe o desenvolvimento do sistema robótico em três fases
distintas: i) uma descrição geral do problema (tarefa, ambiente
e robô), ii) uma fase de descrição comportamental e iii) uma
fase de implementação.
tripulantes mortos não devem ser resgatados. Assim, dois robôs
devem entrar em um ambiente desconhecido – o ambiente da
superfície de Marte -, diferenciar sobreviventes e tripulantes
que morreram na queda e trazer todos os sobreviventes para um
local especificado – a nave de resgate. A tarefa deve ser
cumprida tão rapidamente quanto o possível.
2.2
(a)
(b)
(c)
Figura 1 – Os três paradigmas da robótica móvel: a)
paradigma hierárquico; b) paradigma reativo; c)
paradigma híbrido.
Descrevendo o ambiente
O ambiente da “Missão Marte” – apresentado
esquematicamente na Figura 3 – é composto por dois
pavimentos de madeira interligados por uma rampa de
inclinação acentuada (aproximadamente 30º). Os dois
pavimentos e a rampa são perfeitamente lisos, de cor branca e
nos pavimentos existem salas delimitadas por paredes e portas.
Linhas pretas de largura não informada descrevem um caminho
através dos dois pavimentos do ambiente. Garante-se que estas
linhas nunca se cruzam e também que elas não passam a uma
distância muito pequena de outras linhas ou paredes. O formato
do caminho não é informado a priori, e as trilhas podem
apresentar curvas suaves ou mudanças bruscas de direção com
qualquer ângulo.
A nave de resgate é indicada por uma fita verde de tamanho
não informado em formato de circunferência disposta em lugar
aleatório no pavimento inferior. As vítimas vivas e mortas são
representadas por pedaços de madeira de cores distintas (a cor
é sorteada no início da competição). Garante-se que as vítimas
sempre estarão sobre as trilhas (ao menos no início do desafio),
mas a posição e orientação das mesmas não são conhecidas.
Figura 2 – Etapas do projeto de um sistema reativo.
Este trabalho encontra-se organizado seguindo as etapas
apresentadas na Figura 2: a descrição do problema é realizada
na seção 2. A seção 3 exibe uma descrição mais aprofundada
dos comportamentos implementados e sua forma de ativação
no agente reativo. A seção 4 apresenta os resultados das
implementações realizadas, e a seção 5 apresenta as conclusões
do trabalho.
2
2.1
Figura 3 – O ambiente da “missão marte”.
DESCREVENDO O PROBLEMA
Descrevendo a tarefa
A tarefa de resgate da “Missão Marte” simplificada pode ser
descrita como se segue: duas espaçonaves deveriam completar
uma missão em Marte. Uma das naves – cuja tripulação era
composta por 5 humanos – perdeu óleo e caiu no planeta
vermelho. A espaçonave restante tem dois robôs com
capacidade para resgatar os sobreviventes e trazê-los para a
nave de resgate. Como não há muito espaço na nave, os
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
2.3
Descrevendo o robô
2.3.1
Aspectos mecânicos
Considerando as exigências e restrições impostas pela tarefa e
pelo ambiente, os robôs foram mecanicamente concebidos
como o descrito a seguir (Figura 4):
•
•
•
Compartimento de transporte das vítimas: disposto na
região frontal do robô em forma de uma caixa ligeiramente
maior do que uma vítima disposta na posição horizontal. O
mecanismo é completado por uma tampa retrátil para
abertura e fechamento do compartimento. Esta arquitetura
permitiu unificar os sistemas de resgate de sobreviventes e
remoção de vítimas mortas;
Atuadores: 01 motor para a abertura e fechamento do
compartimento de resgate sem redução e com transmissão
através de correia; 02 motores para a locomoção do robô
(com redução) conectados a rodas posicionados na parte
traseira, auxiliados por duas rodas “livres” dispostas na
parte frontal;
5
1
Sensores: 01 sensor de luz na parte frontal para
identificação das cores das vítimas; 02 sensores dispostos
na parte inferior do robô para a perseguição de trilhas; 01
sensor de toque acoplado a uma antena para a identificação
da entrada em uma nova sala do ambiente.
4
2
3
Como em qualquer sistema automatizado, a confiabilidade dos
sensores é crítica para a conclusão da tarefa. Assim sendo, uma
particular atenção foi reservada a eles. O sensor de toque (para
identificação da transição entre as salas do ambiente), por
exemplo, requer uma pressão acentuada em seu terminal para o
registro de um evento. Desta forma, optamos por utilizar uma
“antena” relativamente longa acoplada ao mesmo para
aumentar a força sobre seu terminal de contato.
Já o sensor de luz para identificação das vítimas apresentou
inicialmente dois problemas principais:
•
Retorno de um valor de leitura aleatório quando nenhum
objeto se encontra próximo do sensor;
•
Leitura com excessiva dependência das condições de
iluminação do ambiente.
(a)
7
6
O primeiro problema foi contornado orientando o sensor para
uma cor previamente conhecida, fixando, portanto, seu valor de
resposta em vazio. O segundo problema foi atenuado
posicionando os sensores de trilhas dentro do compartimento
de transporte das vítimas (local com iluminação controlada).
2.3.2
8
(b)
Aspectos de programação
Definida a mecânica do robô, as seguintes habilidades foram
consideradas fundamentais para completar a tarefa, e, portanto,
consideradas relevantes para a concepção da programação:
•
Habilidade de seguir linhas de qualquer espessura sobre
uma superfície branca;
•
Habilidade de capturar vítimas e liberá-las;
•
Habilidade de remover vítimas da trilha;
•
Habilidade de retornar à nave de resgate, se possível
utilizando informações adquiridas sobre o ambiente;
•
Habilidade de se comunicar com
principalmente visando evitar colisões;
o
outro
9
10
robô
(c)
Estas habilidades foram tomadas como base para a definição
dos comportamentos dos robôs, descritos na seção seguinte. A
programação dos mesmos foi realizada na plataforma NQC
(Not Quite C), devido principalmente à sua similaridade com a
linguagem C, estabilidade e facilidade de programação. Para
uma visão geral deste ambiente veja por exemplo Baum
(2004).
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
Figura 4 – Concepção mecânica do robô: a) atuador da
roda (1), atuador da tampa (2), roda livre (3)
compartimento de transporte da vítima (4), tampa retrátil
(5); b) sensor de identificação da vítima (6), antena (7) e
sensor de toque para identificação do ambiente (8); c) vista
inferior dos sensores de linha (9) e vítima (10).
3
DESCREVENDO COMPORTAMENTOS
Esta seção descreve os comportamentos desenvolvidos para os
robôs e a sistemática de acionamento dos comportamentos para
o agente reativo.
3.1.1
Seguir linha
Este comportamento objetiva seguir uma linha pela lateral
(neste caso esquerda) utilizando dois sensores de luz. Enquanto
o robô estiver posicionado na lateral esquerda da linha, o
sensor esquerdo deverá retornar branco, e o direito preto.
Sempre que o sensor esquerdo invadir a linha preta, o robô
efetuará um giro para a esquerda até que o sensor retorne a ler
branco. De forma análoga, para o sensor direito o robô efetuará
um giro para a direita. Esta estratégia mostrou-se simples e
eficiente independe do formato da trajetória, tanto para curvas
suaves quanto para trajetórias com mudanças bruscas.
3.1.3
Remover obstáculos
Como o robô na fase de busca encontra-se com a porta do
compartimento de transporte aberta, quando uma vítima morta
é detectada ela já se encontra dentro do compartimento de
carga. Assim, para removê-la da pista o robô deverá efetuar um
giro (digamos 45º), empurrar a vítima e retornar de costas até a
linha preta.
IF (SENSOR_VITIMA == VITIMA_MORTA) {
GIRAR_PARA_ESQUERDA(TEMPO1);
IR_PARA_FRENTE(TEMPO2);
WHILE (SENSOR_DIR!=PRETO) {
IR_PARA_TRÁS();
}
}
3.1.4
Retornar à nave
Comportamento muito similar ào de seguir linhas, contudo
eventos são apenas retirados da pilha. Uma vez que o robô
saiba que está entrando no ambiente onde se encontra a nave de
resgate (através da análise dos eventos armazenados na pilha),
ele tipicamente emite um aviso utilizando a porta de
infravermelho direcionado ao outro agente.
If (SENSOR_TOQUE==PRESSIONADO) {
RETIRA_PILHA(PORTA);
PORTA--;
.
If (PORTA==0) EMITIR_AVISO();
Figura 5 – Ilustração do robô seguindo uma linha espessa
de trajetória desconhecida.
}
3.1.5
Liberar vítima
IF ((SENSOR_ESQ== BRANCO) && (SENSOR_DIR == PRETO))
IR_PARA_FRENTE ();
ELSE IF (SENSOR_ESQ == PRETO)
GIRAR_PARA_ESQUERDA();
Uma vez que o robô tenha chegado à nave de resgate, ele deve
conduzir a vítima ao centro da nave, liberá-la, e então retornar
para a procura de mais sobreviventes.
ELSE GIRAR_PARA_DIREITA();
IF(SENSOR_ESQ==VERDE) {
Este comportamento também é o responsável por atualizar o
mapa do mundo. Diferentemente da proposta original para a
“Missão Marte” apresentada em Simões et. al. (2004), para o
ambiente da “Missão Marte simplificada” uma representação
rudimentar do mundo na forma de uma pilha mostrou-se
eficiente. Desta forma, um novo evento foi adicionado à pilha
cada vez que o robô atingiu uma das portas do ambiente.
SEGUIR_LINHA(TEMPO1);
GIRAR_PARA_DIREITA(TEMPO2);
IR_PARA_FRENTE(TEMPO3);
ABRIR_COMPART_TRANSP();
WHILE(SENSOR_2 != PRETO) {
IR_PARA_TRÁS();
}
PARAR();
IF (SENSOR_TOQUE==PRESSIONADO) {
PORTA++;
}
ADICIONA_PILHA(PORTA);
3.1.6
}
3.1.2
Capturar vítimas
Uma vez encontrada uma vítima viva, o compartimento de
transporte deve ser fechado, e o robô efetuará um giro de 180º,
preparando-se para navegar até a nave de resgate. Como
nenhum sensor de rotação foi utilizado, a rotação é feita até que
os sensores identifiquem novamente a linha preta.
Evitar colisão (latência)
Quando um sinal do outro membro da equipe é recebido ativase um comportamento de “latência” durante um tempo
definido, de forma a minimizar a possibilidade de choque com
o primeiro robô, prestes a efetuar o resgate. Trata-se de uma
sistemática rudimentar de cooperação para a resolução da
tarefa. Este comportamento é hierarquicamente superior aos
demais, ou seja, quando ativado este comportamento inibe
qualquer outra possível ação do agente.
IF (SENSOR_VITIMA == VITIMA_VIVA) {
FECHAR_PORTA_COMPART_TRANSP();
WHILE (SENSOR_ESQ != PRETO) {
GIRAR_PARA_ESQUERDA();
}
}
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
IF(SENSOR_IR==TRUE) LATENCIA(TEMPO1);
3.1.7
Acionando os comportamentos
1
2
3
4
5
6
Para o acionamento dos comportamentos do agente reativo foi
adotada uma sistemática seqüencial (máquina de estados),
como o apresentado esquematicamente na Figura 6a. Destaquese o fato de que o comportamento de evitar colisões é
hierarquicamente superior aos demais, e acarreta a inibição
total dos demais comportamentos. A máquina de estados
implementada é apresentada na Figura 6b.
(a)
SEGUIR
LINHA
LIBERAR
VÍTIMA
VÍTIMA
MORTA
VÍTIMA
LIBERADA
REMOVER
VÍTIMA
DENTRO
DA NAVE
VÍTIMA
VIVA
(b)
1
2
3
4
5
6
CAPTURAR
VÍTIMA
VÍTIMA
CAPTURADA
RETORNAR
À NAVE
(b)
Figura 6 – Modelagem do sistema reativo: a) A arquitetura
do sistema; b) A máquina de estados do sistema.
4
RESULTADOS
A Figura 7 apresenta algumas imagens dos robôs executando
algumas das funções descritas na seção anterior.
1
2
(c)
3
4
(a)
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
Figura 7 – Os Robôs exibindo alguns dos comportamentos
projetados para a “Missão Marte” simplificada: a)
capturando um sobrevivente; b) removendo um obstáculo
(a vítima morta é recusada); c) Evitando colisão com o
outro robô no retorno à nave de resgate (o movimento de
um dos robôs é inibido pela entrada do outro).
Durante a fase de implementação todos os comportamentos e
também a transição entre os comportamentos mostraram-se
adequados para a realização da tarefa.
5
CONCLUSÕES
Neste artigo apresentamos em detalhes o modelo do sistema
robótico desenvolvido pela equipe da UNESP para completar a
tarefa da “Missão Marte” simplificada na II competição IEEE
brasileira de robôs.
O sistema implementado mostrou robustez no cumprimento das
metas propostas, estimulando que esta arquitetura seja utilizada
em tarefas simplificadas. Para tarefas mais elaboradas, um
modelo híbrido com representação do conhecimento mostra-se
mais aplicável. É necessário destacar que embora exista um
modelo rudimentar do mundo no modelo aqui adotado, trata-se
de um modelo de agente reativo, que não deve ser confundido
com um modelo de agente híbrido, dado que não existe uma
fase deliberativa bem caracterizada.
Para a continuidade das investigações aqui iniciadas,
destacamos como trabalhos futuros:
•
Investigar a conduta dos agentes reativos quando
comportamentos de menor granularidade são utilizados,
possivelmente estimulando o acionamento de mais de um
comportamento simultaneamente;
•
Evoluir a sistemática de comunicação entre os robôs,
possivelmente estudando mecanismos do âmbito dos
sistemas multiagentes;
desenvolvimento dos robôs. Em particular ao aluno Robinson
Franklin Bruginski também pelas figuras utilizadas. Da mesma
forma à direção do campus de Sorocaba da UNESP, à
prefeitura da cidade de Sorocaba e à Monções Turismo, que
juntas tornaram possível a realização deste trabalho.
Alexandre da Silva Simões foi parcialmente financiado pela
FUNDUNESP através do projeto de pesquisa PROMETEU
(projeto no. 00404/04-DFP), e pela pró-reitoria de pósgraduação e pesquisa PROPP-UNESP através do programa de
capacitação docente. Sua participação no evento foi
parcialmente financiada pelo auxílio FUNDUNESP 00815/05DFP.
REFERÊNCIA BIBLIOGRÁFICA
Baum, D. NQC Programmer´s guide – version 2.5 a4.
Disponível
em:
http://www.baumfamily.org/nqc/.
Acesso em 20/05/2004.
Gardiman, R. Q.; Fernandes, J. R. M.; Bruginski, R. F.;
Simões, A. S. (2004) Completando uma tarefa de
resgate utilizando robôs móveis autônomos. XII
Simpósio Internacional de Iniciação científica.
Universidade de São Paulo. São Paulo, 17 de dezembro.
Murphy, R. R. (2002) “Introduction to AI robotics”. MIT
Press, 2nd edition.
•
Evoluir a sistemática de representação de conhecimento,
propondo representações mais abrangentes;
Rich, E. and Knight, K. (1993) “Inteligência Artificial”,
McGrawHill, 2nd edition.
•
Investigar a possibilidade de evolução para um sistema
híbrido com fase deliberativa, de forma a conferir aos
robôs capacidade de planejamento das ações.
Russel, S. and Norvig, P. (1995) “Artificial Intelligence: a
modern approach”, Prentice Hall.
AGRADECIMENTOS
O autor gostaria de expressar publicamente seus
agradecimentos aos alunos Robinson Franklin Bruginski,
Renato Quarentei Gardiman, Thiago Augusto da Silva Barba e
José Roberto Fernandes, campeões da II competição IEEE
brasileira de robôs, pelo trabalho realizado durante os meses de
VII SBAI/ II IEEE LARS. São Luís, setembro de 2005
Simões, A. S.; Botura, G.; Gardiman, R.; Bruginski, R.;
Fernandes, J. R.; Barba, T. A. S. (2004) UNESP
autonomous mobile robots in the “mars land” rescue
task: strategy issues. II Competição IEEE Brasileira de
Robôs. Jornada de Robótica Inteligente – JRI. Anais do
XXIV Congresso da Sociedade Brasileira de
Computação - SBC. Salvador, 1~6 de agosto.
Download

robôs móveis autônomos da unesp