Este documento discute a programação de robôs cognitivos usando a arquitetura ARGO. Ele introduz conceitos como agentes, sistemas multi-agentes, agentes robóticos e a plataforma ARGO. Também apresenta detalhes sobre o Arduino, Javino e como esses componentes se integram na arquitetura ARGO para permitir a comunicação entre hardware e software de alto nível para agentes robóticos.
Mini-Curso oferecido na Semana de Tecnologia da IEEE do CEFET/RJ Campus Maracanã no dia 6/10/2016
O Javino está disponível em: javino.sf.net
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Utilizando Sistemas Multi-agentes para a Programação de Plataformas RobóticasCarlos Eduardo Pantoja
Palestra realizada na Semana de Atualização em Tecnologia da Informação (SATI) da UTFPR em 29 de Setembro de 2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Automação de um Veículo Terrestre Não Tripulado Utilizando Jason FrameworkCarlos Eduardo Pantoja
Apresentação realizada na Jornada Integrada de Pesquisa e Pós-Graduação (JIPP) na Semana de Extensão 2015 no CEFET/RJ.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Java.ino - Plataforma de Programação para Arduino com JavaNewton Gomes
Programação Orientada a Objetos para Arduino usando Java. Proposta de plataforma de software destinada a aplicação da linguagem Java para programação de projetos na plataforma Arduino.
Contato: newtongomes.net@gmail.com
(Contribuição, Dúvidas, Participação no Projeto)
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresCarlos Eduardo Pantoja
Curso oferecido aos alunos:
i) do Projeto Horta do CEFET/RJ unidade MG para automatização de uma horta vertical e um berçario de plantas;
ii) do Projeto Turing do CEFET/RJ unidade NF nos dias 18/11/2016 e 19/11/2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Mini-curso ministrado na IV Semana De Informática e Segurança do Trabalho (SIST) do Instituto Federal Catarinense Campus Fraiburgo.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Mini-Curso oferecido na Semana de Tecnologia da IEEE do CEFET/RJ Campus Maracanã no dia 6/10/2016
O Javino está disponível em: javino.sf.net
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Utilizando Sistemas Multi-agentes para a Programação de Plataformas RobóticasCarlos Eduardo Pantoja
Palestra realizada na Semana de Atualização em Tecnologia da Informação (SATI) da UTFPR em 29 de Setembro de 2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Automação de um Veículo Terrestre Não Tripulado Utilizando Jason FrameworkCarlos Eduardo Pantoja
Apresentação realizada na Jornada Integrada de Pesquisa e Pós-Graduação (JIPP) na Semana de Extensão 2015 no CEFET/RJ.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Java.ino - Plataforma de Programação para Arduino com JavaNewton Gomes
Programação Orientada a Objetos para Arduino usando Java. Proposta de plataforma de software destinada a aplicação da linguagem Java para programação de projetos na plataforma Arduino.
Contato: newtongomes.net@gmail.com
(Contribuição, Dúvidas, Participação no Projeto)
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresCarlos Eduardo Pantoja
Curso oferecido aos alunos:
i) do Projeto Horta do CEFET/RJ unidade MG para automatização de uma horta vertical e um berçario de plantas;
ii) do Projeto Turing do CEFET/RJ unidade NF nos dias 18/11/2016 e 19/11/2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Mini-curso ministrado na IV Semana De Informática e Segurança do Trabalho (SIST) do Instituto Federal Catarinense Campus Fraiburgo.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Que tal Hackear seu carro e plugá-lo na nuvem ?!Ricardo Rufino
Nessa palestra irei apresentar como você poderá acessar o computador de bordo do seu carro e coletar informações em tempo real, realizar detecção de falhas, e como enviar esses dados para nuvem para realizar análises. Você irá se surpreender em quais carros é possível fazer isso !!
Vídeo e complemento:
https://youtu.be/PYu6LimVcJI
https://ricardojlrufino.wordpress.com/2017/07/29/que-tal-hackear-seu-carro-e-pluga-lo-na-nuvem-tdc2017-sp/
Irei apresentar também a plataforma de IoT OpenDevice.
Slides da Apresentação no ArduinoDay 2015 sobre o OpenDevice, uma ferramenta para construção de projetos de IoT (Internet das Coisas) como Automação Residencial, Monitoramento de Sensores, Smart City.
---
O principal objetivo é monitorar e controlar
hardwares baratos como Arduino, RaspberryPI e
plataformas semelhantes, local (offline) ou sobre
a nuvem usando linguagens de programação de
alto nível e com a abstração de protocolos e
detalhes de baixo nível.
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
Slides da apresentação no TDC2015 Florianópolis
Open IoT (Internet Of Things) Platform and Framework.
Conectando coisas com Arduino/Raspberry/Andoird/Java usando OpenDevice
Aula de iniciação ao Arduino para criar aplicações.
Está aula é voltada para o curso de computação da UFC, especificamente para a disciplina de Circuitos Lógicos Digitais.
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
Palestra apresentada no TDC2014 em Porto Alegre falando sobre internet das coisas e uma nova API OpenSource para intergração com arduino , rapberry para se criar sistemas de automação residencial, monitoramento de sensores, etc.
Slides da palestra que ministrei online no Lab de Garagem, no dia 19 de julho de 2011 às 20h.
http://www.CursoDeArduino.com.br/
http://blog.justen.eng.br/
http://twitter.com/turicas
Minha apresentação sobre Netduino no TDC 2013 em Florianópolis. Foi uma palestra muito divertida, com muitas risadas e com a participação da platéia na execução das demonstrações!
Introdução à programação de kits Lego NXT usando linguagem gráfica nativa ou NXT-G. Noções de controle automático: malha aberta x malha fechada. Programando Seguidor de Linha usando Sensor de Cor, inicialmente por comparação (movimento bastante oscilatório), terminando com controlador Proporcional (movimento suave, inclui auto-calibração). Noção de controlador industrial PID (Proporcional - Integrativo - Derivativo). Outras sugestões de montagem.
Video (dos slides) em: http://youtu.be/FzGMM5R8ZPg
#Objetivo Geral
O robô deve seguir um algoritmo que harmonize todos os sensores, o robô e estruturado da seguinte forma em cima temos um micro controlador da atmel ao lado de um motor servo que orienta um sensor ultra-sônico no meio temos um drive que controla os motores em baixo temos um motor ao ladeado por dois sensores de luz, o carro vai identificar a intensidade luminosa que esta em baixo dele a partir desses dados é feito um calculo para determinar as propriedades da superfície que ele se encontra, a cor, textura, ate mesmo a altura que ele se encontra, a partir destes princípios o carro pode seguir uma linha preta no chão desde que o chão seja totalmente branco, ou pode seguir uma linha branca desde que o chão seja totalmente preto, o carro possui um sensor que é capaz de detectar objetos de ate 6 metros de distancia.
#Objetivo Especifico
O robô deve de forma totalmente autônoma seguir uma linha preta em uma pista especifica para esse tipo de projeto, nessa pista vai existir um obstáculo que deve ser detectado e desviado depois disso o robô vai tentar localizar a linha para completar o percurso, para execução dessas tarefas os sensores serão “orientados” pelo uso de um micro controlador que fará os cálculos e fornecer pulsos para dar inicio aos atuadores, o micro controlador é programável em linguagem C/C++, a técnica de programação tem embasamento em inteligência artificial.
Trabalho apresentado a disciplina de Arquitetura de Computadores, Ciência da Computação, 2° Semestre, Universidade Sagrado Coração
Autores
Igor Fastroni Corrêa
Anezio Junior
Kelvin Ferraz
Que tal Hackear seu carro e plugá-lo na nuvem ?!Ricardo Rufino
Nessa palestra irei apresentar como você poderá acessar o computador de bordo do seu carro e coletar informações em tempo real, realizar detecção de falhas, e como enviar esses dados para nuvem para realizar análises. Você irá se surpreender em quais carros é possível fazer isso !!
Vídeo e complemento:
https://youtu.be/PYu6LimVcJI
https://ricardojlrufino.wordpress.com/2017/07/29/que-tal-hackear-seu-carro-e-pluga-lo-na-nuvem-tdc2017-sp/
Irei apresentar também a plataforma de IoT OpenDevice.
Slides da Apresentação no ArduinoDay 2015 sobre o OpenDevice, uma ferramenta para construção de projetos de IoT (Internet das Coisas) como Automação Residencial, Monitoramento de Sensores, Smart City.
---
O principal objetivo é monitorar e controlar
hardwares baratos como Arduino, RaspberryPI e
plataformas semelhantes, local (offline) ou sobre
a nuvem usando linguagens de programação de
alto nível e com a abstração de protocolos e
detalhes de baixo nível.
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
Slides da apresentação no TDC2015 Florianópolis
Open IoT (Internet Of Things) Platform and Framework.
Conectando coisas com Arduino/Raspberry/Andoird/Java usando OpenDevice
Aula de iniciação ao Arduino para criar aplicações.
Está aula é voltada para o curso de computação da UFC, especificamente para a disciplina de Circuitos Lógicos Digitais.
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
Palestra apresentada no TDC2014 em Porto Alegre falando sobre internet das coisas e uma nova API OpenSource para intergração com arduino , rapberry para se criar sistemas de automação residencial, monitoramento de sensores, etc.
Slides da palestra que ministrei online no Lab de Garagem, no dia 19 de julho de 2011 às 20h.
http://www.CursoDeArduino.com.br/
http://blog.justen.eng.br/
http://twitter.com/turicas
Minha apresentação sobre Netduino no TDC 2013 em Florianópolis. Foi uma palestra muito divertida, com muitas risadas e com a participação da platéia na execução das demonstrações!
Introdução à programação de kits Lego NXT usando linguagem gráfica nativa ou NXT-G. Noções de controle automático: malha aberta x malha fechada. Programando Seguidor de Linha usando Sensor de Cor, inicialmente por comparação (movimento bastante oscilatório), terminando com controlador Proporcional (movimento suave, inclui auto-calibração). Noção de controlador industrial PID (Proporcional - Integrativo - Derivativo). Outras sugestões de montagem.
Video (dos slides) em: http://youtu.be/FzGMM5R8ZPg
#Objetivo Geral
O robô deve seguir um algoritmo que harmonize todos os sensores, o robô e estruturado da seguinte forma em cima temos um micro controlador da atmel ao lado de um motor servo que orienta um sensor ultra-sônico no meio temos um drive que controla os motores em baixo temos um motor ao ladeado por dois sensores de luz, o carro vai identificar a intensidade luminosa que esta em baixo dele a partir desses dados é feito um calculo para determinar as propriedades da superfície que ele se encontra, a cor, textura, ate mesmo a altura que ele se encontra, a partir destes princípios o carro pode seguir uma linha preta no chão desde que o chão seja totalmente branco, ou pode seguir uma linha branca desde que o chão seja totalmente preto, o carro possui um sensor que é capaz de detectar objetos de ate 6 metros de distancia.
#Objetivo Especifico
O robô deve de forma totalmente autônoma seguir uma linha preta em uma pista especifica para esse tipo de projeto, nessa pista vai existir um obstáculo que deve ser detectado e desviado depois disso o robô vai tentar localizar a linha para completar o percurso, para execução dessas tarefas os sensores serão “orientados” pelo uso de um micro controlador que fará os cálculos e fornecer pulsos para dar inicio aos atuadores, o micro controlador é programável em linguagem C/C++, a técnica de programação tem embasamento em inteligência artificial.
Trabalho apresentado a disciplina de Arquitetura de Computadores, Ciência da Computação, 2° Semestre, Universidade Sagrado Coração
Autores
Igor Fastroni Corrêa
Anezio Junior
Kelvin Ferraz
V2 - Microcontroladores: a revolucao do arduinoSamir Siqueira
Palestra dada na Semana da Computacao da Universidade Plinio Leite. detalhes em :
http://blog.arduinrio.cc/2010/10/03/palestra-hardware-livre-na-semana-de-computacao-da-universidade-plinio-leite-niteroi/
An Architecture for the Development of Ambient Intelligence Systems Managed b...Carlos Eduardo Pantoja
Presented at 30th International Conference on Software Engineering & Knowledge Engineering (SEKE) at San Francisco (USA).
1st July, 2018
Instagram: @prof.pantoja
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Carlos Eduardo Pantoja
Apresentação feita no XII WESAAC em 02/05/2018.
Na biologia, os seres vivos são capazes de estabelecer relações que podem ser classificadas de acordo com o comportamento dos envolvidos. Estas relações biológicas podem ser benéficas ou não para os envolvidos dependendo de como estes se relacionam. Agentes são entidades autônomas com capacidade de tomada de decisão, raciocínio cognitivo e, inclusive, de socializar com outros agentes em um Sistema Multi-Agente (SMA). Alguns agentes são capazes de se moverem para outros sistemas, podendo, assim, se relacionar com agentes, de forma similar aos seres vivos. Este trabalho tem como objetivo propor protocolos inspirados nas relações biológicas com a finalidade de explorar a movimentação de agentes pertencentes a um SMA embarcado em um dispositivo físico e autônomo para um outro SMA em um dispositivo distinto. Serão abordados três protocolos: predatismo, mutualismo e inquilinismo, onde a transferência é feita com o objetivo de dominar, trocar conhecimentos e sobreviver no sistema de destino, respectivamente. Estes protocolos visam preservar e/ou compartilhar os conhecimentos indispensáveis obtidos durante a existência dos agentes. Neste caso, um SMA pode utilizar um dos protocolos propostos para migrar para um outro sistema embarcado. Por fim, serão apresentados alguns experimentos iniciais, nos quais foram criados dois protótipos (um líder e um hospedeiro) onde o líder é danificado e a relação de predatismo é acionada para preservar os conhecimentos adquiridos.
Questões de Consursos Públicos para a área de Sistemas de Informações Gerenciais. Contém questões sobre: E-Commerce, Desenvolvimento de SIG, Business Intelligence, Banco de Dados e Intranet. Para assistir as vídeo-aulas acesse www.youtube.com/professorpantoja
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonCarlos Eduardo Pantoja
Presented at 15th International Conference on Practical Applications of Agents and Multi-Agent Systems (PAAMS) at Polytechnic of Porto - Porto (Portugal).
21st June, 2017
Instagram: @prof.pantoja
Material didático da disciplina de Introdução a Administração do Curso Técnico em Informática industrial do CEFET/RJ Campus Nova Friburgo entre os anos de 2009 e 2013.
Instagram: @prof.pantoja
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...Carlos Eduardo Pantoja
Trabalho apresentado no 2° Workshop de Pesquisa e Desenvolvimento em Inteligência Artificial, Inteligência Coletiva e Ciência de Dados no dia 14 de Dezembro de 2016 em Niterói/RJ.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
Programando Robôs Cognitivos Usando o ARGO
1. Programando Robôs Cognitivos
Usando o ARGO
Semana de Atualização em
Tecnonologia 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
Vinicius Souza de Jesus 1
26 e 27 de Setembro 2016
2. OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. A Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
3. OUTLINE
2. Usando o Arduino
3. Javino
4. A Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
4. 4Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/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. 5Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/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. 6Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/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. 7Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/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. 8Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
1. INTRODUÇÃO: ARGO
ARGO [Pantoja et al., 2016]: Uma arquitetura customizada
do Jason para programação de Agentes Robóticos usando
placas microcontroladas (Arduino):
• Javino [Lazarin e Pantoja, 2015]
middleware para comunicação entre controladores e software
de alto nível com detecção de erro.
• Filtros de Percepções [Stabile Jr e Sichman, 2015]
Filtros de percepção reduzem a quantidade de informação
percebida pelo agente em tempo de execução.
13. OUTLINE 1. Introdução
3. Javino
4. A Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
14. 14Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO
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.
15. 15Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Seu componente principal é o
ATMEGA, um micro
controlador que atua como
cérebro do projeto a ser
implementado.
2. ARDUINO
16. 16Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou saída;
6- Conectores de alimentação;
2. ARDUINO
17. 17Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou saída;
6- Conectores de alimentação;
2. ARDUINO
18. 18Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou saída;
6- Conectores de alimentação;
2. ARDUINO
19. 19Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou saída;
6- Conectores de alimentação;
2. ARDUINO
20. 20Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou
saída;
6- Conectores de alimentação;
2. ARDUINO
21. 21Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Sua parte elétrica possui todas as
aplicações necessárias para o funcionamento
e utilização dos recursos do ATMEGA. Suas
aplicações mais importantes são:
1- Filtragem de alimentação;
2- Conversão de sinal serial para USB;
3- Regulagem de frequência;
4- Botão Reset;
5- Conectores de sinais de entrada ou saída;
6- Conectores de alimentação.
2. ARDUINO
22. 22Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. SOFTWARE DO ARDUINO
Seu software é conhecido
como Arduino IDE e é
baseado na linguagem C.
23. 23Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Este possui duas funções
obrigatórias:
1- setup: configura
funcionalidades de pré-
iniciação;
2- loop: repetição infinita do
código escrito;
2. SOFTWARE DO ARDUINO
24. 24Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Codificando...
Escreva o seguinte código:
2. ARDUINO: CRIANDO UM PROJETO
25. 25Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Compilando...
Compile no botão destacado.
Este botão irá verificar se o
programa contém erros de
sintaxe;
2. ARDUINO: CRIANDO UM PROJETO
26. 26Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Compilando...
Erros de compilação são
exibidos na área inferior da IDE
do Arduino, indicando a causa do
problema. No exemplo abaixo, foi
identificado a falta de ponto e
vírgula como erro;
2. ARDUINO: CRIANDO UM PROJETO
27. 27Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Ajustar...
Agora verifique se seu software
entregará o programa ao Arduino
correto. Primeiramente, vá em
Tools->Board e escolha a
versão da placa utilizada;
2. ARDUINO: CRIANDO UM PROJETO
28. 28Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Ajustar...
Depois, vá em
Tools->Serial Port
e escolha a porta
COM que o
computador está
utilizando para
estabelecer a
comunicação com o
Arduino;
2. ARDUINO: CRIANDO UM PROJETO
29. 29Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Ajustar...
Em caso de não conhecer
a porta de comunicação,
vá na barra de pesquisa
do Windows e digite
“gerenciador de
dispositivos”, ou apenas
realize o atalho +
“pause”, clique em
portas (COM e LPT) e
certifique-se do local do
driver do Arduino;
2. ARDUINO: CRIANDO UM PROJETO
30. 30Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Carregar...
Caso a sintaxe esteja correta,
clique no botão destacado para
carregar o programa para a
memória do Arduino. Erros
durante o carregamento do
programa na placa também são
indicados no campo de status;
2. ARDUINO: CRIANDO UM PROJETO
31. 31Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Na função setup, o
programador configura
parâmetros necessários para
iniciar a rotina de loop. Por
exemplo, os pinos de comando
devem ser definidas como
entrada ou saida de dados para
que o ATMEGA saiba se deve
escrever ou ler informações;
2. ARDUINO: PROGRAMANDO
32. 32Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Na função loop, o programador
faz rotinas de execuções
infinitas, ou seja, ao chegar
no final da rotina, o sistema volta
ao início da função loop;
2. ARDUINO: PROGRAMANDO
33. 33Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Algumas funções na programação
de microcontroladores são
essenciais para realizar o acionamento e
leitura de pinos, comunicações entre
dispositivos, etc. Por exemplo, o arduino
permite a escrita e a leitura
digital e a leitura analógica. Por
isso, existem os comandos
digitalWrite(pino, valor),
digitalRead(pino) e analogRead(pino);
2. ARDUINO: PROGRAMANDO
34. 34Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Criando funções ...
2. ARDUINO: PROGRAMANDO
e procedimentos
40. OUTLINE 1. Introdução
2. Usando o Arduino
4. A Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
41. 41Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO
• é um protocol para troca de mensagens:
• Entre hardware e linguagens de programação de alto nível;
• Dupla biblioteca para comunicação serial;
• Provê detecção de erros.
43. 43Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
44. 44Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
45. 45Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
46. 46Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
47. 47Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
48. 48Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
49. 49Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
50. 50Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
51. 51Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
52. 52Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
53. 53Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
3. JAVINO: FLUXO DA MENSAGEM
54. 54Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
RECEIVERSENDER
3. JAVINO: FLUXO DA MENSAGEM
Add the
preamble
Calculate the
size of the
content
Mount the
message
Send the
message
Verify the
preamble
Is Ok?
Discard
message
Verify the size
of the content
Is Ok?
Return the
content
Start
sending a
message
Finish
receiving a
message
End of the
processyes
yes
no
no
55. 55Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: MODOS DE OPERAÇÃO
• Listen Mode
• Mensagens somente do hardware para o software
AGENT
send a message in
every loop
get when it
wants
56. 56Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
AGENT
request a message
answer with a message
3. JAVINO: MODOS DE OPERAÇÃO
• Request Mode
• do software para o hardware;
• o hardware responde com uma mensagem.
57. 57Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
AGENT
send a
message
execute a low-
level command
3. JAVINO: MODOS DE OPERAÇÃO
• Send Mode
• do software para o hardware;
• o hardware executa uma ação.
60. 60Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Neste exemplo, o arduino
receberá mensagens externas e
executará uma determinada
tarefa e retornará com uma
resposta ao comandante.
Acionamento de Led
via Javino
61. 61Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Enviando o comando de ligar o
Led.
fffe 05 ligar
Pré-âmbulo para
verificação de
recebimento da
mensagem
Tamanho do
conteúdo a ser
enviado em
hexadecimal
Conteúdo a ser
enviado
62. 62Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Resultado do comando de ligar
o Led.
63. 63Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Comandando através de uma
interface gráfica em Java.
70. 70Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
Sensores capturam dados brutos do
mundo real e os enviam para um dos
microcontroladores escolhido para o
projeto.
71. 71Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
Na programação do microcontrolador, os
dados brutos são transformados em
percepções baseado na linguagem de
programação orientada a agentes
escolhida.
72. 72Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
O Javino é responsável por enviar as
percepções para a camada de raciocínio
usando a comunicação serial.
73. 73Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
O agente é capaz de raciocinar com as
percepções que vem diretamente do
mundo real. Além disso, o SMA pode ser
embarcado em placas computadorizadas
como a Raspberry Pi ou computadores
com interface USB.
74. 74Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
Então, o agente delibera e se alguma ação
precisar ser executada, uma mensagem é
enviada a camada de baixo utilizando o
Javino.
75. 75Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
O Javino envia mensagens de ações para
o microcontrolador que está conectado na
porta USB identificado na mensagem.
76. 76Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
Todas as funções possíveis dos
atuadores são programadas para serem
executadas em resposta a mensagens
da porta seriais vinda do Javino.
79. OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
6. Conclusão
Referências Bibliográficas
80. 80Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON
The Argo
by Lorenzo Costa
Argo foi o barco que
Jasão (Jason) e os
Argonautas
navegaram na busca
pelo velocino de
ouro na mitologia
grega.
81. 81Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON
O ARGO é uma arquitetura customizada que emprega o
middleware Javino [Lazarin e Pantoja, 2015], que provê
uma ponte entre o agente inteligente e os sensores e
atuadores do robô.
Além disso, o ARGO possui um mecanismo de filtragem
de percepções [Stabile Jr e Sichman, 2015] em tempo
de execução.
O ARGO tem como objetivo ser uma arquitetura prática
para a programação de agentes robóticos
embarcados usando agentes BDI em Jason e placas
microcontroladas.
84. 84Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
85. 85Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
86. 86Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
87. 87Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
88. 88Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
89. 89Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FUNCIONALIDADES
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.
91. 91Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: JASON REVIEW
• Beliefs
1. Percepções do Ambiente (Percepts)
2. Notas Mentais (Mental Notes)
3. Comunicação
Informações coletadas pelo agente que são relativas ao sensoriamento
constante do ambiente.
Informações adicionadas na base de crenças pelo próprio agente
resultado de coisas que aconteceram no passado, promessas. Esse tipo de
informação geralmente é adicionada pela execução de um plano. constante do
ambiente.
Informações obtidas pelo agente através da comunicação com outros
agentes.
92. 92Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: JASON REVIEW
• Goals
Em Jason, os goals (objetivos) representam os estados do mundo em que o
agente deseja atingir.
• Tipos
1. Achievement Goals (!)
2. Test Goals (?)
É um objetivo para atingir determinado estado desejado pelo agente.
É um objetivo que tem basicamente a finalidade de resgatar
informações da base de crenças do agente.
93. 93Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: JASON REVIEW
• Plans
Triggering_event : context <- body.
94. 94Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: JASON REVIEW
• Plans
1. Addition
São ativados quando um plano é transformado de um desejo para uma
intenção na mente do agente.
2. Test Goal
São objetivos que recuperam informações da base de crenças.
3. Belief
São planos ativados quando o agente adiciona ou remove uma crença da
sua base de crenças
95. 95Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: AÇÕES INTERNAS
• ARGO Internal Actions:
• .limit(x)
• Define um intervalo de tempo para perceber o ambiente
• .port(y)
• Define qual porta serial deve ser utilizada pelo agente
• .percepts(open|block)
• Decide quando perceber ou não o mundo real
• .act(w)
• Envia ao microcontrolador uma ação para ser executada por um efetuador
• .change_filter(filterName)
• Define um filtro de percepção para restringir percepções em tempo real
96. 96Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FILTROS DE PERCEPÇÃO
• Exemplo de percepções do Jason
• Lista de literais
temperature(right,36)
temperature(back,38)
light(left,143)
distance(front,227)
distance(right,30)
97. 97Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FILTROS DE PERCEPÇÃO
• Um exemplo de especificação do filtro de percepção
<PerceptionFilter>
<filter>
<predicate>temperature</predicate>
</filter>
<filter>
<predicate>light</predicate>
</filter>
<filter>
<predicate>distance</predicate>
<parameter operator="NE" id="0">front</parameter>
</filter>
</PerceptionFilter>
distance(front,227)[source(percept)]
98. 98Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FILTROS DE PERCEPÇÃO
• Operadores (nessa versão):
• E: Matches to a regular expression;
• B: Value is greater than the parameter;
• BE: Value is greater or equal than the parameter;
• S: Value is less than the parameter;
• SE: Value is less or equal than the parameter.
99. 99Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: FILTROS DE PERCEPÇÃO
• Exemplo da ação interna filter_change.
• O nome do arquivo é passado como parâmetro
+!carry_to(R)
<− ! take (object, R);
.change_filter(search);
−object (r1);
!!search(slots).
100. 100Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Montando o Hardware:
• Um sensor de luminosidade;
• Um sensor de temperatura ou distância;
• Três leds:
• Um vermelho
• Um verde
• Um amarelo
101. 101Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• O Javino precisa ser programado em modo send e request na controladora
• Para cada led um procedimento de ativação deve ser programado em resposta a
um estímulo (modo send):
lightOn ativa
102. 102Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• O Javino precisa ser programado em modo send e request na controladora
• Para cada led um procedimento de ativação deve ser programado em resposta a
um estímulo (modo send):
lightOn ativa
103. 103Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• O Javino precisa ser programado em modo send e request na controladora
• Para cada led um procedimento de ativação deve ser programado em resposta a
um estímulo (modo send):
lightOn ativa
104. 104Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• O Javino precisa ser programado em modo send e request na controladora
• Para cada led um procedimento de ativação deve ser programado em resposta a
um estímulo (modo send):
lightOn ativa
105. 105Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Em cada ciclo de raciocínio, o agente faz uma requisição das percepções a
controladora.
• Para isso, um procedimento de enviodas percepções deve ser programado em
resposta a um estímulo getPercepts (modo request):
light(400);temperature(26);
getPercepts
106. 106Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Em cada ciclo de raciocínio, o agente faz uma requisição das percepções a
controladora.
• Para isso, um procedimento de enviodas percepções deve ser programado em
resposta a um estímulo getPercepts (modo request):
light(400);temperature(26);
getPercepts
107. 107Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Em cada ciclo de raciocínio, o agente faz uma requisição das percepções a
controladora.
• Para isso, um procedimento de enviodas percepções deve ser programado em
resposta a um estímulo getPercepts (modo request):
light(400);temperature(26);
getPercepts
108. 108Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Em cada ciclo de raciocínio, o agente faz uma requisição das percepções a
controladora.
• Para isso, um procedimento de enviodas percepções deve ser programado em
resposta a um estímulo getPercepts (modo request):
light(400);temperature(26);
getPercepts
109. 109Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PREPARANDO HARDWARE
• Atenção para:
i. Preparar as percepções dentro do formato esperado pelo Jason;
ii. Remover a mensagem recebida pelo Javino a cada loop da controladora;
iii. Importar a biblioteca do Javino do lado do Arduino;
iv. Após a programação, colocar o capacitor no Arduino (+ no RESET e – no GND).
110. 110Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Criando um agente ARGO e definindo sua arquitetura
É necessário
especificar a classe
da arquitetura
customizada para
cada agente ARGO.
111. 111Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Criando e definindo a arquitetura de um agente ARGO
É preciso escolher
qual dispositivo o
agente irá
controlar definindo
a porta serial onde
o mesmo estiver
conectado.
112. 112Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Criando e definindo a arquitetura de um agente ARGO
Por padrão, as
percepções
provenientes dos
sensores estão
inicialmente
bloqueadas. Para
isso é necessário
desbloqueá-las .
113. 113Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Verificando as percepções adquiridas
114. 114Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Ativando um efetuador
Ativando um
efetuador
utilizando a ação
interna act.
115. 115Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Ativando um efetuador
Gera um alto número de
eventos na pilha de intenções
a ser tratado.
116. 116Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO OS FILTROS
• Criando filtros de percepção
nome do filtro
nome do agente
dono do filtro
117. 117Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO OS FILTROS
• Filtrando um tipo de percepção
118. 118Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO OS FILTROS
• Filtrando um tipo de percepção por um determinado valor
119. 119Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO OS FILTROS
• Filtrando mais de um tipo de percepção e por um
determinado valor
120. 120Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: LIMITAÇÕES
Limitações:
• Limite de 127 portas seriais
• O limite da USB
• Uma porta de cada vez
• Sem competição de porta para evitar conflitos [Guinelli et al., 2016].
• As portas podem ser mudadas em tempo de execução.
• Só agentes ARGO podem controlar dispositivos
• Agentes em Jason não possuem as funcionalidades do ARGO.
• Só pode existir uma instância para cada arquivo do agente
• Se mais de um agente com o mesmo código for instanciado, conflitos acontecem
121. OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
5. ARGO for Jason
Referências Bibliográficas
122. 122Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
6. CONCLUSÃO
Desenvolver agentes robóticos controlados por
plataformas cognitivas é um desafio na área.
O ARGO atua em conjunto com o framework Jason
para prover a programação de agentes capazes de
comandar sensores e atuadores de um robô.
A possibilidade de criação de protótipos com capacidades
cognitivas.
123. OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
124. 124Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
REFERÊNCIAS BIBLIOGRÁFICA
•[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.
•[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
•[Pantoja et al., 2016] 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.
125. 125Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
REFERÊNCIAS BIBLIOGRÁFICA
•[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.
•[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