uma plataforma para programação de agentes robóticos estendendo o framework jason para sma

34
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

Upload: carlos-eduardo-pantoja

Post on 24-Jan-2017

69 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes

Robóticos Estendendo o Framework Jason para SMA

Dayana da Silva JungerLicenciatura em Física

Carlos Eduardo PantojaOrientador

Page 2: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução2. Problema3. Objetivo 4. Conceitos Básicos5. Metodologia e Resultados6. ARGO7. Conclusão 8. Trabalhos Futuros9. Referências Bibliográficas10. Agradecimentos

Conteúdo

Page 3: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

Agentes

Page 4: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

Agentes Robóticos

Simulados

Page 5: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

Sistemas Multi- Agentes (SMA)

Agentes Robóticos

Simulados

Page 6: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas Multi- Agentes (SMA)

Framework Jason [1]

Agentes Robóticos

Simulados

Page 7: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas Multi- Agentes (SMA)

Framework Jason [1]

AgentSpeak [2], arquitetura BDI [3]

Agentes Robóticos

Simulados

Page 8: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas Multi- Agentes (SMA)

Framework Jason [1]

Crenças, metas e planos

AgentSpeak [2], arquitetura BDI [3]

Agentes Robóticos

Simulados

Page 9: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas Multi- Agentes (SMA)

Framework Jason [1]

Crenças, metas e planos Ações

AgentSpeak [2], arquitetura BDI [3]

Agentes Robóticos

Simulados

Page 10: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas 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

Page 11: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas 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

Page 12: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

1. Introdução

IntroductionSistemas 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

Page 13: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

2. Problema

Page 14: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

3. Objetivo

Page 15: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

4. Conceitos Básicos

Page 16: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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?

5. Metodologia e Resultados

Page 17: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA Primeiro

TesteObjetivo – 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 BDIPonto 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.

Page 18: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA Segundo

TesteObjetivo - 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.

Page 19: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

Terceiro Teste

Figura 3– Veículo Rover 5 .

Page 20: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Quarto Teste

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.

Page 21: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA Teste de

Confiabilidade do

MiddlewareObjetivo – 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].

Page 22: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA Teste de

Confiabilidade do

Middleware

Page 23: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA Teste de

Confiabilidade do

Middleware

Page 24: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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].

6. ARGO

Page 25: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

Page 26: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

Page 27: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

Page 28: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Figura 6: Ciclo de Raciocínio do ARGO.

Page 29: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

Figura 6: Ciclo de Raciocínio do ARGO.

Page 30: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

7. Conclusão

Page 31: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

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.

8. Trabalhos Futuros

Page 32: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

9. Referências

Bibliográficas[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.

Page 33: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

[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.

Page 34: Uma Plataforma para Programação de Agentes Robóticos Estendendo o Framework Jason para SMA

OBRIGADO!

[email protected]

[email protected]

10. Agradecimentos