Controlador de Lógica Nebulosa para implementação em robôs inteligentes utilizando Arduino

Documentos relacionados
Alvaro Luiz G. Carneiro * e Aucyone A. da Silva * Marco Túlio C. de Andrade**

Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado

Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO.

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Introdução à robótica

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

Simpósio Brasileiro de Automação Inteligente XI SBAI 2013

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

Minicurso de Arduino. Laboratório de Inovação em Sistemas em chip npiti - UFRN

Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC

Controle a Distância de um Barco com Arduino+Bluetooth

Qual placa de Arduino que devo comprar?

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

POR TERRA, ÁGUA E AR:

Arduino. Gilmar Aquino

Curso Arduino ESP8266. Aula #1 - Introdução

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Circuitos Lógicos. Prof. Odilson Tadeu Valle

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

Desenvolvimento de um Robô Autônomo com Arduino

// Arduino {? } Mais o que é?..

O que você pode fazer com o Arduino

GERENCIAMENTO DE PROJETOS - 20h - EaD

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

Anatomia do Arduino Bootloader

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

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

ARDUINO. Profº. Engº. Robson Dias Ramalho

Hardware Livre Arduino. Givanaldo Rocha de Souza

Plataforma Arduino, um universo de possibilidades

Título do projeto: Metaheurísticas aplicadas à identificação, controle e otimização de sistemas

Introdução ao Arduino

PROGRAMA DE DISCIPLINA

Tecnologias Digitais

Sensores que fazem uso de ultrassons encontram uma grande gama de

Computação Bioinspirada: Aplicações

Introdução à Plataforma ARDUINO

Lab2. Germano Maioli Penello IF-UFRJ aula 16.

CONSTRUÇÃO DE UM ROBÔ MÓVEL COMO RECURSO DIDÁTICO NOS CURSOS DE ENGENHARIA

Introdução à Automação Industrial

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

Sistemas Embarcados: Arduino e PCduino

Armando Jorge Miranda de Sousa

Cada jogador possui a visão do jogo, conforme ilustrado na Figura 3, que pode ser alterada e programada pelo desenvolvedor.

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

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

Projeto Final de Microcontroladores 2 Alarme de Temperatura

Placa Eletrônica para Robôs Móveis

Universidade Federal de Pernambuco

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

Licenciatura em Informática

Então, o grupo buscou criar um orçamento com esses produtos que fosse o mais barato e pratico possível.

Arquitetura de IoT para cidades inteligentes

Controle Granular Fuzzy Adaptativo com Observador de Estados

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

Estimulando o Ensino da Robótica e Programação Através de Simuladores

AUTOMAÇÃO DE PORTA COM FECHADURA ELÉTRICA UTILIZANDO CLP ARDUINO E TECNOLOGIA BLUETOOTH 1 INTRODUÇÃO

Sistema Irrigatório Utilizando Tecnologia Arduino

LÓGICA FUZZY (difusa ou nebulosa) Adão de Melo Neto

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

Jadsonlee da Silva Sá.

ESTAÇÃO DE COLETA DE DADOS AMBIENTAIS ON-LINE BASEADA NO MICROCONTROLADOR ESP8266

Atuadores: Atuadores: Atuadores:

Sistemas Embarcados:

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Automação Inteligente

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Interfaces de E/S

Apresentação do Curso

CONTROLE DE TEMPERATURA DE UM SISTEMA DE BAIXO CUSTO UTILIZANDO A PLACA ARDUINO

Robótica Evolutiva uma População de Robôs Reais que Fazem Amor e Geram Descendentes Enquanto Aprendem a Realizar Tarefas

ETAPAS PARA A CONSTRUÇÃO DA SONDA

VisEdu-MAT: Visualizador de material educacional, módulo de matemática

PROJETO DE UM MODELO DE UM CONVERSOR ANALÓGICO DIGITAL PARA SOC S

TinyOS. Saymon Castro de Souza. Orientador: Prof. Dr. José Gonçalves Pereira Filho

OFICINA DE ROBÓTICA COM ARDUINO NUMA PERSPECTIVA MULTIDISCIPLINAR DE ENSINO, APRENDIZAGEM, PESQUISA E INOVAÇÃO TECNOLÓGICA.

INF 1771 Inteligência Artificial

Protótipo Open Source de Sensoriamento Remoto em Ambiente Agrícola

Programação Básica em Arduino

CURSO DE PÓS-GRADUAÇÃO LATO SENSU AUTOMAÇÃO INDUSTRIAL E SISTEMAS DE CONTROLE - MECATRÔNICA

Computação Embarcada - Projeto

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

Incertezas na Computação Científica: Abordagens via Matemática Intervalar e Teoria Fuzzy

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

1 Introdução Origens

SHEEPSET HOME: Automação residencial, utilizando Arduino controlado via Android, utilizando a teoria de autômatos

Smalluino O Teu Primeiro Robô

PARTE I - IDENTIFICAÇÃO

Função Principal da Memória

INFORMAÇÕES GERAIS DO TRABALHO

Sistema de Inferência Fuzzy baseado em Redes Adaptativas (ANFIS) Sistema de Inferência Fuzzy

ESTABELECIMENTO DE ROTAS PARA AR.DRONE UTILIZANDO DELPHI XE 10

SUPERVISÃO DE VAZÃO E NÍVEL UTILIZANDO PLATAFORMA ARDUINO

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

TP034-Tópicos Especiais de Pesquisa Operacional I

BRAÇO ROBÓTICO ARTICULADO CONTROLADO POR ARDUÍNO PARA DEMONSTRAÇÃO DO EMPREGO DA ROBÓTICA NAS INDÚSTRIAS

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

ERIK LEÃO JULIANA CECÍLIA GIPIELA CORRÊA DIAS LEONARDO COSTA EX - LADDER

Viabilizando projetos. Jorge Augusto Lopes Gonçalves

Transcrição:

Controlador de Lógica Nebulosa para implementação em robôs inteligentes utilizando Arduino Mário Alberto Cecchi Raduan [UFRJ/PIBIC - Ago. 2011 a Jul. 2012] Orientador: Adriano Joaquim de Oliveira Cruz, PhD 1

Controlador de Lógica Nebulosa para implementação em robôs inteligentes utilizando Arduino Motivação Objetivo FIS - Fuzzy Inference System Do MATLAB para C Integração com Arduino Dificuldades Resultados 2

Motivação 3

Lógica Nebulosa 4

Lógica Nebulosa Permite criarmos controladores baseados nas observações humanas 5

Lógica Nebulosa Permite criarmos controladores baseados nas observações humanas As implementações da lógica difusa permitem que estados indeterminados possam ser tratados por dispositivos de controle. Desse modo, é possível avaliar conceitos nãoquantificáveis. Casos práticos: avaliar a temperatura (quente, morno, médio...), o sentimento de felicidade(radiante, feliz, apático, triste...), a veracidade de um argumento (corretíssimo, correto, contra-argumentativo, incoerente, falso, totalmente errôneo etc.) 5

Exemplo de uma variável nebulosa representando a temperatura de um ambiente 6

Funcionamento de um sistema nebuloso 7

Arduino 8

Arduino Programação em alto nível para controlar um robô 9

Arduino Programação em alto nível para controlar um robô Baixo custo (US$ 30) 9

Arduino Programação em alto nível para controlar um robô Baixo custo (US$ 30) Programas ficam salvos na memória Flash do Arduino 9

Arduino Programação em alto nível para controlar um robô Baixo custo (US$ 30) Programas ficam salvos na memória Flash do Arduino Enorme compatibilidade com sensores, módulos e motores 9

Lógica Nebulosa + Arduino 10

Lógica Nebulosa + Arduino Robô real simples, autônomo, capaz de desviar de obstáculos (Mariam) 10

Lógica Nebulosa + Arduino Robô real simples, autônomo, capaz de desviar de obstáculos (Mariam) Problema: como embarcar um sistema nebuloso em uma plataforma autônoma, como o Arduino? 10

Um dos robôs utilizados no LabIC 11

Objetivo 12

Objetivo Criar uma biblioteca capaz de levar um sistema nebuloso para de um microcontrolador, programável em C/C++ 13

Objetivo Criar uma biblioteca capaz de levar um sistema nebuloso para de um microcontrolador, programável em C/C++ Biblioteca LabicFuzzyC! 13

FIS - Fuzzy Inference System 14

Fuzzy Toolbox (MATLAB) 15

Fuzzy Toolbox (MATLAB) 16

O arquivo.fis [System] Name='caminhao' Type='mamdani' Version=2.0 NumInputs=2 NumOutputs=1 NumRules=35 AndMethod='min' OrMethod='max' ImpMethod='min' AggMethod='max' DefuzzMethod='centroid' [Input1] Name='Posicao_c' Range=[0 100] NumMFs=5 MF1='LE':'trapmf',[0 0 10 35] MF2='LC':'trimf',[30 40 50] MF3='CE':'trimf',[45 50 55] MF4='RC':'trimf',[50 60 70] MF5='RI':'trapmf',[65 90 100 100] [Input2] Name='Angulo_c' Range=[-105 285] NumMFs=7 MF1='RB':'trimf',[-105-45 15] MF2='RU':'trimf',[-15 30 60] MF3='RV':'trimf',[45 67 90] MF4='VE':'trimf',[75 90 105] MF5='LV':'trimf',[90 112 135] MF6='LU':'trimf',[120 150 195] MF7='LB':'trimf',[165 225 285] [Output1] Name='Angulo_v' Range=[-30 30] NumMFs=7 MF1='NB':'trimf',[-30-30 -15] MF2='NM':'trimf',[-25-15 -5] MF3='NS':'trimf',[-10-5 0] MF4='ZE':'trimf',[-5 0 5] MF5='PS':'trimf',[0 5 10] MF6='PM':'trimf',[5 15 25] MF7='PB':'trimf',[15 30 30] [Rules] 1 1, 5 (1) : 1 1 2, 4 (1) : 1 17

Do MATLAB para C 18

FIS Parser 19

Integração com o Arduino 20

IDE do Arduino 21

Dificuldades 22

Dificuldades Várias configurações de sistemas nebulosos 23

Dificuldades Várias configurações de sistemas nebulosos Hardware limitado do Arduino 23

Dificuldades Várias configurações de sistemas nebulosos Hardware limitado do Arduino Arduino Uno: 2 KB SRAM 23

Dificuldades Várias configurações de sistemas nebulosos Hardware limitado do Arduino Arduino Uno: 2 KB SRAM Arduino Mega: 8 KB SRAM 23

Dificuldades Várias configurações de sistemas nebulosos Hardware limitado do Arduino Arduino Uno: 2 KB SRAM Arduino Mega: 8 KB SRAM Repensar tipos das variáveis para economizar uso da RAM 23

Resultados 24

Resultados Resultados com baixíssima margem de erro quando comparados aos do MATLAB Primeira versão da biblioteca feita em C sob medida para um sistema específico Segunda versão totalmente reescrita em C++ para funcionar com qualquer sistema Última versão compilada ocupa pouco mais de 5 KB no Arduino 25

Resultados Sistema Tipo Amostras Desvio padrão Margem de erro caminhao (15 regras) Anfis 390 0,00003 0,00006% * Desvio padrão e margem de erro calculados em relação aos resultados obtidos pela função evalfis() do MATLAB. ** Margem de erro = (desvio padrão)/(intervalo da variável) 26

Resultados Sistema Tipo Amostras Desvio padrão Margem de erro caminhao (15 regras) caminhao (35 regras) Anfis 390 0,00003 0,00006% Mamdani 390 0,723 1,2% robo * Desvio padrão e margem de erro calculados em relação aos resultados obtidos pela função evalfis() do MATLAB. ** Margem de erro = (desvio padrão)/(intervalo da variável) 26

Resultados Sistema Tipo Amostras Desvio padrão Margem de erro caminhao (15 regras) caminhao (35 regras) robo (35 regras) Anfis 390 0,00003 0,00006% Mamdani 390 0,723 1,2% Mamdani 1.170 0,928 1,5% * Desvio padrão e margem de erro calculados em relação aos resultados obtidos pela função evalfis() do MATLAB. ** Margem de erro = (desvio padrão)/(intervalo da variável) 26

Resultados Sistema Tipo Amostras Desvio padrão Margem de erro caminhao (15 regras) caminhao (35 regras) robo (35 regras) manual (200 regras) Anfis 390 0,00003 0,00006% Mamdani 390 0,723 1,2% Mamdani 1.170 0,928 1,5% Mamdani 8.748 0,540 0,9% * Desvio padrão e margem de erro calculados em relação aos resultados obtidos pela função evalfis() do MATLAB. ** Margem de erro = (desvio padrão)/(intervalo da variável) 26

Resultados Open-source e em breve no site do LabIC! 27

Referências John Yen, Reza Langari, Fuzzy Logic: Intelligence, Control and Information, Prentice Hall, 1999, ISBN 0-13525817-0 H. T. Nguyen, E. A. Walker, A First Course in Fuzzy Logic, Chapman & Hall/CRC, 2000 Thimoty Ross, Fuzzy Logic with Engineering Applications, J. Wiley, 3rd Edition, 2010 MOTA, T.C., Análise e Proposta de Controladores para Navegação Autônoma de um Robô Inteligente. 2010. 131p. Dissertação (Mestrado em Informática) Programa de Pós-Graduação em Informática, UFRJ, Rio de Janeiro, RJ, Brasil Site oficial do Arduino - http://arduino.cc 28

Obrigado! Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica - UFRJ www.labic.nce.ufrj.br 29