LuBras: Uma Arquitetura de um Dispositivo Eletrônico para a Comunicação LIBRA...
Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA
1. Uma Plataforma para Programação
de Agentes Robóticos Estendendo
o Framework Jason para SMA
Dayana da Silva Junger
Licenciatura em Física
Carlos Eduardo Pantoja
Orientador
2. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
1. Introdução
2. Problema
3. Objetivo
4. Conceitos Básicos
5. Metodologia e Resultados
6. ARGO
7. Conclusão
8. Trabalhos Futuros
9. Referências Bibliográficas
10. Agradecimentos
Conteúdo
3. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Agentes
4. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Agentes
Robóticos
Simulados
5. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Sistemas Multi- Agentes (SMA)
Agentes
Robóticos
Simulados
6. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
Agentes
Robóticos
Simulados
7. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
AgentSpeak [2], arquitetura BDI [3]
Agentes
Robóticos
Simulados
8. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
Crenças, metas e planos
AgentSpeak [2], arquitetura BDI [3]
Agentes
Robóticos
Simulados
9. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
Crenças, metas e planos Ações
AgentSpeak [2], arquitetura BDI [3]
Agentes
Robóticos
Simulados
10. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
Crenças, metas e planos
Ações externas
Ações
Ações internas
AgentSpeak [2], arquitetura BDI [3]
Agentes
Robóticos
Simulados
11. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
Framework Jason [1]
Crenças, metas e planos
Ações externas
Ações
Ações internas
Protocolo Javino [4]
AgentSpeak [1], arquitetura BDI [3]
Agentes
Robóticos
Simulados
12. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Introduction
Sistemas Multi- Agentes (SMA)
MicrocontroladoresFramework Jason [1]
Crenças, metas e planos
Ações externas
Ações
Ações internas
Protocolo Javino [4]
AgentSpeak [2], arquitetura BDI [3]
Agentes
Robóticos
Simulados
13. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
A integração entre componentes de hardware com mecanismos de raciocínio não é um
processo trivial.
Em [4],[5],[6] e [7] são propostos alguns modelos de implementação. No entanto:
Em [4] o tempo que o agente leva para enviar mensagens enquanto espera dados dos
sensores pode prejudicar o desempenho do protótipo.
Em [5] utiliza um mecanismo de tradução nas camadas de abstração devido ao custo do
processamento, e o desempenho dos robôs pode ser afetado.
Em [6] a metodologia proposta não foi estruturada para o desenvolvimento de sistemas
embarcados.
Em [7] o SMA não é embarcado e pode haver perda de dados pelo fato da biblioteca RxTx
não possuir tratamento das informações.
14. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
O objetivo deste trabalho é viabilizar o uso das ações internas do Jason
juntamente com o protocolo Javino para desenvolver uma plataforma para
programação de agentes robóticos.
15. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
O Javino é um protocolo para troca de mensagens entre o hardware e o software. Ele
permite que um agente BDI interaja com o mundo real através de sensores e atuadores.
Figura 1: Interação entre o agente BDI e o hardware usando o Javino.
16. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
A metodologia para programação da plataforma robótica proposta neste trabalho
possibilita:
a. O desenvolvimento de ações internas que podem ser utilizadas para controlar
dispositivos de hardware;
b. O uso do protocolo Javino para a comunicação entre o robô e o software sem
problemas de processamento do SMA;
Cinco testes de funcionamento foram desenvolvidos para analisar em que tipo de
contexto o ARGO é aplicável e porque ele deve ser utilizado.
Questão:
Existem limitações no uso das ações internas de forma isolada?
17. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Objetivo – Usar as funcionalidades implementadas
na classe Java de [7] em ações internas.
O que foi feito - Ações internas para imprimir a
distância entre dois pontos e o ângulo de desvio.
Resultado - O agente imprimiu ambos os dados no
console do Jason corretamente (Tabela 1).
Distância e ângulo de desvio informados pelo agente BDI
Ponto Inicial Destino Distância (Km) Ângulo de desvio
(graus)
Torre Eiffel Castelo de São
Jorge
1,451 53
Torre Eiffel Table Mountain
National Park
9,346 26
Tabela 1 – Distância e ângulo de desvio informados pelo agente BDI usando as ações internas do
framework Jason.
18. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Objetivo - Implementar o Javino dentro de uma
ação interna.
O que foi feito – O protocolo Javino foi
implementado em uma ação interna.
Resultado - Os quatro LEDs implementados
funcionaram como o esperado (figura 2).
Figura 2 – Protótipo desenvolvido para o segundo
teste.
19. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Objetivo - Controlar os movimentos básicos de um
veículo autônomo terrestre Rover 5.
O que foi feito – desenvolvimento de uma ação
interna para que o veículo se mova para frente,
para trás, para direita, para esquerda, e pare.
Resultado - O protótipo (figura 3) executou os cinco
movimentos desejados de forma satisfatória.
Figura 3– Veículo Rover 5 .
20. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Objetivo – Programar o agente para raciocinar com
base nos dados recebidos por quatro sensores.
O que foi feito - Quatro sensores de distância foram
implementados em um veículo 4WD (figura 4) .
Resultado - O móvel não concluiu sua meta pois o
número de percepções recebidas geravam um atraso
no raciocínio do agente. Foi percebida a
necessidade de técnicas computacionais para a
redução desse delay. Figura 4 - Versão finalizada do 4WD.
21. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Objetivo – Utilizar um middleware para a
comunicação entre hardware e o software de forma
confiável, e que não interrompa o processamento de
um SMA.
O que foi feito – Foram feitos experimentos usando
o Javino e os frameworks JADE [8] e Jason para
verificar se existe alguma situação na qual o
middleware não deve ser usado.
Resultado - Não é possível usar o protocolo Javino
com um tempo de espera menor que 100 ms e o
Javino não funciona corretamente quando os
agentes competem pelo uso da mesma porta serial
[9].
22. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
23. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
24. The Argo
By Lorenzo Costa (1st third of 16th century)
Tempera on panel, 47 × 58 cm
Museo Civico, Padua.
Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
O ARGO [10] é uma arquitetura customizada do
framework Jason que facilita a programação e
embarcação de agentes robóticos através do protocolo
Javino e do uso de filtros de percepção [11].
25. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Agente
ARGO
Controla atuadores.
Recebe percepções em um tempo pré-
definido.
Pode mudar os filtros.
Possui as funções de um agente Jason.
Decide quando perceber o ambiente.
Figura 5: Funções de um agente ARGO.
26. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Ações internas do ARGO:
1. .limit (x): define um intervalo de tempo para a percepção do ambiente;
2. .act(literal): manda uma ação para a camada do firmware;
3. .move(literal): decide qual movimento um veículo terrestre deve executar usando um
arquivo pré-definido;
4. .change_filter(nomeDoFiltro): escolhe qual filtro deve ser utilizado;
5. .port(y): define a porta serial a ser usada;
6. .percepts(open/block): estabelece se o agente deve ou não perceber o mundo real.
27. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Ações internas do ARGO:
1. limit (x): define um intervalo de tempo para a percepção do ambiente;
2. .act(literal): manda uma ação para a camada do firmware;
3. .move(literal): decide qual movimento um veículo terrestre deve executar usando um
arquivo pré-definido;
4. .change_filter(nomeDoFiltro): escolhe qual filtro deve ser utilizado;
5. .port(y): define a porta serial a ser usada;
6. .percepts(open/block): estabelece se o agente deve ou não perceber o mundo real.
28. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Figura 6: Ciclo de Raciocínio do ARGO.
29. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Figura 6: Ciclo de Raciocínio do ARGO.
30. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
O trabalho proposto permitiu a análise do processo
de implementação da plataforma orientada à
programação de agentes robóticos.
31. Uma Plataforma para Programação de Agentes Robóticos Estendendo
o Framework Jason para SMA
Futuramente, pretendemos desenvolver um
mecanismo que permita a comunicação entre vários
robôs utilizando o ARGO. Pretendemos também
desenvolver uma casa inteligente de caráter físico
que utilizará esta arquitetura e será gerenciada por
um SMA.
32. [1] Bordini, R.H., Hubner, J.F., Wooldridge, W. (2007). Programming Multi-Agent Systems in AgentSpeak Using
Jason. John Wiley and Sons, Londres.
[2] A. S. Rao. (1996) “AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language”. In: W. V. de Velde
and J. W. Perram, editors, Proceedings of the 7th European workshop on Modelling autonomous agents in a
multi-agent world (MAAMAW’96), volume 1038 of Lecture Notes in Artificial Intelligence, pages 42–55, Secaucus,
EUA.
[3] Bratman, M.E. (1987) Intentions, Plans, and Practical Reason. Harvard University Press.
[4] Lazarin, N.M., Pantoja, C.E. (2015) ”A Robotic-agent Platform for Embedding Software Agents using Raspberry
Pi and Arduino Boards”. In Proceedings of 9th Software Agents, Environments and Applications School:
WESAAC’15, Niterói, Brazil.
[5] Wei, C., Hindriks, K.V. (2013) An agent-based cognitive robot architecture. In: Programming Multi-Agent
Systems, LNCS, vol. 7837, pp. 54–71. Springer, Berlin.
[6] Soriano, A.; Marín, L.; Valera, Á.; Vallés M. (2013) “Multi-Agent Systems Integration in Embedded Systems
with Limited Resources to Perform Tasks of Coordination and Cooperation”. In: Proceedings of 10th International
Conference on Informatics in Control, Automation and Robotics , pp. 140 - 147, Reykjavik.
33. [7] Barros, R. S; Heringer, V. H.; Pantoja, C. E.; Lazarin, N. M. e Moraes, L. M., (2014), “An Agent-oriented Ground
Vehicle’s Automation using Jason Framework”. In: Proceedings of 6th International Conference on Agents and
Artificial Intelligence, v.1, Angers.
[8] Bellifemine, F. L., Caire, G., Greenwood, D. (2004) Developing Multi-Agent Systems With JADE. John Wiley and
Sons, Londres.
[9] Junger, D.S., Guinelli , J.V., Pantoja, C.E. (2016) : “An Analysis of Javino Middleware for Robotic Platforms
Using Jason and JADE Frameworks”. In: Proceedings of 9th Software Agents, Environments and Applications
School, Maceió.
[10] Pantoja, C.E., Stabile JR., M.F., Lazarin, N.M., Sichman, J.S., (2016) “ARGO: A Customized Jason Architecture
For Programming Embedded Robotic Agents”. In: 4th Workshop on Engineering Multi-Agent Systems, Singapura.
[11] Stabile Jr., M.F., Sichman, J.S. (2015): Evaluating Perception Filters In BDI Jason Agents. In: 4th Brazilian
Conference On Intelligent Systems.