• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
43
0
0

Texto

(1)

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]

(2)

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 quinta-feira, 1 de novembro de 12

(3)
(4)

Lógica Nebulosa

4 quinta-feira, 1 de novembro de 12

(5)

Lógica Nebulosa

Permite criarmos controladores baseados

(6)

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ão-quantificá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 quinta-feira, 1 de novembro de 12

(7)

Exemplo de uma variável nebulosa

representando a temperatura de um

(8)

Funcionamento de um sistema nebuloso

7 quinta-feira, 1 de novembro de 12

(9)
(10)

Arduino

Programação em alto nível

para controlar um robô

9 quinta-feira, 1 de novembro de 12

(11)

Arduino

Programação em alto nível

para controlar um robô

(12)

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 quinta-feira, 1 de novembro de 12

(13)

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

(14)

Lógica Nebulosa + Arduino

10 quinta-feira, 1 de novembro de 12

(15)

Lógica Nebulosa + Arduino

Robô real simples, autônomo, capaz de

desviar de obstáculos (Mariam)

(16)

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 quinta-feira, 1 de novembro de 12

(17)
(18)

Objetivo

12 quinta-feira, 1 de novembro de 12

(19)

Objetivo

Criar uma biblioteca capaz de levar um

sistema nebuloso para de um

(20)

Objetivo

Criar uma biblioteca capaz de levar um

sistema nebuloso para de um

microcontrolador, programável em C/C++

Biblioteca LabicFuzzyC!

13 quinta-feira, 1 de novembro de 12

(21)

FIS - Fuzzy Inference

System

(22)

Fuzzy Toolbox (MATLAB)

15 quinta-feira, 1 de novembro de 12

(23)
(24)

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 quinta-feira, 1 de novembro de 12

(25)
(26)

FIS Parser

19 quinta-feira, 1 de novembro de 12

(27)

Integração com o

Arduino

(28)

IDE do Arduino

21 quinta-feira, 1 de novembro de 12

(29)
(30)

Dificuldades

Várias configurações de sistemas nebulosos

23 quinta-feira, 1 de novembro de 12

(31)

Dificuldades

Várias configurações de sistemas nebulosos

(32)

Dificuldades

Várias configurações de sistemas nebulosos

Hardware limitado do Arduino

Arduino Uno: 2 KB SRAM

23 quinta-feira, 1 de novembro de 12

(33)

Dificuldades

Várias configurações de sistemas nebulosos

Hardware limitado do Arduino

Arduino Uno: 2 KB SRAM

(34)

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 quinta-feira, 1 de novembro de 12

(35)
(36)

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 quinta-feira, 1 de novembro de 12

(37)

Resultados

Sistema

Tipo

Amostras

Desvio

padrão

Margem

de erro

caminhao

(15 regras)

Anfis

390

0,00003

0,00006%

caminhao

(35 regras)

Mamdani

390

0,723

1,2%

robo

(35 regras)

Mamdani

1.170

0,928

1,5%

manual

(200 regras)

Mamdani

8.748

0,540

0,9%

(38)

Resultados

Sistema

Tipo

Amostras

Desvio

padrão

Margem

de erro

caminhao

(15 regras)

Anfis

390

0,00003

0,00006%

caminhao

(35 regras)

Mamdani

390

0,723

1,2%

robo

(35 regras)

Mamdani

1.170

0,928

1,5%

manual

(200 regras)

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 quinta-feira, 1 de novembro de 12

(39)

Resultados

Sistema

Tipo

Amostras

Desvio

padrão

Margem

de erro

caminhao

(15 regras)

Anfis

390

0,00003

0,00006%

caminhao

(35 regras)

Mamdani

390

0,723

1,2%

robo

(35 regras)

Mamdani

1.170

0,928

1,5%

manual

(200 regras)

Mamdani

8.748

0,540

0,9%

(40)

Resultados

Sistema

Tipo

Amostras

Desvio

padrão

Margem

de erro

caminhao

(15 regras)

Anfis

390

0,00003

0,00006%

caminhao

(35 regras)

Mamdani

390

0,723

1,2%

robo

(35 regras)

Mamdani

1.170

0,928

1,5%

manual

(200 regras)

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 quinta-feira, 1 de novembro de 12

(41)

Resultados

(42)

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 quinta-feira, 1 de novembro de 12

(43)

Obrigado!

Laboratório de Inteligência Computacional

Núcleo de Computação Eletrônica - UFRJ

www.labic.nce.ufrj.br

Referências

Documentos relacionados

A modelagem das entradas do problema de navegação nebulosa reativa consiste na elaboração de seis funções de pertinência para as dez variáveis lingüísticas de entrada (os

Assim sendo, o objetivo do presente experimento foi determinar a densidade mineral óssea (DMO) do osso acessório do carpo, através da Técnica de Densidade Óptica em

– Em cada directoria todos os ficheiros devem ter identificadores distintos (directorias distintas podem conter ficheiros com mesmo identificador) – A cada utilizador é atribuído

Contudo, sendo um campo de pesquisa e de atuação muito específico e novo no Brasil, ainda existe uma série de dificuldades para a eleição de parâmetros de conservação

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

“O aumento da eficiência e o plano de produção fizeram com que a disponibilidade das células de fabricação aumentasse, diminuindo o impacto de problemas quando do

O principal objetivo do projeto proposto aos alunos foi motivá-los através do projeto e implementação de um robô manipulador, que permitiu demonstrar conceitos