O documento discute o uso de sistemas multi-agentes para programação de plataformas robóticas. Ele resume a evolução histórica dos projetos, começando com simulações e passando para plataformas embarcadas reais usando Arduino e Raspberry Pi. O documento também apresenta a arquitetura ARGO para Jason que permite o controle direto dos atuadores e recebimento automático de percepções em tempo de execução.
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
SMA para Programação de Plataformas Robóticas
1. Utilizando Sistemas Multi-
Agentes para
Programação de
Plataformas Robóticas
Semana de Atualização em
Tecnologia da Informação
(SATI) – UTFPR – Campus
Ponta Grossa
• 1. Centro Federal de Educação Tecnológica (CEFET/RJ), Brasil
• 2. Universidade Federal Fluminense (UFF), Brasil
Carlos Eduardo Pantoja 1,2
29 de Setembro 2016
2. OUTLINE 1. Introdução
2. Plataformas e Frameworks
3. Projetos de Acessibilidade
4. Trabalhos Futuros
5. Conclusão
Referências Bibliográficas
3. OUTLINE
2. Plataformas e Frameworks
3. Projetos de Acessibilidade
4. Trabalhos Futuros
5. Conclusão
Referências Bibliográficas
4. 4Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: AGENTE
Agente
Conforme [Wooldridge, 2000], agentes são
componentes autônomos e
cognitivos, originados da inteligência
artificial, situados em um ambiente e
possuem uma biblioteca de planos com
possíveis ações em resposta aos estímulos
percebidos, com a finalidade de atingir
seus objetivos de projeto e modificar o
ambiente em que estão inseridos.
5. 5Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: SMA
Sistemas Multi-Agentes (SMA)
Um SMA contem um quantitativo de agentes que se
comunicam entre si e podem agir em
determinado ambiente. Diferentes agentes
possuem esferas de influência onde terão controle
sobre o que será percebido do ambiente e que
podem coincidir em alguns casos.
Os agentes ainda podem estar agrupados em
organizações com a finalidade de atingir
objetivos e metas comuns. [Wooldridge, 2009].
6. 6Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: SMA
Visão Tradicional de um SMA
Conforme [Wooldridge, 2009], a abordagem SMA permite a modelagem desde
sistemas simples a complexos e são usados em uma variedade de aplicações como
industria:
1. Gestão da Informação
2. Internet
3. Transportes
4. Telecomunicações
5. Medicina
6. Robótica
7. Entretenimento
7. 7Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: AGENTE ROBÓTICO
MASRobô
É um agente físico que possui [Matarić, 2007]:
1. Hardware
2. Sensores e Atuadores
3. Software (raciocínio)
4. Middleware
8. 8Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: AGENTE COGNITIVO
O BDI [Bratman, 1987] se refere ao uso de programas de computadores com
analogias a crenças (beliefs), desejos (desires) e intenções (intentions).
Modelo Belief-Desire-Intention (BDI)
1. Crenças são informações que o agente tem sobre o mundo.
2. Desejos são todas as possibilidades de estados de negócio que o agente deve
querer atingir. Porém, ter um desejo não significa que o agente irá atuar sobre ele,
mas este é uma potencial influência nas ações do agente.
3. Intenções são todos os estados de negócios em que o agente decidiu trabalhar.
9. 9Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: AGENTE ROBÓTICO
Existem diversas linguagens e plataformas que implementam o conceito de BDI:
1. dMARS [D'Inverno et al., 1998]
2. 3APL [Hindricks et al., 1999]
3. JACK [Winikoff, 2005]
4. JASON [Bordini et al., 2007]
5. JADE/JADEX [Bellifemine et al., 2007]
6. GOAL [Hindricks, 2009]
10. 10Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: AGENTE ROBÓTICO
Algumas dessas linguagens foram estendidas/utilizadas para programação de
plataformas robóticas:
1. 3APL [Hindricks et al., 1999]
2. JADE/JADEX [Soriano et al., 2013]
3. Jason [Jensen, 2010]
4. CArtAgO [Ricci et al., 2009]
5. GOAL [Hindricks, 2009]
17. 17Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
1. INTRODUÇÃO: OBJETIVOS
O que fazer para projetar agentes
cognitivos robóticos?
19. 19Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: O INÍCIO
• X-Plane 9 + Jason [Alexandre e Pantoja, 2014]
Uma biblioteca para integração entre um simulador de voo profissional e Sistemas
Multi-agentes.
Usando comunicação serial e pacotes UDP.
22. 22Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O Arduino é um componente que
une conceitos principalmente de
eletrônica e
programação, a fim de
facilitar a aplicação de
projetos tecnológicos.
2. PLATAFORMAS E FRAMEWORKS: ARDUINO
23. 23Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: THE ROAD SO FAR…
• Arduino + Jason (não embarcado) [Barros et al., 2014]
Um veículo terrestre que se locomove de um ponto X a um ponto
Y, baseado na coordenadas de GPS.
Usando comunicação serial e a biblioteca RxTx.
Criação de um biblioteca para o agente de cálculo para o
deslocamento
• Problemas
O SMA executava em um computador com transmissores e
receptores, que eram responsáveis pela troca de informações
entre o hardware e o software.
Era necessário a intervenção em dois ambientes: o simulado e o
real (onde efetivamente o agente robótico atua).
26. 26Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
A Raspberry Pi é um mini–
computador capaz de executar
um SMA embarcado e
controlar o Arduino em
tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: RASPBERRY PI
27. 27Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
• Arduino + Jason (embarcado) [Lazarin e Pantoja, 2015]
Utilização da Raspberry Pi (versão 1) para embarcação do SMA.
Criação de um middleware para comunicação serial entre Hardware e Software:
Javino.
• Problemas
O processamento das percepções pode causar atrasos na tomada de decisão do
agente.
Ainda é necessária a intervenção no ambiente simulado.
2. PLATAFORMAS E FRAMEWORKS: THE ROAD SO FAR…
34. 34Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: JAVINO
• Middleware Javino [Lazarin e Pantoja, 2015]
Protocolo de comunicação entre hardware-software e software-hardware.
Bibliotecas para cada lado da comunicação.
Detecção de erros.
AGENT
request a message
answer with a message
35. 35Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: A ARQUITETURA
O Javino envia mensagens de ações para
o microcontrolador que está conectado na
porta USB identificado na mensagem.
36. 36Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: A ARQUITETURA
O Javino é responsável por enviar as
percepções para a camada de raciocínio
usando a comunicação serial.
37. 37Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
• Arquitetura + Javino [Lazarin e Pantoja, 2015] [Guinelli et al.,2016]
O protocolo implementado pelo Javino é multi-plataforma.
Pode ser utilizado para desenvolvimento de SMA com qualquer linguagem baseada
em Java: Jason, Jade, Jack, etc.
A biblioteca do lado do software é independente de tecnologia.
A arquitetura permite que um agente robótico controle diferentes
microcontroladores presentes em um mesmo projeto.
• Problemas
Dependendo da linguagem de programação orientada a agentes escolhida, as
percepções devem ser preparadas no lado do Hardware.
Necessidade de desenvolvimento de bibliotecas para outros microcontroladores.
Falta de um mecanismo de comunicação entre agentes robóticos.
2. PLATAFORMAS E FRAMEWORKS: THE ROAD SO FAR…
43. 43Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
• ARGO for Jason [Pantoja et al., 2016a] [Pantoja et al., 2016b]
Uma arquitetura customizada que estende o framework Jason.
O Javino é a ponte entre o agente inteligente e os sensores e atuadores da
plataforma robótica.
• Problemas
Dependendo do número de percepções do agente, o tempo de execução de uma
ação do agente robótico pode ser comprometida.
• Solução
Filtrar determinadas percepções [Stabile Jr e Sichman, 2016].
49. 49Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um período de
tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
50. 50Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um
período de tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
51. 51Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um período de
tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
52. 52Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um período de
tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de
execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
53. 53Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um período de
tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
54. 54Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
O ARGO permite:
1. Controlar diretamente os atuadores em tempo de execução;
2. Receber percepções dos sensores automaticamente dentro de um período de
tempo pré-definido;
3. Mudar os filtros de percepção em tempo de execução;
4. Alterar quais os dispositivos que estão sendo acessados em tempo de execução;
5. Se comunicar com outros agentes em Jason;
6. Decidir quando perceber ou não o mundo real em tempo de execução.
2. PLATAFORMAS E FRAMEWORKS: ARGO FOR JASON
60. 60Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
3. PROJETOS DE ACESSIBILIDADE: PROJETO TURING
O Projeto Turing é um projeto de extensão iniciado em 2012 no
CEFET/RJ que atua junto aos alunos de Informática e Sistemas de Informação
de Nova Friburgo; dos alunos de Automação Industrial de Maria da Graça; e
dos alunos de Informática de Nova Iguaçu.
O projeto visa promover a popularização da ciência e tecnologia
através da participação em eventos técnico-científicos, de nível médio/técnico,
por meio de apresentações de trabalhos e submissões de artigos que
estimulam o interesse pela pesquisa.
61. 61Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
3. PROJETOS DE ACESSIBILIDADE
Desenvolvimento de uma Cadeira de Rodas Acionada por
Comandos de Voz
66. 66Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
3. PROJETOS DE ACESSIBILIDADE
Tecnoboné - Um Protótipo de Boné Inteligente para
Gerenciamento no Desvio de Objetos
67.
68.
69.
70.
71.
72. 72Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
3. PROJETOS DE ACESSIBILIDADE
LuBras - Um Dispositivo Eletrônico para a Comunicação LIBRAS e
Língua Portuguesa
82. OUTLINE 1. Introdução
2. Plataformas e Frameworks
3. Projetos de Acessibilidade
5. Conclusão
Referências Bibliográficas
83. 83Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
4. TRABALHOS FUTUROS: MIDDLEWARE
Implementada
(sem testes)
Ideia
(pode ser desenvolvida)
89. OUTLINE 1. Introdução
2. Plataformas e Frameworks
3. Projetos de Acessibilidade
4. Trabalhos Futuros
Referências Bibliográficas
90. 90Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
6. CONCLUSÃO
Desenvolver agentes robóticos controlados por
plataformas cognitivas é um desafio na área.
Permitir a possibilidade de criação de protótipos com
capacidades cognitivas.
Compartilhar experiências e estabelecer parcerias para
trabalhos futuros.
91. OUTLINE 1. Introdução
2. Plataformas e Frameworks
3. Projetos de Acessibilidade
4. Trabalhos Futuros
5. Conclusão
92. 92Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
REFERÊNCIAS BIBLIOGRÁFICA
•[Barros et al., 2014] R. S. Barros, V. H. Heringer, C. E. Pantoja, N. M. Lazarin, and L. M. de Moraes. An agent-
oriented ground vehicle's automation using jason framework. In ICAART (2), pages 261-266, 2014.
•[Bordini et al. 2007] Bordini, R.H., Hubner, J.F., Wooldridge, M. Programming Multi-Agent Systems in AgentSpeak
Using Jason. John Wiley & Sons Ltd., 2007.
•[Bratman, 1987] Bratman, M. Intentions, Plans, and Practical Reason. Harvard University Press, 1987.
•[Guinelli et al., 2016] Guinelli, J. V. ; Junger, D. S. ; Pantoja, C. E. . An Analysis of Javino Middleware for Robotic
Platforms Using Jason and JADE Frameworks. In: Workshop-Escola de Sistemas de Agentes, Seus Ambientes e
Aplicações, Maceió. Anais do X Workshop-Escola de Sistemas de Agentes, seus Ambientes e Aplicações, 2016.
•[Jensen, 2010] A. S. Jensen. Implementing lego agents using jason. Disponínel em: arXiv:1010.0150, 2010.
•[Huber, 1999]Huber MJ. Jam: a bdi-theoretic mobile agent architecture. In Proceedings of the third annual
conference on Autonomous Agents, AGENTS '99, pags. 236-243, New York, 1999
•[Lazarin and Pantoja, 2015] Lazarin, N.M., Pantoja, C.E. : A robotic-Agent Platform For Embedding Software
Agents Using Raspberry Pi and Arduino Boards. In: 9th Software Agents, Environments and Applications School,
2015
93. 93Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
REFERÊNCIAS BIBLIOGRÁFICA
•[Pantoja et al., 2016a] Pantoja, C. E.; Stabile Jr, M. F. ; Lazarin, N. M. ; Sichman, J. S. ARGO: A Customized
Jason Architecture for Programming Embedded Robotic Agents. In: Workshop on Engineering Multi-Agent
Systems, 2016, Singapore. Proceedings of the Third International Workshop on Engineering Multi-Agent
Systems (EMAS 2016), 2016.
•[Pantoja et al, 2016b] Pantoja, C. E.; Stabile Jr, M. F. ; Lazarin, N. M. ; Sichman, J. S. . ARGO: An Extended
Jason Architecture that Facilitates Embedded Robotic Agents Programming. In: Lecture Notes in Artificial
Intelligence, 2016.
•[Rao 1996] Rao, A.S.: AgentSpeak(L): BDI agents speak out in a logical computable language. In: de
Velde,W.V., Perram, J.W. (eds.) Proceedings of the 7th European workshop on Modelling autonomous
agents in a multi-agent world. Lecture Notes in Artificial Intelligence, vol. 1038, pp. 42-55. Springer-Verlag,
Secaucus. USA, 1996.
•[Stabile Jr. and Sichman, 2015] Stabile Jr., M.F., Sichman, J.S. Evaluating Perception Filters In BDI Jason
Agents. In: 4th Brazilian Conference On Intelligent Systems, 2015.
•[Winikoff, 2005] Winikoff M. Jack intelligent agents: An industrial strength platform. Em Bordini R, Dastani
M, Dix J, Fallah AS, Weiss G, editors. Multi-Agent Programming, volume 15 of Multiagent Systems, Articial
Societies, and Simulated Organizations, pags. 175-193. Springer US, 2005.
94. 94Utilizando Sistemas Multi-Agentes para Programação de Plataformas Robóticas – SATI 2016
REFERÊNCIAS BIBLIOGRÁFICA
•[Wooldridge, 2000] Wooldridge, M. Reasoning about rational agents. Intelligent robotics and autonomous
agents. MIT Press, 2000.
•[Wooldridge, 2009] Wooldridge M. An Introduction to MultiAgent Systems. John Wiley & Sons, 2009.
•[Zambonelli et al., 2001] Zambonelli F, Jennings NR, Omicini A, Wooldridge M. Agent-Oriented Software
Engineering for Internet Applications. In: Omicini A, Zambonelli F, Klusch M, Tolksdorf R, editors.
Coordination of Internet Agents. Springer Verlag; 2001. p.326-345, 2001