Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o Framework Jason

Documentos relacionados
JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Protocolo de Interação Entre SMA Embarcados. Bio-Inspirado na Relação de Prdatismo

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Inteligência Artificial Agentes Inteligentes

GERENCIAMENTO DE PROJETOS - 20h - EaD

4 Arquitetura Adotada

Sistema Multiagentes Utilizando a Linguagem AgentSpeak(L) para Criar Estratégias de Armadilha e Cooperação em um Jogo Tipo PacMan

Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

O que é um sistema distribuído?

Arquitetura BDI. Benjamin Grando Moreira

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

INE Introdução a S is temas Multiagente Arquiteturas de agentes

WESAAC 2019 SCRUMIE: JOGO ORIENTADO A AGENTES PARA ENSINO DE SCRUM. Suelen Regina Cordeiro dos Santos

INFORMAÇÕES GERAIS DO TRABALHO

LuBRAS: Desenvolvendo Dispositivos Eletrônicos para Auxílio na Comunicação entre LIBRAS e a Língua Portuguesa

Guia de Práticas Elevador Didático Programável

Avaliação de Desempenho de Sistemas Operacionais em dispositivos embarcados para a provisão de serviços em Internet das Coisas

AUTOR(ES): ANGELINA GRAZIELA SÉTIMO DE CARVALHO, ALAN CARLOS ECHER, JOÃO LUIS OSTI DA SILVA, THAISA BONAMIM FIORILLI

Controle residencial utilizando Arduino para auxílio de pessoas com deficiência visual

Sistemas Multiagentes 4ª Aula Programação Orientada a Agentes. Que ação tomar? Inferência Lógica : ( L implica L )

Modelando sistemas Multiagentes Analisando Metodologias

Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA

Simulador de um Ambiente Virtual Distribuído Multiusuário para Batalhas de Tanques 3D com Inteligência Baseada em Agentes BDI

Arduino Básico: As versatilidades desta plataforma na prática

Documento de Arquitetura de Software- SGE

Protocolo de Interação Entre SMA Embarcados Bio-Inspirado na Relação de Predatismo

ANÁLISE DE UM MANIPULADOR ROBÓTICO MÓVEL 1

SISTEMA DE AUTOMAÇÃO RESIDENCIAL: ACESSIBILIDADE NO CONTROLE DOMÉSTICO JASON SCALCO PILOTI

Exemplo de Arquitetura em Camadas. Arquiteturas de Software. Aplicações-fim

Um Agente Inteligente para Simulação de Voo Usando Jason e X-Plane

Fundamentos de Inteligência Artificial [5COP099]

TÍTULO: AUTOMAÇÃO COM ELETRÔNICA EMBARCA APLICADA A ACESSIBILIDADE PARA CADEIRANTES

ORIENTAÇÃO A OBJETOS PARA CONSTRUÇÃO DE SERVIÇOS AUTOMATIZADOS EM AMBIENTES DE COMPUTAÇÃO PERVASIVA 1

SISTEMA DE CONTROLE DE TEMPERATURA RESULTADOS PRÁTICOS

Sumário. Simulação (1) Simulação (2) Simulação (3) Inteligência Artificial Distribuída (1) Ambientes de Simulação Baseados em Agentes

Estudo Qualitativo da Meta-Plataforma KNoT para IoT

SOFTWARES PARA CONTROLE DE ROBÔ CÂMERA

CV-Muzar uma comunidade virtual utilizando tecnologias de IA para auxiliar a formação de sub-comunidades

Agentes e Inteligência Artificial Distribuída

Proposta de uma arquitetura para construção de Objetos Inteligentes de Aprendizagem baseados em agentes BDI

DESENVOLVIMENTO BASEADO EM COMPONENTES

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

PRÓTESES MECÂNICAS DE BAIXO CUSTO CONTROLADAS POR ESTÍMULOS MUSCULARES

AUTOMAÇÃO E CONTROLE DE ILUMINAÇÃO RESIDENCIAL UTILIZANDO ARDUÍNO

Computação Embarcada - Projeto

Avaliação da Usabilidade da Interface Gráfica de Gerenciamento de um Estacionamento

Agentes Inteligentes. Inteligência Artificial

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CAMPUS CURITIBA CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO AMANDA LÚCIA CARSTENS RAMOS

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

DESENVOLVIMENTO DE UM ROBÔ EXPLORADOR PARA AMBIENTES INDOOR

Oficina de Sistemas Tutores Inteligentes

Uma Abordagem com Sistemas Multiagentes para Controle Autônomo de Casas Inteligentes

FERRAMENTA PARA CONFIGURAÇÃO DE SISTEMAS DE CONTROLE EMBARCADOS (IoTControl) 1

APLICANDO A INTEGRAÇÃO DE PORTAIS EDUCACIONAIS COM APLICAÇÕES MÓVEIS ATRAVÉS DA INFRAESTRUTURA SAAS-RD.

Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Framework para Integração entre Ambientes Inteligentes e o Middleware do Sistema Brasileiro de TV Digital

Sistema de Telemetria Automotiva com Data Logger Incorporado Via LabVIEW

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Internet das Coisas Desafios e Oportunidades

PROFTS: A MultiAgent System for Stock Portfolio Management

Controle de Tensão de Mini Aerogerador e Interface com Plataformas Computacionais Utilizando Arduíno

Protótipo de um Simulador de um Aspirador de Pó, Utilizando Algoritmo de Busca e Agentes Inteligentes, em Ambientes com Barreiras

Arquitetura de IoT para cidades inteligentes

Computação Musical - Introdução slides do curso Computação Musical

ROBOTOY: ferramenta para ensino de programação para crianças usando robôs Arduino. Aluna: Juliana Carolina Batista Orientadora: Joyce Martins

AVALIAÇÃO DO SENSOR DHT11 - MEDIDAS DE TEMPERATURA E UMIDADE RELATIVA DO AR

Placa Eletrônica para Robôs Móveis

DESENVOLVIMENTO DE INTERFACE GRÁFICA PARA UM SISTEMA DIDÁTICO EM CONTROLE DE PROCESSOS

Uma Linguagem de Domínio Específico para descrever redes de sensores na prototipagem de Instrumentos Musicais Digitais

Plataforma e Aplicações para Cidades Inteligentes

Smart Campus as a Smart City

Extensão do Simulador SimuS com uso do Protocolo Firmata

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

Arquiteturas de Software

PIBIC/PIBITI/IC Jr Relatório das Atividades de Pesquisa 23ª SEMIC

Do mundo físico para o digital

4 Arquitetura BDI Belief Desire Intention

ASPECTOS TEÓRICOS DOS EXPERIMENTOS

INFRAESTRUTURA NECESSÁRIA...

Soluções IoT Inovadoras Plataforma Link IoT

Comparação entre Arduino, FPGA, ASIC e SoC

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

INTEGRAÇÃO DE UMA REDE DE SENSORES SEM FIO COM A WEB UTILIZANDO UMA ARQUITETURA ORIENTADA A SERVIÇO

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

EDITAL PARA SELEÇÃO DE BOLSISTAS JANEIRO / 2017

3 Trabalhos relacionados

Kit didático para controle de velocidade e posição de um motor de corrente contínua

SIST706 Sistemas Distribuídos

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Smart Grids ALGORITMO DISTRIBUÍDO PARA AUTORRECUPERAÇÃO DE UTILIZANDO UM SISTEMA MULTIAGENTE REATIVO. laai.ufpa.br. Filipe Saraiva

Sistemas Multi-agentes

Aula 06 - Máquina Multinível e Von Neumann

Transcrição:

Aplicando Sistemas Multi-Agentes Ubíquos em um Modelo de Smart Home Usando o Framework Jason Carlos Eduardo Pantoja 1,2, Vinicius Souza de Jesus 2, José Viterbo Filho 1 1 Universidade Federal Fluminense (UFF) 2 Centro Federal de Educação Tecnológica Celso Suckow da Fonseca (CEFET/RJ) souza.vdj@gmail.com, pantoja@cefet-rj.br, viterbo@ic.uff.br Abstract. This paper presents a physical Smart Home model managed by a Multi-Agent System developed using Jason framework and the customized architecture ARGO for controlling of hardware devices. A prototype is developed being controlled by several sensors and actuators connected to different AT- MEGA microcontrollers (Arduino). Two examples based on case studies of the literature are developed and performance tests are presented. The major contribution of this work is to prove that the development of cognitive Multi-Agent Systems using Jason framework can be used in the area of ubiquitous systems and Ambient Intelligence. Resumo. Este trabalho apresenta um modelo de Smart Home física gerenciada por um Sistema Multi-Agente desenvolvido utilizando o framework Jason em conjunto com a arquitetura customizada ARGO para gerenciamento de dispositivos de hardware. Um protótipo é desenvolvido sendo gerenciado por diversos sensores e atuadores conectados a diversos controladores ATMEGA (Arduino). Dois exemplos baseados em estudos de caso da literatura são desenvolvidos e testes de performance são apresentados. A contribuição principal deste trabalho é provar que o desenvolvimento de SMA cognitivos usando o Jason podem ser usados na área de sistema ubíquos e Ambient Intelligence. 1. Introdução O Ambient Intelligence (AmI) é um ambiente ubíquo eletrônico e inteligente, que é caracterizado pela interligação de diferentes tecnologias com o objetivo de realizar tarefas comuns do dia a dia de maneira imperceptível ao usuário, de forma autônoma e pró-ativa [Chaouche et al. 2014]. Os Sistemas Multi-Agentes (SMA) são compostos de agentes autônomos situados em um ambiente e possuem uma capacidade de tomada de decisão baseado em estímulos percebidos e pela interação entre agentes com o intuito de realizar objetivos comuns ou conflitantes [Wooldridge 2009]. Baseado nas características do AmI, a abordagem de SMA tem características ideais para a implementação desses ambientes. Existem diversas linguagens e plataformas para o desenvolvimento de SMA como 3APL, Jack, Jade/Jadex, Jason [Bordini et al. 2007] entre outros. Algumas dessas plataformas como o 3APL, Jadex e Jason utilizam agentes com modelos de raciocínio cognitivos em contraste com os modelos reativos tradicionais. O modelo cognitivo Belief- Desire-Intention (BDI), permite a criação de agentes inteligentes capazes de tomar decisões baseados em crenças e percepções, desejos e intenções que um agente possa ter

em um determinado momento. Particularmente, o Jason é um framework para o desenvolvimento de SMA, que possui um interpretador para a linguagem AgentSpeak em Java, que implementa o modelo BDI. Além disso, existe uma extensão para o Jason, chamada de ARGO [Pantoja et al. 2016], que é uma arquitetura customizada que é responsável por realizar a programação de agentes cognitivos robóticos utilizando controladores (com sensores e atuadores). Vários trabalhos apresentam soluções de integração de SMA com AmI, e especificamente Smart Homes, utilizando o Jade [Kazanavicius et al. 2009][Benta et al. 2009], que é reativo, e utilizando o Jason (em conjunto com o JaCaMo) [Martins and Meneguzzi 2013][Martins and Meneguzzi 2014][Andrade et al. 2016]. Os trabalhos que utilizam o Jason com linguagem de desenvolvimento são estritamente simulados e não existem trabalhos de integração física com ambientes reais ou hardware voltados para computação ubíqua que utilizem o Jason como SMA na literatura. O ARGO é uma arquitetura que visa facilitar a programação de SMA Ubíquos utilizando o Jason, independente do domínio escolhido. O objetivo deste trabalho é propor um modelo de Smart Home autônoma controlada através de agentes cognitivos utilizando o Jason e o ARGO e gerenciando dispositivos físicos, uma vez que, um agente ARGO permite a comunicação com controladores (e.g. Arduino). Para isto, o trabalho conta com um protótipo de uma casa de seis cômodos, cada um possuindo iluminação e sensores de luminosidade, a sala e a cozinha possuem também duas portas com sensores magnéticos e servo motores, além de sensores de temperatura para gerenciamento térmico e um controle da campainha da porta. Para avaliar o desenvolvimento do SMA e do protótipo uma série de testes de performance foram executados levando em consideração parâmetros como o número de agentes, número de controladores, velocidade de raciocínio dos agentes, momento de percepção do ambiente e filtragem de informação, afim de explorar diferentes estratégias de implementação acerca do sistema. A principal contribuição esperada deste trabalho é a possibilidade de aplicar SMA em protótipos ubíquos utilizando o framework Jason e a arquitetura ARGO aplicados a ambientes inteligentes. Este trabalho está estruturado assim: na seção 2, serão apresentados os conceitos básicos para desenvolvimento de SMA usando o Jason; na seção 3, a arquitetura e a metodologia de desenvolvimento da Smart Home será e discutida; os testes e os exemplos também serão apresentados; na seção 4, os trabalhos relacionados serão discutidos e comparados com a solução proposta neste trabalho; a Conclusão e os trabalhos futuros são apresentados na seção 5; e por fim as Referências Bibliográficas são apresentadas. 2. Desenvolvimento de Sistemas Multi-Agentes Nesta seção serão apresentadas as tecnologias utilizadas neste trabalho para o desenvolvimento de SMA ubíquos aplicado ao AmI em um caso de Smart Home. O framework Jason é uma linguagem própria para o desenvolvimento de SMA cognitivos e; com a utilização da arquitetura customizada de agentes ARGO é possível realizar o intermédio entre SMA e os efetuadores e sensores que interagem com o mundo real. 2.1. Framework Jason O framework Jason é uma linguagem de programação orientada a agentes, que possui um interpretador em Java do AgentSpeak para o desenvolvimento de agentes inteligentes

cognitivos utilizando o BDI. O BDI é constituído de três construções básicas: crenças, desejos e intenções. As crenças são informações tidas como verdades para o agente, podendo ser internas, adquiridas através da relação com outros agentes ou através das percepções observados no ambiente. Os desejos representam a motivação de um agente para realizar determinado objetivo e as intenções são ações que o agente se comprometeu a executar. Já, o AgentSpeak é uma linguagem de programação voltada para a abordagem de agentes, que é baseada em princípios da arquitetura BDI. Somados a estes conceitos, o Procedural Reasoning System permite ao agente construir um sistema de raciocínio em tempo real para a execução de tarefas complexas. Os agentes em Jason possuem um clico de raciocínio baseado nos eventos que são gerados a partir da captura de percepções do ambiente, de mensagens trocadas com outros agentes e através de conclusões próprias baseado em seu raciocínio. Esses eventos podem ser ativados por gatilhos que levam a execução de planos (presentes em uma biblioteca específica) compostos por várias ações. Os agentes em Jason são programados a partir da definição de objetivos, intenções, crenças, planos e ações internas ao agente e ações executadas no ambiente. Um SMA em Jason, não possui, tradicionalmente, uma interface para captura de percepções direto do mundo real utilizando sensores e efetuadores. Para este fim, existe a arquitetura customizada chamada de ARGO. O Jason utiliza um ambiente simulado. 2.2. A Arquitetura ARGO O ARGO é uma arquitetura customizada de agentes do Jason para possibilitar a programação de agentes robóticos e ubíquos utilizando diversas plataformas de prototipação. O ARGO permite a intermediação entre os agentes cognitivos e um ambiente real (utilizando controladores) através do middleware Javino [Lazarin and Pantoja 2015], que exerce a comunicação com o hardware (sensores e atuadores). Além disso, como a utilização do BDI em plataformas robóticas pode gerar gargalos no processamento das percepções e, consequentemente, atrasos indesejados na execução a extensão também dispõe de um mecanismo de filtragem de percepções em tempo de execução [Stabile Jr. and Sichman 2015]. Um SMA utilizando o Jason e o ARGO pode ser composto de agentes Jason tradicionais e agentes ARGO trabalhando simultaneamente. Os agentes Jason podem realizar planos e ações somente em nível de software e se comunicar com outros agentes no sistema (incluindo agentes ARGO). Já um agente ARGO é um agente tradicional com características adicionais, como por exemplo, a capacidade de realizar comunicação com o meio físico, percebê-lo, modificá-lo e filtrar informações percebidas. A Figura 1 demonstra a arquitetura de um SMA com 6 agentes, sendo 3 tradicionais interagindo com diversos agentes e; 3 ARGO, onde 1 agente é responsável por 2 dispositivos e; 2 que estão encarregados de realizar a comunicação com somente 1 dispositivo cada um. Para facilitar a programação dos agentes cognitivos robóticos, o ARGO possui cinco ações internas utilizadas em tempo de execução: i) a ação port(porta), onde o agente escolhe qual dispositivo controlar selecionando a porta serial onde o dispositivo estiver conectado (e.g..port(com8)); ii) a ação.percepts(open ou block), onde é definido se o agente bloqueia ou libera o fluxo de percepções vinda do controlador; iii) a ação.limit(milissegundos), que define de quanto em quanto tempo o ambiente deve ser percebido; a ação.act(mensagem), que envia uma mensagem através da porta serial para uma

Figura 1. A arquitetura de um SMA usando o ARGO. ação ser executada por algum efetuador e; a ação.filter(xml), que seleciona o arquivo xml responsável pela filtragem de percepções. 3. A Arquitetura da Smart Home Nesta seção será apresentada a metodologia de desenvolvimento e a arquitetura da Smart Home proposta utilizando o framework Jason e a arquitetura customizada ARGO para programação de SMA robóticos. Na arquitetura, uma Smart Home poderá ter diversos controladores realizando o sensoriamento de diversos dispositivos presentes nos cômodos de uma casa. Dentre esses dispositivos poderão ser utilizados sensores como os de temperatura e o de luminosidade, além de diversos atuadores como luzes de LED, arcondicionado, aquecedor, portas e campainha. Um SMA utilizando o framework Jason é responsável pelo gerenciamento cognitivo dos dispositivos conectados na estrutura física da casa. No SMA, os agentes ARGO são responsáveis pelo gerenciamento dos controladores enquanto que os agentes tradicionais do Jason são responsáveis por auxiliar na comunicação e pela colaboração na execução de determinadas tarefas. Um agente ARGO poderá gerenciar um ou mais dispositivos de acordo com a necessidade da tarefa, desde que não haja conflitos na utilização da porta serial. Na figura 2, é apresentada uma possível arquitetura para a Smart Home, que tem uma quantidade de seis cômodos controlados cada um por um controlador ATMEGA328 (presentes no Arduino) onde: quatro possuem apenas sensores de luminosidade e luzes de LED; um possui um sensor de temperatura, um ar-condicionado, um aquecedor e a luz de LED e; o último cômodo possui o botão da campainha, o sino da campainha, a porta e a luz de LED. Para cada cômodo foi designado um agente ARGO responsável pelo gerenciamento cognitivo dos sensores e atuadores. Esses agentes, além de controlarem dispositivos de hardware, são capazes de filtrar percepções em tempo real que não são interessantes aquele agente, a fim de obter uma melhor performance de execução. Os agentes ARGO tem a mesma capacidade de comunicação do que um agente tradicional do Jason, onde um agente ARGO pode se comunicar com outro agente ARGO ou com um agente tradicional para que em conjunto possam trocar informações e atividades acerca de uma tarefa coletiva. O objetivo do ARGO é proporcionar a facilitação na criação de agentes robóticos cognitivos e, consequentemente, SMA ubíquos utilizando um interpretador do modelo BDI, que seja aplicável a diversos domínios e onde a linguagem de programação de alto nível não seja acoplada e dependente do hardware escolhido. Isto é possível pois a comunicação entre o hardware e o SMA é feita utilizando comunicação serial e um

Figura 2. A Arquitetura da Smart Home e o protótipo desenvolvido. protocolo específico que não leva em conta a tecnologia utilizada em nenhum dos lados (apenas a mensagem é importante). 3.1. Metodologia A metodologia de desenvolvimento da Smart Home basicamente leva em consideração três camadas onde é necessária intervenção: a montagem do hardware; a programação da controladora e; a criação do SMA. Primeiramente toda a estrutura física deve ser preparada, onde sensores e atuadores devem ser conectados às controladoras no ambiente ou cômodo desejado. Em um segundo momento, todas as funções de acionamentos dos efetuadores devem ser programadas nas controladoras em respostas a estímulos da porta serial e as percepções provenientes dos sensores devem ser preparadas levando em consideração o formato esperado pela linguagem do SMA (no caso o Jason). As percepções são enviadas ao agente a cada vez que um agente ARGO realiza o seu ciclo de raciocínio (através da chamada ao método getpercepts, que deve existir obrigatoriamente em toda controladora que precisa enviar percepções a agentes). Por fim, o SMA deve ser programado de forma independente ao hardware, levando em consideração apenas as ações que devem ser executadas de acionamento (e.g..act(ligarledsala)) e de seleção do dispositivo (e.g..port(com8)). Dessa forma, foi desenvolvido um protótipo levando em consideração a arquitetura de sensores e atuadores da Smart Home da Figura 2. O protótipo foi desenvolvido em madeira e foram utilizados seis controladores ATMEGA328 (dois no Arduino Mega e quatro no Arduino Uno). Foram usados os sensores de luminosidade LDR e os sensores de temperatura LM35; diversos LED para cada cômodo; um botão para simular a campainha e um Buzzer e; a porta possui um sensor magnético (indicando se está aberta ou fechada) e um servo motor. Além disso, os acionamentos para um aquecedor e um ar-condicionado (para o gerenciamento da temperatura ambiente) também são disponibilizados. A programação dos controladores foi feita baseado no acionamento dos LED, da porta, do ar-condicionado e do aquecedor. Os sensores são responsáveis pelas percepções que serão preparadas e enviadas aos agentes. O protótipo pode ser visto na Figura 2. 3.2. Testes de Performance Afim de testar a aplicabilidade e identificar as melhores estratégias de utilização do ARGO no domínio de Smart Homes, testes de performance foram executados realizando

um circuito de ativação e desativação dos LED (o agente liga e desliga os LED de cômodo em cômodo). Contudo, a captação das informações de sensores de luminosidades foi mantida no teste para avaliar se há influência no tempo de execução. A arquitetura do ARGO permite que um agente seja capaz de controlar de 1 a 127 dispositivos; que cada dispositivo seja controlado por um agente; que haja competição e negociação pelos dispositivos e; que haja uma divisão de dispositivos pela quantidade de agentes no SMA. Além disso, o ARGO permite que o agente decida quando perceber ou não os valores dos sensores, em tempo real, através da ação interna percepts. No framework Jason, um evento é gerado para cada percepção recebida do ambiente. Esta característica pode gerar atrasos no raciocínio e na execução de ações em situações que necessitam de respostas rápidas. Para lidar com essa situação, um agente pode filtrar as percepções baseados no uso de filtros pré-definidos em tempo de design e/ou variar a utilização da ação interna de bloqueio e liberação das percepções do ambiente. Assim, foram realizados testes e medido o tempo de execução do circuito de ativação aplicando de 1 a 6 controladores ATMEGA sendo controlados por 1 até 6 agentes no SMA usando três estratégias diferentes. A Estratégia 1 levou em consideração, que os agentes abrissem o fluxo de percepções dos sensores no início da execução para ficar percebendo o ambiente continuamente. Já a estratégia 2 permitiu que os agentes abrissem o fluxo das percepções onde fosse preciso informações dos sensores no início de cada plano e logo em seguida as fechassem, com o objetivo de adquirir apenas a quantidade de percepções necessária aquele momento. Por fim, a Estratégia 3 levou em consideração que os agentes abrissem e fechassem o fluxo de percepções no início do primeiro plano e no último ou quando houvesse mudança de controladores (afim de atualizar as percepções provenientes do novo dispositivo). Para cada estratégia foram realizadas 3 repetições de testes totalizando 324 testes realizados, dos quais 135 deram conflitos pois a quantidade de agentes ARGO era maior do que a quantidade de controladores empregados (ao usar o ARGO, dois ou mais agentes não podem utilizar a porta serial ao mesmo tempo [Junger et al. 2016]). Para os casos onde existem conflitos por competição de porta serial, a solução é implementar uma negociação entre os agentes para que estes não utilizem o dispositivo desejado ao mesmo tempo. Para os demais testes, quando se está considerando apenas o número de controladores gerenciados pelo SMA, percebe-se que a Estratégia 1 é a mais lenta de todas, pois a quantidade de percepções processadas é maior do que as outras estratégias. A Estratégia 3 é ligeiramente mais rápida que a Estratégia 2, contudo, dependendo da programação do agente, manter a percepção desatualizada por um longo período de tempo, pode fazer com que o agente raciocine com dados defasados. A Figura 3 exibe o gráfico de dispersão para a quantidade de controladores utilizados. Ao se analisar os resultados levando em consideração o quantitativo de agentes empregados no SMA, percebe-se que quando apenas um agente é responsável pelo controle dos dispositivos, o tempo de duração aumenta independente da estratégia adotada. A Estratégia 1, novamente é a mais lenta devido a quantidade de percepções capturadas dos sensores (já que elas são atualizadas a todo ciclo de raciocínio dos agentes ARGO executam) enquanto que as Estratégias 2 e 3 foram as mais rápidas devido a forma como as percepções foram bloqueadas ou não. Vale ressaltar que para todos os testes, os códigos dos agentes foram os mesmos, diferenciando apenas onde o fluxo das percepções foi aberto ou fechado. A Figura 3 mostra o gráfico de dispersão da quantidade de agentes.

Figura 3. O gráfico de dispersão para a quantidade de agentes (direita) e de controladores utilizados (esquerda) Baseado nos testes realizados, para os próximos exemplos foi decidido que seria utilizada a Estratégia 2, pois mesmo esta sendo ligeiramente mais lenta que a Estratégia 3, ela dá uma garantia de que os agentes terão percepções mais atuais dos sensores. A Estratégia 1 não foi escolhida por ser consideravelmente mais lenta que as demais. 3.3. Exemplos Com o intuito de testar a arquitetura proposta da Smart Home e aplicabilidade da utilização do Jason para a programação de SMA ubíquos, dois exemplos foram desenvolvidos baseados em dois estudos de caso propostos em [Kazanavicius et al. 2009] e [Villarrubia et al. 2014]. No primeiro exemplo, [Kazanavicius et al. 2009] propõe um quarto inteligente gerenciado por um SMA, que mantém a temperatura do ambiente baseado em sensores de temperatura. Para isso, utilizamos o modelo físico da Smart Home (Figura 2) para desenvolver um SMA em Jason com um agente ARGO responsável por realizar o gerenciamento térmico utilizando um sensor de temperatura conectado ao Arduino e que é capaz de ativar e desativar duas tomadas (uma para o ar-condicionado e um para um aquecedor). O agente pode ser visto na Figura 4. 1! config 2 3 +! config : true < 4. port ( COM3 ); 5! obterpercepts. 6 7! obterpercepts < 8. percepts ( open ); 9. percepts ( block ); 10! gere nciartemperatura. 11 12 +! gerenciartemperatura : temperatura ( Value ) & Value > 25 < 13. act ( ligartomadaar ); 14! obterpercepts. 15 16 +! gerenciartemperatura : temperatura ( Value ) & Value < 18 < 17. act ( ligartomadaaquecedor ); 18! obterpercepts. Figura 4. O código em Jason para o controle da temperatura. Em [Villarrubia et al. 2014], os autores afirmam que um dos pontos positivos da abordagem é a utilização de 75 linhas de código para a criação do SMA. Neste exemplo,

foram utilizados 18 linhas de código para o agente ARGO mostrando a potencialidade da abordagem utilizando o Jason. Para mostrar a flexibilidade da arquitetura, a funcionalidade proposta por [Villarrubia et al. 2014] foi desenvolvida utilizando o Jason. Neste caso, o agente é responsável por identificar que a campainha da casa está sendo apertada e irá tocar um buzzer, além disso o agente fará com os LED da casa pisquem, em caso de uma pessoa com deficiência auditiva esteja na casa. O agente pode ser visto na Figura 5. 1! gerenciarcampainha. 2 3 +! gerenciarcampainha : true < 4. port ( COM1 ); 5. percepts ( open ); 6. percepts ( close ); 7! decidir. 8 9 +! decidir : btcampainha ( Value ) & Value == 1 < 10. act ( ligarbuzzer ); 11. act ( ligarleds ); 12! gerenciarcampainha. 13 14 +! decidir : btcampainha ( Value ) & Value == 0 < 15. act ( desligarbuzzer ); 16. act ( desligarleds ); 17! gerenciarcampainha. Figura 5. O código em Jason para o gerenciamento da campainha. 4. Trabalhos Relacionados A aplicação de SMA em AmI não é um tema novo na literatura e diversas propostas de integração de dispositivos inteligentes já foram apresentadas. Alguns trabalhos aplicam a abordagem de agentes em Smart Homes simuladas como em [Conte et al. 2009], [Lim et al. 2009], [Benta et al. 2009], [Sun et al. 2013], [Martins and Meneguzzi 2013], [Martins and Meneguzzi 2014] e [Andrade et al. 2016]. Um ponto interessante é que estes últimos três trabalhos utilizam o JaCaMo (do qual o Jason faz parte) como linguagem para a programação do SMA, mostrando um direcionamento da utilização da linguagem para a criação de ambientes inteligentes. Já em [Hagras et al. 2004] é apresentado um quarto controlado por agentes embarcados, programados utilizando lógica fuzzy e com uma interface em Java para controle e visualização dos efetuadores. Os agentes estáticos estão conectados a uma rede de dispositivos e existem agentes móveis que se comunicam através de wi-fi com os agentes estáticos. Da mesma forma, a MavHome [Cook et al. 2003], apresenta uma casa que é gerenciada por agentes que utilizam técnicas computacionais para predição de comportamentos dos habitantes da casa. Contudo, tais trabalhos não utilizam nenhuma linguagem específica para SMA e os agentes não utilizam um modelo cognitivo de raciocínio. Além disso o modelo de implementação é específico para a Smart Home desenvolvida. A arquitetura utilizada neste trabalho, utiliza o Jason (que utiliza agentes BDI) integrado ao ARGO para a programação de agentes ubíquos independente do domínio de aplicação. Em [Villarrubia et al. 2014] é proposto um modelo de AmI para o suporte a acidentes residenciais e emergências usando agentes embarcados com sensores e atuadores, que utilizam o Arduino e a PANGEA como plataforma de desenvolvimento dos agentes

inteligentes. Para cada Arduino, existe um agente específico de controle no dispositivo e um replicado em alto nível para caso o primeiro não tenha capacidade de processamentos, enquanto que na arquitetura deste trabalho, um agente ARGO pode controlar mais de um dispositivo, desde que não os acesse simultaneamente, e todo raciocínio é realizado em alto nível. Uma abordagem de SMA embarcado e em tempo real utilizando o Jade em ambientes inteligentes é proposta por [Kazanavicius et al. 2009]. A arquitetura mapeia cada sensor e atuador para um agente em linguagem de alto-nível, mas podem existir até seis tipos de agentes genéricos. Na proposta deste trabalho, os sensores e atuadores estão conectados a controladores e apenas agentes ARGO podem gerenciar tais dispositivos. Na abordagem de [Kazanavicius, 2009], o número de agentes seria o mesmo da quantidade de sensores e atuadores. Além disso, só existem dois tipos de agentes na abordagem deste trabalho: os tradicionais do Jason e os agentes ARGO (que são agentes Jason com capacidade de controle de hardware), simplificando o desenvolvimento do SMA. 5. Conclusão Este trabalho apresentou um modelo cognitivo de uma Smart Home utilizando um SMA com agentes BDI, desenvolvido através do Jason e o ARGO. Foram apresentados uma análise de três estratégias de implementação da abordagem proposta neste trabalho. Um exemplo de gerenciamento térmico e um de controle da campainha da Smart Home também foram apresentados. A utilização de agentes BDI para gerenciamento de dispositivos de hardware não é uma tarefa simples e diversos trabalhos tentam melhorar a performance ou facilitar a programação de tais agentes. Contudo, as propostas são específicas para certos domínios ou plataformas comerciais. Neste trabalho, foi utilizado o ARGO, que é independente da plataforma escolhida e do domínio da aplicação. O objetivo deste trabalho é evidenciar o potencial que a arquitetura possui para o desenvolvimento de SMA ubíquos utilizando hardware de baixo custo. No domínio das Smart Homes, existem diversos trabalhos que gerenciam os dispositivos de uma casa utilizando a abordagem de agentes, porém nenhum desses trabalhos utiliza o Jason para o controle de dispositivos, e os que o fazem utilizam simulação. Este trabalho, não só mostra que é possível a implementação de SMA para gerenciamento de dispositivos físicos utilizando o Jason e o ARGO, como o faz em um tempo aceitável e gerenciando o ponto crítico da integração física de agentes BDI, que é o processamento das percepções vindas do ambiente. Como trabalhos futuros, é pretendido aplicar o SMA proposto no laboratório do grupo de pesquisa e implementar um método de supressão de percepções para melhorar a performance dos agentes BDI além de aplicar SMA ubíquos em outros domínios como agricultura. Também é pretendido desenvolver técnicas de comunicação e negociação para os agentes que tem controle de dispositivos físicos. Referências Andrade, J. P. B., Oliveira, M., Gonçalves, E. J. T., and Maia, M. E. F. (2016). Uma Abordagem com Sistemas Multiagentes para Controle Autônomo de Casas Inteligentes. In XIII Encontro Nacional de Inteligência Artificial e Computacional (ENIAC). Benta, K.-I., Hoszu, A., Văcariu, L., and Creţ, O. (2009). Agent based smart house platform with affective control. In Proceedings of the 2009 Euro American Conference on Telematics and Information Systems: New Opportunities to increase Digital Citizenship, page 18. ACM.

Bordini, R. H., Hübner, J. F., and Wooldridge, M. (2007). Programming Multi-Agent Systems in AgentSpeak using Jason. John Wiley & Sons Ltd. Chaouche, A.-C., Seghrouchni, A. E. F., Ilié, J.-M., and Saïdouni, D. E. (2014). A higherorder agent model with contextual planning management for ambient systems. In Transactions on Computational Collective Intelligence XVI, pages 146 169. Springer. Conte, G., Morganti, G., Perdon, A. M., and Scaradozzi, D. (2009). Multi-agent system theory for resource management in home automation systems. Journal of Physical Agents, 3(2):15 19. Cook, D. J., Youngblood, G. M., Heierman III, E. O., Gopalratnam, K., Rao, S., Litvin, A., and Khawaja, F. (2003). Mavhome: An agent-based smart home. In PerCom, volume 3, pages 521 524. Hagras, H., Callaghan, V., Colley, M., Clarke, G., Pounds-Cornish, A., and Duman, H. (2004). Creating an ambient-intelligence environment using embedded agents. IEEE Intelligent Systems, 19(6):12 20. Junger, D., Guinelli, J. V., and Pantoja, C. E. (2016). An Analysis of Javino Middleware for Robotic Platforms Using Jason and JADE Frameworks. In 10 th Software Agents, Environments and Applications School. Kazanavicius, E., Kazanavicius, V., and Ostaseviciute, L. (2009). Agent-based framework for embedded systems development in smart environments. In Proceedings of International Conference on Information Technologies (IT 2009), Kaunas. Lazarin, N. M. and Pantoja, C. E. (2015). A robotic-agent platform for embedding software agents using raspberry pi and arduino boards. In 9 th Software Agents, Environments and Applications School. Lim, C., Anthony, P., and Fan, L. (2009). Applying multi-agent system in a context aware. Borneo Sci, 24:53 64. Martins, R. and Meneguzzi, F. (2013). A smart home model to demand side management. In Workshop on Collaborative Online Organizations (COOS13)@AAMAS. Martins, R. and Meneguzzi, F. (2014). A smart home model using jacamo framework. In 2014 12th IEEE International Conference on Industrial Informatics (INDIN). IEEE. Pantoja, C. E., Stabile Jr, M. F., Lazarin, N. M., and Sichman, J. S. (2016). Argo: A customized jason architecture for programming embedded robotic agents. Fourth International Workshop on Engineering Multi-Agent Systems (EMAS 2016). Stabile Jr., M. F. and Sichman, J. S. (2015). Evaluating perception filters in BDI Jason agents. In 4 th Brazilian Conference on Intelligent Systems (BRACIS). Sun, Q., Yu, W., Kochurov, N., Hao, Q., and Hu, F. (2013). A multi-agent-based intelligent sensor and actuator network design for smart house and home automation. Journal of Sensor and Actuator Networks, 2(3):557 588. Villarrubia, G., De Paz, J. F., Bajo, J., and Corchado, J. M. (2014). Ambient agents: embedded agents for remote control and monitoring using the pangea platform. Sensors, 14(8):13955 13979. Wooldridge, M. (2009). An Introduction to MultiAgent Systems. Wiley.