SlideShare uma empresa Scribd logo
1 de 126
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
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
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
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.
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].
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
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
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.
9Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
1. INTRODUÇÃO: FILTROS
MAS
10Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
1. INTRODUÇÃO: FILTROS
MAS
11Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
1. INTRODUÇÃO: OBJETIVOS
Objetivo Principal
• Criar sistemas multi-agentes utilizando uma plataforma cognitiva baseada
em Java e AgentSpeak: Jason Framework.
• Criar agentes robóticos utilizando a arquitetura customizada ARGO
• Introduzir conceitos básicos de Arduino
• Introduzir conceitos básicos do Javino
Objetivo Secundário
12Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
1. INTRODUÇÃO: KIT ARGO
OUTLINE 1. Introdução
3. Javino
4. A Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
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.
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
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
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
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
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
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
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
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.
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
24Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Codificando...
Escreva o seguinte código:
2. ARDUINO: CRIANDO UM PROJETO
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
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
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
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
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
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
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
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
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
34Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
Criando funções ...
2. ARDUINO: PROGRAMANDO
e procedimentos
35Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO: PROJETO BLINK LED
36Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO: PROJETO LÂMPADA
37Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO: PROJETO LÂMPADA
38Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO: PROJETO LM35
39Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
2. ARDUINO: PROJETO LDR
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
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.
42Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: FORMATO DA MENSAGEM
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
58Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: IMPORTANDO O JAVINO NO ARDUINO
59Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: IMPORTANDO O JAVINO NO ARDUINO
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
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
62Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Resultado do comando de ligar
o Led.
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.
64Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
65Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
Resultado do botão ligar.
66Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: SEND MODE NO ARDUINO + JAVA
1 2
67Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
3. JAVINO: LISTEN MODE NO ARDUINO + JAVA
OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
5. ARGO for Jason
6. Conclusão
Referências Bibliográficas
69Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
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.
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.
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.
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.
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.
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.
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.
77Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA: FLUXO DA MENSAGEM
O efetuador é ativado.
78Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
4. ARQUITETURA
ou
SMA
embarcadoembarcado
OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
6. Conclusão
Referências Bibliográficas
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.
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.
82Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: LIMITAÇÕES
83Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: LIMITAÇÕES
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.
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.
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.
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.
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.
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.
90Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON
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.
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.
93Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: JASON REVIEW
• Plans
Triggering_event : context <- body.
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
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
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)
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)]
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.
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).
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
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
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
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
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
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
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
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
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
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).
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.
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.
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 .
113Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO O AGENTE
• Verificando as percepções adquiridas
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.
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.
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
117Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
5. ARGO FOR JASON: PROGRAMANDO OS FILTROS
• Filtrando um tipo de percepção
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
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
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
OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
5. ARGO for Jason
Referências Bibliográficas
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.
OUTLINE 1. Introdução
2. Usando o Arduino
3. Javino
4. Arquitetura Robótica para SMA
5. ARGO for Jason
6. Conclusão
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.
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
126Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016
AGRADECIMENTOS
OBRIGADO!
pantoja@cefet-rj.br

Mais conteúdo relacionado

Mais procurados

Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecMagno Ritzmann
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Ricardo Rufino
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformRenato Mintz
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Apostila para Programar Arduino
Apostila para Programar ArduinoApostila para Programar Arduino
Apostila para Programar ArduinoIsvaldo Souza
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoFátima Bernardes
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & TruquesÁlvaro Justen
 
Interfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisInterfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisTiago Barros
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robóticaMarcelo Quinta
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Fernando Passold
 
Flisol projetos criativos com o arduino
Flisol   projetos criativos com o arduino Flisol   projetos criativos com o arduino
Flisol projetos criativos com o arduino Fernando Moreira
 
Programando robôs Lego com NXC
Programando robôs Lego com NXC Programando robôs Lego com NXC
Programando robôs Lego com NXC Isvaldo Souza
 

Mais procurados (20)

Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotec
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platform
 
Apresentando o Arduino - UESPI
Apresentando o Arduino - UESPIApresentando o Arduino - UESPI
Apresentando o Arduino - UESPI
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Apostila para Programar Arduino
Apostila para Programar ArduinoApostila para Programar Arduino
Apostila para Programar Arduino
 
Aula sobre arduino
Aula sobre arduinoAula sobre arduino
Aula sobre arduino
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Aula de Arduino: Primeiros Passos
Aula de Arduino: Primeiros PassosAula de Arduino: Primeiros Passos
Aula de Arduino: Primeiros Passos
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & Truques
 
Basic step1
Basic step1Basic step1
Basic step1
 
Netduino - TDC2013
Netduino - TDC2013Netduino - TDC2013
Netduino - TDC2013
 
Interfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisInterfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveis
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
Flisol projetos criativos com o arduino
Flisol   projetos criativos com o arduino Flisol   projetos criativos com o arduino
Flisol projetos criativos com o arduino
 
Programando robôs Lego com NXC
Programando robôs Lego com NXC Programando robôs Lego com NXC
Programando robôs Lego com NXC
 

Semelhante a Programando Robôs Cognitivos Usando o ARGO

Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linhaIsvaldo Souza
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaLinux User Goup Alagoas
 
Introdução à plataforma Arduino
Introdução à plataforma ArduinoIntrodução à plataforma Arduino
Introdução à plataforma Arduinoentrebits
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoEvânio Moreira
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoJeffersonReis46
 
Arduino na engenharia
Arduino na engenhariaArduino na engenharia
Arduino na engenhariaLucas_Fonseca
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPARInteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPARBruno Campagnolo
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduinotamarasalvatori
 
Robótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando ArduinoRobótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando ArduinoDomingosRodrigues16
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoSamir Siqueira
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesCarlos Delfino
 
Workshop iniciação à robótica - Gyro
Workshop iniciação à robótica - GyroWorkshop iniciação à robótica - Gyro
Workshop iniciação à robótica - GyroArticacc, Lda
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Douglas Esteves
 

Semelhante a Programando Robôs Cognitivos Usando o ARGO (20)

Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linha
 
Arduino
ArduinoArduino
Arduino
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em Robótica
 
Introdução à plataforma Arduino
Introdução à plataforma ArduinoIntrodução à plataforma Arduino
Introdução à plataforma Arduino
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
Erus minicurso arduino
Erus minicurso arduinoErus minicurso arduino
Erus minicurso arduino
 
Arduino na engenharia
Arduino na engenhariaArduino na engenharia
Arduino na engenharia
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPARInteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPAR
 
Arduino
ArduinoArduino
Arduino
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduino
 
Robótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando ArduinoRobótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando Arduino
 
Manual lab ino
Manual lab inoManual lab ino
Manual lab ino
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduino
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e Aplicações
 
Arduino e a IOT
Arduino e a IOTArduino e a IOT
Arduino e a IOT
 
Workshop iniciação à robótica - Gyro
Workshop iniciação à robótica - GyroWorkshop iniciação à robótica - Gyro
Workshop iniciação à robótica - Gyro
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 
VIABI-LISA - Estudo de Viabilidade de Software
VIABI-LISA - Estudo de Viabilidade de SoftwareVIABI-LISA - Estudo de Viabilidade de Software
VIABI-LISA - Estudo de Viabilidade de Software
 

Mais de Carlos Eduardo Pantoja

Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Carlos Eduardo Pantoja
 
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsA Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsCarlos Eduardo Pantoja
 
An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...Carlos Eduardo Pantoja
 
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Carlos Eduardo Pantoja
 
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Carlos Eduardo Pantoja
 
Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Carlos Eduardo Pantoja
 
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Carlos Eduardo Pantoja
 
LISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosLISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosCarlos Eduardo Pantoja
 
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Carlos Eduardo Pantoja
 
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Carlos Eduardo Pantoja
 
Instalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresInstalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresCarlos Eduardo Pantoja
 
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGODesenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGOCarlos Eduardo Pantoja
 
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Carlos Eduardo Pantoja
 
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasInside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasCarlos Eduardo Pantoja
 
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosSistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosCarlos Eduardo Pantoja
 
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonPrototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonCarlos Eduardo Pantoja
 
Introdução a Administração e a Economia
Introdução a Administração e a EconomiaIntrodução a Administração e a Economia
Introdução a Administração e a EconomiaCarlos Eduardo Pantoja
 
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Carlos Eduardo Pantoja
 
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...Carlos Eduardo Pantoja
 

Mais de Carlos Eduardo Pantoja (20)

Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
 
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsA Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
 
An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...
 
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
 
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
 
Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)
 
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
 
LISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosLISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas Autônomos
 
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
 
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
 
Instalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresInstalação e Manutenção de Computadores
Instalação e Manutenção de Computadores
 
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGODesenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
 
ContextNet Middleware
ContextNet MiddlewareContextNet Middleware
ContextNet Middleware
 
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
 
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasInside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
 
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosSistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
 
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonPrototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
 
Introdução a Administração e a Economia
Introdução a Administração e a EconomiaIntrodução a Administração e a Economia
Introdução a Administração e a Economia
 
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
 
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o ...
 

Último

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

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.
  • 9. 9Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 1. INTRODUÇÃO: FILTROS MAS
  • 10. 10Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 1. INTRODUÇÃO: FILTROS MAS
  • 11. 11Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 1. INTRODUÇÃO: OBJETIVOS Objetivo Principal • Criar sistemas multi-agentes utilizando uma plataforma cognitiva baseada em Java e AgentSpeak: Jason Framework. • Criar agentes robóticos utilizando a arquitetura customizada ARGO • Introduzir conceitos básicos de Arduino • Introduzir conceitos básicos do Javino Objetivo Secundário
  • 12. 12Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 1. INTRODUÇÃO: KIT ARGO
  • 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
  • 35. 35Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 2. ARDUINO: PROJETO BLINK LED
  • 36. 36Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 2. ARDUINO: PROJETO LÂMPADA
  • 37. 37Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 2. ARDUINO: PROJETO LÂMPADA
  • 38. 38Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 2. ARDUINO: PROJETO LM35
  • 39. 39Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 2. ARDUINO: PROJETO LDR
  • 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.
  • 42. 42Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: FORMATO DA MENSAGEM
  • 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.
  • 58. 58Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: IMPORTANDO O JAVINO NO ARDUINO
  • 59. 59Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: IMPORTANDO O JAVINO NO ARDUINO
  • 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.
  • 64. 64Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: REQUEST MODE NO ARDUINO + JAVA
  • 65. 65Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: REQUEST MODE NO ARDUINO + JAVA Resultado do botão ligar.
  • 66. 66Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: SEND MODE NO ARDUINO + JAVA 1 2
  • 67. 67Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 3. JAVINO: LISTEN MODE NO ARDUINO + JAVA
  • 68. OUTLINE 1. Introdução 2. Usando o Arduino 3. Javino 5. ARGO for Jason 6. Conclusão Referências Bibliográficas
  • 69. 69Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 4. ARQUITETURA: FLUXO DA MENSAGEM
  • 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.
  • 77. 77Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 4. ARQUITETURA: FLUXO DA MENSAGEM O efetuador é ativado.
  • 78. 78Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 4. ARQUITETURA ou SMA embarcadoembarcado
  • 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.
  • 82. 82Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 5. ARGO FOR JASON: LIMITAÇÕES
  • 83. 83Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 5. ARGO FOR JASON: LIMITAÇÕES
  • 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.
  • 90. 90Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 5. ARGO FOR JASON
  • 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
  • 126. 126Programando Robôs Cognitivos Usando o ARGO – UTFPR 09/2016 AGRADECIMENTOS OBRIGADO! pantoja@cefet-rj.br