Fuzzy_Arduino
-
Upload
vinicios-ferraz -
Category
Documents
-
view
216 -
download
0
Transcript of Fuzzy_Arduino
![Page 1: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/1.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 1/43
Controlador de LógicaNebulosa para implementação
em robôs inteligentes
utilizando ArduinoMário Alberto Cecchi Raduan
[UFRJ/PIBIC - Ago. 2011 a Jul. 2012]Orientador: Adriano Joaquim de Oliveira Cruz, PhD
1quinta-feira, 1 de novembro de 12
![Page 2: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/2.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 2/43
Controlador de Lógica Nebulosa paraimplementação em robôs inteligentes
utilizando Arduino
• Motivação
• Objetivo
• FIS - Fuzzy Inference System
• Do MATLAB para C
• Integração com Arduino• Dificuldades
• Resultados
2quinta-feira, 1 de novembro de 12
![Page 3: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/3.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 3/43
Motivação
3quinta-feira, 1 de novembro de 12
![Page 4: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/4.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 4/43
Lógica Nebulosa
4quinta-feira, 1 de novembro de 12
![Page 5: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/5.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 5/43
Lógica Nebulosa
• Permite criarmos controladores baseadosnas observações humanas
5quinta-feira, 1 de novembro de 12
![Page 6: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/6.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 6/43
Lógica Nebulosa
• Permite criarmos controladores baseadosnas observações humanas
• “As implementações da lógica difusa permitem que estadosindeterminados possam ser tratados por dispositivos decontrole. 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.)”
5quinta-feira, 1 de novembro de 12
![Page 7: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/7.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 7/43
Exemplo de uma variável nebulosarepresentando a temperatura de um
ambiente
6quinta-feira, 1 de novembro de 12
![Page 8: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/8.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 8/43
Funcionamento de um sistema nebuloso
7quinta-feira, 1 de novembro de 12
![Page 9: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/9.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 9/43
Arduino
8quinta-feira, 1 de novembro de 12
![Page 10: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/10.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 10/43
Arduino
• Programação em alto nívelpara controlar um robô
9quinta-feira, 1 de novembro de 12
![Page 11: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/11.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 11/43
Arduino
• Programação em alto nívelpara controlar um robô
• Baixo custo (US$ 30)
9quinta-feira, 1 de novembro de 12
![Page 12: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/12.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 12/43
Arduino
• Programação em alto nívelpara controlar um robô
• Baixo custo (US$ 30)
• Programas ficam salvos namemória Flash do Arduino
9quinta-feira, 1 de novembro de 12
![Page 13: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/13.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 13/43
Arduino
• Programação em alto nívelpara controlar um robô
• Baixo custo (US$ 30)
• Programas ficam salvos namemória Flash do Arduino
• Enorme compatibilidadecom sensores, módulos emotores
9quinta-feira, 1 de novembro de 12
![Page 14: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/14.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 14/43
Lógica Nebulosa + Arduino
10quinta-feira, 1 de novembro de 12
![Page 15: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/15.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 15/43
Lógica Nebulosa + Arduino
• Robô real simples, autônomo, capaz dedesviar de obstáculos (Mariam)
10quinta-feira, 1 de novembro de 12
![Page 16: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/16.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 16/43
Lógica Nebulosa + Arduino
• Robô real simples, autônomo, capaz dedesviar de obstáculos (Mariam)
• Problema: como embarcar um sistemanebuloso em uma plataforma autônoma,
como o Arduino?
10quinta-feira, 1 de novembro de 12
![Page 17: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/17.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 17/43
Um dos robôs utilizados no LabIC
11quinta-feira, 1 de novembro de 12
![Page 18: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/18.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 18/43
Objetivo
12quinta-feira, 1 de novembro de 12
![Page 19: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/19.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 19/43
Objetivo
• Criar uma biblioteca capaz de levar umsistema nebuloso para de ummicrocontrolador, programável em C/C++
13quinta-feira, 1 de novembro de 12
![Page 20: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/20.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 20/43
Objetivo
• Criar uma biblioteca capaz de levar umsistema nebuloso para de ummicrocontrolador, programável em C/C++
•Biblioteca LabicFuzzyC!
13quinta-feira, 1 de novembro de 12
![Page 21: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/21.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 21/43
FIS - Fuzzy InferenceSystem
14quinta-feira, 1 de novembro de 12
![Page 22: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/22.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 22/43
Fuzzy Toolbox (MATLAB)15quinta-feira, 1 de novembro de 12
![Page 23: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/23.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 23/43
Fuzzy Toolbox (MATLAB)16quinta-feira, 1 de novembro de 12
![Page 24: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/24.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 24/43
O arquivo .FIS[System]
Name='caminhao'Type='mamdani'
Version=2.0NumInputs=2
NumOutputs=1NumRules=35
AndMethod='min'OrMethod='max'ImpMethod='min'AggMethod='max'
DefuzzMethod='centroid'
[Input1]Name='Posicao_c'
Range=[0 100]
NumMFs=5MF1='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=7MF1='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) : 11 2, 4 (1) : 1
17quinta-feira, 1 de novembro de 12
![Page 25: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/25.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 25/43
Do MATLAB para C
18quinta-feira, 1 de novembro de 12
![Page 26: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/26.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 26/43
FIS Parser19quinta-feira, 1 de novembro de 12
![Page 27: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/27.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 27/43
Integração com oArduino
20quinta-feira, 1 de novembro de 12
![Page 28: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/28.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 28/43
IDE do Arduino
21quinta-feira, 1 de novembro de 12
![Page 29: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/29.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 29/43
Dificuldades
22quinta-feira, 1 de novembro de 12
![Page 30: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/30.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 30/43
Dificuldades
• Várias configurações de sistemas nebulosos
23quinta-feira, 1 de novembro de 12
![Page 31: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/31.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 31/43
Dificuldades
• Várias configurações de sistemas nebulosos
•Hardware limitado do Arduino
23quinta-feira, 1 de novembro de 12
![Page 32: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/32.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 32/43
Dificuldades
• Várias configurações de sistemas nebulosos
•Hardware limitado do Arduino• Arduino Uno: 2 KB SRAM
23quinta-feira, 1 de novembro de 12
![Page 33: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/33.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 33/43
Dificuldades
• Várias configurações de sistemas nebulosos
•Hardware limitado do Arduino• Arduino Uno: 2 KB SRAM
• Arduino Mega: 8 KB SRAM
23quinta-feira, 1 de novembro de 12
![Page 34: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/34.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 34/43
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 paraeconomizar uso da RAM
23quinta-feira, 1 de novembro de 12
![Page 35: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/35.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 35/43
Resultados
24quinta-feira, 1 de novembro de 12
![Page 36: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/36.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 36/43
Resultados
• Resultados com baixíssima margem de erroquando comparados aos do MATLAB
• Primeira versão da biblioteca feita em C sobmedida 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
25quinta-feira, 1 de novembro de 12
![Page 37: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/37.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 37/43
Resultados
Sistema Tipo Amostras Desviopadrão
Margemde 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)
26quinta-feira, 1 de novembro de 12
![Page 38: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/38.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 38/43
Resultados
Sistema Tipo Amostras Desviopadrão
Margemde erro
caminhao(15 regras) Anfis 390 0,00003 0,00006%
caminhao(35 regras)
Mamdani 390 0,723 1,2%
* 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)
26quinta-feira, 1 de novembro de 12
![Page 39: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/39.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 39/43
Resultados
Sistema Tipo Amostras Desviopadrão
Margemde 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%
* 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)
26quinta-feira, 1 de novembro de 12
![Page 40: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/40.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 40/43
Resultados
Sistema Tipo Amostras Desviopadrão
Margemde 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)
26quinta-feira, 1 de novembro de 12
![Page 41: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/41.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 41/43
Resultados
• Open-source e em breve no site do LabIC!
27quinta-feira, 1 de novembro de 12
![Page 42: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/42.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 42/43
Referências
• John Yen, Reza Langari, Fuzzy Logic: Intelligence, Control andInformation, 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 paraNavegação Autônoma de um Robô Inteligente. 2010. 131p.
Dissertação (Mestrado em Informática) — Programa de Pós-Graduação emInformática, UFRJ, Rio de Janeiro, RJ, Brasil
• Site oficial do Arduino - http://arduino.cc
28quinta-feira, 1 de novembro de 12
![Page 43: Fuzzy_Arduino](https://reader033.fdocumentos.com/reader033/viewer/2022052607/5695d0521a28ab9b0292019e/html5/thumbnails/43.jpg)
7/23/2019 Fuzzy_Arduino
http://slidepdf.com/reader/full/fuzzyarduino 43/43
Obrigado!