Home
u - Repositório Científico do Instituto Politécnico do Porto
Contents
1. float weights HL NUM INPUTS HL NUM NEURONS HL 0 float weights OL NUM INPUTS OL NUM NEURONS OL 0 float bias HL NUM NEURONS HL 0 float bias OL NUM NEURONS OL 0 mili aie inputs NUM SAMPLES NUM INPUTS HL 0 int mode 0 float weights last var HL NUM INPUTS HL NUM_NEURONS_HL 0 float weights last var OL NUM INPUTS OL NUM NEURONS OL 0 float bias last var HL NUM NEURONS HL 0 float bias last var OL NUM NEURONS OL 0 float outputs HL NUM NEURONS HL 0 float outputs OL NUM NEURONS OL 0 float targets NUM SAMPLES NUM NEURONS OL 0 falo oiee armam recalo0 y Oil 5 float alpha 0 9 float benefit OL NUM NEURONS OL 0 float benefit HL NUM NEURONS HL 0 float mean square error 100 ae inicio 1 E la males float n line NUM_SAMPLES 0 float si NUM SAMPLES 0 float s2 NUM SAMPLES 0 float s3 NUM SAMPLES 0 float s4 NUM SAMPLES 0 float EO NUM SAMPLES 0 E JOSE ED NUM_SAMPLES 0 float referencia NUM SAMPLES 0 float V final NUM SAMPLES 0 float W final NUM SAMPLES 0 me line 0 valu
2. 2r r E r T T r E r T E 1 3 ES e 0p al 4 t t t r r t a t t 5 10 15 20 25 30 35 40 45 50 Tempo s Velocidade angular do sistema ao longo do tempo 1 T r T T T r T T T a 05 an J o j E oh LA at A y e 0 5 1 E r r r r r r r r r 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 57 Dados de sa da do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades Para se efetuar o treino foi novamente utilizado o MATLAB modificando se a rotina anteriormente criada apenas adicionando os dois novos vetores das amostras dos dados dos sensores frontais matriz que ser utilizada como dados de entrada para o treino da rede neuronal O c digo seguinte mostra os comandos MATLAB utilizados para o efeito 6 Loading training data data load data_curval txt T 0 5 Defining values to the Network entradas data 2 data 4 data 6 cewe sp 1 16 Sota aisiide s eyjadals aro daria inputs entradas targets saidas desejadas Create a Neural Network rede newff minmax inputs 10 2 logsig pure lia ao ao Initialize weights rede init rede 76 pesosIL rede IW 1 pesosLW rede LW 2 polaridadel rede b 1 polaridade2 rede b 2 SsTrain network rede trainParam showCommandLine 1 rede trainParam show 10 rede trainParam lr 0 01 rede trainParam mc 0 9
3. 0 15 Fr F r i Dow l E i 0 1 HA 4 g 005r 3 q E S ot a HIE UN Wl 0 05 KPT pr C Difuso pos RNA 12N RNA 10N 0 1 L a 0 50 100 150 Tempo s Figura 66 Resultados da simulac o da rede neuronal que implementa o comportamento seguir paredes com descontinuidades e desviar se de obst culos no MATLAB velocidade linear 84 Velocidade Angular do Sistema Wfinal rad s C Difuso 0 6 gt T a e Res ea RNA 12N RNA 10N 0 8 amp t t 0 50 100 150 Tempo s Figura 67 Resultados da simulac o da rede neuronal que implementa o comportamento seguir paredes com descontinuidades e desviar se de obst culos no MATLAB velocidade angular Como se pode verificar pela an lise detalhada dos gr ficos apresentados anteriormente os valores de sa da da rede neuronal em compara o com os valores do controlador difuso s o mais semelhantes do que se verificou na situag o anterior com menor n mero de neur nios na camada escondida logo o desempenho da rede neuronal medido atrav s do valor de Mean Squared Error MSE superior como foi verificado O valor do MSE no primeiro caso de 0 0011 e no segu
4. 4 TR AY E is T FIM i RNA AGV E A N O sais f l y O IX Lu 2 4 pe r r F E F E r r e 0 5 10 15 20 25 30 35 40 45 50 Tempo s Evolu o de ED ao longo do tempo 1 5 ES E E k E E E E E E E 104 e i a 5h dl a L as er pe E W o her di Ea a IN 5 E E E E r E E r r E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 71 Resultados experimentais obtidos com a RNA que implementa o comportamento seguir a parede erros calculados 5 1 2 IMPLEMENTA O DE UMA RNA QUE IMPLEMENTA O SEGUIMENTO DE UMA PAREDE COM DESCONTINUIDADES A RNA que efetua este comportamento apresenta os pesos e as polariza es apresentadas no extrato de c digo seguinte retirado do programa implementado no AGV Esta rede como foi referido na sec o 4 4 constitu da por 4 entradas NUM INPUTS HL 10 neur nios na camada escondida NUM NEURONS HL e NUM INPUTS OL e 2 neur nios na camada de sa da NUM NEURONS OL float weights HL NUM INPUTS HL NUM NEURONS HL 0 3348 O 2951 0 1648 0 110270 6428 0 2730 0 Add O 2408 O 1632 0 2808 0 00620 6252 O GIGA O o 71144 O 2874 O O08 70 354358 459570 23 1577 O o 6048 O 728 0 OSOL O 73897 2 0701 SO MOL 0 IG 0 7 414 O 3440 L 0747 70 9160 93 1 3062 Oo 0838 O 4393 0 029 7 0 3482 0 9793 SO 499270033121 Oo LE 0 o 1078 E float weights OL NUM INPUTS OL NUM NEURONS OL ORO COFFS OF 0000 000007
5. re 78 Figura 59 Resposta apresentada pela simula o da rede neuronal para implementar o comportamento seguir paredes com descontinuidades utilizando os dados de entrada do treino NO Programa em Cos ses pai 79 Figura 60 Posi o inicial do AGV ao efetuar o percurso de treino 80 Figura 61 Primeira sec o do percurso a e segunda sec o do percurso b 80 Figura 62 Terceira sec o do percurso a e quarta sec o do percurso b 81 Figura 63 Dados de entrada S1 e 53 do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades e desviar se de obst culos PRE ERR beac DR RREO OR pe RR DO E O AE RR O RR RN 81 Figura 64 Dados de entrada EO e ED do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades e desviar se de obst culos PER EUA RIN 82 Figura 65 Dados de sa da do controlador difuso para treinar a rede neuronal a efetuar o comportamento seguir paredes com descontinuidades e desviar se de obst culos 82 Figura 66 Resultados da simula o da rede neuronal que implementa o comportamento seguir paredes com descontinuidades e desviar se de obst culos no MATLAB velocidade linear 84 Figura 67 Resultados da simula o da rede neuronal que implementa o comportamento seguir paredes com descontinuidades e desviar se de obst culos no
6. C lculo das sa das de cada um dos neur nios da camada escondida da rede neuronal C lculo das sa das de cada um dos neur nios da camada de sa da da rede neuronal C lculo das velocidades de refer ncia para cada um dos motores e envio via CAN Figura 69 Fluxograma da implementa o no uC da rede neuronal artificial Os pesos e as polariza es utilizadas na implementa o em microcontrolador s o as mesmas obtidas nas redes neuronais criadas e simuladas nas sec es 4 2 at 4 5 Os pesos e as polariza es obtidos no MATLAB s o escritos num ficheiro de texto atrav s do comando dimwrite que tem como par metros o nome do ficheiro e a vari vel a escrever no ficheiro Adicionando a op o append garante se que se o ficheiro j existir n o reescrito Posteriormente estes pesos s o adicionados ao c digo do programa que implementa a rede 90 neuronal artificial no microcontrolador Em seguida s o apresentados os testes experimentais efetuados e os resultados obtidos 5 1 1 IMPLEMENTA O DE UMA RNA QUE IMPLEMENTA O COMPORTAMENTO DE SEGUIR A PAREDE A RNA que efetua este comportamento apresenta os pesos e as polariza es apresentadas no extrato de c digo seguinte retirado do programa implementado no microcontrolador de controlo do AGV Esta rede como foi referido na sec o 4 2 constitu da por 2 entradas NUM INPUTS HL 10 neur nios na camada escondida NUM NEURONS HL e NUM INPUTS
7. benefit OL 0 benefit Cale OL outputs OL 0 targets line 0 jore aea 04 Beneficio neuronio 1 da camada de saida ao od DES penetraron 1 Lens trae alkem Ol Que puis Ow targets line 1 jonoa oiec A gi An benere Cuill benefit 0 a NaN eme ao In benefit HL amp weights OL 1 f Benef benefit OL as hcg o emite ninpi benefit HL benefit 0 gi dye oa Mbizi benefit 0 E gar sao BS benefit 0 gE Agar Dene ia BiA benefit OL chi Pene ine kinis benefit OL on Vi ete t ise los benefit_ y HL 0 Beneficio neuronio 2 da camada de saida benefit calc HL outputs HL 0 amp weights OL 0 NUM NEURONS OL Beneficio neuronio 1 da camada escondida pri joe ak nt nt I E l La LELO r 2 Fenere Cale Pih Otwgonts 06 ps NUM_NEURONS_OL neuronio 2 da camada escondida L amp weights OL 2 NUM NEURONS OL printf Benef y benefit HL 3 L amp weights_OL 3 NUM NEURONS OL printf Benef y benefit HL 4 L amp weights OL 4 NUM NEURONS OL printf Benef y benefit HL 5 ae Bene dieses UI penefiti HL 6 ES Bene jou akione ac O benefits bene mate Ol HL 7 134 Seite Cele RIL otages MEIZ icio neuronio 2 da camada escondida Soaiieresde CALC RIL outs lS y icio neuronio 2 da camada
8. cria a BluetoothSocket para a comunica o com o BluetoothDevice indicado Este passo realizado utilizando um determinado Universally Unique Identifier UUID O UUID um identificador nico que permite identificar o servi o de Bluetooth da aplica o sendo assim diferente para as v rias aplica es Esta regra n o se aplica para aplica es que comuniquem com m dulos Bluetooth como o caso deste projeto O UUID para estes fins sempre o mesmo 00001101 0000 1000 8000 00805F9B34FB Ap s se obter a socket executada a conex o sendo esta bloqueante ou seja a thread fica bloqueada at a conex o ser realizada Quando isso acontece o programa desbloqueia e inicia o m todo connected O m todo connected tem as funcionalidades j indicadas sendo estas 52 e Cancela a ConnectThread que efetuou a liga o e Iniciaa ConnectedThread que gere a liga o ou seja recebe e envia os dados Estes processos s o representados pelo fluxograma da Figura 37 In cio Selec o do dispositivo connect ConnectThread connected ConnectedThread Figura 37 Fluxo de conex o ao dispositivo remoto Ao iniciar a ConnectedThread passada para esta thread a socket para permitir a troca de dados sendo esta thread que corre durante toda a liga o e gere os fluxos de dados Para realizar a troca de dados obt m se numa fase inicial da ConnectedThrea
9. neuronal a ser implementada No caso deste comportamento necess rio adicionar mais vari veis de entrada para a rede neuronal tal como foi necess rio no controlador difuso Estas novas vari veis s o os valores medidos pelos sensores S1 e 3 os sonares posicionados na parte frontal do AGV e que permitem ao sistema detetar obst culos no seu percurso Assim a rede neuronal a ser implementada difere da anterior pelo aumento do n mero de entradas quatro O n mero de neur nios foi mantido o mesmo em ambas as camadas dez neur nios na camada escondida e dois na de sa da 73 Camada Camada de Escondida Sa da Figura 54 Diagrama da rede neuronal que implementa o comportamento seguir paredes com descontinuidades O trajeto utilizado para retirar as amostras do controlador difuso o seguimento de uma parede que faz 90 graus com outra e que na posi o inicial tem uma coluna como se pode ver na Figura 53 Assim o AGV tem de se aproximar da parede ap s o fim da coluna e posteriormente na proximidade da curva de 90 tem de se direcionar para seguir a nova parede Figura 53 Os dados amostrados dos sonares frontais do AGV ao ser efetuado este trajeto s o apresentados na Figura 55 enquanto na Figura 56 s o apresentados os dados de entrada do erro de orienta o e erro de distancia amostrados durante a execu o do trajeto Os dados de sa da do controlador difuso correspondentes s entradas anter
10. o de EO ao longo do tempo 45 F E T T T T T T E E 2 M L Ss o w OF DL t E 0 5 10 Tempo s Evolu o de ED ao longo do tempo 15 E T E T T E T E T E T z 101 a e Q Lu 5 T Al ND NA ot ja r r Lt r Y r PA r_ 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 40 Dados de entrada para o treino da RNA que implementa o comportamento de seguir paredes Como se pode verificar pela an lise dos gr ficos o percurso a que este dados se referem iniciado com o rob a 15 cm da parede posteriormente este evolui para se colocar dist ncia de refer ncia de 30 cm em rela o parede que est a seguir Na Figura 41 apresentada uma fotografia do percurso utilizado para obter amostras do controlador difuso para treinar a rede neuronal de forma a esta se comportar como pretendido 60 Figura 41 Percurso amostrado atrav s do controlador difuso para o comportamento de seguir uma parede A realizac o deste percurso estabelece os dados de sa da que s o a velocidade linear e a velocidade angular sendo caracterizado por uma velocidade linear constante diferente de zero e velocidade angular onde existem varia es que refletem as corre es no trajeto que o AGV tem de efetuar para se colocar dist ncia de refer ncia em rela o parede que est a seguir O que foi anteriormente referido pode ser verificado na Figura 42 que apresenta os gr ficos da evolu o das vari veis d
11. o de Levenberg Marquardt o algoritmo de treino com que a rede neuronal configurada com o comando newf f 15 Este algoritmo uma otimiza o do algoritmo de retropropaga o original convergindo de uma forma mais r pida e eficaz que este Tem a desvantagem de possuir processamento mais pesado em compara o com o algoritmo de retropropaga o simples Neste caso sendo o treino efetuado offline e atrav s do software MATLAB optou se pelo algoritmo de retropropaga o de Levenberg Marquardt pois s o obtidos resultados mais satisfat rios que o algoritmo de retropropaga o simples como referido em seguida Na Figura 44 e Figura 45 s o apresentados os gr ficos que apresentam a compara o entre as sa das das redes neuronais que pretendem simular o comportamento de seguir uma parede apenas tendo como diferen a entre si o n mero de neur nios na camada escondida Foram implementadas redes neuronais com 10 15 e 25 neur nios para se obter as respostas apresentadas a azul magenta e vermelho respetivamente Como se pode observar pela an lise dos gr ficos nenhuma das redes obteve uma resposta semelhante aos valores das vari veis de sa da utilizadas no treino apresentadas a tra o preto considerando se assim um treino sem sucesso A considera o que o treino foi completado sem sucesso tamb m apoiada por n o se ter atingido nenhuma das condi es de fim de treino com sucesso pois este foi completado por se ter at
12. polaridadel rede b 1 polaridade2 rede b 2 pause nndsrasencooli elosel Simulate the Network data sim load dados sim emergencia codigoC txt saidas sim rede inputs sugar 211 do elema e 1 er teles lL 2 Vise sg Gerol omale omg joulLOne Clence 3 tr DRA Sada 83 loe cara 8 1 ur dara same y Y y VIN 5 Y xlabel Tempo s ylabel rad s clcle veloecicace iunmesie eo Sisuenea subplot 2i ala lence e y DNR rage si E grata ola plano el Ola alo cence 3 y 1 mr sales 2 8 y Vie g jSdLone Cletcel 3 7 IL Yt os a xlabel Tempo s ylabel rad s title Velocidade Angular do Sistema pause close all Para melhorar o desempenho da rede neuronal optou se por aumentar o n mero de neur nios existentes na camada escondida Assim aumentou se o n mero de neur nios dessa camada de 10 para 12 neur nios Treinando a rede ap s esta modifica o obtiveram se os resultados para as vari veis de sa da velocidade linear e velocidade angular do sistema apresentados na Figura 66 e Figura 67 sendo o tra o azul a resposta do controlador difuso o tra o vermelho a resposta da rede neuronal com 12 neur nios na camada escondida e o tra o magenta a resposta da rede neuronal com 10 neur nios Velocidade Linear do Sistema
13. 0 5 hH H 4 15 r 4 0 50 100 150 Tempo s Figura 65 Dados de sa da do controlador difuso para treinar a rede neuronal a efetuar o comportamento seguir paredes com descontinuidades e desviar se de obst culos 82 Com a obten o destas amostras pode se efetuar o treino de uma rede neuronal tal como foi efetuado anteriormente para os comportamentos menos complexos A rede neuronal implementada do tipo multicamada feedforward semelhante s redes neuronais anteriormente implementadas em todos os outros aspetos como se pode verificar pelo c digo seguinte utilizado para o efeito 6 Loading training data data load data emergencia txt T 0 5 Defining values to the Network entradas data 2 data 4 data 6 claras y 1 18 saidas desejadas data 9 data 10 inputs entradas targets saidas desejadas Create a Neural Network ede newff minmax inputs 10 2 logsig purelin H oO oO Initialize weights rede init rede pesosIL rede IW 1 pesosLW rede LW 2 polaridadel rede b 1 polaridade2 rede b 2 o Train network rede trainParam showCommandLine 1 rede trainParam show 10 rede trainParam lr 0 01 rede trainParam mc 0 9 rede trainParam epochs rede trainParam goal 0 rede treino train rede inputs targets treino perf end pesosIL rede IW 1 pesosLW rede LW 2 TONOS
14. 80 pelos valores nulo de erro que s o apresentados 101 EO cm ED cm Figura 80 Resultados experimentais obtidos com a RNA implementada no AGV a efetuar o satisfat rio CRIA O TREINO E IMPLEMENTA O DE UMA REDE NEURONAL A Evolugao de EO ao longo do tempo 40 i 20 jj TRI oT PI Pal idaho hd 0 i HH nd In i A MH fl Bi i yi it q af EA a 40 amp f t E r t t t 0 50 100 150 200 250 300 350 Tempo s Evoluc o de ED ao longo do tempo Aa 207 En l f N TINA VAN car HL h MU AA A TH FR PA Y ab i E Ra sob r Po ml t t t t 0 50 100 150 200 250 300 350 Tempo s trajeto aleat rio erros calculados Al m deste percurso tamb m foi colocado o AGV a percorrer outros percursos aleat rios em que se verificou que o funcionamento do AGV para estes casos foi igualmente PARTIR DE DADOS RETIRADOS DO CONTROLO REMOTO assim nos dois casos um trajeto semelhante 102 Atrav s do controlo remoto disponibilizado no AGV e implementado na aplica o Android do smartphone apresentada na subsec o 3 8 4 do Cap tulo 3 foi implementado um sistema que permite efetuar o treino do rob com os dados do AGV as medi es de dist ncia efetuadas pelos sonares e velocidades angulares de refer ncia par
15. A obten o do resultado pretendido desta experi ncia ou seja o rob a funcionar de forma satisfat ria no modo aut nomo com uma rede neuronal treinada a partir do controlo remoto apenas era poss vel atingir atrav s do m todo de tentativa e erro isto controlava se remotamente o AGV a percorrer um trajeto retirando amostras do funcionamento medi es dos sonares e velocidades angulares aplicadas aos motores Posteriormente estas amostras 103 eram utilizadas no treino de uma rede neuronal do tipo apresentado na Figura 81 obtendo se OS pesos e as polariza es que caraterizam a rede neuronal treinada Por fim verificava se se a rede neuronal treinada cumpria os requisitos necess rios efetuando um teste experimental no AGV Se o resultado do teste experimental n o fosse satisfat rio tornava se a efetuar os processos anteriormente referidos O resultado do teste era satisfat rio se o AGV percorresse o percurso treinado de uma forma que se observasse semelhante treinada mantendo uma dist ncia por exemplo 20 cm parede que segue e se desviasse de obst culos que se encontrem no seu percurso Posteriormente testava se o AGV controlado com essa rede neuronal no percurso aleat rio utilizado anteriormente na sec o 5 2 Inicialmente retiraram se amostras do percurso a ser percorrido pelo AGV apresentado na Figura 60 at Figura 62 controlado remotamente para utilizar no treino da rede neuronal Estes dados cria
16. define VAL BIAS 2 define VAL INPUTS 3 define NUM SAMPLES 300 OK KKK KK IK A I I I A A eA A e Bey AS Fun o que calcula o valor de sa da atrav s da fun o de 27 es ativac o sigmoide x o E KKK KK KK A RARA RARA ARA float sigmoid float x c oat exp value 0 oat return value 0 c pea Exponent al galoculacion exp value exp double x free mal slecjojiel well recur values IS epa ee return return value 125 VE A pa ce pe Fun o que calcula o valor de sa da atrav s da fun o de 7 func o de ativac o linear 2 fri S VE A float linear float x return xX AS PARASITAS TAS TS TASHA TEMAS TS AS AS SIS TCS SAD TASS SAS TPR TAS SS ROS IAEA USAID SAS SAS TRUSTS TD TASS SSS TRUS USAID SAS US TST RSE UL IS ASAS STS f a p Fun o que calcula o valor de sa da atrav s da fun o de func o de ativac o bin ria ef ies Ff OR KK KH IK KK IK I A I I I A A float binary float x float bias float return value 0 pa Binary rUnetLon calculation ss if x gt bias return value 1 0 else return value 0 0 TASTE MEI EVITA NELLIS fF RK KK I KK I A I I A A A A fe s fs Fun o que calcula a soma de produtos entre os pesos e ne Asi as entradas a BRA EE AA Cloer srm or procurs tiloe Witslissic icileeie YSSComCl sinc S128 int
17. necess ria e por isso recebe a Ap s se terem efetuado todas as tarefas do controlador neuronal s o obtidos os valores da velocidade angular para cada motor a partir dos valores de sa da do controlador Estas velocidades s o os valores de refer ncia utilizados pelos controladores PI deste modo necess rio pegar nesta informa o e coloc la numa mensagem CAN com o ID2 e envi la para a rede O m dulo de controlo de velocidade reconhece o identificador e recebe a 34 mensagem e em seguida atualiza as vari veis de modo a serem utilizadas no pr ximo ciclo de controlo 3 3 M DULOSDO AGV Nesta secg o s o apresentados brevemente os varios componentes do AGV utilizado e que nas sec es seguintes ir o ser detalhadamente apresentados O AGV apresentado na Figura 21 onde se destacam as tr s Printed Circuit Board PCB existentes que o constituem cada uma alojando um microcontrolador quatro sonares dois na parte lateral e dois na parte frontal e ainda as rodas que impulsionam o AGV Figura 21 Fotografia do AGV utilizado Na Figura 22 apresentado o m dulo Bluetooth que permite a comunica o remota com o AGV O m dulo Bluetooth est conectado PCB que aloja o controlo central do rob atrav s de uma comunica o s rie RS 232 Figura 22 Fotografia do m dulo Bluetooth utilizado 35 Na Figura 23 apresentada uma fotografia do m dulo de controlo central onde implementado o contro
18. rede trainParam epochs 1000 rede trainParam goal 0 rede treino train rede inputs targets treino perf end pesosIL rede IW 1 pesosLW rede LW 2 polaridadel rede b 1 polaridade2 rede b 2 pause nntraintool close Simulate the Network data_sim load dados sim curva codigoC txt saidas sim rede inputs suplico ANDE Slow elena Es y IL A raro Srs Cl 8 1 GALO Sano elo Slow aereas y 1 Vir samecas ily 5 12 plo era 8 1 cera sims 3 9 xlabel Tempo s ylabel rad s cirio velocidade Minean lo ols teman Sula 21 E los Cercle yd caos 278 100 qria von hollldont ollotui dairalte A Onasa das 272 120 Dio Cera 871 411 dera sumisa eur mu au xlabel Tempo s ylabel rad s title Velocidade Angular do Sistema pause close all Esta matriz fica composta pelos dados dos sensores 1 e 53 erro de orienta o e erro de dist ncia O treino da rede neuronal foi completado com sucesso ao fim de 254 itera es por se ter atingido o m nimo gradiente como apresentado na Figura 58 Na Figura 59 s o apresentados os resultados da simulac o da rede neuronal para o caso utilizado no treino O trago azul corresponde aos dados utilizados no treino o magenta aos resultados do MATLAB e o vermelho aos resultados da implementa o em C 77 Algorithms Training Levenberg Marquardt tra
19. 0 03568 7 46 20 30 24 4 6 30 0 10429 0 05607 6 46 22 30 25 3 5 30 0 10429 0 10705 9 48 24 30 27 3 3 38 0 10429 0 10705 Figura 39 Exemplo dos dados recebidos via comunicac o s rie sobre Bluetooth Estes dados foram guardados num ficheiro de texto para posteriormente serem utilizados no treino da rede neuronal Como j referido anteriormente o controlador difuso utilizado como base para o treino da rede neuronal implementada composto por 3 comportamentos seguir paredes desviar de obst culos e paragem de emerg ncia O desenvolvimento da RNA foi efetuada por etapas com um grau crescente de complexidade dos comportamentos que o AGV teria de apresentar sendo estas as seguintes e Seguir uma parede sem descontinuidades posicionando se a distancia de refer ncia e Efetuar o seguimento de uma parede com descontinuidades 59 e Efetuar o seguimento de uma parede com descontinuidades e desviando se de obst culos 4 2 CRIA O E TREINO DE UMA RNA QUE IMPLEMENTA O COMPORTAMENTO DE SEGUIR A PAREDE Para a cria o da rede neuronal que efetua este comportamento foram utilizados dados recebidos atrav s da rotina do fluxograma da Figura 38 apresentado na sec o 4 1 Os dados de entrada utilizados para a rede neuronal s o os valores do erro de orienta o e do erro de dist ncia que est o apresentados na Figura 40 onde se verifica a evolu o das vari veis de entrada EO e ED ao longo do tempo amostrado Evolu
20. MATLAB podendo se concluir que o c digo do programa executa uma rede neuronal bem implementada e que este pode ser adaptado para a implementa o no AGV 4 4 CRIA O E TREINO DE UMA RNA QUE IMPLEMENTA O COMPORTAMENTO DE SEGUIR UMA PAREDE COM DESCONTINUIDADES Ap s se ter verificado que a rede neuronal que implementava o comportamento mais simples seguimento de uma parede funcionava de forma satisfat ria tanto no MATLAB como na implementa o em linguagem C avangou se para a implementa o das redes neuronais que controlam o AGV de forma a este efetuar comportamentos mais complexos como o seguimento de uma parede com descontinuidades Com este objetivo de forma paralela ao efetuado no caso do comportamento anterior foram retiradas amostras dos dados de entradas e sa da do controlador difuso ao efetuar um trajeto que se enquadrasse no comportamento que se pretende ensinar rede neuronal e que ser 72 implementada no AGV O trajeto a ser utilizado para retirar as amostras do controlador neuronal para posteriormente se efetuar o treino apresentado na Figura 53 Figura 53 Percurso de amostragem do comportamento seguimento de uma parede com descontinuidades Como se pode verificar pela fotografia o percurso que o AGV tem de percorrer neste comportamento mais complexo que no comportamento anterior pois tem de detetar a parede frontal e desviar se Na Figura 54 apresentado o diagrama exemplificativo da rede
21. algoritmo de treino Tabela 3 Fun es de ativa o bipolar rampa saturada e sigmoide Designa o Fun o Representa o f x be anid fats 1 x gt 0 Fun o de ativa o bipolar f x E veo Fun o de ativa o rampa y Pa saturada f x 4 kx x lt 8 y x lt 0 1 e Func o sigmoide x b fe a 4 Fun o tangente hiperb lica x e 8 P f KJ 1 ex V rias das fun es apresentadas na Tabela 2 Tabela 3 e Tabela 4 n o s o utilizadas na pr tica pois com a implementa o das fun es bin ria linear log stica e ou tangente hiperb lica as redes neuronais atingem o funcionamento pretendido Tabela 4 Fun es de log stica exponencial limitada e raz o de quadrados Designa o Fun o Representa o Fx iss Fun o log stica x L gt ERE PONS 1 e x Fun o exponencial ahs 1 e x gt 0 limitada f x f 0 a x2 Fun o raz o de quadrados f x 41 4 x2 x gt 0 O x lt 0 x2 Fun o gaussiana f x e 7 A fun o de ativa o de uma camada escondida de uma rede neuronal multicamada habitualmente uma fun o log stica enquanto a fun o de ativa o da camada de sa da da rede uma fun o linear 2 2 3 TOPOLOGIAS 2 A forma de organiza o dos neur nios numa rede neuronal est intrinsecamente ligada ao problema que se quer solucionar e u
22. o semelhantes aos resultados da primeira no que se refere dist ncia a obst culos a dist ncia a um obst culo foi de pelo menos 20 cm Figura 95 J no que se refere dist ncia mantida parede que o AGV segue este manteve uma dist ncia de 7 cm que menor do que no caso anterior Tamb m a m dia da dist ncia mantida desceu de pelo menos 30 cm para 20 cm Como se verifica pela an lise dos gr ficos da Figura 96 ocorrem varia es da dist ncia mantida parede que o AGV segue apesar de esta ser uma parede continua Isto foi causado pelos dados utilizados no treino tamb m apresentarem estas varia es isto os dados amostrados durante o controlo remoto do AGV tamb m variavam a dist ncia mantida parede mesmo sendo esta cont nua 115 Evoluc o de S1 ao longo do tempo WR IT VIC ID TO Hp PA 80 T HH TO ee E YE A A amp oH D Von po E E E AAA N J 205 r E r r r r t t r E 0 10 20 30 40 50 60 70 80 90 100 Tempo s R Evolu o de S3 ao longo do tempo C Remoto 0 TTITT TT oy MO MT VIO TTT NN LP EA UAL TA zs Ver OR EE TEE A A E HA AE A O TP OA Ty o Ho i METAL HA WW TTY 1 AAA Ml WD LY Mal yuu p U Go q ot t t t t l t t r E 0 10 20 30 40 50 60 70 80 90 100 Tempo s Figura 95 Resultados experimentais do AGV a percorrer a segunda sec o
23. pause nntraintool close Simulate the Network data sim load dados sim codigoC txt saidas sim rede inputs sinto pilo RCE Slow eleve ls pdb VS carece 1 8 Voa cpexel Caplio LaRon Slow elarca 8 1 Vir sacas il 8 p el plor ceras 1 er cara slim s 3 798 xlabel Tempo s ylabel rad s Peter Velocidade Miincam CO Sistema Ss bp kort o pior dara y sm cercas 2 8 7 Vier OEN ole casar Colence 8 il Ya sacas 12 78 y 12 E plo elencar 874 rl cera Sims 9 8 xlabel Tempo s ylabel rad s title Velocidade Angular do Sistema pause 62 close all A rotina implementada no MATLAB efetua o carregamento dos dados a serem utilizados para treinar a rede atrav s do comando load que tem como par metros de entrada o nome do ficheiro a carregar e que devolve os dados existentes no ficheiro A partir da vari vel resultante do carregamento do ficheiro s o criadas duas matrizes que ser o utilizadas no momento de se efetuar o treino da rede Uma das matrizes chamada de inputs correspondente as entradas EO e ED e a outra matriz chamada de targets corresponde as sa das desejadas Vfinal e Wfinal Posteriormente atrav s do comando newf f criada uma rede neuronal do tipo multicamada feedforward com 2 camadas A primeira camada a camada escondida constitu da por 10 neur nios com uma func o de ativac o sigmoide logar tmi
24. poderia ultrapassar a dura o de 30 ms com esta solu o o tempo reduzido sensivelmente para metade A dete o do momento em que a linha de eco colocada a 0 efetuada atrav s da verifica o das flags das interrup es externas que ocorrem no flanco descendente do eco para dois dos sonares e para dois dos outros sonares atrav s das flags do modo de captura dos temporizadores configurando o seu funcionamento para o flanco descendente 40 3 6 MEDI O DE VELOCIDADE E CONTROLADOR PI Um dos microcontroladores que constituem o AGV tem como objetivo implementar um controlador PI para cada um dos motores que acionam as rodas do sistema m vel Para isso necess rio implementar um sistema de medi o da velocidade a que os motores est o atualmente a rodar Isto proporcionado pelo encoder interno que cada um dos motores tem e que fornece 3 impulsos por rota o Os motores utilizados t m tamb m uma caixa redutora com a rela o de 94 73 1 entre o veio interno e o veio externo a que est o conectadas as rodas Assim para cada rota o de uma roda do AGV o encoder fornece 283 impulsos Logo atrav s destes impulsos consegue se medir a velocidade a que as rodas do AGV est o a rodar efetivamente O m todo escolhido para efetuar a medi o da velocidade foi o M todo de Contagem de Tempo 1 no qual a frequ ncia de contagem do contador de 1 25 MHz A velocidade instant nea do motor calculada atrav s
25. tem se dw y dx 2 dwij Ea dx Yi 15 21 Ou seja a varia o da sa da y em rela o aos pesos das conex es igual derivada da fun o de ativa o f x a multiplicar pelas sa das da camada anterior yj dE E E Resta o c lculo D que faz intervir as sucessivas camadas onde as altera es das sa das dos j elementos processadores da camada j propagam se s sa das dos elementos da camada l ou seja o erro de uma camada deve se sa da dessa camada que depende das sa das da camada anterior visto estas serem entradas nesta isto E y y Assim paralelamente camada anterior obt m se a express o 16 dE 5p dE dy Hae 16 dy ady dy o Mas sendo y f x e x Li Wj Yj obt m se analogamente dy _ df x ak _ df x dy dx dy dx Wj 17 2 dE j E Assim a varia o dos pesos atendendo ao c lculo efetuado para a dada por ij dE df x Awi n x d 7 Yj Xj Yi 18 Que para uma fung o de ativag o sigmoide log stica resulta Awi 9B X y 1 yy yi 19 dE a Onde B a definido como o beneficio A equac o do beneficio depende da j localiza o do elemento processador na rede Assim para elementos processadores interm dios vem dE dE df B Y B j dy dy Er Wi e Xy 1 yw 20 E para elementos processadores finais B ae onde s 1 m Figura 10 vem Bs yf Y
26. 100 100 100 cm n o for amostrado ficando com um valor definido na sa da como por exemplo Wm direito Wm esquerdo 5 5 ao se treinar a rede o valor de sa da resultante poderia ultrapassar a velocidade angular m xima do motor que de 7 rad s A evolu o das vari veis de entrada 2 e 4 ao longo do tempo amostrado apresentada na Figura 83 Na Figura 84 mostrada a evolu o do valor de refer ncia da velocidade para cada um dos motores do AGV e que foram utilizadas como targets no treino da RNA 105 Evoluc o de S2 ao longo do tempo 1r TT I il lee PO WH lil 5 50H j Pa al LA pl 441 T A I Al pn A ih hy al i7 l Ji i ot E r E t t 0 100 200 300 400 500 600 Tempo s Evolu o de S4 ao longo do tempo C Difuso 100 pp ae 5 2 50 T i i i IA D I F MN lh TAT Uh A 7 J PAD IV ad 1 sy La MA Daly y 05 r t E r t E 0 100 200 300 400 500 600 Tempo s Figura 83 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 trajetos diferentes 2 e 4 Valor de refer ncia para o motor da esquerda ao longo do tempo H g OTE tt mn T EPICA AN 2 oM
27. 100uS to 25mS Times out after 30mS if no object detected Echo pulse output from SRFOS to users controller Figura 28 Sinais para interac o com o sonar SRF05 6 Para o sonar efetuar uma medi o necess rio fornecer um sinal de disparo com uma largura m nima de 10 us Depois de o sonar emitir a sequ ncia de pulsos deve se esperar que a linha de eco v ao nivel l gico 1 O tempo que este sinal permanecer em 1 vai ser proporcional a uma dist ncia neste caso a relac o dist ncia tempo us 58 indica diretamente a dist ncia em cent metros A implementa o da aquisi o dos valores das leituras dos quatro sonares passa por uma reprodu o dos passos apresentados no fluxograma da Figura 29 39 4 In cio ES Gerar disparo dos sensores gd ps lt Linha eco 1 gt Iniciar contador N ae ee SS Da 4 Linha eco 0 SS AH gt S Parar contador y Calcular dist ncia medida y Fim EN aa Figura 29 Fluxograma representativo da aquisi o dos dados de um sonar Como existem quatro sensores decidiu se dispar los dois a dois Os sensores disparados simultaneamente encontram se em locais opostos para n o existirem interfer ncias entre eles Deste modo pode se diminuir o tempo de aquisi o dos valores em compara o situa o em que se disparavam os sensores individualmente Nessa situa o cada aquisi o
28. 791 So ZA o 417 OU ISSO y ias SI MS SIMAS Lo Slay 0 22306 ls CLS 1 22588 0 00439037 Ls 1337 7 0 49890 2 0115720 591 0 1507720 6967 9 3208 1 5752 0 59577 71 1999 5 float bias HL NUM NEURONS HL 113 107171272318 Ll 195 3 09097 6 3986 LL 296 3 NI 1 018720 1902 do TIOS LISO BEBO E float bias Ol NUM NEURONS OL 13428 3 0195 O teste experimental do funcionamento do AGV controlado por esta RNA foi efetuado no percurso aleat rio apresentado na sec o 5 2 O teste foi realizado em duas sec es deste percurso A primeira sec o apresentada na Figura 78a e a segunda sec o apresentada na Figura 78b e Figura 78c Na Figura 93 s o mostrados os resultados da primeira sec o atrav s das vari veis de entrada 1 e 3 enquanto na Figura 94 s o apresentados os resultados da primeira sec o atrav s das vari veis de entrada 2 e S4 Evolu o de S1 ao longo do tempo 100 p gt E TE TT a a T ON E S omn lana AF E RR E r 5 A NA 40 Ae a EN l sl 20 t t r f r ld r r E 0 5 10 15 20 25 30 35 40 45 50 Tempo s R Evolu o de S3 ao longo do tempo C Remoto OT rT WT Tl IT i IN th at AN i pol E tipo HA Witt S soli itt ps ES Hitt ti 4 ER EON VWN rit i a ae ae AAA NJ 0 ja t
29. A T gr E A a 100 200 300 400 500 600 Tempo s _ Valor de refer ncia para o motor da direita ao longo do tempo 3 gt A AU i ij ll M ON E paa o T i i l E ll AAN 3 OO S Om ji id 0 100 200 300 400 500 600 Tempo s C Remoto Figura 84 Dados de sa da para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes 106 Como vis vel nos gr ficos da Figura 84 os valores de sa da que s o os objetivos targets da rede neuronal est o divididos em valores definidos como apresentados na Tabela 10 Cap tulo 3 para cada um dos motores do AGV De uma forma semelhante aos treinos anteriores utilizou se o seguinte c digo no MATLAB para efetuar a cria o treino e simula o da rede neuronal remote data load remote samples phone 3 trajetos diferentes txt W 0 DE Defining values to the Network entradas remote data 2 remote data 3 ranore ceuta 4 remo irc ara y 9 17 saidas desejadas remote data 6 remote data 7 1 inputs entradas targets saidas desejadas Create a Neural Network rede newff minmax inputs 12 2 iegsile omasilitiaY E rede initFcn rede layers 1l initFcn rede layers 2 initFcn ao oO Initialize weights rede init rede pesosIL rede IW 1 pesosLW rede IW 2 polaridadel rede b 1 polaridade2 rede b 2 o T
30. Localiza o dos motores e sonares frontais do AGV oococoncnicnonicnnonoconnnononncancnncnncnannnn 36 Figura 25 M dulo conectado aos SONAS voii aida rece indir cie dsc 37 Figura 26 Mensagem enviada pelo n que efetua a leitura dos sonares ooooononnccnonocannconcnncaninannnon 38 Figura 27 Mensagem enviada pelo n do controlador difuso neuronal para controlo dos motores A a O le ad eh 38 Figura 28 Sinais para intera o com o sonar SRFOS 6 ooonnncncniccncnininnccnnnnonaninanonacononacaninananon 39 Figura 29 Fluxograma representativo da aquisi o dos dados de um sonar 40 Figura 30 Fluxograma do processo para c lculo da velocidade ooociicnnnnnnnnncononncnnnconnnncnncnacnnon 42 timbasL M dulo HPS 110 da Handy Wi aid 44 Figura 32 Menu apresentado ao se efetuar a configura o do m dulo 45 Figura 33 Imagens da aplica o base utilizada para desenvolver a aplica o Android pretendida Figura 34 Interface gr fica da aplica o Android a ecr inicial e b menu de op es 48 Figura 35 Interface gr fica da aplica o Android a ecr para verifica o das amostras retiradas do sistema e b ecr com informa o sobre a aplica o as 49 Figura 36 Fluxograma da inicializa o da aplica o eee 52 Figura 37 Fluxo de conex o ao dispositivo remoto eres cnc r ono rnonnns 53 Figura 38 Rotina para guardar e enviar o
31. O algoritmo calcula o valor de sa da para um conjunto de entradas e enquanto o valor da sa da da rede neuronal n o for igual ao valor da sa da desejada para essa entrada faz o ajuste dos pesos das entradas atrav s da regra delta NICIALIZAR VARI VEIS LEMURA DAS ENTRADAS E SAIDAS DESEJADAS DA REDE C ORRE O DOS PESOS SIN PTICOS CALCULO DO ERRO T T T Wi j W ij nE X 1 E j d j YU pare Aid SiS CALCULO DA FUN O O DE TRANSFER NCIA 1p V gt 0 v 2 Wi xi Vv i 1 OpiV lt o RETORNA MATRIZ COM PESOS SINAPTICOS DESEJADOS Figura 15 Diagrama do algoritmo para o treino da rede neuronal do AspiraBot 5 A Figura 16 mostra que o algoritmo de treino aplicado na rede neuronal obteve na itera o 15 um erro nulo como pretendido 29 m Erro m dio saida 1 phi 1 saidd 2 phi 2J J 2 Erro M dio 0 00 nn DM LLLLLLLLLLLLLLLLLLLLI 0 5 10 15 20 25 30 35 poca ltera o k Figura 16 Erro m dio gerado em cada iterac o da rede neuronal implementada no AspiraBot 5 Os pesos resultantes do algoritmo de treino s o os apresentados na matriz Wij Figura 17 sendo cada coluna um neur nio e a primeira linha o valor do peso da polariza o e as outras linhas s o os valores dos pesos de cada uma das entradas desse neur nio Y CO gt Ph mo Onm h 2000 Figura 17 Matriz dos pesos sin pticos utilizada no Aspi
32. OLL learn iteracao line if line gt NUM_SAMPLES 1 line 0 printf Fim da iteracao d do treino na linha Sd n n n n 1 teracao line system PAUSE n printf r nPesos das entradas da camada escondida r n for line 0 line lt NUM INPUTS HL NUM NEURONS HL line pranto venosa nea 136 printf ArinPesos das entradas da camada de SI RO 5 for line 0 line lt NUM INPUTS OL NUM NEURONS OL line prints velo mes ol Ene printf XrinPolaridade dos neuronios da camada escondida r n for line 0 line lt NUM_ NEURONS HL line prinsesas BE Ain eye printf ArinPolaridade dos neuronios da camada de Sauls Wea y for line 0 line lt NUM_ NEURONS OL line calama o acl loas Ol Lims 6 eine OAT e rile O peo Saliendo tat Get a ae rie Numi perror Ocorreu o seguinte erro Print WO valor CS te errno Sola errno printi Ficheiro Carregador in for line 0 line lt NUM INPUTS HL NUM NEURONS HL line fprintf file Sf weights HL line cocer ale Mea q for line 0 line lt NUM INPUTS OL NUM NEURONS OL line prin sie Mega eos Ol lia ote ella Ma E for line 0 line lt NUM NEURONS HL lin talas arado eae Y gl
33. ROVER Aspirabot O AspiraBot um AGV que se desvia de obst culos que se encontrem na direg o em que se desloca Para detetar o ambiente o AspiraBot constitu do por um sonar e dois detetores sensores de fim de curso colocados na parte frontal do rob como apresentado na Figura 12 ASPIRABOT Figura 12 Esquema da disposic o dos sensores no AspiraBot Para o controlo do rob foi implementada uma rede neuronal com duas sa das e quatro entradas incluindo a polariza o Esta rede neuronal efetua a decis o da a o que o rob 26 deve tomar dependendo dos valores lidos pelos sensores A interpretag o dos valores de sa da da rede neuronal mostrada na Tabela 5 Tabela 5 Relac o de sa da da rede neuronal e sua interpretac o Sa da da rede neuronal Interpretac o 11 Obst culo a frente 10 Obst culo esquerda 01 Obst culo direita 00 Sem obst culos Como apresentado na Tabela 5 se o valor nas sa das da rede neuronal for 11 significa que tem um obst culo frente logo a decis o a tomar deve ser desviar se Todas as combina es poss veis entre as entradas e as sa das da rede neuronal s o apresentadas na Tabela 6 Tabela 6 Tabela de todas as entradas e sa das poss veis da rede neuronal do AspiraBot Fim de Curso Fim de Curso Neur nio de Neur nio de Rs Esquerda Direita Sa da 1 Sa da 2 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1
34. a fung o sigmoide log stica visto esta ser deriv vel e de declive control vel Assim na sa da de um elemento processador tem se a func o log stica em que a sua derivada a equac o 11 dy _ ax Y 1 y mm Sendo o erro quadratico dado pela express o 12 Of y 12 Define se a func o energ tica de Lyapunov apresentada na equac o 13 a qual se pretende minimizar a cada itera o efetuada do treino at atingir um valor aceit vel 1 d 2 13 E 5 Oj Yj A determina o do erro faz se pelo c lculo dos erros parciais em cada elemento do conjunto de treino efetuando a soma das altera es parciais obtidas para cada entrada com fim altera o final de cada peso Interessa saber a varia o do erro em fun o de um peso de uma entrada espec fica O erro do elemento j varia em fun o da sa da do elemento que depende do valor do peso de cada entrada podendo assim ser apresentado pela express o E y j w jl Assim a derivada or pode ser expandida resultando na express o 14 e 14 dEj E E ae A expans o de aw Permitir o c lculo da varia o dos pesos das conex es representadas ij pelo s mbolo 4w Como y f x ou seja a sa da igual ao valor da fun o de ativa o para o estado de excita o x e como o estado de excita o dado pelo somat rio do produto das entradas sa das da camada anterior do elemento processador pelos respetivos pesos x Y Wi
35. da divis o do ngulo de rota o do veio externo do motor pelo valor contado entre impulsos multiplicado pelo per odo de contagem tal como apresentado na equa o 23 27x l 3 94 37 w i N contador impulsos azar X 1076 1 25 23 0 0222 on x 0 0000008 4 5 contador impulsos A cada sinal gerado pelo encoder gerada uma interrup o que efetua a leitura do valor contado e reinicia o contador sendo posteriormente calculado o valor da velocidade Um fluxograma explicativo apresentado na Figura 30 A equa o de controlo que foi implementada no microcontrolador apresentada na equa o 24 em que K 0 0472 a 0 2869 e K a 0 01235 c k Ke k Kae k 1 c k 1 24 Sendo x k c k Kae k a equa o resultante simplificada apresentada na equa o 25 c k Ke k x k 1 25 41 gt Figura 30 Fluxograma do processo para calculo da velocidade Os sinais de controlo s o fornecidos atrav s de dois m dulos Pulse Width Modulation PWM para cada um dos motores que s o limitados ao intervalo 0 1 com uma resolu o de 10 bits cada ou seja consegue se um controlo com uma variag o m nima de 0 978 mV O controlo dos motores efetuado por interm dio de uma interrupg o que ocorre em intervalos de 10 ms e que implementa a equag o 24 3 7 CONTROLO CENTRAL Por fim um dos microcontroladores tem o prop sito de calcular a velocidade linear
36. da simulac o da RNA simulada no MATLAB quando a entrada s o os valores de entrada utilizados no treino velocidade angular do motor da direita 108 Velocidade angular motor da esquerda C Difuso 6r E E F E RNA SS Velocidade angular rad s o 6 l E z r E E 0 100 200 300 400 500 600 Tempo s Figura 86 Resultados da simulac o da RNA simulada no MATLAB quando a entrada s o os valores de entrada utilizados no treino velocidade angular do motor da esquerda O valor do desempenho desta rede neuronal treinada de MSE 2 7345 o que significa que os valores de sa da da rede neuronal s o por regra diferentes dos valores dos targets utilizados no treino Isto vis vel na Figura 87 onde s o apresentados os primeiros 200 valores obtidos da simula o da rede neuronal tra o magenta e os respetivos primeiros 200 valores
37. de ativa o bin ria Sendo a sa da desejada yf o erro da sa da dado por d 2 Para 6 0 o sistema apresenta erro Para contrariar o erro os pesos das entradas t m que ser alterados Os pesos s o alterados de forma proporcional ao erro dados pela express o Awi ou 3 A variag o do peso da conex o igual ao erro obtido multiplicado pela entrada e por um fator de aprendizagem 7 que varia normalmente entre zero e um Assim o algoritmo de aprendizagem do perceptr o segue os seguintes passos 1 Aplicam se as entradas ao elemento processador 2 Calcula se o erro 6 3 Reajustam se os pesos segundo a equa o 3 16 Deste modo ap s algumas itera es consegue se convergir para o resultado desejado anulando o erro Isto se o problema for linearmente separ vel Caso contr rio o algoritmo do perceptr o n o consegue convergir mantendo se sempre na primeira resposta sem melhoramentos No intuito de encontrar uma solu o mais robusta de treino do perceptr o Widrow e Hoff apresentaram em 1960 uma nova regra denominada de regra de Widrow e Hoff 1 Esta regra permite afastar a separa o linear da classe de resposta bin ria Este aperfei oamento deve se ao uso da fun o linear f x x como fun o de activa o que torna o sinal do erro na diferen a entre o resultado desejado e a soma ponderada das entradas com linearidade visto a fun o de ativa o ser linear O erro calculado atrav
38. de entrada do treino no programa em C 4 5 CRIA O E TREINO DE UMA RNA QUE IMPLEMENTA O SEGUIMENTO DE UMA PAREDE COM DESCONTINUIDADES E O DESVIO DE OBST CULOS Como referido anteriormente o desenvolvimento de uma rede neuronal atrav s dos dados amostrados a partir do controlador difuso foi efetuado por passos que se diferenciavam pelo aumento gradual da complexidade comportamental exigida ao funcionamento do rob Assim nesta terceira fase foi escolhido um trajeto bastante mais complexo que o anterior obrigando o AGV controlado pelo controlador de l gica difusa a desviar se de um obst culo no seu percurso e seguir paredes descont nuas O percurso a ser efetuado pelo AGV caraterizado por ter sec es onde este ter de inverter a marcha para conseguir seguir o percurso desejado As sec es onde isto se verifica a zona posterior ao caixote do lixo e a zona posterior ao arm rio Na Figura 60 apresentado uma fotografia que apresentao AGV na posi o inicial antes de percorrer o percurso de treino 79 Figura 60 Posic o inicial do AGV ao efetuar o percurso de treino Na Figura 61 s o apresentadas fotografias que ilustram as duas primeiras sec es do percurso efetuado pelo AGV controlado atrav s de l gica difusa para se retirar os dados utilizados no treino da rede neuronal Como se pode verificar pelas imagens o AGV tem de se desviar do caixote do lixo e posteriormente como se tenta aproximar novamente
39. do AGV respetivamente Velocidade angular do motor da direita Remoto qe j f f f RNA 6 MOSER a ER Me A o i dk E dei P do h ra nmg dl re gt i mi mm il 5 NR O N L L A E E l NI 5 2 2 WIL E IL A eee q 2 o o o gt Erp a A A fui O i RE PA 1 A na l l 1 0 100 200 300 400 500 600 Tempo s Figura 85 Resultados
40. do percurso aleat rio entradas S1 e S3 Evolu o de S2 ao longo do tempo 100 TIO TT TI TI Im TITT TT 1 RR E N 9 yA N a AM E A pi VA dk A MA AS i VW 0 ES t t r r r t t t t E 0 10 20 30 40 50 60 70 80 90 100 Tempo s Evoluc o de S4 ao longo do tempo C Remoto 100 p T f i i TT T Cao E 2 507 l f t i A N o i h E dE e y A A J ii PY gl y Aa TT SA A RARA ZY pr i Si 0 BZ r r r r r r r r r E 0 10 20 30 40 50 60 70 80 90 100 Tempo s Figura 96 Resultados experimentais do AGV a percorrer a segunda secc o do percurso aleat rio entradas S2 e 4 116 Apesar de alguns aspetos referidos na an lise dos resultados apresentados anteriormente conclui se que se obteve um funcionamento satisfat rio do AGV controlado pela rede neuronal no percurso aleat rio 5 4 DISCUSSAO E CONCLUSOES DOS RESULTADOS OBTIDOS Nesta se o s o referidas algumas das conclus es que se podem retirar das implementa es efetuadas Analisando os resultados dos testes experimentais relatados pode se concluir que a implementa o da rede neuronal a partir do controlo por l gica difusa que anteriormente estava implementado no AGV foi um sucesso Atrav s do MATLAB foram criadas e treinadas redes neuronais artificiais que posteriormente se implementaram no AGV disponibiliz
41. escondida oct Cale 106 oidabies iea icio neuronio 2 da camada escondida benefit calc HL outputs HL 5 amp weights OL 5 NUM NEURONS OL icio neuronio 2 da camada escondida benefit calc HL outputs HL 6 amp weights OL 6 NUM NEURONS OL icio neuronio 2 da camada escondida penetra Mica ouEpuU ES shil amp weights OL 7 NUM_NEURONS_OL bene bene O NU lear dea o e e da oid ely benefit HL 8 amp weights OL 8 N EON dica pene d oie yee benefit HL 9 amp weights OL 9 N Fit O pri orm Deter ine uS weight adj amp weights HL 0 NUM TEBNEO TESEI inputs An mimo rario alona 5 INU 1 INPUTS HL weight adj amp weights HI 4 amou si ains NOM lear 2 NUM_ lear INPUTS HL 3 NUM_ lear INPUTS HL 4 NUM_ lear INPUTS HL 5 NUM lear INPUTS HL 6 NUM lear INPUTS HL 7 NUM_ ning ratio alpha lear INPUTS HL 8 NUM_ ning rarior alpha lear INPUTS HL 9 NUM lear INPUTS HL O NUM_ weight adj amp weights OL 0 NUM INPUTS OL outputs HL NUM NEU Sl ning ratio alpha weight adj amp weights HL 2 NUM_ inputs line NUM nora rio alpha weight adj amp weights HL 3 NUM_ NUM inputs line ning ratio alpha weight adj amp weights HL 4 NUM NUM inputs line ning rat
42. implementa o e o treino de uma rede neuronal num AGV Tanto o AGV como o controlador difuso foram criados na tese Controlo Difuso de um AGV efetuada em 2010 por D rio Os rio nesta mesma institui o 1 1 2 OBJETIVOS O objetivo principal deste projeto o controlo de um AGV atrav s de redes neuronais artificiais Dada a complexidade inerente a este objetivo sentiu se a necessidade de o subdividir em m ltiplas tarefas de realiza o mais simples tais como e Estudo te rico das redes neuronais artificiais e Cria o de uma rotina para efetuar a amostragem do controlo difuso e Implementa o de uma rede neuronal artificial no MATLAB e Implementa o de uma rede neuronal artificial no programa de linguagem de programa o C e Implementa o de uma rede neuronal artificial no AGV e Estudo e implementa o de uma interface de controlo e monotoriza o do AGV e Avalia o e an lise dos resultados obtidos 1 3 CALENDARIZACAO Para a execu o deste trabalho foi necess rio efetuar v rias tarefas tais como estudo dos conceitos associados s redes neuronais artificias estudo do sistema utilizado para efetuar os testes experimentais das redes neuronais implementadas entre outras que derivam do desenvolvimento do projeto A sua prossecu o conduziu calendariza o apresentada na Tabela 1 Tabela 1 Calendariza o do projeto a SORE ecg eee Desenvolvimento da aplicac3o de monitori
43. in multiple platforms During the development of the second approach was developed an Android application that allows to monitor and remotely control the AGV The results obtained by the implementation of the neural network from the previously implemented fuzzy control and by the remote control were satisfactory since the AGV performed the paths properly Finally it may be concluded that it is feasible the application of neural networks to control an AGV Moreover it is possible to use the developed system to implement and test new ANNs Keywords Artificial Neural Network AGV MATLAB Android ndice AGRADECIMENTOS hoss s scscdiescicskss cucsdesssovescoscsedseesvovasescesesessoasshuesedess veaxesseodcsssgessevoesesdonsdseasbovsscnecsesseess cess I RESUMO APA o ON HI ABSERACT AAA AN V INDICE a carai UI OD io VII INDICE DE BIGURAS iia IX INDICE DE TABELAS pnaaninis ad adia a XII ACRONIMOS diia XV INTRODU O A AA A AS ii as 1 1 1 CONTEXTUALIZA O lada 2 1 2 OBJETIVOS acia 2 1 3 CALENDARIZA O EAA E nia 2 1 4 ORGANIZA O DO RELAT RIO ccscesssesscesscesecesscssecssccssecseccssesesesssesssesscessceaeceaecsaecsaecsaeeseeeseeeaeesees 3 2 REDES NEURONAIS ARTIFICIAIS sissccccsssccsoscsssecesasvsnssesendssoessssenssoacesesssvensessessessssenessoacsvensesnaxensesss 5 Dol COMPONENTES A A apa aT Be rat nas 6 ed FUN ES DE ATIVA O an ee doi nro Cos nUe nas desde dean n dd A E aba atas ad ea Tas 8 2 3 TOPOLOGIA
44. neur nio tem um peso associado que determina sua intensidade O esquema do neur nio artificial pode ser visualizado na Figura 2 onde u s o as entradas na rede neuronal w s o os pesos das conex es b a polariza o x o valor de ativa o e y a sa da real U U Us U I Figura 2 Neur nio artificial Uma representac o gen rica de um neur nio humano mostrada na Figura 3 de forma a estabelecer o paralelo entre os dois sistemas Os dendritos s o zonas recetivas O corpo celular onde se inicia a codifica o da sa da os ax nios constituem a linha de transmiss o e as termina es do ax nio transmitem o aprendido para outro neur nio Dendritos Axonio Corpo celular Nica Termina es do ax nio Figura 3 Neur nio humano Cada neur nio artificial n possui um estado interno chamado valor de ativa o que modificado sempre que uma nova entrada recebida Essas entradas s o combinadas e um novo valor de ativa o calculado que ser o valor de entrada de uma fun o O valor de ativa o tamb m depende do valor da polariza o do neur nio Esta tem como fun o deslocar a fung o de ativag o para a direita ou para a esquerda o que permite que o treino de um neur nio convirja e tenha sucesso em menos itera es A sa da do neur nio por sua vez calculada aplicando o valor de ativa o a uma fun o de sa da por vezes tamb m referida como fun o d
45. r t r a t t t t 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 93 Resultados experimentais do AGV a percorrer a primeira sec o do percurso aleat rio entradas S1 e S3 Como se pode verificar pela an lise dos gr ficos da Figura 93 o AGV nunca se aproximou demasiado de um obst culo mantendo uma dist ncia m nima de pelo menos 20 cm 114 Evoluc o de S2 ao longo do tempo 100 A E Pl y J AN f lo S sol HH ox A D L Pe J he V J E a 4 J i NM y o ee e 05 r r r E E r r r F E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Evoluc o de S4 ao longo do tempo C Remoto 60 gt a E rN o e 40 E ENS E F f RAT i NS pon oO No ENT 20 F lt J 05 r J E r j r r r r 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 94 Resultados experimentais do AGV a percorrer a primeira secc o do percurso aleat rio entradas 2 e S4 Analisando os gr ficos da Figura 94 verifica se que no in cio e no fim desta secg o amostrada o AGV mantinha uma dist ncia de 20 cm parede que seguia Na zona interm dia em que este se desviava de obst culos no seu percurso a dist ncia mantida parede diminu a no m ximo para 10 cm Os resultados obtidos pelo AGV a percorrer a segunda sec o s o apresentados na Figura 95 atrav s das vari veis de entrada S1 e 3 e na Figura 96 atrav s das vari veis de entrada 2 e S4 Os resultados da segunda sec o s
46. rede Este fen meno acontece quando no treino se atingem pesos elevados que colocam os elementos processadores a operar em zonas da fun o de ativa o de derivada muito baixa Este efeito evitado reduzindo o fator de aprendizagem 7 aumentando deste modo o tempo de treino da rede 23 Atualmente existem diversas variantes deste algoritmo que usam v rios m todos de melhoria com o objetivo da otimiza o dos tempos de aprendizagem e do n mero de camadas escondidas das diferentes topologias multicamada 2 5 AREAS DE APLICA O DAS REDES NEURONAIS 4 As redes neuronais apresentam varias aplicac es em diferentes reas entre as quais se encontram as aplica es na rea aeroespacial autom vel eletr nica fabrico telecomunica es e rob tica Na rea aeroespacial as redes neuronais s o implementadas em pilotos autom ticos para avi es de alto desempenho simula o de trajeto de voos sistemas de controlo do avi o melhoramentos no piloto autom tico simula o de componentes de avi es e detetores de falhas em componentes dos avi es J na rea autom vel e dos transportes os sistemas de navega o autom tica autom vel e analisadores de garantia de atividade podem conter redes neuronais Estas tamb m s o aplicadas em sistemas de diagn stico de trav es dos cami es de calendariza o de ve culos e de sistemas de tra ado de rotas Na rea banc ria e financeira as redes neuronais existem
47. s da seguinte express o 4 i oye a Wi jt 4 j 1 Mantendo se a varia o do peso Aw n u Com esta regra consegue se obter uma solu o aproximada para problemas n o linearmente separ veis Al m disso torna mais robusta a solu o de separa o linear que exista tendendo para um m nimo local de erro dado pela soma dos erros quadr ticos do conjunto de amostras de treino como apresentado pela express o 5 q EE yA 52 5 k 1 no caso de q itera es Desta forma o algoritmo de Widrow e Hoff realiza uma descida de gradiente quadr tica aproximando rapidamente o processo do erro m nimo l Um problema linearmente separ vel tem solu es que podem ser separadas por uma reta quando apresentadas num hiperplano 17 2 4 2 TREINO EM REDES MONOCAMADA 2 Numa rede monocamada as entradas excitam os v rios neur nios e o n mero de sa das igual ao n mero de elementos processadores Figura 9 Figura 9 Arquitetura de uma rede neuronal monocamada onde poss vel aplicar o algoritmo de treino regra delta Assim sendo u u u U o vetor de entradas Wrj OS pesos de cada entrada onde j o n mero do elemento processador da entrada r a que o peso est associado Assim numa rede de j elementos com r entradas tem se a matriz de pesos W11 W12 nua Wij Ww Ww Ww 2 W A ae 5 6 Wma Wr2 ams Wrj e o vetor de sa da y yi y2 ele P
48. semelhantes podendo assim concluir se que a rede neuronal implementada comporta se de forma semelhante ao controlador difuso 94 S1 cm Evolu o de S1 ao longo do tempo 40 r E r E T E r E r 35 30 ii 25 F 20b f l r r i r r r r 0 10 15 20 25 30 35 40 45 50 Tempo s Evolu o de S3 ao longo do tempo E E E E E ny i C Difuso RNA AGV 10 i E 0 10 15 20 25 30 35 40 45 50 Figura 72 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma EO cm parede com descontinuidades sensores de detec o de obst culos Evoluc o de EO ao longo do tempo ADS MA A A j l E C Difuso T RNA AGV 40 r r r r r r t r E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Evoluc o de ED ao longo do tempo 30 E E T E E E E T E T E A e 4 j AN VA 10F A lisa AA OF A 10 F E E r 0 25 30 35 40 45 50 Tempo s Figura 73 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades erros calculados 95 5 1 3 IMPLEMENTACAO DE UMA RNA QUE IMPLEMENTA O SEGUIMENTO DE UMA PAREDE COM DESCONTINUIDADES E O DESVIO DE OBSTACULOS A RNA que efetua este comportamento apresenta os pesos e as polariza es apresentadas no extrato de c digo seguinte retirado do programa implementado no AGV Esta rede como foi re
49. tipo de rede est ilustrado na Figura 5 11 Figura 5 Rede neuronal do tipo multicamada Al m da classifica o das redes neuronais atrav s do n mero de camadas existe outra classifica o atrav s da configura o das conex es entre elementos processadores nas camadas ou entre camadas sucessivas e Intraconex o corresponde a uma conex o entre dois elementos processadores da mesma camada e Interconex o refere se a uma conex o entre dois elementos de processamento de camadas sucessivas Geralmente as redes neuronais de m ltiplas camadas s o interconectadas Pode se tamb m classificar uma rede neuronal em rela o aos sentidos de orienta o das interconex es e Rede neuronal proactiva feedforwad as redes sem realimenta o feedforward t m neur nios agrupados em camadas o sinal percorre a rede numa nica dire o da entrada para a sa da e os neur nios da mesma camada n o s o conectados Os valores das sa das dependem apenas das entradas e dos pesos atribu dos a essas conex es consoante a fun o de ativa o Tratando se de um controlo neuronal em malha aberta resulta sempre uma rede est vel embora com sa da imprevis vel Na Figura 6 poss vel observar uma rede proactiva 12 Figura 6 Rede neuronal do tipo proactiva e Rede neuronal retroativa feedback al m das conex es proactivas a rede neuronal cont m tamb m conex es retroativas isto d
50. um modelo cinem tico simples e um funcionamento satisfat rio 32 3 2 SISTEMA GLOBAL O sistema composto por tr s m dulos distintos respons veis por efetuar o controlo de velocidade dos motores aquisig o de dados provenientes dos sensores e efetuar o controlo por uma RNA do sistema onde est o implementados os v rios comportamentos seguir paredes desviar de obst culo e paragem de emerg ncia apresentado na Figura 19 um esquema representativo da distribui o modular e da interag o entre os v rios m dulos do sistema Analisando o esquema notam se as v rias depend ncias entre os m dulos por exemplo o m dulo de controlo de velocidade do sistema necessita das sa das do m dulo que implementa o controlador neuronal ou seja as velocidades de refer ncia dos motores direito e esquerdo Por sua vez o controlador difuso neuronal necessita na sua entrada dos valores medidos pelos sensores sendo estes obtidos do m dulo de aquisi o de dados dos sensores e enviados para o m dulo do controlador neuronal Entradas Refer ncia Erro dist ncia Refer ncia Erro orienta o Rede Neuronal Artificial Refer ncia Intera o entre m dulos por uma rede CAN Dist ncia Sensores Controlador Pl r M dulo de aquisi o de dados dos sensores Motor Motor Pee Co aa eL J SA AN SR A M dulo de aquisi o de dados M dulo de contr
51. 000007 10 0000 0 07000 o 0000 0 0000 0 0000 000007049027 0 2 TEZ 0 3526 O TO O 1646 III Des ara De 32D 2 2737 0 4747 float bias HL NUM NEURONS HL 119931195 S130 ULSA DSZ AOS 2440 1059114 9 14D OS E float bias OL NUM_NEURONS_OL 0 1043 0 1525 De forma an loga rede neuronal implementada anteriormente cada um dos vetores apresentados anteriormente refere se s carater sticas da rede neuronal artificial obtidas pelo treino pesos das liga es e polaridades dos neur nios Nesta rede neuronal em compara o com a rede neuronal anterior o n mero de entradas passou de 2 para 4 logo o vetor que se refere aos pesos das liga es de entrada weights_HL tem um tamanho superior 40 valores 4 entradas vezes 10 neur nios Com a implementa o desta rede neuronal multicamada proactiva 4 10 2 obtiveram se os resultados apresentados que representam o percurso efetuado pelo AGV a percorrer o trajeto treinado apresentado na sec o 4 4 na Figura 72 atrav s das vari veis de entrada S1 e 3 e na Figura 73 atrav s das vari veis EO e ED Os resultados obtidos pelo teste experimental tra o de cor magenta quando comparados com os dados utilizados no treino tra o de cor azul n o s o iguais Se a rede se comportasse de forma exatamente igual ao controlador difuso os tra os apresentados sobrepor se 1am o que n o acontece Mas as varia es apresentadas pelos tra os s o
52. 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 Como apresentado na Tabela 6 se os valores lidos dos sensores sonar e fins de curso for 111 ou seja todos os sensores detetaram o obst culo a sa da da rede neuronal dever ser 11 obst culo a frente Por outro lado se os valores de entrada da rede neuronal forem 010 a sa da da rede neuronal deve ser 10 obst culo esquerda Devido redund ncia das entradas em que o sonar tem valor 1 e os fins de curso tamb m s o ativados estas entradas n o s o consideradas na vers o final da rede Assim seguindo o racioc nio anterior as rela es entradas sa das utilizadas no treino s o as apresentadas na Tabela 7 27 Tabela 7 Tabela das entradas e sa das da rede neuronal implementada no AspiraBot Fim de Curso Fim de Curso Neur nio de Neur nio de cas Esquerda Direita Saida 1 Saida 2 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 Deste modo a rede neuronal dever responder exatamente como previsto as entradas apresentadas na Tabela 7 com os valores das saidas correspondentes z O diagrama da rede neuronal implementada apresentado na Figura 13 onde se pode verificar que existem 3 entradas al m da polariza o b que s o o sonar S o fim de curso esquerdo L e o fim de curso direito R A rede neuronal uma rede monocamada com 2 neur nios logo duas sa das Figura 13 Representa o da rede neu
53. 1ine lt NUM_ SAMPLES printf r n r nEntradas Sf f Saidas desejadas Sf RIE Wie Vial Wie ial Inputs sas 0 nputs as testes sas 0 targe cs Lime 1 layer neurons inputs line outputs_ HL NUM INPUTS HL NUM NEURO NS_HL weights HL bias HL ACT SIGMOID _OL weights OL bias OL ACT LINEAR printf O valor de saida da rede e f Ant onto OLIO Ou epi sob printf Saidas da camada escondida sf f S layer neurons outputs HL outputs OL NUM INPUTS OL NUM NEURONS ao ao oO f SE SE SE SE SE a e puts Ep o utencs ai oe pues silyl 0utoncs riula oO outputs HL 4 outputs HL 5 outputs HL 6 outputs HL 7 outpu ts HL 8 outputs HL 9 132 printf Erro camada de saida f dal o targets laine O So eps pols 0 y tergets lime 1 ousou MOI AA ae E if inicio 1 mean square error 0 inicio 0 mean square error targets line 0 CUED UESmOMm LOND Pl targes llinell O Output Ss OLIONI S mean square errort targets line 1 eunejowhes Om rargescs lime M sotthejowies OL uy mean square error mean square error NUM NEURONS OL m Prineet SM E calcutrados z Ns meani sgua re Ferron oeaiei rales WGO Asie a eE a o ies iine NO oo ta OLIN targets ine I Otton enol e Fh line system PAUSE printf Fim da simulacao da r
54. 3 Figura 8 Diagrama em blocos do treino supervisionado ccoccncnocnnncnnnnnnonananinonanonononnconanncincnannnn 14 Figura 9 Arquitetura de uma rede neuronal monocamada onde poss vel aplicar o algoritmo de treino regrardelta st A A A R Gi 18 Figura 10 Arquitetura de um sistema neuronal multicamada ococciccncnncnonnnononncononnnconcnncnncnnonananos 20 Figura 11 Rob AGV ROVER Aspirabot seis aa a ga a 26 Figura 12 Esquema da disposi o dos sensores no AspiraBot oconocconcnconocononanononnnoncnncnncnncnnonannno 26 Figura 13 Representa o da rede neuronal implementada no AspiraBot 5 28 Figura 14 Fluxograma da rede neuronal implementada no AspiraBot 5 29 Figura 15 Diagrama do algoritmo para o treino da rede neuronal do AspiraBot 5 29 Figura 16 Erro m dio gerado em cada itera o da rede neuronal implementada no AspiraBot 5 aaa 30 Figura 17 Matriz dos pesos sin pticos utilizada no Aspirabot 5 ocnnicnnnninninninincinnccnncnnnnos 30 Figura LS ATQUIES AO AGV ui ir dat edi 32 Figura 19 Esquema representativo da intera o entre os v rios m dulos do sistema 33 Figuia 20 gt Estruturaido AGV testado iaa i 34 Figura2l Fotografia do AGV utilizado sessao paisana aabt catalans acia 35 Figura 22 Fotografia do m dulo Bluetooth utilizado ereta 35 Figura 23 M dulo de controlo central do AGWVosatana tarado an o caba ia Esa 36 Figura 24
55. 35 40 45 50 Figura 46 Comparac o dos resultados do treino de uma rede neuronal com o algoritmo retropropagac o variando o fator de aprendizagem velocidade linear Velocidade Angular do Sistema 0 5 Er F E E E E E E E E C Difuso 04 RNA Ir 0 01 RNA Ir 0 05 La 0 3 T RNA Ir 0 1 0 2 a Va a ai 3 g T z ab 0 2 i T 63 4 11 0 4 _ E E rts 0 5 E r E r ja E r E r 5 10 15 20 2 30 35 40 45 50 Tempo s Figura 47 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o fator de aprendizagem velocidade angular 66 Como se pode verificar pela an lise dos gr ficos da Figura 46 e Figura 47 as respostas obtidas pela simula o das redes neuronais treinadas n o se assemelham resposta utilizada como treino da rede apresentada a tra o preto Atrav s dos testes efetuados e apresentados anteriormente pode se verificar que com o algoritmo retropropaga o ou algumas das suas outras varia es como o algoritmo de retropropaga o com momento n o se conseguiriam obter os resultados pretendidos Assim optou se por utilizar o algoritmo de Levenberg Marquardt por se terem obtidos os resultados desejados como ser apresentado a seguir Para efetuar o treino da rede apenas necess rio utilizar o comando train que tem como par metros de entrada
56. 5 Interface gr fica da aplica o Android a ecr para verifica o das amostras retiradas do sistema e b ecr com informa o sobre a aplica o Na Figura 35a ainda se podem destacar os seguintes elementos e A verde a rea onde apresentada a identifica o dos dados apresentados nesse momento neste ecr e A amarelo a rea onde s o apresentados os dados amostrados do sistema que s o lidos de ficheiros guardados no cart o de mem ria do telem vel e A laranja o bot o que permite selecionar os dados amostrados do sistema no modo de funcionamento com controlo atrav s de uma rede neuronal artificial e A azul o bot o que permite selecionar os dados amostrados do sistema no modo de funcionamento com controlo remoto O controlo remoto do sistema consiste no envio de um comando um carater num rico entre 1 e 9 via Bluetooth que posteriormente descodificado no microcontrolador e que origina os seguintes pares de comando resultado do sistema apresentados na Tabela 10 49 Tabela 10 Tabela descritiva das ac es para cada tecla no smartphone Tecla Ac o Motor Esquerda rad s Motor Direita rad s RN Diagonal Esquerda Frente 4 0 5 0 AS Frente 5 0 5 0 A Diagonal Direita Frente 5 0 4 0 E Esquerda 0 0 4 0 D Parar 0 0 0 0 Direita 4 0 0 0 P Diagonal Esquerda Tr s 4 0 5 0 y Tr s 5 0 5 0 N Diagonal Direita Tr s 5 0 4 0 3 8 5 IMPLEMENTA O
57. CONTROLO DE UM ROB AUT NOMO ATRAV S DE REDES NEURONAIS Adriano Bessa Pinto m Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrot cnica e de Computadores rea de Especializa o de Automa o e Sistemas Departamento de Engenharia Eletrot cnica Instituto Superior de Engenharia do Porto 2013 Este relat rio satisfaz parcialmente os requisitos que constam da Ficha de Unidade Curricular de Tese Disserta o do 2 ano do Mestrado em Engenharia Eletrot cnica e de Computadores Candidato Adriano Bessa Pinto N 1070186 1070186 isep ipp pt Orienta o cient fica Ramiro de Sousa Barbosa rsb isep ipp pt Coorienta o cient fica Manuel Fernando Santos Silva mss isep ipp pt S e Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrot cnica e de Computadores rea de Especializa o de Automa o e Sistemas Departamento de Engenharia Eletrot cnica Instituto Superior de Engenharia do Porto 6 de novembro de 2013 Ao meu Pai Agradecimentos Gostaria de agradecer ao Eng Ramiro Barbosa e ao Eng Manuel Silva por toda a compreens o disponibilidade e ajuda que demonstraram durante a elabora o deste projeto Adriano Pinto Resumo Neste trabalho pretende se introduzir os conceitos associados s redes neuronais e a sua aplica o no controlo de sistemas neste caso na rea da rob tica aut noma Foi utilizado um AGV de modo a test
58. DA APLICA O Nesta subsec o descrito como implementada a aplica o do Android e as suas fun es chave 10 11 12 z A comunica o implementada recorrendo API de Bluetooth do Android como j referido A aplica o n o atende pedidos de liga o desta forma n o implementada a classe para ser servidor As classes implementadas s o e BluetoothAdapter representa o m dulo de Bluetooth do dispositivo Android no qual a aplica o est a correr e BluetoothDevice representa cada dispositivo remoto com o qual se deseja comunicar 50 BluetoothSocket cria uma socket de Bluetooth atrav s do m todo createRFcommSocketToServiceRecord a socket permite realizar o pedido de ligag o ao dispositivo remoto e realizar a comunicag o Para realizar a conex o e comunicac o foram criadas duas threads designadas de ConnectThread e ConnectedThread Estas t m as fun es de ConnectThread esta thread corre enquanto se est a estabelecer a ligag o com um dispositivo ConnectedThread esta thread corre durante a ligac o e gere todas as transmiss es Para gerir estas threads foram criados os m todos Connect este m todo cancela qualquer thread que esteja a tentar fazer uma liga o ConnectThread e cancela qualquer thread que esteja a gerir uma liga o efetuada ConnectedThread Ap s estes passos inicia a ConnectThread com o dispositivo indica
59. MATLAB velocidade angular 85 Figura 68 Resposta apresentada pela simulag o da rede neuronal para efetuar o comportamento seguir paredes com descontinuidades e desvio de obst culos utilizando os dados de entrada do treino no programa em linguagem C eeseeseeeneecnsecesecseceseceseceeesseeeseeeseeeeaeeeaeeeaaeenaes 86 Figura 69 Fluxograma da implementa o no uC da rede neuronal artificial 90 Figura 70 Resultados experimentais obtidos com a RNA que implementa o comportamento seguir a parede medi es dos sensores rr nono nono cera cono nar neeracenacenanana 92 Figura 71 Resultados experimentais obtidos com a RNA que implementa o comportamento seguir parede erros calc lados ssa ziseseseserente stresse A a E atira 93 Figura 72 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades sensores de dete o de Obst culoS oonoonoccnocococcconcconncnanannss 95 Figura 73 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades erros calculados TES IRTE 95 Figura 74 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades e o desvio de obst culos sensores de deteg o de obst culos 97 Figura 75 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades e o desvio de o
60. OL e 2 neur nios na camada de sa da NUM NEURONS OL float weights HL NUM INPUTS HL NUM NEURONS HL 2 sk lho 25603 302044 A UDS LUTO Os 9556 I 9799 2 5 1162 0 9033 L 4393470 1028 0 5116 LAOS La 7256 45297 06962 2 002 3 0 1052 o HOG O 6 ST SE float weights OL NUM INPUTS OL NUM NEURONS OL 0 0000 0 0000 0 0000 0 0000 0 0000 0 0000 OOO ON FO ONA 0 0794 0 1359705 01 2 BRAS OO A sol 0 0254 2 1915 073741 0 12719 0 MSI AO 1031 6 float bias HL NUM NEURONS HL ALS 18037 AL do OL LS Ovi Do ESG 7 VOS OZ AL LIZ SOS dl A GS 5 A SC CE float bias OL NUM_NEURONS_OL 0 1830 0 1598 O vetor weights HL identifica os valores dos pesos de cada uma das entradas em cada um dos neur nios da camada escondida da rede neuronal Neste caso este vetor constitu do por 20 valores 2 entradas vezes 10 neur nios O vetor weights OL identifica os valores dos pesos de cada uma das entradas em cada um dos neur nios da camada de sa da da rede neuronal Neste caso este vetor constitu do por 20 valores 10 entradas as sa das dos neur nios da camada anterior vezes 2 neur nios O vetor bias HL identifica os valores das polariza es de cada um dos neur nios da camada escondida da rede neuronal e o vetor bias OL identifica os valores das polariza es de cada um dos neur nios da camada de sa da 91 Com a implementa o d
61. ONS HL benefit OL 0 weight adj amp weights OL 1 NUM INPUTS OL amp weights last var OL 1 NUM_INPUTS_OL outputs HL NUM_NEURONS_HL benefit_OL 1 learning ratio alpha bias adj amp bias HL 0 amp bias last var HL 0 benefit HL 0 learn ing ratio alpha bias adj amp bias HL 1 amp bias last var HL 1 benefit HL 1 learn ing ratio alpha bias adj amp bias HL 2 amp bias last var HL 2 benefit HL 2 learn ing ratio alpha bias adj amp bias HL 3 amp bias last var HL 3 benefit HL 3 learn ing ratio alpha bias adj amp bias HL 4 amp bias last var HL 4 benefit HL 4 learn ing ratio alpha bias adj amp bias HL 5 amp bias last var HL 5 benefit HL 5 learn ing ratio alpha bias adj amp bias HL 6 amp bias last var HL 6 benefit HL 6 learn ing ratio alpha bias adj amp bias HL 7 amp bias last var HL 7 benefit HL 7 learn ing ratio alpha bias adj amp bias HL 8 amp bias last var HL 8 benefit HL 8 learn ing ratio alpha bias adj amp bias HL 9 amp bias last var HL 9 benefit HL 9 learn ing ratio alpha S bias adj amp bias OL ing_ratio alpha amp bias last var OL O0 benefit OL 0 learn th bias adj amp bias OL ing ratio alpha lp goas lasi var Ob Sacire
62. S PA tied serie nal eat 10 2 4 ALGORITMOS DE TREINO Blin in tita apa 14 2 5 REAS DE APLICA O DAS REDES NEURONAIS 4 c sccessssceceessececseseececaeeecsesaececseeeecessneeeesenaeees 24 3 PLATAFORMA DO AGV E SUAS FUNCIONALIDADES o vcccccnccononscocconocorncconocococcconocoroccconoconos 31 3 1 ARQUITETURA DO AGV vereeon dial ladilla 31 3 2 SISTEMAGLOBA La ss 33 3 3 MODULOS DO AGY a A ali ia Dedo 35 3 4 EAI A Ey IA A EEEE EAEE T E EO E OET EEE 37 3 5 TEIMTURA DOS SONARES a AS E A La dica 39 3 6 MEDI O DE VELOCIDADE E CONTROLADOR Pl oooooocccococccononnnocononononnnnccnnnnnncnnnnnnnnnnnnncnnnnnnnccnannnnn 41 ZT CONTROLO CENTRAL eseese eee epe en easa alt ic 42 3 8 COMUNICA O BLUETOOTH PARA CONTROLO REMOTO DO AGV coccoooccccononnnononononononncccnannnnccnnnnnnos 43 4 PROJETO E SIMULA O DA RNA siviecscdsccnc scavsnsssceseecdsccvsnsesecestensevensesestsusdsseuencbbesdesasesouasdbscsteetse 57 4 1 ROTINA PARA GUARDAR E ENVIAR OS DADOS PARA UTILIZAR NO TREINO DA RNA 57 4 2 CRIACAO E TREINO DE UMA RNA QUE IMPLEMENTA O COMPORTAMENTO DE SEGUIR A PAREDE 60 4 3 IMPLEMENTA O DE UMA REDE NEURONAL EM LINGUAGEM C ccccsseceessseeceeseeeeceseeeeessseeeennnaeees 69 vii 4 4 CRIACAO E TREINO DE UMA RNA QUE IMPLEMENTA O COMPORTAMENTO DE SEGUIR UMA PAREDE COM DESCONTINUIDADES ab 72 4 5 CRIA O E TREINO DE UMA RNA QUE IMPLEMENTA O SEGUIMENTO DE UMA PAREDE COM DESCONTINUIDADES E O DESVIO DE OBS
63. T CULOS ccccccccssssceesssseceessseccssssececsssseceessscccsssssceessssecessassccnssssesenes 79 5 TESTES E RESULTADOS wecveccsccccsecsssduscssssesctsscsssssscdnessetvecussseusesssuvucsssseuudscesesecdeadaesdestdetvesesscbudesesess 89 5 1 IMPLEMENTA O DA RNA NUM MICROCONTROLADOR PIC c ccessssceceesececseceecesseeeecnesseeseseeeees 89 5 2 PERCURSO ALEAT RIO ds 100 5 3 CRIA O TREINO E IMPLEMENTA O DE UMA REDE NEURONAL A PARTIR DE DADOS RETIRADOS DO CONTROLO REMOTO ta pod GOA Cao AUD tencia 102 5 4 DISCUSS O E CONCLUS ES DOS RESULTADOS OBTIDOS csscssseceseeseeseceeecsaeeecaeeaeesecneeerenaeeees 117 fi CONCLUS ES esanean eaa a loas 119 REFER NCIAS DOCUMENTAIS aii 123 ANEXO A RNA IMPLEMENTADA EM LINGUAGEM C onccnccccoconosinosinnonanonnncnnocncnononnnconoconoconononononoss 125 ANEXO B RNA IMPLEMENTADA NO MICROCONTROLADOR PIC eesseseosossesoosseseosossessossesose 139 ANEXO C APLICA O DE MONITORIZA O E CONTROLO DO AGV oessssessssssssssssssssssessssesese 141 viii ndice de Figuras Fig ra l Redenenronal artiticial ccoo dir order puliio dali 6 Fi ita 2 Ne r m artfcial at on pie 7 Fig ta 3 NEUrOmtO DUMANOS quisiera adia IG aa EE ERE 7 Figura4 Rede neuronal do tipo monocamada ii castes nnnono ano nonncnncnncnnn 11 Figura5 Rede neuronal do tipo Mula Md 12 Figura6 Rede neuronal do tipo proachiva cui road cata PRP PR 13 Figuta 7 Rede de Hopfield de quatro neurona 1
64. a os motores quando este percorre um trajeto controlado atrav s do controlo remoto O objetivo final desta implementa o era que o sistema controlado autonomamente atrav s de uma RNA se comportasse de forma semelhante ao sistema quando controlado remotamente percorrendo Como nas outras implementa es efetuadas a rede neuronal uma rede multicamada proactiva com quatro entradas valores medidos pelos sonares e duas sa das valores das velocidades angulares de refer ncia para cada um dos motores como apresentado na Figura 81 Camada Camada de Escondida Sa da E p m direita x m esquerda Figura 81 Rede neuronal criada para se comportar como o controlo remoto amostrado Assim para obter os dados de treino para esta rede neuronal utilizou se o AGV no modo controlado remotamente efetuando percursos com a mesma complexidade do utilizado na secg o 4 5 Para retirar as amostras do AGV quando controlado remotamente efetuaram se altera es ao programa que implementa a RNA e ao controlo remoto no AGV adicionando se c digo que efetua as amostras das medi es efetuadas pelos sensores e dos valores de refer ncia de velocidades angulares enviadas para o controlador PI Esta rotina igual a rotina apresentada no fluxograma mostrado na Figura 38 Cap tulo 4 exce o que ao inv s da execu o do controlador difuso efetuada a descodifica o do comando recebido via Bluetooth
65. a vari vel de identifica o da rede e as matrizes que cont m as entradas e as sa das para efetuar o treino Ao ser executado o treino apresentada a interface gr fica Figura 48 que permite analisar o progresso do treino durante a sua execu o Neural Network Algorithms Training Levenberg Marquardt trainim Performance Mean Squared Error mse Derivative Default defaultderiv Progress Epoch 0 1000 Time Performance 1 24 o ses E 0 00 Gradient 349 EA 1 00 05 Mu 0 00100 1 00e 10 Validation Checks of o Je Plots plotperform Training State plottrainstate Regression plotregression Plot Interval A Minimum gradient reached Stop Training Cancel Figura 48 Interface gr fica apresentada durante a execu o do treino 67 Como se pode verificar na Figura 48 o treino foi efetuado com sucesso ao fim de 85 itera es O sucesso foi verificado por se ter atingido o gradiente m nimo aceit vel ou seja a varia o dos pesos entre itera es pequena podendo assim concluir se que o treino convergiu para o valor m nimo de erro aceit vel logo foi atingido um desempenho satisfat rio Para verificar se a rede neuronal foi treinada com sucesso utiliza se o comando sim que permite simular a rede neuronal Este comando tem como par metros de entrada a vari vel identificadora da rede neuronal a simular e a matriz que cont m os dados de entrada para simu
66. abela de todas as entradas e sa das poss veis da rede neuronal do AspiraBot 27 Tabela das entradas e sa das da rede neuronal implementada no AspiraBot 28 Especifica es do m dulo HPS 110 e rreerereeereeerreaaree 44 Tabela descritiva dos pinos existentes no m dulo HPS 110 45 Tabela descritiva das a es para cada tecla no smartphone 50 Marcas implementadas nas mensagens recebidas via Bluetooth 55 Compara o do desempenho entre a RNA e o controlador difuso 118 xiii Acr nimos AGV ANN API CAN DEE ECG ED EEG EO IDE ISEP MEEC MSE PCB PI PWM RNA SDK Autonomous Guided Vehicle Aritificial Neural Network Application Programming Interface Controller Area Network Departamento de Engenharia Eletrot cnica Eletrocardiograma Erro de Distancia Eletroencefalograma Erro de Orienta o Integrated Development Environment Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrot cnica e de Computadores Mean Squared Error Printed Circuit Board Proporcional Integral Pulse Width Modulation Rede Neuronal Artificial Software Development Kit XV UUID Universally Unique Identifier xvi 1 INTRODU O No contexto da Unidade Curricular de Tese Disserta o do 2 ano do Mestrado em Engenharia Eletrot cnica e de Computado
67. ado para realizar testes experimentais que em geral foram muito satisfat rios Como fator de compara o do desempenho entre a RNA e o controlador difuso foi selecionado a soma dos erros quadr ticos das vari veis ED e EO atrav s das seguintes equa es x 30 Seo gt EO i 1 N e X ED G1 i 1 em que N o n mero de amostras do percurso efetuado Os resultados obtidos s o apresentados na Tabela 12 para cada um dos comportamentos implementados Pela an lise dos resultados obtidos conclui se que a RNA apresenta valores menores de erro em todos os comportamentos exceto no comportamento de seguir uma parede com descontinuidades no qual o valor de Szo menor no controlador difuso do que na RNA Apesar disso pode se considerar que o desempenho da RNA em geral melhor que o desempenho do controlador difuso nos percursos efetuados 117 Tabela 12 Comparac o do desempenho entre a RNA e o controlador difuso Controlo Comportamento Difuso RNA SEO SED Seo SED Seguir uma parede 0 0139 0 1256 0 0123 0 1021 Seguir uma parede com 0 1057 0 6554 0 1811 0 4650 descontinuidades Seguir uma parede com descontinuidades e desvio 1 9345 3 6527 1 8497 3 5684 de obstaculos Analisando os resultados dos testes experimentais relatados pode se concluir que a implementa o da rede neuronal a partir do controlo remoto teve um desempenho satisfat rio Comparando os resultados obtidos
68. ager OUNEN y return benefit VE A f a ES Func o que ajusta os valores dos pesos de um neur nio s p ae OR KKK KK KI IK I A I I I A A VOC weige ach Ghee at weight lost as Pa toto Loewe amo ple ade Neurons back iclleene benefit loar rario Cloer adone Sie ke float variation for k 0 k lt neurons back k variation 0 yariation ratio f il alma lt bereit salinas 14 elec 1 weight i f ratio penetram pula variation alpha last variation k printf Peso ajustado f variacao do peso f variacao anterior do peso ne Welgnulki variation last variational last variation k variation return E A ras 2 Ra Fun o que ajusta o valor de polariza o de um neur nio X7 Le Bey OR KK KK KK I KK I I eA A AA void bias_adj float bias float last variation float benefit float ratio float alpha float variation 0 adeta eto nao I alpha Denefiti bias 0 bias 0 ratio benefit variation alpha last variation 0 129 printf Polaridade ajustada variacao anterior da polaridade oO ao La de qa bias 0 variation last variation 0 last variation 0 variation return ig variacao da polarizacao S EE A es E ye Func o Principal Hes oo OR KKK KK KK A I A A I A int main slime vease Clagie arov double pi 3 14159265358979323846 int iteracao 0
69. ar experimentalmente um controlo atrav s de uma rede neuronal artificial 2 A grande vantagem das redes neuronais artificiais estas poderem ser ensinadas a funcionarem como se pretende A partir desta carater stica foram efetuadas duas abordagens na implementa o do AGV disponibilizado A primeira abordagem ensinava a rede neuronal a funcionar como o controlo por l gica difusa que foi implementado no AGV aquando do seu desenvolvimento A segunda abordagem foi ensinar a rede neuronal artificial a funcionar a partir de dados retirados de um controlo remoto simples implementado no AGV Ambas as abordagens foram inicialmente implementadas e simuladas no MATLAB antes de se efetuar a sua implementa o no AGV O MATLAB utilizado para efetuar o treino das redes neuronais multicamada proactivas atrav s do algoritmo de treino por retropropaga o de Levenberg Marquardt A implementa o de uma rede neuronal artificial na primeira abordagem foi implementada em tr s fases MATLAB posteriormente linguagem de programa o C no computador e por fim microcontrolador PIC no AGV permitindo assim diferenciar o desenvolvimento destas t cnicas em v rias plataformas Durante o desenvolvimento da segunda abordagem foi desenvolvido uma aplica o Android que permite monitorizar e controlar o AGV remotamente Os resultados obtidos pela implementa o da rede neuronal a partir do controlo difuso e do controlo remoto foram satisfat ri
70. ara esta organiza o estrutural dos elementos processadores o algoritmo de treino Widrow e Hoff insuficiente Pelo que no treino de uma monocamada usa se a regra delta que n o mais do que uma generaliza o da regra de Widrow e Hoff Esta regra um algoritmo de treino supervisionado aplic vel a redes neuronais proactivas monocamada com uma fun o de ativa o linear f x x 18 O erro de um dado elemento da camada j para a sa da desejada yp calculado da seguinte forma amp y 7 Sendo a varia o do peso de cada entrada para um elemento processador espec fico com o fator de aprendizagem de 7 dada pela seguinte f rmula Awij n jui 8 A variag o do peso calculado assim adicionada ao peso existente atrav s da seguinte express o para cada itera o k Os pesos das entradas s o ajustados sucessivamente para cada elemento processador de modo a que a sa da convirja para a resposta correta A din mica deste algoritmo segue os passos seguintes 1 Inicializar a rede com pesos aleat rios de valor reduzido 2 Aplicar o vetor de entrada u ao conjunto de treino 3 Calcular as sa das dos elementos processadores para a entrada aplicada 4 Determinar o erro 6 de cada sa da 5 Ajustar o peso das conex es segundo 9 6 Repetir os passos para todos os vetores de entrada at se obter um erro aceit vel Atrav s deste algoritmo o treino das redes neuronais monocamada facilmente realiza
71. as Ja lili for line 0 line lt NUM NEURONS OL lin tala aras eae Y botas Olite core lle Wein fclose file printf Pesos guardados no ficheiro carregado r n line 0 if iteracao gt MAX NUM ITERATIONS printf Fim do treino sem sucesso o erro nao cgonvergiu nyy else printf Fim do treino com sucesso em d iteracoes MESS erui 015 137 Anexo B RNA implementada no microcontrolador PIC O c digo elaborado para implementar a RNA no microcontrolador PIC est no CD anexado ao relat rio da tese 139 Anexo C Aplica o de monitoriza o e controlo do AGV O c digo elaborado para implementar a aplica o de monitoriza o e controlo do AGV est no CD anexado ao relat rio da tese 141
72. blemas em que n o se disp e de uma formula o anal tica nem conhecimento expl cito acess vel No limite pode considerar se uma RNA como uma caixa de processamento de entradas e sa das que pode ser treinada com base num conjunto limitado de exemplos conforme apresentado na Figura 1 Camada de Camada Camada de entrada escondida sa da Sinal de sa da Resposta Sinal de entrada Est mulo Conex o A xXx Neur nio Figura 1 Rede neuronal artificial 2 1 COMPONENTES Em geral pode se considerar que uma rede neuronal constitu da por unidades de processamento ou n s neur nios e liga es entre esses n s definindo a topologia ou arquitetura da rede Outro aspeto determinante o processo ou algoritmo que define a forma de ajuste dos par metros da rede de forma a fornecer uma solu o para um dado problema Em geral pode dizer se que existem v rias alternativas em rela o configura o de uma rede neuronal com base nestes elementos desde a escolha das fun es que s o implementadas em cada n do efeito de cada uma das liga es entre os n s topologia e n mero de elementos utilizados Ainda em rela o aos algoritmos de treino ou ajuste dos par metros da rede tamb m existem atualmente v rias alternativas Um neur nio artificial ou n a unidade fundamental de processamento de uma RNA o qual recebe uma ou mais entradas transformando as em sa das Cada entrada de um
73. bst culos erros calculados 98 Figura 76 Resultados experimentais obtidos com a RNA e com o controlador difuso implementados no AGV a efetuar o trajeto de treino sensores de dete o de obstaculos 99 xi Figura 77 Resultados experimentais obtidos com a RNA e com o controlador difuso implementados no AGV a efetuar o trajeto de treino erros calculados 99 Figura 78 Trajeto percorrido pelo AGV neste teste a sec o inicial do percurso b sec o interm dia do percurso e c sec o final do percurso re 100 Figura 79 Resultados experimentais obtidos com a RNA implementada no AGV a efetuar o trajeto aleat rio sensores de dete o de obst culos e 101 Figura 80 Resultados experimentais obtidos com a RNA implementada no AGV a efetuar o trajeto aleat rio erros calculados 00 0 eee eeeeseeesseessecesecseceseceseeeseeeseeeseeeeeeseeeeeaeeeneeeaaecsaeenaees 102 Figura 81 Rede neuronal criada para se comportar como o controlo remoto amostrado 103 Figura 82 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 trajetos diferentes Sl e S3 ool eeeeeeeeceeeseeeeeeseecseecssecssecaecsseesseeeseeeeeeseneeeaes 105 Figura 83 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 trajetos diferentes S2 e S4 eee err ereeeneeeneeerare
74. ca A segunda camada a camada de sa da constitu da por 2 neur nios logo duas vari veis de sa da com uma fun o de ativa o linear Na Figura 43 apresentado o diagrama desta rede neuronal Camada Camada de Escondida Sa da Figura 43 Diagrama da rede neuronal implementada que realiza o comportamento seguir paredes 63 Ap s se ter efetuado a cria o da rede neuronal necess rio efetuar a defini o inicial dos pesos de cada uma das liga es existentes na rede neuronal Para isso utilizado o comando init que tem como par metro de entrada a vari vel que identifica a rede neuronal anteriormente criada 13 Nesta vari vel existem campos que identificam os algoritmos que este comando utilizar para inicializar os pesos e as polariza es Por predefini o estes campos configuram a rede neuronal para ser inicializada atrav s do algoritmo Nguyen Widrow 14 Este algoritmo escolhe valores a fim de distribuir a regi o ativa de cada neur nio na camada de uma forma aproximadamente uniforme ao longo do espa o de entrada da camada Os valores resultantes cont m um grau de aleatoriedade pelo que eles n o s o os mesmos cada vez que este comando efetuado Com os passos anteriores realizados pode se ent o efetuar o treino da rede neuronal que sendo efetuado com sucesso permitir obter uma rede neuronal que se comportar da forma pretendida Por predefini o o algoritmo de retropropaga
75. d os objetos de entrada e sa da de dados atrav s da socket como representado no seguinte excerto de c digo InputStream tmpIn null OutputStream tmpOut null Get the BluetoothSocket input and output streams try tmpIn socket getInputStream tmpOut socket getOutputStream catch IOException e Log e TAG temp sockets not created e mminstream tmpin 53 mm0utStream tmpOut A ConnectedThread recebe e envia os fluxos de dados em forma de bytes O m todo de leitura recebe um byte de cada vez que armazenado num buffer No seguinte excerto de c digo est apresentado o c digo da fun o de leitura que utiliza este procedimento A fun o de leitura termina de adicionar os dados no buffer quando recebido o carater VW sendo posteriormente estes dados enviados para a activity de interface com o utilizador int inputdata bytes 0 0 while inputdata mmInStream read gt 1 char inputchar char inputdata buffer bytes 0 byte inputchar if inputchar r return O envio de dados efetuado atrav s do m todo de escrita de dados existentes num buffer no stream de sa da de dados do socket do Bluetooth como representado no seguinte excerto de c digo mmOutStream write buffer Quando a aplica o recebe dados a ConnectedThread envia os para o mHandler da interface gr fica mostrado n
76. da parede que seguia ao detetar a parede frontal o rob recua e desloca se para seguir essa mesma parede frontal a b Figura 61 Primeira sec o do percurso a e segunda sec o do percurso b Na Figura 62 apresentado o resto do percurso mais duas sec es Na terceira sec o do percurso ap s o AGV seguir o arm rio acontece uma situa o semelhante ao referido na primeira sec o devido a um espa amento entre o arm rio e a parede que se encontra a seguir Isto vis vel na fotografia que apresenta a quarta sec o do percurso na Figura 62b 80 a b Figura 62 Terceira sec o do percurso a e quarta sec o do percurso b Os dados amostrados das medi es dos sonares frontais Sl e 3 do AGV que s o entradas do controlador difuso e que foram recolhidos do percurso e recebidos via Bluetooth s o apresentados na Figura 63 Na Figura 64 s o apresentados os valores das entradas erro de orienta o e erro de dist ncia que tamb m foram recolhidas da mesma forma e ao mesmo tempo que as anteriores Os valores de sa da do controlador difuso s entradas anteriormente apresentadas e recolhidos de uma forma id ntica aos valores de entrada s o mostrados na Figura 65 Evolu o de S1 ao longo do tempo T ii TT WT Wy Pol a y ji 5 Va Ay al My 205 ri
77. dependendo deste apresentac o dos dados ou escrita dos dados num ficheiro ou outra ac o biie Na Tabela 11 apresentam se as marcas adicionadas nas mensagens transmitidas via Bluetooth que permitem aplica o decidir o que deve efetuar com os dados recebidos Tabela 11 Marcas implementadas nas mensagens recebidas via Bluetooth Mensagem Marcas Apresenta o dos valores dos es sensores Identifica o do conjunto de dados po recebidos Tempo de ciclo do sistema T Amostragem em curso edi O sistema fez reset H No caso de uma mensagem recebida n o conter nenhuma destas marcas a aplica o guarda em mem ria os dados recebidos num ficheiro que se encontra na mem ria externa do telem vel e que posteriormente pode ser acedido e os seus dados analisados atrav s do MATLAB 55 4 PROJETO E SIMULA O DA RNA Neste cap tulo s o abordados todos os passos relevantes efetuados durante o projeto e desenvolvimento das redes neuronais artificiais para o controlo do AGV Para isso descrita a tarefa de obten o de dados do AGV para treinar a rede Posteriormente efetuada a descri o do treino de uma rede neuronal atrav s do MATLAB que efetua o seguimento de uma parede e a utiliza o de um programa em C para simula o e teste da rede criada Tamb m relatado o treino de redes neuronais que efetuam comportamentos mais complexos como o seguimento de uma parede com
78. descontinuidades ou o desviar se de obst culos 4 1 ROTINA PARA GUARDAR E ENVIAR OS DADOS PARA UTILIZAR NO TREINO DA RNA Como foi referido no Cap tulo 2 uma das vantagens da implementa o das redes neuronais a sua capacidade de aprendizagem Assim tira se vantagem dessa caracter stica para implementar uma rede neuronal que tem como objetivo possuir o mesmo comportamento que o controlador difuso desenvolvido no trabalho de tese anterior para controlo do AGV 1 Para isso necess rio obterem se dados de entrada e as respetivas sa das desejadas que 57 a rede neuronal ter de apresentar para se efetuar o treino da rede neuronal e assim esta aprender a funcionar da forma pretendida Com este prop sito em mente foi alterado o c digo fonte do controlador difuso adicionando se a funcionalidade de durante a sua execug o serem guardados os valores de entrada e de sa da do controlador A rotina implementada para guardar e posteriormente enviar os dados apresentada no fluxograma da Figura 38 In cio Passou meio segundo 100 amostras guardadas Guardar dados de entrada do controlador S Enviar dados via Bluetooth Execuc o do controlador difuso ou neuronal Passou meio segundo Interrup o Passou meio segundo S Guardar dados de sa da do controlador Figura 38 Rotina para guardar e enviar os dados via Bluetooth Os dados s o guardados em 9 ve
79. do Connected este m todo cancela a thread que completou a liga o e inicia a thread ConnectedThread que gere as transmiss es da nova liga o Quando a aplica o inicializada obt m se o BluetoothAdapter o qual utilizado para verificar se o dispositivo m vel possui m dulo Bluetooth caso n o tenha a aplica o terminada O fluxograma da Figura 36 representa o processo referido Quando o utilizador seleciona o dispositivo a que se ir conectar o objeto BluetoothAdapter utilizado para obter o BluetoothDevice que representa o 2 dispositivo selecionado Este objeto utilizado para realizar o pedido de conex o ao dispositivo Ap s a sele o do dispositivo o connect executado O m todo connect tem as funcionalidades j indicadas sendo estas Cancela qualquer thread que esteja a tentar realizar uma conex o ou seja cancela qualquer ConnectThread 51 e Cancela qualquer thread que esteja com uma liga o ativa ou seja cancela qualquer ConnectedThread e Por fim inicia uma nova thread que se liga ao dispositivo indicado designada de ConnectThread In cio Inicializa es Obter BluetoothAdapter BluetoothAdapter null Indicac o de Bluetooth indispon vel Finish Figura 36 Fluxograma da inicializac o da aplicac o A ConnectThread executa o m todo createRfcommSocketToServiceRecord que
80. do No entanto as redes neuronais monocamada s o limitadas Tal como foi demonstrado por Minsky que provou que uma rede monocamada n o consegue modelar uma porta l gica XOR com sucesso Assim para ultrapassar esta limita o foram desenvolvidas as redes neuronais multicamada 19 2 4 3 TREINO EM REDES MULTICAMADA 2 Uma rede multicamada constitu da por v rias camadas consecutivas de elementos de processamento Na Figura 10 representado um esquema de uma rede multicamada Para treinar uma rede multicamada usa se a t cnica de retropropaga o O princ pio fundamental desta t cnica reside no uso de uma fun o de ativa o deriv vel O algoritmo serve se das regras de derivag o composta O que lhe permite propagar os sinais no sentido proactivo da entrada para a sa da tal como no sentido retroativo com a retropropagac o do erro da sa da para as camadas anteriores Camada 1 Camada Camada j Camada Camada s W Figura 10 Arquitetura de um sistema neuronal multicamada Atrav s destes princ pios atingido o objetivo de minimizar o erro quadr tico em rela o a um dado peso por uma descida de gradiente Para tal aplicado o principio da descida de gradiente onde a varia o de cada peso proporcional derivada parcial do erro em rela o a esse peso multiplicada pelo fator 7 ae 10 20 Normalmente para este algoritmo escolhe se
81. do que qualquer outro computador digital hoje existente para algumas fun es particulares como por exemplo reconhecimento de padr es imagens texto escrito manualmente Uma rede neuronal artificial pode considerar se como inspirada nessa interpreta o do funcionamento do c rebro humano Sendo no entanto bastante diferente quer na dimens o quer no modelo e funcionamento dos seus elementos Uma RNA pode ser implementada utilizando componentes eletr nicos ou simulada por programa o num computador Os modelos de redes neuronais realizam a manipula o de informa es atrav s da intera o de um grande n mero de unidades b sicas de processamento s quais se d o nome de neur nios artificiais ou mais frequentemente n s sendo fundamental tamb m a forma e tipo de interliga es entre esses elementos As RNA podem apresentar uma ou mais camadas interm dias ditas tamb m de escondidas hidden layers de neur nios Do ponto de vista pr tico as RNA t m como vantagem o facto de n o necessitarem de conhecimento expl cito do problema para tomar decis es baseando se unicamente nos exemplos que lhes s o fornecidos As RNA podem ser utilizadas na solug o de uma grande quantidade de problemas encontrados nas mais diversas reas de aplica o classifica o diagn stico an lise de sinais e de imagens reconhecimento de padr es otimiza o e controlo As redes s o particularmente eficientes na resolu o de pro
82. durante a execu o do treino 67 Figura 49 Resposta apresentada pela simula o da rede neuronal utilizando os dados de entrada do tremo Mo MATLAB sii iia les 68 Figura 50 Fluxograma da implementa o em linguagem C da rede neuronal 70 Figura 51 Exemplo da utilizag o do compilador de linguagem C e da linha de comandos do Microsoft Visual StUdIO ninia een 71 Figura 52 Resposta apresentada pela simula o da rede neuronal utilizando os dados de entrada do treino no programa em linguagem C cer ceae cera ccoo aee corn n nro nana nenas 72 Figura 53 Percurso de amostragem do comportamento seguimento de uma parede com descontinuidade Sinisisi eE a Pak ae sia 73 Figura 54 Diagrama da rede neuronal que implementa o comportamento seguir paredes com descontinuidades ceicccometai indi arcilla ENa EE EEEE SEEE EN ENERE deset 74 Figura 55 Dados de entrada dos sonares frontais para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades ea 75 Figura 56 Dados de entrada do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades rena 15 Figura 57 Dados de sa da do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades rea 76 Figura 58 Informa o relativa ao treino da rede neuronal
83. e a velocidade angular do sistema global isto do AGV em si a partir das dist ncias medidas atrav s dos sonares Posteriormente atrav s das f rmulas de um sistema de trac o diferencial efetuado o c lculo da velocidade angular de refer ncia para cada um dos motores Sendo a velocidade angular do sistema dada por Wsistema Vaireita EE Vesquerda 26 a diferen a entre as velocidades lineares dos dois motores 42 AV Wsistemal 27 em que L a dist ncia entre os eixos das rodas z Uma vez que a velocidade linear pretendida j conhecida pois resulta da sa da do controlador considera se que as velocidades a aplicar a cada motor s o AV Vaireita Vsistema 2 28 AV sistema 2 29 Vesquerda Ap s a obten o das velocidades lineares a aplicar a cada motor apenas necess rio dividir o valor obtido pelo raio da roda de modo a obter se uma velocidade angular em rad s de refer ncia para os motores Em seguida as refer ncias de controlo s o enviadas para o microcontrolador que efetua o controlo das velocidades dos motores o qual as usa como vari veis de entrada do sistema ou refer ncias de controlo 3 8 COMUNICA O BLUETOOTH PARA CONTROLO REMOTO DO AGV De forma a se obter um controlo remoto do sistema desenvolvido o AGV dotado de um m dulo Bluetooth que se interliga com o sistema atrav s de uma porta s rie No sistema remoto que controla o AGV e tamb m
84. e ativa o Esta sa da por sua vez serve de entrada para o neur nio seguinte e assim sucessivamente A express o que permite calcular o valor de sa da de um neur nio artificial apresentada na equa o 1 y f gt Wy iui 1 2 2 FUN ES DE ATIVA O Um neur nio artificial ativado segundo uma fun o de ativa o que depende do valor obtido atrav s da combina o linear das entradas com os pesos estado interno do neur nio A maioria das redes neuronais utiliza uma das fun es de ativa o b sicas geralmente n o lineares que s o apresentadas na Tabela 2 Tabela 3 e Tabela 4 para introduzirem um limiar na sa da dentro de uma gama pr fixada do estado interno Os par metros k a P O y ea s o escalares positivos Tabela 2 Fun es de ativa o linear degrau e bin ria Designa o Fun o Representa o f x Fun o de ativa o linear f x kx Oe a FCO Br sa eee SB x20 Fun o de ativa o degrau f x es eb hf amp FO 1 Func o bin ria ou degrau fo e x gt 0 x unit rio 0 x lt 0 Dol A fun o bin ria a fun o de ativa o por excel ncia no modelo do neur nio apresentado por McCulloch e Pitts e posteriormente utilizada no modelo do neur nio formal 2 A fun o de ativa o linear posteriormente implementada para resolver o problema da separa o linear e por excel ncia a fun o utilizada na regra delta
85. e implementa o seguimento de uma parede com descontinuidades e o desvio de obst culos sensores de detec o de obst culos Ao analisar os gr ficos apresentados anteriormente verificou se uma grande discrep ncia na sua localiza o temporal entre os valores do treino tra o azul e os valores obtidos experimentalmente trago magenta sem causa que se conseguisse apontar imediatamente Mas os comportamentos que se pretende que o AGV apresente s o observados nos gr ficos das Figura 74 e Figura 75 pois as varia es nas medi es dos sensores e dos erros s o semelhantes tanto no controlador difuso como no controlo atrav s da rede neuronal apenas 97 deslocados no espaco temporal Uma poss vel justificac o para isto ter acontecido em todos os resultados experimentais apresentados o n mero de amostras de ambos os controlos l gica difusa e rede neuronal serem iguais o que nao se verifica neste caso podendo ter havido alguma irregularidade na obten o destes dados experimentais o que causou a falta de sincronismo vis vel nos gr ficos Evolu o de EO ao longo do tempo E 2 O Lu Ep E 20 40 60 80 100 120 140 Evolu o d dai gt dot so volu o de ED ao longo do tempo RNA AG 40 T r r T m E 2 a Lu Figura 75 Resultados experimentais obtidos com a RNA que implementa o seguimento de uma parede com descontinuidades e o desvio de obst culos erros calculad
86. e neur nios da camada escondida passou de 10 para 12 logo o vetor que se refere aos pesos das liga es de entrada weights HL tem um tamanho superior 48 valores 4 entradas vezes 12 neur nios o vetor que se refere s polariza es dos neur nios da camada escondida biass HL ficou com um tamanho de 12 valores e o vetor referente s entradas dos neur nios da camada de sa da sa das dos 96 neur nios da camada escondida weights OL passou a conter 24 valores 12 entradas vezes 2 neur nios Com a implementa o desta rede neuronal multicamada proactiva 4 12 2 obtiveram se os resultados apresentados na Figura 74 e Figura 75 que representa o AGV a efetuar o trajeto treinado apresentado na sec o 4 5 Nos gr ficos da Figura 74 apresentada a evolu o das vari veis de entrada Sl e 3 da RNA implementada no AGV enquanto nos gr ficos da Figura 75 apresentada a evolu o das vari veis de entrada EO e ED da mesma RNA Evolu o de S1 ao longo do tempo O Vin TY F F ORRE i po an l L Ho 0 10 T Y T ot r t ja r r r L 0 20 40 60 80 100 120 140 Tempo s C Difuso Evoluc o de S3 ao longo do tempo RNA AGV Tir PITT j UUN N if di I a PII MI E PA IN Il iy S di PARA 1 a Nf Do if 105 J 0 20 40 100 120 140 Figura 74 Resultados experimentais obtidos com a RNA qu
87. e sa da do controlador difuso ao longo do tempo amostrado Velocidade linear do sistema ao longo do tempo 2r E r T 1b E q E 4 uz oF 1 P P P 0 5 10 15 20 25 30 35 40 45 50 Tempo s Velocidade angular do sistema ao longo do tempo 0 2 T E r T r Ff 4 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 42 Dados de sa da do controlador difuso para o treino da RNA que implementa o comportamento de seguir paredes 61 O c digo seguinte mostra os comandos MATLAB utilizados para o efeito o 6 Loading training data data load datal txt T 0 5 Defining values to the Network entradas data 6 data 7 saidas desejadas data 9 data 10 inputs entradas targets saidas desejadas Create a Neural Network ede newff minmax inputs 10 2 logsig purelin 5 oO oO Initialize Weights rede init rede pesosIL rede IW 1 pesosLW rede LW 2 polaridadel rede b 1 polaridade2 rede b 2 Train network rede trainParam showCommandLine 1 rede trainParam show 10 rede trainParam lr 0 01 rede trainParam mc 0 9 rede trainParam epochs 1000 rede trainParam goal 0 rede treino train rede inputs targets treino perf end pesosIL rede IW 1 pesosLW rede IW 2 polaridadel rede b 1 polaridade2 rede b 2
88. e similaridade A aprendizagem sem supervis o aplicada em sistemas de mem ria associativa e essencialmente de reconhecimento de padr es Nestas redes a aprendizagem realizada sem se conhecer antecipadamente as respostas consideradas corretas Podem ser utilizados diferentes algoritmos de aprendizagem sem supervis o entre outros 3 15 a Algoritmos de estimulag o pela entrada reinforcement algorithms tamb m designados no contexto da aprendizagem sem supervis o por algoritmos de aprendizagem associativa associative learning algorithms A regra de Hebb as regras de Instar e Outstar 3 constituem alguns exemplos deste tipo de algoritmos b Algoritmos de aprendizagem competitiva tais como a regra de Kohonen Considerando os diferentes algoritmos de treino atualmente dispon veis pode se considerar que os algoritmos do tipo backpropagation desde a sua vers o inicial at aos m todos que permitem evolu es na velocidade e generaliza o obtida atrav s do processo de treino continuam a ser dos mais utilizados 2 4 1 TREINO DO PERCEPTR O 2 O treino supervisionado de um elemento processador neur nio isolado pode ser realizado pelo algoritmo de aprendizagem do perceptr o O perceptr o constitu do pelas entradas u u u gt u e os respetivos pesos w wi 1 W12 ds Wii sendo b o peso referente polaridade do elemento processador Figura 2 A sa da y calculada atrav s da fun o
89. e um elemento processador de uma camada para os elementos processadores da camada anterior donde resulta um controlo neuronal em malha fechada Tamb m designado de rede neuronal recorrente porque o processo repetitivo Nas redes com realimenta o ou recorrentes a sa da de alguns neur nios s o as entradas de outros neur nios da mesma camada inclusive o pr prio ou de camadas anteriores O sinal neste tipo de redes percorre a rede em duas dire es Outras caracter sticas deste tipo de redes s o terem mem ria din mica e capacidade de representar estados em sistemas din micos Um exemplo de uma rede neuronal retroativa a rede de Hopfield apresentada na Figura 7 Figura 7 Rede de Hopfield de quatro neur nios 13 Este tipo de rede neuronal retroativa portanto pode funcionar recorrentemente e criar mem rias associativas usadas no reconhecimento de padr es ou de voz Se as sa das ficarem em c lculo permanente diz se que h instabilidade Todavia verifica se que h estabilidade quando a matriz dos pesos for sim trica em rela o diagonal principal com todos os seus elementos nulos segundo o teorema de Cohen Grossberg estabelecido em 1983 estas condi es de estabilidade wi wj e wi 0 s o suficientes mas n o necess rias 2 4 ALGORITMOS DE TREINO 3 A caracter stica principal de uma rede neuronal a sua capacidade de aprender levando a que normalmente se considerem duas fases no process
90. ede neuronal n n n n iteracao fclose file system PAUSE if mode 1 while mean square error gt MAX ERROR ACEPTABLE amp amp iteracao lt MAX NUM TERATIONS printf r n r nEntradas sf f Saidas desejadas oO h Fh oO ranir o inputs linell Ol inputs Tinel T1 targstsilinel O0 targe eSis LI layer neurons inputs line outputs HL NUM INPUTS HL NUM NEURO NS_HL weights HL bias HL ACT SIGMOID layer neurons outputs HL outputs OL NUM INPUTS OL NUM NEURONS _OL weights OL bias OL ACT LINEAR printf O valor de saida da rede e f SN oulpurs Ob O outputs COL IAN printf Saidas da camada escondida Sf sf sf f S Sf Sf Sf SF SE Outputs ore puts Li ontenes Hin 2 output tits outputs HL 4 outputs HL 5 outputs HL 6 outputs HL 7 outpu TS ES OUL DUES si Oi 133 printf Erro camada de saida S a ao ne So piso Do esteis peli outputs cOn pa outputs Ol outputs 0 mean Eco do mean square error 0 inicio 0 meanisquare error cargets lame ALO L 0 targets line 0 outputs OL 0 mean serar Sisicoes Monesma Mis WEI Geeuee ies lia T Souncjowhess OLLA _square_error mean square error NUM N primi MIS E o calenilsidos RS Viti mean square error EURONS OL
91. em leitores de cheques e outros documentos e s o tamb m utilizadas como avaliadores de cr dito Tamb m efetuam avalia o imobili ria aconselhamentos em empr stimos triagem de hipotecas avalia o de t tulos corporativos an lise do uso de linha de cr dito an lise financeira corporativa e previs o do pre o da moeda Na rea da defesa militar as redes neuronais s o implementadas com o objetivo de executarem a orienta o de armas seguimento de alvos distin o de objetos e reconhecimento facial Tamb m fazem parte de novos tipos de sensores sonares radares e sistemas de processamentos de sinais de imagem incluindo compress o de dados extra o de caracter sticas supress o de ru do e identifica o de sinal imagem Na rea da eletr nica as redes neuronais s o utilizadas como sistemas de previs o da sequ ncia de execu o de c digo controlo de processos an lise de falhas nos circuitos integrados vis o artificial s ntese de voz e modela o n o linear 24 J na rea do fabrico as redes neuronais implementam o controlo do processo de fabrico projeto e an lise de produtos diagn stico de processos e m quinas identificac o de part culas em tempo real sistemas de vis o para inspeg o de qualidade teste de cervejas an lise da qualidade da soldadura previs o da qualidade do papel an lise da qualidade de integrados para computadores an lise de opera es de moagem an lise de produt
92. em redes neuronais lineares b Aprendizagem por retropropaga o do erro error backpropagation que constitui uma generaliza o da anterior regra a redes com camadas interm dias lineares ou n o lineares c M todo do gradiente descendente e seus aperfei oamentos De referir a exist ncia de t cnicas destinadas a melhorar a converg ncia destes m todos tais como a t cnica do momento e do coeficiente de aprendizagem vari vel ou adaptativo d A aprendizagem recorrendo aos m todos de aproxima o M todo de Newton como por exemplo o de Levenberg Marquardt e A aprendizagem recorrendo a t cnicas heur sticas como por exemplo os algoritmos evolutivos ou a aprendizagem recorrendo ao processo simulated annealing Normalmente o algoritmo utilizado classifica tamb m a rede em que se aplica sendo as redes mais divulgadas as redes backpropagation ou retropropaga o Estas s o redes do tipo feedforward com pelo menos uma camada interm dia e utilizam um algoritmo iterativo com base no gradiente descendente para ajuste dos pesos da rede de modo a minimizar o erro quadr tico da camada de sa da relativamente aos valores desejados O treino n o supervisionado quando o conjunto de padr es de treino possui somente entradas ou seja n o existe sa da padr o n o sendo poss vel mostrar rede neuronal um alvo para se alcan ar O processo utiliza a compara o entre sinais para a constru o de grupos d
93. ente 18 2 6 94 os inet 112 Figura 92 Dados de sa da para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado anteriormente oi a ile 113 Figura 93 Resultados experimentais do AGV a percorrer a primeira secg o do percurso aleat rio entradas LI A E EA das a ISA dia 114 Figura 94 Resultados experimentais do AGV a percorrer a primeira sec o do percurso aleat rio entradas S2 CI AA A A cai diego 115 Figura 95 Resultados experimentais do AGV a percorrer a segunda sec o do percurso aleat rio entradas Li A alee ieee ba ina Seating 116 Figura 96 Resultados experimentais do AGV a percorrer a segunda sec o do percurso aleat rio entradas 2 Ai ii ade pi aa 116 xii ndice de Tabelas Tabela 1 Tabela 2 Tabela 3 Tabela 4 Tabela 5 Tabela 6 Tabela 7 Tabela 8 Tabela 9 Tabela 10 Tabela 11 Tabela 12 Calendariza o do projeto icsccssscchcszsscesertgscecettisceesestisesengssuavoutgsaesestdagecesotassbanaesausenteneeaete 3 Fun es de ativa o linear degrau bin rla ooooonnccncninccnonnnncnnocnnnnnnnnncnnncno coronan nannnenns 8 Fun es de ativa o bipolar rampa saturada e SIQMOIdS oooconoccnnnonocnnoonconnconnccnnononacnnenns 9 Fun es de log stica exponencial limitada e raz o de quadrados 10 Rela o de sa da da rede neuronal e sua interpreta o ins 27 T
94. es init weights HL NUM INPUTS HL NUM NEURONS HL MIN VAL MAX VAL VAL WEIGHTS values init weights OL NUM INPUTS OL NUM NEURONS OL MIN VAL MAX VAL VAL WEIGHTS 130 values init bias HL NUM NEURONS HL MIN VAL MAX VAL VAL BIAS values init bias OL NUM NEURONS OL MIN VAL MAX VAL VAL BIAS se miile O PE dara ener rgeneie ci Mie if file NULL perror Ocorreu o seguinte erro printf MO valor de errno exar errno occ Miceli Carregador n ie rscema Gets Vane Sc Sak Sie Sie oE Sie ae Lamela MAS ale ao f oO amp s3 line amp s4 line amp EO line amp ED line amp referencia line amp V final line amp W final line gt 9 E cad Sie ic Sie Ue foie ae aia ae Surge Soh sae einer Ml SS une aine O laine DiLliasT corereneia lime Y cinellline W rinalliinel s line fclose file for line 0 line lt NUM_ SAMPLES line inputs line 0 sl line inputs line 1 s3 line inputs line 2 EO line inputs line 3 ED line vergers ine TO Tinel pline targets line 1 W_final line printf r n r n sd Entradas f f Saidas desejadas S mic ie Win ya Limas stingers Latin 101 motes ating 1 targets line 0 r targets
95. esta rede neuronal multicamada proactiva 2 10 2 obtiveram se os resultados apresentados na Figura 70 que representa atrav s das medi es efetuadas pelos sonares o AGV a percorrer o trajeto treinado apresentado na secg o 4 2 do Cap tulo 4 Evoluc o de S2 ao longo do tempo S2 cm 10 15 20 25 30 35 40 45 50 Tempo s Evolu o de S4 ao longo do tempo S4 cm C Difuso RNA AGV i a 30 35 40 45 50 Tempo s Figura 70 Resultados experimentais obtidos com a RNA que implementa o comportamento seguir a parede medic es dos sensores Na Figura 71 representado atrav s da evolu o das entradas da rede o percurso efetuado pelo AGV a percorrer o trajeto treinado apresentado na secg o 4 2 do Cap tulo 4 Como se pode verificar pela an lise dos gr ficos apresentados a resposta real do AGV com o controlo por RNA apresentada a trago de cor magenta semelhante ao controlo difuso que estava anteriormente implementado e que foi utilizado como objetivo do treino realizado da rede neuronal apresentado a trago de cor azul Existem pequenas diferengas entre os valores apresentados quando comparando o treino e o teste experimental sendo a diferenga mais relevante a dist ncia do AGV parede que neste caso n o tendeu para 30 cm valor de refer ncia utilizado mas para 27 5 cm 92 Evoluc o de EO ao longo do tempo C Difuso
96. euronal No Anexo A apresentada a vers o final do programa em linguagem C desenvolvido para a implementa o da rede neuronal feedforward proactiva O programa compilador de linguagem C utilizado foi o c1 exe que disponibilizado no software Microsoft Visual Studio podendo assim ser utlizado sobre um sistema operativo Windows A execu o deste compilador apenas pode ser efetuada atrav s da linha de comandos disponibilizada pelo Visual Studio Na Figura 51 apresentado um exemplo da utiliza o do compilador e da linha de comandos 70 IE Dropbox TESE DISSERTAGAONC programs gt cl rna agv vB 2 c Microsoft lt R gt C C Optimizing Compiler Version 17 00 51106 1 for Copyright lt C gt Microsoft Corporation All rights reserved rna_agu_vB 2 c Microsoft lt R gt Incremental Linker Version 11 08 51106 1 Copyright lt C gt Microsoft Corporation All rights reserved Yout rna_agu_v4M 2 exe na_agu_v4M 2 o0bj E Dropbox TESE DISSERTACGAONC programs gt rna_agu_vB 2 exe Ficheiro de entradas carregado Ficheiro de pesos carregado Ficheiro de Saidas aberto Fim da simulacao da rede neuronal E DropboxNTESE DISSERTA ONC programs gt Figura 51 Exemplo da utilizac o do compilador de linguagem C e da linha de comandos do Microsoft Visual Studio A vers o final do programa tem um par metro de entrada aquando da sua execug o que indica ao programa o modo de funcionamento pretendido Este pode ser um de d
97. fe Mi 10 0 E r d E 0 50 100 150 Tempo s Evolu o de S3 ao longo do tempo 30r T I T T SE 25 f E e 20 tf F B i 15 i i 10 E r F E 0 50 100 150 Tempo s Figura 63 Dados de entrada S1 e 3 do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades e desviar se de obst culos 81 EO cm ED cm Evoluc o de EO ao longo do tempo 40 7 T T E 20 e A EM Ara ar ih i al ath i A A AHE A AA A a yin y e y WI Dio 20 F e At E Am A 40 E t r z 0 50 100 150 Tempo s Evoluc o de ED ao longo do tempo 40 E T 2 Pr at l f T o f Y TA N A N vo dh PA UNT SVN 0 y HN _ A Lo ll h q IM pu y IN d J ITA pl 1 i 40 E I l t E 0 50 100 150 Tempo s Figura 64 Dados de entrada EO e ED do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades e desviar se de obst culos Vfinal m s Velocidade linear do sistema ao longo do tempo 0 15 Fr E T 0 1 E HH HiH EIN O08 il NINOS H c OT iil E T mm 0 Il 0 05 amp lll t LI HHL r Jl 0 50 100 150 Tempo s Velocidade angular do sistema ao longo do tempo lr r ost Ami Ni Eii II J Oe the AT UL te a Mt AN
98. ferido na sec o 4 5 constitu da por 4 entradas NUM INPUTS HL 12 neur nios na camada escondida NUM NEURONS HL e NUM INPUTS OL e 2 neur nios na camada de sa da NUM NEURONS OL float weights HL NUM INPUTS HL NUM NEURONS HL O 13387 10 Soo Os UNO DST OSS 0 3321 y O 1193 0 0072 0 0209701574700 9407 0043 O 2026 0213870 0839370 43097 O 0146 O 2582 0 1755 0 0695 12 0797 2 7665 7 0710 14 3571 Do CGSN 0 1304 Os 15410 139297 0 2321 0 4038 y O 043270 22415 0 01 717 0 2037 O 1857 O Lik 1072 6 022 5 180209780 8228 1 11007387 0 0137707 0004 5523 Is SAG 01309090 SAILS POS float weights OL NUM INPUTS OL NUM NEURONS OL 0 0101 O ANAL AE 10 5 ONO SL Or Q111 0 0157 0 IA MESES ZOO OS OR One ATOR OUST 00052752 0200047 O AA le IAC O ASS O S240 SOUSA 00 0 647370 1819 5 2439900357 0 1222 0 0987 5 float bias HL NUM NEURONS HL O SL y IAS SS 2 2550 Ge ISA SS O 4 ONG LIST SIS SA dl DENIS o MO 52 62467 SAL o 39927 14 66253 he float bias OL NUM NEURONS _OL 0 0482 1 0261 De forma an loga s redes neuronais implementadas anteriormente cada um dos vetores apresentados anteriormente refere se s carater sticas da rede neuronal artificial obtidas pelo treino pesos das liga es e polaridades dos neur nios Nesta rede neuronal em compara o com a rede neuronal anterior o n mero d
99. gura 79 apresentada a evolu o das vari veis de entrada S1 e 3 que demonstram a dete o de obst culos no percurso enquanto na Figura 80 apresentada a evolu o das vari veis de entrada EO e ED que mostram os erros calculados em rela o parede que o AGV segue no seu percurso Evolu o de S1 ao longo do tempo T Al pi 40 7 INE 30 a IN S1 cm ll 20 4 a er Pa 4 102 t t t r r o t 50 100 150 sl 250 300 350 Tempo s Evoluc o de S3 ao ee do tempo RNA AGV al 30 mM TT TT T TT na S3 cm Ir q 0 150 200 250 300 350 Tempo s Figura 79 Resultados experimentais obtidos com a RNA implementada no AGV a efetuar o trajeto aleat rio sensores de detec o de obst culos Como se pode verificar pela an lise dos gr ficos apresentados na Figura 79 e Figura 80 o trajeto realizado pelo AGV ao efetuar o percurso aleat rio foi satisfat rio pois n o se aproximou excessivamente dos obst culos que se encontravam no seu caminho deixando sempre uma dist ncia m nima de 10 cm para com o obst culo ao se afastar pela sua esquerda como se pode ver pela an lise do gr fico do sensor 3 apresentado na Figura 79 Nas sec es em que o AGV tinha uma parede para seguir a dist ncia a que este se colocava da parede era a distancia de refer ncia de 30 cm visivel no gr fico do Erro de Distancia ED da Figura
100. i 0 loge sum 0 07 Pvc Perform the sum of product calculation heres ei sum 0 0 for i 0 1i lt size i sum first i second i sum return sum 126 E A 5 as Fun o que calcula o valor de sa da de um neur nio if AR aceitera x ps uae OK KKK IK KK I A I I A A float neuron float inputs float weights int size float bias int act function float sum 0 oat outval 0 a Perform the sum of product calculation of inputs and weights sum sum of produts inputs weights size printf Sum f An sum Apply bias Then do the activation function which is a birary function if act function ACT SIGMOID outval sigmoid sum bias if act function ACT BINARY outval binary sum bias if act function ACT LINEAR outval linear sumtbias return outval FERRARA RARA RARA RA ES x VAR Fun o que calcula os valores de sa da de cada um dos x fs neur nios de uma camada da rede We ae Bei OR KKK IK KK IK I I I A A I eA AA Mota layers tron sino ac pues loar OU E pues anna pus aio apa Oates log malsimes log bras alte ACL MACEN int i 0 PS boop Counter Process for every neuron in this layer for i 0 i lt num_outputs i outputs i neuron inputs weights i num_inputs num_inputs bias i act_functi on return 127 VE A q ua pes Func o
101. ia de sa da Tipicamente de 16 dBm Sensibilidade de rece o 84 dBm Saltos de frequ ncia 1600 s cada canal tem 1 MHz de espa o Velocidades de transmiss o 1 2 115 2 kbps 3 8 3 INTERFACE DE COMUNICACAO DO M DULO BLUETOOTH Este m dulo possui quatro pinos como vis vel na Figura 31 dois deles de alimenta o 5 V e os restantes dois pinos Rx e Tx para a liga o entre as portas s rie Na Tabela 9 apresentada uma descri o dos pinos do m dulo Bluetooth HPS 110 44 Tabela 9 Tabela descritiva dos pinos existentes no m dulo HPS 110 N mero do pino Notac o Dire o Descric o 1 VCC Entrada Vec 3 3 V 16V 2 TxD Sa da Informa o transmitida RS 232 3 RxD Entrada Informa o recebida RS 232 4 GND N A Sinal terra Se se ligar este m dulo a um computador e se utilizar um programa de comunica o s rie por exemplo o Tera Term pode se efetuar a configura o dos par metros do m dulo Na Figura 32 apresentado o menu de configura o do m dulo Como este possui ainda um consider vel n mero de par metros estes n o s o abordados neste documento mas esta informa o est descrita com maior detalhe no manual t cnico do m dulo em quest o 7 2 COM3 9600baud Tera Term VT EM File Edit Setup Control Window Help Set PC COM port to the default settings of adapter And 5 sec later hit lt CR gt formation RNA_AGY ON PIN 1234 Connection M
102. idades No ecr inicial da aplica o gr fica apresentado na Figura 34a destacam se os seguintes elementos A vermelho a rea da interface gr fica onde se apresentam v rias informa es sobre a execu o do sistema como o modo de funcionamento o n mero do ltimo conjunto de amostras recebido via Bluetooth o tempo de ciclo do sistema e os valores medidos pelos sonares em cm A verde a rea onde se situam os bot es que permitem controlar remotamente o sistema via Bluetooth atrav s dos comandos apresentados na Tabela 10 A laranja as reas que apresentam a progress o dos processos de amostragem dos valores de entrada e de sa da da rede neuronal e de envio dos valores amostrados via Bluetooth do sistema para o telem vel situadas esquerda e direita respetivamente A azul a rea onde apresentada uma imagem que alterada mostrando o estado atual de ativa o ou desativa o das amostras A castanho a rea onde apresentada uma imagem que mostra a ocorr ncia de um erro como a tentativa de modifica o do modo do funcionamento do sistema enquanto ainda se est o a receber os dados via Bluetooth Na Figura 34b destaca se a amarelo o menu de op es Neste menu encontram se as seguintes op es Conectar Dispositivo permite selecionar o dispositivo a que se pretende conectar Modo Aut nomo permite alternar o modo de funcionamento do sistema para o modo em que o controlo realizad
103. identificador n mero 2 ID2 em que os 8 bytes da mensagem CAN est o divididos da forma representada na Figura 27 ID 2 n2 byte Tamanho 1 byte 0 Refer ncia Motor O Byte menos significativo 1 Refer ncia Motor O 2 Byte 2 Refer ncia Motor O 3 Byte 3 Refer ncia Motor O Byte mais significativo 4 Refer ncia Motor 1 Byte menos significativo 5 Refer ncia Motor 1 2 Byte 6 Refer ncia Motor 1 3 Byte 7 Refer ncia Motor 1 Byte mais significativo Figura 27 Mensagem enviada pelo n do controlador difuso neuronal para controlo dos motores 38 O controlador neuronal recebe as mensagens provenientes dos outros m dulos utilizando esses dados para calcular os valores de controlo para o sistema De seguida envia uma mensagem para o m dulo de controlo dos motores com os valores de refer ncia das velocidades para cada motor 3 5 LEITURA DOS SONARES Como apresentado na arquitetura de hardware do sistema Figura 18 um dos microcontroladores respons vel pela leitura dos sensores e envio desses dados atrav s da rede CAN Os sinais el tricos dos sonares possuem o diagrama temporal apresentado na Figura 28 onde vis vel o sinal de controlo a gerar trigger pulse e o sinal que indicar as dist ncias medidas echo pulse Trigger pulse 10uS Mininum Trigger pulse o input to SRFOS 8 cycles off sonic burst Ultrasonic burst transmitted from SRFOS Echo pulse
104. indo assim uma plataforma de teste est tica j bastante semelhante plataforma final onde se pretendia implementar a rede neuronal criada Assim conseguiu se analisar o desempenho e a resposta da rede neuronal programada na linguagem C quando na entrada se tivesse os valores de treino utilizados no MATLAB Como foi verificado a resposta da rede neuronal programada na linguagem C era praticamente igual resposta simulada no MATLAB Com os testes experimentais efetuados desenvolveu se c digo para o MATLAB em linguagem C e para microcontrolador que permitiram validar a utilizag o das redes neuronais para controlo de um AGV tomando a decis o dos comportamentos que deve tomar com o objetivo de percorrer um percurso conhecido treinado ou desconhecido n o treinado A partir do conhecimento adquirido at agora com este estudo poss vel utilizar este sistema e o c digo criado em MATLAB linguagem C e microcontrolador para implementar e testar novas RNA no AGV disponibilizado A implementag o da rede neuronal a partir do controlo remoto implementado permitiu verificar que atrav s de um m todo de ensino simples se consegue obter um funcionamento complexo apesar de n o ser perfeito A maior dificuldade deste trabalho foi conseguir obter uma amostragem correta do trajeto pretendido na implementa o da rede neuronal a partir do controlo remoto pois como o controlo remoto implementado era simples o seu desempenho n o era o melho
105. ingido o n mero m ximo de itera es 1000 permitido 64 Velocidade Linear do Sistema Vfinal m s C Difuso RNA 10N Tempo s Figura 44 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o n mero de neur nios na camada escondida velocidade linear Velocidade Angular do Sistema Wfinal rad s C Difuso RNA 10N 0 5 amp E 1 t F a 0 5 10 15 20 25 50 Tempo s Figura 45 Comparac o dos resultados do treino de uma rede neuronal com o algoritmo retropropagac o variando o n mero de neur nios na camada escondida velocidade angular Na Figura 46 e Figura 47 s o apresentadas compara es da utiliza o do algoritmo de retropropaga o para o treino de uma rede neuronal para efetuar o comportamento desejado 65 variando o fator de aprendizagem Os valores de sa da apresentados a azul magenta e vermelho referem se s respostas das redes neuronais treinadas com 0 01 0 05 e 0 1 como fator de aprendizagem respetivamente Velocidade Linear do Sistema 0 6 r r T T E E E E E C Difuso os Y RNA Ir 0 01 RNA Ir 0 05 RNA Ir 0 1 RR AAA RA Pop AT 0 3 Ab o 0 2 j H Vfinal m s OF bo fee gt Py TA di Ly HA j d Lol 0 2 gt E i E E t E E f T Bo 0 5 10 15 20 2 30
106. inlm Performance Mean Squared Error mse Derivative Default defaultderiv Progress Epoch 0 1000 Time Peformance 123 00 Gradient 105 1006 05 Mu Validation Checks Plots plotperform Training State plottrainstate Regression plotregression Plot Interval U 4 Minimum gradient reached Stop Training Cancel Figura 58 Informac o relativa ao treino da rede neuronal Como se pode verificar pela an lise destes gr ficos Figura 59 os resultados obtidos pela implementa o de uma rede neuronal em C e no MATLAB s o semelhantes a implementa o do controlador difuso apenas se notando uma diferen a m nima entre a resposta da velocidade linear do sistema da rede neuronal o trago a cor magenta e o traco a cor vermelha est o sobrepostos e a do controlador difuso trago azul no fundo do primeiro gr fico 78 Velocidade Linear do Sistema 0 1043 p r T T r T T T T T T m 0 1043 A 3 0 1043 o E NS O CS PO E CO E O ERAT 0 1043 E E r r r r r IE 0 5 10 15 20 25 30 35 40 45 50 Tempo s Velocidade Angular do Sistema C Difuso lr E E F F F F F RNA MATLAB RNA ling C T E ee RS E ee 3 g z A Al E E se A O OEE 1 E r r r r r E 0 5 10 15 20 25 30 35 40 45 50 Figura 59 Resposta apresentada pela simula o da rede neuronal para implementar o comportamento seguir paredes com descontinuidades utilizando os dados
107. io alpha weight adj amp weights HL 5 NUM_ NUM inputs line ning ratio alpha weight adj amp weights HL 6 NUM_ NUM inputs line ming eat io alpha weight adj amp weights HL 7 NUM_ NUM_ inputs line weight adj amp weights HL 8 NUM NUM inputs line weight adj amp weights HL 9 NU inputs line ning ratio alpha learning ratio alpha L 1 NUM 433 ntf Beneficio neuronio 2 da camada escondida Jametiye Celle sit Owhejeines 06171 UM NEURONS OL ntf Beneficio neuronio 2 da camada escondida benefaiticalec ur outpnesBanp UM NEURONS OL ntf Beneficio neuronio 2 da camada escondida INPUTS HL weights last var HL NUM _ PNEUS o Seca ONE INPUTS HL amp weights last var HL INPUTS HL benefit HL 1 INPUTS HL amp weights last var HL INPUTS HL benefit HL 2 INPUTS HL amp weights last var HL INBUBS AH pene Renal Si INPUTS HL amp weights last var HL INPUTS HL benefit HL 4 INPUTS HL amp weights last var HL NEUE SAR Aemet ES INPUTS HL amp weights last var HL INPUTS HL benefit HL 6 INPUTS HL amp weights last var HL INPUTS HL benefit HL 7 INPUTS HL weights last var HL INPUTS HL benefit HL 8 M INPUTS HL amp weights last var HL NUM_ TNE URS 206 bene fato INPUTS OL amp weights last var OL R
108. iormente mostradas Figura 55 e Figura 56 ao percorrer o trajeto Figura 53 e que s o utilizados para treinar a rede neuronal para que esta implemente o mesmo comportamento s o apresentados na Figura 57 74 Evoluc o de S1 ao longo do tempo 405 T T EE E E r E E T E e 30 5 o 20 E t d i t t t la r E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Evolu o de S3 ao longo do tempo 30 f7 NA E r za E E r T 25 y HH di E j 2 20 isp 15F p T 105 r r j r r r r r r 0 10 15 20 25 30 35 40 45 50 Tempo s Figura 55 Dados de entrada dos sonares frontais para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades Evolugao de EO ao longo do tempo 20 m E E E T r E E E 10h E g e A NS a ES A ae a Q or NAN al E E dl EE 102 o t t K t i t t t t 5 10 15 20 25 30 35 40 45 50 Tempo s Evoluc o de ED ao longo do tempo 30 F T r E T T r E r T 20 o i o N i o i T 5 0 A a Me i F X S Al W VA J EN o LV E 1 0 Es E E r r E E t t mg 10 15 20 25 30 35 40 45 50 Tempo s Figura 56 Dados de entrada do controlador difuso para treinar a rede neuronal a implementar o comportamento seguir paredes com descontinuidades 75 Velocidade linear do sistema ao longo do tempo
109. iormente serem analisados no MATLAB Um exemplo da implementa o em linguagem C de uma rede neuronal disponibilizado na Internet foi utilizado como refer ncia para a cria o deste programa 16 Este programa tinha como objetivo efetuar o treino atrav s do algoritmo de retropropaga o e a simula o de uma RNA utilizando threads Assim como o objetivo desta tese bastante diferente da tese que criou o pograma de refer ncia apenas foi utilizado o c digo que implementava algumas das fun es como o c lculo do somat rio das entradas de um neur nio ou o c lculo do valor de sa da das fun es de ativa o necess rias para implementar uma RNA em linguagem de programa o C Durante o desenvolvimento deste programa foram desenvolvidas v rias vers es que tinham como diferen a o objetivo da rede neuronal Uma 69 das vers es criava uma rede neuronal multicamada proactiva que implementava uma porta l gica XOR efetuando o treino e simulag o da rede In cio Leitura das entradas a partir de um ficheiro Leitura dos pesos a partir de um ficheiro C lculo das sa das de cada um dos neur nios da camada escondida da rede neuronal C lculo das sa das de cada um dos neur nios da camada de sa da da rede neuronal Escrita dos valores de sa da da rede neuronal num ficheiro ltimo valor de entrada Figura 50 Fluxograma da implementa o em linguagem C da rede n
110. lador difuso ou o controlador neuronal Este m dulo est ligado ao barramento CAN permitindo assim comunicar com os outros m dulos integrantes do AGV e pode efetuar comunica es remotas atrav s de um m dulo Bluetooth Figura 23 M dulo de controlo central do AGV Na Figura 24 apresentada uma fotograf a que mostra a localizag o dos sonares frontais e dos motores utilizados para impulsionar as rodas e consequentemente o AGV em si Como se pode observar na fotografia um dos sonares est situado no centro da parte frontal do AGV permitindo detetar obst culos que se situem frontalmente ao AGV O outro sonar situado frontalmente est situado na zona lateral direita e inclinado para permitir a dete o de obst culos que n o obstruem completamente o trajeto do AGV PS E Pa Figura 24 Localiza o dos motores e sonares frontais do AGV 36 Na Figura 25 apresentada uma fotografia que mostra o m dulo conectado aos sonares que efetua o comando e leitura das medi es efetuadas Como se pode verificar pela fotografia o m dulo tem como conex es os fios da alimenta o proveniente da bateria os fios do barramento CAN e dois flat cables que interligam o microcontrolador e os sonares Figura 25 M dulo conectado aos sonares 3 4 REDE CAN A rede CAN foi implementada com o intuito de interligar os v rios m dulos que constituem o AGV mas tamb m pela flexibilidade que esta rede traz ao sistema poi
111. lar a resposta da rede neuronal a essas mesmas entradas Utilizando como entradas para a simula o da rede neuronal os dados de entrada utilizados para treinar a rede obtiveram se os gr ficos apresentados na Figura 49 O tra o azul corresponde aos resultados experimentais do controlador difuso e o magenta corresponde aos resultados da simula o da rede neuronal Velocidade Linear do Sistema 0 1043 r r E T T T T T T T T 5 0 1043 q e Mn E 0 1043 E E gt 0 1043 C Difuso 7 RNA 0 1042 amp E F r E E E r E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Velocidade Angular do Sistema 0 2 T T r T r T E T A OF A Al MA y Y o MA ai Papi ft tt DA r r F r L 0 5 10 15 20 25 30 35 40 45 50 Tempo s Figura 49 Resposta apresentada pela simulac o da rede neuronal utilizando os dados de entrada do treino no MATLAB Como se pode verificar pela an lise dos gr ficos apresentados na Figura 49 a rede neuronal apresenta uma resposta perfeitamente semelhante ao controlador difuso notando se apenas m nimas diferencas na velocidade linear do sistema Esta discrep ncia originada pela quase 68 inexist ncia de variac o dos valores amostrados dessa vari vel quando foi efetuado o treino logo durante a execu o deste os pesos do neur nio relativos a esta vari vel de sa da n o foram atualizados de forma t o eficaz como o que
112. line 1 line 0 mode atoi argv 1 if mode 0 if inicio 1 rile ropen esos emergencia e Mia if file NULL perror Ocorreu o seguinte erro printf O valor de errno ola errno print Ficheiro carregado printf r nPesos das entradas dos neuronios da camada escondida r n for line 0 line lt NUM INPUTS HL NUM NEURONS HL line RS cami ots pri ntf ey lo qe Uy amelcies Iso Watton E eliges 6 ia oe H 131 printf r nPesos das entradas dos neuronios da camada de saida r n for line 0 line lt NUM INPUTS OL NUM NEURONS OL line fscanf file Sf amp weights OL line oia Vie Y welgarcs Ol Alba printf r nPolaridade dos neuronios da camada escondida r n for line 0 line lt NUM_ NEURONS HL line cscana male Vee Y Holas lime Dices Mr arolas Iaith time 5 printf r nPolaridade dos neuronios da camada de saida r n for line 0 line lt NUM NEURONS OL line recen ral dle ter olas Ol lime ocine Mega WU lotes Ouf amne e pro cd a IE Ne Wok ie Vana ir reno sien eka tile O end a do ss me meee cia Cul carn esty a if file NULL perror Ocorreu o seguinte erro ont MO valor de Errno Sera ezo E tac cs lo Carregador wala E line 0 while
113. m fator importante para a defini o dos algoritmos de treino que ser o utilizados Estes algoritmos possuem regras espec ficas que influenciam a estrutura a ser adotada para atingir os objetivos da rede 10 As redes neuronais podem ser classificadas pelo n mero de camadas dos elementos processadores e Rede neuronal monocamada single layer neste caso existe somente uma nica camada com os elementos processadores completamente intraconetados ou parcialmente intraconetados Foi o primeiro modelo concebido baseado no perceptr o que revelou limita es de c lculo e veio a suscitar o desenvolvimento de sistemas com mais camadas interconectadas Um exemplo deste tipo de rede neuronal a apresentada na Figura 4 yy p gt y y Y4 p Figura 4 Rede neuronal do tipo monocamada lt Se e Rede neuronal multicamada multi layer este tipo de rede possui duas ou mais camadas de elementos processadores interconectados podendo existir eventuais intraconex es sendo uma camada de entrada situada num extremo da rede uma ou v rias camadas escondidas a sua fun o processar os sinais de entrada antes de envi los aos neur nios de sa da que se encontram no interior da rede e uma camada de sa da colocada no outro extremo de rede neuronal Apesar da maior complexidade esta arquitetura possibilita uma melhor qualidade de treino pois h maior intera o entre os neur nios Este
114. mostrado enquanto os dados referentes evolu o de 2 e 4 durante o tempo amostrado s o apresentados na Figura 91 Na Figura 92 s o apresentadas as velocidades dos motores do AGV que s o os targets do treino da RNA correspondentes s entradas amostradas 111 S1 cm S3 cm Figura 90 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado S2 cm S4 cm Figura 91 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado Evo lu o de al ao TT do tempo TAO W A Fo 5 do a E anteriormente S1 e S3 Evolu o de S2 ao longo do tempo 100 m T T Prod 50 rl ik i ul ll IM il RAR fl y mu Ma If We o y i Wh Mh Ma y dl ad IP 0 1 00 i 300 400 500 600 700 Tempo s Evolu o de S4 ao langg do tempo C Remoto 1007 TT a a DRT DO nf Ny J A A A Wy Wy f a HI 1 dl HI kt mi MI f Iv pl ZAA o5 1 00 200 300 400 500 600 700 Tempo s anteriormente S2 e 4 112 Valor de refer ncia para o motor da m ao a do tem
115. ndo caso de 4 3791x107 Por m n o se deve concluir que quanto mais neur nios existirem numa camada melhor ser a resposta pois isto n o verdade A realidade que um valor muito alto de neur nios significa a especializa o da rede neuronal o que a leva a responder perfeitamente aos valores de entrada treinados mas se outros valores de entrada lhe forem apresentados a rede neuronal poder responder de uma forma que n o era esperada Para se resolver este problema deve treinar se com o menor n mero poss vel de neur nios garantindo lhe uma capacidade de estima o dos valores de sa da generalizada da resposta pretendida conseguindo assim escapar do problema de especializa o Como efetuado nos comportamentos anteriores na Figura 68 s o apresentados os valores de sa da da rede neuronal implementada em linguagem C utilizando os pesos obtidos pelo 85 treino no MATLAB comparando os com os valores de sa da da rede neuronal implementada no MATLAB e os valores de sa da utilizados no treino obtidos atrav s do controlador difuso E ER Linear do jd C Difuso l RNA MATLAB gt 0 2 KH Sean o crete A MR RNA ling C 3 5 01F a mato gt ob J oat 7 50 100 150 Tempo s Velocidade Angular do Sistema 1 ES k Tt TE 0 1 d Ko Av y AT E 0 5 i 1 p t 0 50 100 150 Tempo s Figura 68 Resposta aprese
116. no percurso aleat rio entre as duas abordagens implementadas pode se concluir que o funcionamento do AGV controlado pela RNA criada a partir do controlador difuso em comparag o com a RNA criada a partir do controlo remoto apresenta um funcionamento melhor Mas se existirem percursos onde ambas as abordagens n o funcionem como esperado a adapta o da RNA a partir do controlo remoto muito mais simples do que a adapta o da RNA a partir do controlo difuso 118 6 CONCLUS ES Ao longo deste texto foram sendo apresentadas conclus es que permitiram sustentar as op es de desenvolvimento efetuadas ao longo do projeto Assim neste ltimo cap tulo efetuada uma s ntese das principais conclus es consequ ncias e relev ncia do trabalho realizado e perspetivados futuros desenvolvimentos No MATLAB foram implementadas v rias rotinas que permitem analisar os dados para criar treinar e simular uma rede neuronal para ser implementada no AGV Efetuaram se testes experimentais no AGV e validaram se os resultados obtidos no MATLAB e no programa em linguagem C Em termos de implementa o foram abordadas as quest es referentes implementa o de um controlo atrav s de uma RNA que se pretendia que funcionasse como um controlador difuso previamente implementado e um controlo atrav s de uma RNA que se comportasse como o trajeto efetuado atrav s de um controlo remoto implementado no AGV O controlador difuso previa tr s compo
117. ntada pela simula o da rede neuronal para efetuar o comportamento seguir paredes com descontinuidades e desvio de obst culos utilizando os dados de entrada do treino no programa em linguagem C Tal como verificado anteriormente nos comportamentos menos complexos a implementa o da rede neuronal em linguagem C tra o vermelho apresenta valores de sa da semelhantes aos valores de sa da da implementa o no MATLAB tra o magenta e n o se diferenciam dos valores de sa da apresentados pelo controlador difuso tra o azul num n vel que influencie o desempenho deste comportamento comparando as duas vertentes da sua implementa o Conclui se que os resultados obtidos pelas simula es das RNA ap s o treino da rede no MATLAB s o satisfat rios Al m disso comparando os resultados obtidos pelas simula es no MATLAB com os obtidos no programa em linguagem de programa o C pode se 86 afirmar que a programa o realizada funciona corretamente podendo se implementar no AGV uma adapta o desse programa 87 5 TESTES E RESULTADOS Neste cap tulo s o abordadas as implementa es das redes neuronais no AGV e os resultados obtidos nos v rios testes experimentais realizados Primeiro s o apresentados os resultados obtidos com cada uma das RNA criadas e simuladas no cap tulo anterior nos mesmos percursos utilizados para retirar as amostras do controlo difuso Tamb m s o relatados os resultados obtidos com a RNA num pe
118. o atrav s da rede neuronal artificial implementada Quando o sistema se encontra no modo Aut nomo esta op o modificada para Modo Remoto permitindo assim alternar o controlo do sistema para o modo de controlo quando pretendido O modo de funcionamento do sistema inicialmente o modo de controlo remoto 47 Ativar Amostras permite alternar o modo de opera o do sistema para o modo onde s o retiradas amostras dos valores de entrada e de sa da do sistema de controlo implementado RNA Quando o sistema se encontra no modo de opera o em que as amostras est o ativadas esta op o modificada para Desativar Amostras permitindo assim alternar o modo de opera o do sistema para o modo sem amostras quando pretendido O modo de opera o do sistema inicialmente o modo de opera o sem amostras Apagar Amostras permite apagar as amostras do sistema que foram guardadas e que ainda n o foram enviadas via Bluetooth para o telem vel Ver Dados permite aceder ao ecr apresentado na Figura 35a onde se verificam os dados amostrados em cada um dos modos de funcionamento Sobre permite aceder ao ecr apresentado na Figura 35b que apresenta informa o sobre o objetivo da aplica o desenvolvida a b Figura 34 Interface gr fica da aplica o Android a ecr inicial e b menu de op es 48 de um AGV O do ras CONML OLQ go ge Mooc Redes Neuronais Artificiais RNA a b Figura 3
119. o de utiliza o de uma rede uma fase de treino e uma de utiliza o O treino consiste no ajuste dos par metros internos da rede de maneira que a rede apresente um resultado esperado dada a apresenta o de um conjunto de padr es espec ficos Os padr es de treino da rede cont m as informa es que se desejam que a rede aprenda Os par metros a ajustar s o os pesos das conex es que interligam os neur nios Os diversos modelos de redes neuronais caracterizam se pela utiliza o de diferentes t cnicas de treino O treino genericamente pode ser classificado como supervisionado ou n o supervisionado O treino supervisionado Figura 8 quando o ajuste de par metros feito a partir da apresenta o de um conjunto de pares de entradas e sa das padr o Neste processo uma entrada padr o apresentada rede e uma sa da calculada A diferen a existente entre a sa da calculada e a sa da padr o o erro produzido que se deseja minimizar Sa da desejada Professor Rede Neuronal Entrada Sa da real ae 2 Sistema de treino Sinal de erro Figura 8 Diagrama em blocos do treino supervisionado 14 Neste tipo de aprendizagens s o conhecidas inicialmente as respostas corretas correspondentes a um certo conjunto de dados de entrada A referir entre outros os seguintes algoritmos de aprendizagem com supervis o 3 a Regra de aprendizagem de Widrow Hoff ou m todo do gradiente aplicado
120. o extrato de c digo apresentado em seguida que os manipula atrav s do m todo handleMessage Na rece o dos dados enviados pela ConnectedThread este m todo que manipula todo o tipo de mensagens recebidas verifica O tipo de mensagem recebida Se o tipo de mensagem recebida for MESSAGE READ ou seja mensagem de leitura o m todo verifica as marcas que foram definidas neste tipo de mensagens que permitem a aplicag o identificar a funcionalidade despoletada pela rece o desta mensagem entre as quais se encontram a grava o em mem ria num ficheiro dos dados recebidos ou a apresenta o dos dados numa das TextView existentes na interface com o utilizador entre outras a es poss veis private final Handler mHandler new Handler ie public void handleMessage Message msg ee 2 Sodan id a nica do a eae A k Uma activity um componente de uma aplica o que disponibiliza um ecr com que o utilizador pode interagir em ordem a efetuar alguma a o A cada activity dada uma janela em que permitido desenhar a sua interface com o utilizador 54 switch msg what es Verificac o do tipo de mensagem recebida case MESSAGE READ leitura da mensagem para um buffer local byte readBuf byte msg obj A comstercuiale E Silao icon llas veulaiel bytes in the buffer String readMessage new String readBuf msoma E Verifica o do conte do da mensagem recebida e
121. o monitoriza emulada uma porta s rie sobre o Bluetooth permitindo assim um certo n vel de abstra o das carater sticas e funcionamento da rede Bluetooth atrav s da utiliza o deste tipo de m dulo Para a utiliza o deste m dulo apenas necess rio efetuar a configura o de alguns par metros tais como a configura o da taxa de comunica o da porta s rie entre o microcontrolador e este m dulo a defini o do papel do m dulo e a defini o do endere o f sico do m dulo 3 8 1 M DULO BLUETOOTH HPS 110 7 O m dulo de porta s rie sem fios HPS 110 Figura 31 um dispositivo que permite estabelecer uma comunica o wireless entre duas portas s rie externas O adaptador vendido aos pares permitindo uma r pida integra o e desenvolvimento na pr tica vai permitir emular a exist ncia de um cabo s rie virtual 43 Figura 31 M dulo HPS 110 da HandyWave 3 8 2 ESPECIFICACOES DO M DULO BLUETOOTH O m dulo Bluetooth HPS 110 da HandyWave permite comunica o Full Duplex apresenta taxas de comunicag o entre 1 2 e 115 2 kbps e possui um consumo energ tico de 110 mA no m ximo de corrente consumida 7 Na Tabela 8 apresentado uma lista de algumas das especifica es do m dulo Bluetooth Tabela 8 Especifica es do m dulo HPS 110 Especifica es Standard Bluetooth v1 1 Frequ ncia r dio 2 402 2 480 GHz Largura de banda 1 Mbps Pot nc
122. o tempo C Difuso 40 r E RNA AGV 20 AP INI of 20 40 amp 40 120 140 Figura 77 Resultados experimentais obtidos com a RNA e com o controlador difuso implementados no AGV a efetuar o trajeto de treino erros calculados 99 Ao analisar estes resultados pode se verificar que a discrep ncia temporal que existia nos resultados anteriores n o se verificou e que a resposta do sistema quando controlado por l gica difusa ou pela rede neuronal semelhante Neste caso o n mero de amostras igual em ambos os controlos 5 2 PERCURSO ALEAT RIO Para validar a utiliza o deste sistema de controlo em percursos n o treinados foi testado o funcionamento do AGV a percorrer o seguinte trajeto apresentado na Figura 78 c Figura 78 Trajeto percorrido pelo AGV neste teste a sec o inicial do percurso b sec o interm dia do percurso e c sec o final do percurso O trajeto apresentado na Figura 78 um percurso complexo sendo que o AGV ao percorr lo executa todos os comportamentos anteriormente treinados na sec o 4 5 o qual se 100 verificou que funcionava satisfatoriamente no percurso de treino como descrito na sec o 5 1 3 Assim o teste efetuado consistia em colocar o AGV controlado com a RNA implementada na sec o 5 1 3 a percorrer este percurso Os resultados obtidos no teste s o apresentados na Figura 79 e Figura 80 que representam o percurso efetuado pelo AGV Na Fi
123. ode WAIT Role Slave Local BD_ADDR 00077F40C002 COM Port 9600 8 N 1 Flow Control None Factory Settings 9600 8 N 1 Flow Control None Class of Device B01FDO Low Power Mode OFF Inquiry Scan ON ue see Usage type lt CR gt Figura 32 Menu apresentado ao se efetuar a configurac o do m dulo 3 8 4 APLICA O DE COMUNICA O DESENVOLVIDA EM ANDROID Inicialmente no projeto utilizou se o programa de comunica o Tera Term num computador para efetuar a monitoriza o e controlo Na segunda fase do projeto em que se treina o rob atrav s de entradas e sa das obtidas atrav s do controlo remoto implementado no rob foi desenvolvida uma aplica o JAVA para o sistema operativo Android para efetuar o controlo remoto e receber os dados pares de valores dos sensores e velocidades angulares de cada um dos motores que s o utilizados para efetuar o treino da rede neuronal no MATLAB A raz o de se ter criado uma aplica o para o smartphone Android foi pela sua difus o ser grande atualmente estava dispon vel um smartphone com o sistema operativo Android que 45 poderia ser utilizado como interface de controlo e monitoriza o com melhor mobilidade do que um computador port til e esta ser uma rea que atualmente est em grande expans o e evoluc o O Integrated Development Environment IDE utilizado para desenvolver a aplica o foi o Eclipse 8 Este um IDE multilingu stico que permite o de
124. ois O indica que se pretende apenas simular a rede neuronal 1 indica que se pretende treinar a rede neuronal atrav s do algoritmo de retropropaga o No exemplo apresentado na Figura 51 o par metro de entrada O pois apenas se pretendia efetuar a simula o da RNA para posteriormente se comparar com a simula o efetuada no MATLAB Executando o programa criado com os pesos e os valores de entradas da rede iguais aos utilizados no MATLAB simulou se a rede neuronal que efetua o comportamento de seguir paredes obtendo se os resultados apresentados na Figura 52 S o apresentados a trago azul os dados experimentais do controlador difuso a tra o magenta os resultados da simula o no MATLAB e o tra o a vermelho os resultados da rede neuronal implementada em linguagem C 71 Velocidade Linear do Sistema 0 1043 F r E E E T T T T T 0 1043 LL E q 01043p gt gt EN Et E C Difuso gt 0 1043 i a RNA MATLAB RNA ling C 0 1042 E E E E 0 5 10 15 20 25 30 35 40 45 50 Tempo s Velocidade Angular do Sistema Tempo s Figura 52 Resposta apresentada pela simula o da rede neuronal utilizando os dados de entrada do treino no programa em linguagem C Analisando os gr ficos da Figura 52 pode se verificar que os resultados obtidos atrav s da simula o em linguagem C s o semelhantes aos resultados obtidos pela simula o no
125. oladores tem uma tarefa diferente mas que se integra com as tarefas de cada um dos outros microcontroladores diretamente ou indiretamente A arquitetura detalhada do AGV apresentada na Figura 18 31 CAN BUS Q SZ Porta S rie Virtual CES Q Figura 18 Arquitetura do AGV Um dos microcontroladores efetua o envio dos comandos e leitura das medi es dos sensores de ultrassons vulgarmente designados de sonares Posteriormente os valores medidos s o enviados via CAN para o microcontrolador que cont m o controlo atrav s da rede neuronal Outro dos microcontroladores efetua o controlo dos motores do rob atrav s de um controlador PI que recebe os valores de refer ncia via CAN enviados pelo controlador difuso neuronal Por fim o microcontrolador que cont m o controlador neuronal recebe as medi es efetuadas e a partir desses dados s o calculados os valores da velocidade linear e velocidade angular a que os motores do rob ter o de rodar O m dulo que cont m o controlador neuronal tamb m tem anexado um m dulo Bluetooth o modelo HPS 110 da HandyWave que permite enviar e receber dados remotamente A comunica o entre o m dulo Bluetooth e o m dulo do controlador difuso neuronal efetuado atrav s de RS 232 Neste trabalho esta funcionalidade n o constava do AGV inicial sendo adicionada para permitir uma melhor intera o com o AGV A tra o implementada no rob a tra o diferencial por possuir
126. olo de dos sensores velocidade dos motores Figura 19 Esquema representativo da intera o entre os v rios m dulos do sistema 33 O desenvolvimento de um sistema modular permite uma maior flexibilidade do sistema permitindo implementar futuras evolu es e melhorias com relativa facilidade A divis o das tarefas por diferentes m dulos permite tamb m simplificar a implementa o e desenvolvimento de c digo para o sistema visto que cada m dulo executa uma tarefa espec fica Na Figura 20 apresentado um esquema que representa o sistema a ser controlado pela rede neuronal a ser implementada atrav s dos quatro sonares e por dois motores que acionam as rodas do AGV Inicialmente pretende se que a rede neuronal fa a o AGV comportar se da mesma forma que se comportava quando estava a ser controlado por l gica difusa Obst culo y Refer ncia i p 1 Q y es mom D iv gt erro dist ncia refer ncia d erro orienta o d d Figura 20 Estrutura do AGV testado O m dulo respons vel pela aquisi o de dados provenientes dos sensores ir enviar os dados referentes a cada sensor assim que terminar a leitura dos quatro sensores atrav s de uma mensagem com o formato previsto no protocolo CAN O m dulo do controlador neuronal ao verificar que existe uma mensagem com o ID 5 sabe que esta proveniente do m dulo dos sensores e que a informa o contida na mensagem
127. os Para verificar se esta discrep ncia entre os dados utilizados no treino e os dados experimentais era pontual foi novamente amostrado o sistema difuso e o sistema neuronal a efetuar o mesmo trajeto que anteriormente Os resultados deste teste s o apresentados nas Figura 76 e Figura 77 atrav s da evolu o das vari veis de entrada da RNA A evolu o das vari veis de entrada 1 e 3 apresentada nos gr ficos da Figura 76 enquanto na Figura 77 s o apresentados os gr ficos da evolu o das vari veis de entrada EO e ED da RNA ao longo do tempo amostrado no teste 98 S1 cm S3 cm Evoluc o de S1 ao longo do tempo ESTA TVN My WOT F IN RR Wy VY I MN IA 30 um A Im f 20 p E E SA 102 r E E 0 60 80 100 120 140 Tempo s Evolu o de S3 ao longo do tempo CERTO FMF AAN f Wil Uh AN AN A UN i ji o nil WT T Hi MI NN IR Wi AA 0 IA t VI t METT a j M 15l L ji C Difuso ol RNA AGV 102 f t t t t E ct 0 20 40 60 80 100 120 140 Tempo s Figura 76 Resultados experimentais obtidos com a RNA e com o controlador difuso implementados no AGV a efetuar o trajeto de treino sensores de dete o de obst culos EO cm ED cm Evolu o de EO ao longo do tempo sE 120 140 Tempo s Evolu o de ED ao longo d
128. os pois o AGV percorria os percursos testados corretamente em ambos os casos Por fim concluiu se que vi vel a aplica o das redes neuronais no controlo de um AGV Mais ainda poss vel utilizar o sistema desenvolvido para implementar e testar novas RNA iii Palavras Chave Rede Neuronal Artificial AGV MATLAB Android Abstract This paper aims to introduce the concepts associated with neural networks and its application in control systems in this case in the field of autonomous robotics An AGV was used in order to test experimentally the control by an artificial neural network ANN The major advantage of neural networks is that they can be taught to work as intended From this feature were taken two approaches in implementing the AGV control In the first the AGV was taught to perform like the control by fuzzy logic that was previously developed The second approach taught the ANN to work from data taken from a simple remote control system Both approaches were initially implemented and simulated in MATLAB prior to making its implementation in the AGV The MATLAB was used to perform the training of multilayer feedforward neural networks by using the backpropagation algorithm of Levenberg Marquardt The implementation of the ANN was implemented in three stages MATLAB then in the C programming language and finally in the PIC microcontroller on the AGV thus illustrating the development of these techniques
129. os qu micos an lise de manuteng o de m quinas licitag o de projetos planeamento e gest o e modela o din mica de sistemas de processamento qu mico Na rea m dica as redes neuronais s o implementadas para efetuarem a an lise de c lulas do cancro da mama an lise de eletroencefalograma EEG e eletrocardiograma ECG projeto de pr teses otimiza o dos tempos de transplante a redu o das despesas hospitalares o melhoramento da qualidade hospitalar e o aconselhamento de testes m dicos em salas de emerg ncia Na rea da rob tica as redes neuronais s o aplicadas no controlo de trajet rias em rob s empilhadores no controlo de manipuladores e em sistemas de vis o Na rea da fala as redes neuronais permitem efetuar o reconhecimento da fala a compress o da fala a classifica o de vogais e a s ntese de fala a partir de texto Nas telecomunica es as redes neuronais s o utilizadas na compress o de imagem e de dados nos servi os autom ticos de informa o em sistemas de tradu o em tempo real de linguagem falada e sistemas de processamento de pagamentos de clientes 2 5 1 Roso ASPIRABOT 5 Nesta subsec o apresentado um exemplo o mais detalhado poss vel da aplica o de redes neuronais nas reas em que esta tese se enquadra controlo e rob tica O aspeto do rob AspiraBot onde a rede neuronal foi implementada est apresentado na Figura 11 25 Figura 11 Rob AGV
130. p developer android com reference packages html SILVA Jorge TERRA Rui Controlo de um motor CC Porto Instituto Superior de Engenharia do Porto 2013 BEALE Mark Hudson HAGAN Martin T DEMUTH Howard B Neural Network Toolbox User s Guide MATLAB R2013b The MathWorks Inc 2013 Descri o do algoritmo Nguyen Widrow no MATLAB ltimo acesso em 09 09 2013 http www mathworks com help nnet ref initnw html 123 15 Descrig o do algoritmo Levenberg Marquardt no MATLAB ltimo acesso em 09 09 2013 http www mathworks com help nnet ref trainlm html 16 KAWAGUCHI Kiyoshi A Multithreaded Software Model for Backpropagation Neural Network Applications The University of Texas at El Paso 2000 ltimo acesso em 30 08 2013 http wwwold ece utep edu research webfuzzy docs kk thesis kk thesis html thesis html 124 Anexo A RNA implementada em Linguagem C tinclude lt stdio h gt include lt math h gt include lt stdlib h gt define NUM NEURONS HL 12 define NUM INPUTS HL 4 define NUM NEURONS 0 define NUM INPUTS OL 1 E NO MN define MAX NUM ITERATIONS 1000 define MAX ERROR ACEPTABLE 0 define ACT_SIGMOID 0 define ACT BINARY 1 define ACT LINEAR 2 define RANDOM MAXIMUM 32767 define MIN VAL 1 define MAX VAL 1 define VAL WEIGHTS 1
131. po E Mm it Wt iT po 1 Ju ii IN 5 T 3 A eal CA ro id O A 8 3 F F F E a 300 400 5 600 700 Tempo s po MT i i i i O AA il t A Velocidade angular rad s C Remoto Figura 92 Dados de sa da para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado anteriormente Foi efetuado o treino da rede neuronal no MATLAB com os dados anteriormente apresentados e foram obtidos os pesos e polariza es que caraterizam a rede neuronal implementada no AGV que s o apresentados no extrato de c digo seguinte float weights HL NUM INPUTS HL NUM NEURONS HL 2 91 21 O A739 0 056943 3 41 79 0 72979 0 0503927 Oe 2AN 1 63652 Or OS One ee Or 013065 0 Ovo ORO SOS See Om 095079 0 0081399 0 3108 O SAGE 0 0197700 LSILSZ 0 1 OAS OOO mn O OOF 359292 O 16593 0 093436 3 9195 0 22133 O 7277L 0 MOST 1569 0 043346 0 24969 y A U2 Gar Zs sO Me 0 1306 On OOM TA OP DOS 7 GEO 0 040957 0 067546 O 1746097 Op IL TALS 0 YES 2 ST O PISA ZA y 0 5 SOS 0 o MOSS OSSO OS COLLOR BS y float weights OL NUM INPUTS OL NUM NEURONS OL O MO 1 2043 20
132. que inicializa o vetor dos pesos de cada uma das ne ps camadas da rede neuronal Z hea RA ERRAR RARA RARA ARA float float vondiiyvalhies imit float values ne maxval int op time aL 0 int random_generated 0 for i 0 i lt size i random generated rand values i maxval RANDOM MAXIMUM minval ES gt mia sizer minval r float random generated 1f op VAL INPUTS print Entrada inicial sel sic Var ama mes ab 4 if op VAL_WEIGHTS print Peso inicial el ne Nini al vales a 6 if op VAL BIAS printf Polaridade inicial d n ie al values all E return E A na mL Js Fun o que calcula o valor do beneficio de um neur nio ves ff VA de camada escondida RSA ia OK KKK KK IK I A I A A eA A A A A I A I AAA AAA oe beneri Cale albo seo Ouija went hetero ne Monica Me timon s E ron ae Neg float sum 0 0 oat benefit 0 0 ve Eb k 0 k lt neurons front k sum sum loe Scale cole elote benefit front k weight front k NUM NEURONS OL benefit omc El Sabido ISE 128 ORS ousou ES VE A ne Pa as Fun o que calcula o valor do beneficio de um neur nio sy de camada sa da ESA a 57 EE A float benefairicalclonfilcatloutput lO SETS gee float benefit 0 benerige gt 2 0 r
133. r 120 O tempo de execuc o da rede neuronal implementada no AGV em m dia 14 milissegundos na fase mais complexa enquanto no controlador difuso em m dia 12 milissegundos A causa para o tempo de execu o de um ciclo da implementa o da rede neuronal ser superior a implementag o do controlador difuso nao se ter otimizado o tipo de vari veis utilizadas na rede neuronal Como futuro melhoramento podia se substituir o controlo remoto simples implementado por um com mais niveis diferenciados conseguindo obter mais conjuntos inconfund veis de pares entrada sa da permitindo assim efetuar um treino da RNA com melhor desempenho Outro melhoramento que com a RNA implementada nesta abordagem seria menos trabalhosa do que com a abordagem anterior seria 0 acr scimo do n mero de sonares utilizados principalmente a colocag o de sensores do lado esquerdo da plataforma o que permitiria obter uma melhor vis o do meio ambiente pelo AGV Outro desenvolvimento futuro no trabalho desenvolvido seria modificar a implementa o no AGV modificando o tipo das vari veis usado de v rgula flutuante para inteiros permitindo assim diminuir o tempo de execug o do c lculo dos valores de sa da da rede neuronal 121 Refer ncias Documentais 1 2 3 4 5 6 7 8 9 10 11 12 13 14 OSORIO Dario Jorge dos Reis Controlo difuso de um AGV Porto Instituto Supe
134. raaaraada 106 Figura 84 Dados de sa da para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes cece ceeceseeeseeeeeeeeseeeseeeseecaecsaecsaecsaecsseeseesseeeseeeeneesaes 106 Figura 85 Resultados da simula o da RNA simulada no MATLAB quando a entrada s o os valores de entrada utilizados no treino velocidade angular do motor da direita 108 Figura 86 Resultados da simula o da RNA simulada no MATLAB quando a entrada s o os valores de entrada utilizados no treino velocidade angular do motor da esquerda 109 Figura 87 Resultados da simula o da RNA simulada no MATLAB quando a entrada s o os 200 primeiros valores de entrada utilizados no treino rena 110 Figura 88 Zona problem tica do percurso aleat rio cereais 110 Figura 89 Percurso criado para treinar a rede neuronal para resolver o problema encontrado a primeira sec o e b segunda sec o nono nono nono ncon nono no nn nono nc cnn crac ncnnnnnnn canos 111 Figura 90 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado anteriormente di ad 112 Figura 91 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 percursos diferentes e o percurso criado para resolver o problema encontrado anteriorm
135. rabot 5 A posterior implementa o desta rede neuronal no Aspirabot obteve um bom desempenho pois gerava as respostas necess rias aos est mulos que recebia do ambiente ou seja desviava se de obst culos O rob Aspirabot Figura 11 foi o resultado de um projeto de uma startup no Brasil que obteve notoriedade pela sua versatilidade sendo not cia em emissoras de TV local e jornais impressos Atualmente a p gina de internet da emprese referida neste projeto j n o refere nenhuma informa o sobre este projeto mas continua com o objetivo de desenvolver sistemas aut nomos para utilizar em casa 30 3 PLATAFORMA DO AGV E SUAS FUNCIONALIDADES Neste cap tulo apresentado o AGV que foi utilizado para obter os dados de treino para a rede neuronal que ir ser criada No rob ser implementada a rede neuronal e posteriormente feitos testes experimentais ao seu funcionamento O rob que foi utilizado foi desenvolvido na tese Controlo Difuso de um AGV efetuada em 2010 por D rio Os rio nesta mesma institui o 1 O rob desenvolvido nesta tese tinha como funcionalidades gerais o seguimento de paredes e desviar se de obst culos Como o t tulo indica foi implementado um controlo difuso o qual ir ser substitu do por um controlo atrav s de uma RNA 3 1 ARQUITETURA DO AGV O rob constitu do por tr s microcontroladores PIC18F4585 interligados atrav s de uma rede CAN Figura 18 Cada um dos microcontr
136. rain network rede trainParam showCommandLine 1 rede trainParam show 10 rede trainParam lr 0 01 rede trainParam mc 0 9 rede trainParam epochs 2000 rede trainParam goal 0 rede treino train rede inputs targets PerformanceFinal treino perf end pesosIL rede IW 1 pesosLW rede IW 2 polaridadel rede b 1 polaridade rede b 2 pause M RITO OI cito sen Simulate the Network saidas sim rede inputs subplot 211 107 tina lpolint_lengrn remote dara noe meva AA cp on joulo ne eabmS ivar Eero il nc On A E grata onm aale Ong proririms ivar nas ondas IME mapen OE xlabel Tempo s ylabel rad s title Velocidade Angular Motor da Direita subplot 2 F plian tamerv one ong esa An O O AA quita CmPlaollel Cis lOc eins vere sacas 2 Ig icaliagil jose y 6 xlabel Tempo s ylabel rad s title Velocidade Angular Motor da Esquerda pause Utilizando o c digo apresentado que implementa uma rede proactiva 4 12 2 no MATLAB obtiveram se os seguintes resultados apresentados na Figura 85 e Figura 86 A traco azul sao apresentados os valores das velocidades utilizadas como targets no treino e a trago magenta os valores das velocidades obtidas pela simula o da rede neuronal no MATLAB Estas figuras mostram as compara es entre o treino e a simula o para a velocidade angular do motor da roda direita e esquerda
137. rcurso n o treinado Posteriormente relatada a implementa o de uma RNA a partir do controlo remoto e os seu resultados Por fim apresentado um resumo da an lise dos resultados obtidos 5 1 IMPLEMENTA O DA RNA NUM MICROCONTROLADOR PIC Ap s se ter efetuado um projeto satisfat rio das redes neuronais atrav s do MATLAB referido nas sec es 4 2 4 4 e 4 5 do quarto cap tulo e se ter verificado a sua funcionalidade atrav s de um programa desenvolvido na linguagem de programag o C referido na secg o 4 3 que simula o funcionamento da rede neuronal passou se fase seguinte a implementa o da rede neuronal no microcontrolador do AGV que se pretende controlar Anteriormente este microcontrolador alojava o controlador difuso que foi modificado para se retirar amostras para o treino da rede neuronal como referido na sec o 4 1 Para criar o programa da rede neuronal foi utilizado o programa do controlador difuso como base eliminando o c digo desnecess rio relativo ao controlador difuso que foi substitu do 89 pelo c digo que implementa a rede neuronal O c digo que implementa a rede neuronal semelhante ao implementado no computador tendo sido este tamb m usado como base adicionando o c digo necess rio O fluxograma que representa o funcionamento do controlo atrav s da rede neuronal artificial apresentado na Figura 69 Inicializa es Leitura dos valores dos sensores recebidos via CAN
138. res MEEC rea de especializa o de Automa o e Sistemas do Departamento de Engenharia Eletrot cnica DEE do Instituto Superior de Engenharia do Porto ISEP desenvolveu se a Tese com o tema Controlo de um Rob Aut nomo atrav s de Redes Neuronais onde se abordou a tem tica das Redes Neuronais Artificiais e da sua implementa o na rob tica O objetivo principal o estudo dos conceitos associados s redes neuronais artificiais de modo a controlar um rob com uma rede neuronal artificial que fosse respons vel pela tomada de decis o do sistema A utiliza o de um Autonomous Guided Vehicle AGV disponibilizado pelo orientador permitiu efetuar testes ao sistema de controlo atrav s das redes neuronais artificiais de modo a retirarem se algumas conclus es e validar os sistemas de controlo propostos Devido necessidade de utilizar um sistema de controlo remoto para o AGV foi desenvolvida uma aplica o para um smartphone Android 1 1 CONTEXTUALIZA O Este projeto surgiu do desejo de realizar um trabalho no mbito do controlo especificamente o controlo de sistemas aut nomos atrav s de m todos utilizados na intelig ncia artificial O AGV utilizado para testar as redes neuronais criadas durante a elabora o desta tese j existia anteriormente pois tinha sido criado para testar o controlo de um AGV atrav s de l gica difusa O AGV e o controlador difuso foram utilizados como ferramentas para permitir a
139. rior de Engenharia do Porto 2010 ltimo acesso em 30 08 2013 http works dee isep ipp pt getpdf php A 1050356 amp B MEEC AS DUARTE RAMOS Herm nio Controlo Neuronal Lisboa Faculdade de Ci ncias e Tecnologia Universidade Nova de Lisboa PINTO Gustavo Filipe Lopes Correia Pinto Identificar e testar t cnicas baseadas em Redes Neuronais e L gica Difusa para o Controlo de Sem foros em Tr fego Urbano Porto Faculdade de Engenharia da Universidade do Porto 2007 HAGAN Martin T DEMUTH Howard B BEALE Mark H Neural Network Design Matlab Powerpoints ltimo acesso em 30 08 2013 http hagan okstate edu nnd html RIBEIRO Dionisio MACHADO K ssio PEREREIRS Levi Rede Neural Perceptron embarcada em rob tica AGV ROVER 2008 ltimo acesso em 27 12 2012 http www3 iesam pa edu br ojs index php computacao article view File 210 201 Manual do sonar SRFOS ltimo acesso em 30 08 2013 http www robot electronics co uk htm srf05tech htm HPS 110 Full Manual ltimo acesso em 30 08 2013 http www handywave usa com downloads HPS_120_manual_v2 0_english pdf IDE Eclipse ultimo acesso em 10 05 2013 http www eclipse org downloads Android SDK tltimo acesso em 10 05 2013 http developer android com sdk index html MEIER Reto Professional Android 4 Application Development WROX Indiana Wiley Publishing Inc 2012 Android Developers Android API packages index ltimo acesso em 02 05 2013 htt
140. ronal implementada no AspiraBot 5 O algoritmo de controlo da rede neuronal implementada apresentado na Figura 14 efetua a leitura dos sensores entradas da rede neuronal calcula o valor de entrada na fun o de ativa o de cada neur nio atrav s do somat rio pesado das entradas desse neur nios e dos seus pesos Posteriormente verifica se esse valor de entrada ativa ou n o a fun o de ativa o A fun o de ativa o usada no AspiraBot para cada um dos neur nios uma fun o bin ria que toma o valor 1 se a entrada for superior ou igual a 0 e O se a entrada for inferior a 0 Ap s o c lculo dos valores de sa da de cada neur nio chamada a fun o de evas o do obst culo dependendo dos valores da sa da da rede neuronal Por exemplo se o 28 valor de sa da da rede neuronal for 01 ent o chamada a fun o de evas o da direita ou seja vira para a esquerda Leitura dos sensores da nin CALCULO DA FUN O DE o in ATIVA O entradas 0 SONAR a entradas 1 FIMC_L Vij Y Wi j Jentradaspd i 1 entradas 2 FIMC_R CALCULO DA FUN O Chamda da Fun o de evas o de DE TRANSFER NCIA acordo com a saida da rede ex 1p V gt 0 Sep 0 1 e q 1 1 Ent o evadeR p v Opiv lt 0 Figura 14 Fluxograma da rede neuronal implementada no AspiraBot 5 Na Figura 15 apresentado o diagrama do algoritmo de treino da rede neuronal implementada no AspiraBot
141. rtamentos distintos sendo eles Seguir Parede Evitar Obst culo e Emerg ncia A exist ncia de tr s comportamentos levou a uma implementa o por fases com a sua complexidade de implementa o a aumentar permitindo assim verificar as diferen as que o controlo pela RNA apresentava em compara o com o controlador difuso em cada uma das fases Assim verificou se que o 119 controlo neuronal era bastante semelhante ao controlador difuso nas duas primeiras fases Criac o e treino de uma RNA que implementa o comportamento de seguir a parede e Criac o e treino de uma RNA que implementa o comportamento de seguir uma parede com descontinuidades No entanto na terceira fase Cria o e treino de uma RNA que implementa o seguimento de uma parede com descontinuidades e o desvio de obst culos j se verificou uma diferen a mais acentuada entre o controlo neuronal e o controlador difuso Apesar disto considera se que o controlo neuronal funciona satisfatoriamente em todas as tr s fases pois o AGV funciona como pretendido ou seja mant m uma dist ncia fixa parede que est a seguir desvia se dos obst culos que se apresentem no seu percurso e no caso de n o conseguir desviar se recua e posteriormente ultrapassa esse obst culo A passagem da implementa o em MATLAB para uma implementa o em microcontrolador foi intercalada por uma implementa o na linguagem de programa o C no computador permit
142. s 21 22 Supondo que o fator y anule o 2 de os 2 yf y Ap s a an lise matem tica do algoritmo descrevem se os passos da sua implementa o 1 Aplicar o vetor de entrada de um par de treino rede 2 Calcular a sa da do sistema 3 Calcular o benef cio para os elementos processadores finais 4 Calcular o benef cio para os elementos processadores interm dios 5 Calcular a varia o de cada peso 6 Redefinir os pesos segundo w k 1 wi k Aw k para a itera o k 7 Repetir todos os passos para cada vetor do conjunto de treino at se obter um erro admiss vel O desempenho deste algoritmo melhora significativamente quando fun o de ativa o usada nos elementos processadores adicionada uma polaridade b Com esta t cnica a converg ncia do treino para o erro desejado mais r pida Outro m todo de acelerar o algoritmo de treino pela inser o de um fator a que varia normalmente de O at 1 designado de momento Este fator adiciona ao ajuste dos pesos uma parcela proporcional varia o do peso na itera o anterior isto Este fator corresponde adi o de um momento de in rcia que refor a a tend ncia e evita grandes oscila es nos pesos Isto vantajoso quando o declive do erro muito baixo ou muito elevado Apesar da grande efici ncia do algoritmo de retropropaga o este pode apresentar dificuldades para o fen meno de paralisia da
143. s dados via Bluetooth 58 Figura 39 Exemplo dos dados recebidos via comunica o s rie sobre Bluetooth 59 Figura 40 Dados de entrada para o treino da RNA que implementa o comportamento de seguir Figura 41 Percurso amostrado atrav s do controlador difuso para o comportamento de seguir uma parede A A teas de tes anata nino Wee Ti ae ra 61 Figura 42 Dados de sa da do controlador difuso para o treino da RNA que implementa o comportamento de seguir paredes re eree erre cena cera ccoo nr nn corn n nro nccn nacos 61 Figura 43 Diagrama da rede neuronal implementada que realiza o comportamento seguir paredes Figura 44 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o n mero de neur nios na camada escondida velocidade linear 65 Figura 45 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o n mero de neur nios na camada escondida velocidade angular 65 Figura 46 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o fator de aprendizagem velocidade linear 66 Figura 47 Compara o dos resultados do treino de uma rede neuronal com o algoritmo retropropaga o variando o fator de aprendizagem velocidade angular 66 Figura 48 Interface gr fica apresentada
144. s facilita a introdu o de futuros m dulos no sistema A rede implementada tem como fun o promover a intera o entre os v rios n s sendo respons vel pela difus o das mensagens Uma vez que n o existe um n mero elevado de identificadores ou seja de mensagens n o seria uma grande preocupa o a taxa de comunica o De qualquer modo optou se por uma taxa de comunica o de 444 kbps Cada n envia e recebe apenas as vari veis que lhe interessam podendo se utilizar os 8 bytes dispon veis na mensagem CAN para o envio das vari veis que se pretende desde que se tenha em aten o o formato de cada uma delas De seguida s o referidos os formatos das mensagens que cada n envia ficando assim definido o formato das mesmas como informa o para futuras evolu es do sistema 37 O n dos sensores envia mensagens com o identificador n mero 5 ID5 em que os 8 bytes da mensagem CAN est o divididos da forma representada na Figura 26 ID 5 n byte Tamanho 1 byte 0 Sensor 1 Byte menos significativo 1 Sensor 1 Byte mais significativo 2 Sensor 2 Byte menos significativo 3 Sensor 2 Byte mais significativo 4 Sensor 3 Byte menos significativo 5 Sensor 3 Byte mais significativo 6 Sensor 4 Byte menos significativo 7 Sensor 4 Byte mais significativo Figura 26 Mensagem enviada pelo n que efetua a leitura dos sonares O n do controlador neuronal envia mensagens com o
145. s outros dois percursos al m do j apresentado na sec o 4 5 porque na ocasi o em que os percursos foram amostrados estes tamb m foram criados Os percursos eram as duas paredes de um corredor onde se colocaram obst culos uma caixa era colocada 104 aleatoriamente no caminho do AGV para este se ter de desviar Na Figura 82 apresentada a evolu o das vari veis de entrada 1 e 3 ao longo do tempo amostrado Evoluc o de S1 ao longo ii mit TT il wi LI WI INK E Al mi i iit IN A Ba i PA JUN o 1 00 o 300 400 500 600 a E TT om longo ES Ti Cos E mi li E so MI ae ALA LI ee ee ee Tempo s Figura 82 Dados de entrada para o treino da RNA amostrados do controlo remoto enquanto o AGV percorre os 3 trajetos diferentes S1 e S3 Como se pode verificar pela an lise da Figura 82 e Figura 83 os valores m ximos das medi es dos sensores foram limitados a 100 cm de forma a que se tenha um conjunto de treino limitado para que os pares de entradas sa das utilizados no treino o representem de forma satisfat ria Se este conjunto n o for representado de forma satisfat ria os valores de sa da poder o n o ser estimados satisfatoriamente quando na entrada se tem um conjunto de valores n o treinados Um exemplo deste problema era se o conjunto de entrada m ximo medido pelos sensores S1 2 3 4 100
146. se verificou para o neur nio da vari vel da velocidade angular Com os resultados obtidos considerou se que tinha sido criada uma rede neuronal que satisfazia o comportamento pretendido passando se assim ao passo seguinte a sua implementa o em linguagem C 4 3 IMPLEMENTA O DE UMA REDE NEURONAL EM LINGUAGEM C A implementa o em linguagem C de uma rede neuronal teve como objetivo obter uma plataforma para facilitar a implementa o e posteriores testes de funcionamento das v rias redes neuronais que foram desenvolvidas atrav s do uso de ficheiros para a interface de comunica o de dados entre o programa em linguagem C criado para implementar a rede neuronal e o MATLAB para an lise gr fica dos resultados e tamb m para a compara o entre a implementa o em linguagem C e a implementa o utilizando o MATLAB Na Figura 50 apresentado o fluxograma do programa criado para implementar uma rede neuronal Nesse fluxograma mostrado o fluxo de execu o do programa quando se pretende simular o funcionamento da RNA O programa criado tem como principal funcionalidade a implementa o de uma rede neuronal multicamada do tipo feedforward como a apresentada na Figura 43 Para isso a aplica o efetua a leitura de ficheiros que cont m os pesos a serem utlizados na rede e as entradas a que a rede ter de responder Depois s o calculados os valores de sa da da rede neuronal que s o escritos num ficheiro para poster
147. senvolvimento de projetos para Android atrav s do Android SDK Software Development Kit 9 Dado que hoje em dia a maioria dos telem veis j possuem m dulo Bluetooth optou se por continuar a utilizar a comunica o Bluetooth entre o sistema e o Android tal como era utilizado com a comunicag o entre o sistema e o computador Para a aplicac o suportar estes requisitos necess rio recorrer a Application Programming Interface API de Bluetooth do Android Devido falta de conhecimento sobre o sistema operativo Android e Bluetooth recorreu se aplica o designada de BluetoothChat disponibilizada como exemplo no IDE A partir desta e do estudo da API conseguiu se realizar os requisitos desejados A aplicag o que foi utilizada de base possibilita a comunica o entre dois dispositivos atrav s de um chat de texto apresentado na Figura 33 onde se podem ver os v rios layouts e funcionalidades dispon veis na aplicac o 00 PPA SFA TO nora 31 connecting connected to HTC Sensation A select a device to connect Palred Devices H e ition Hello Desire A ES E Me DS Bad Bik Ms Bo Bs QWERTYUIOP e 5 TA TS ET PR g ASDFGHJ KL 6 Figura 33 Imagens da aplicac o base utilizada para desenvolver a aplicac o Android pretendida 46 Assim tendo como base esta aplicag o foi criada a aplicag o que ser em seguida apresentada atrav s das suas interfaces com o utilizador e das suas principais funcional
148. solv lo atrav s da adi o dos dados desse percurso ao dados utilizados no treino desta RNA Figura 88 Zona problem tica do percurso aleat rio 110 5 3 2 REDE NEURONAL TREINADA COM DADOS AMOSTRADOS DO AGV CONTROLADO REMOTAMENTE A PERCORRER OS 3 PERCURSOS DIFERENTES E O PERCURSO CRIADO PARA RESOLVER O PROBLEMA ENCONTRADO ANTERIORMENTE O percurso criado para resolver o problema anterior apresentado na Figura 89 destacando se com um c rculo vermelho a sec o que se pretende que simule a zona problem tica Os dados amostrados do AGV controlado remotamente a percorrer este percurso foram adicionados a um ficheiro que cont m tamb m as amostras utilizadas na sec o 5 3 1 a b Figura 89 Percurso criado para treinar a rede neuronal para resolver o problema encontrado a primeira sec o e b segunda sec o Na Figura 90 Figura 91 e Figura 92 s o apresentados todos os dados amostrados que ser o utilizados no treino desta rede neuronal Comparando estes dados de entrada com os dados de entrada utilizados na sec o anterior nota se que os dados deste percurso foram adicionados no in cio e no fim O percurso amostrado gerou 150 amostras ou seja os primeiros e os ltimos 75 segundos a frequ ncia de amostragem de 2 Hz apresentados nos gr ficos dos valores de entrada e de sa da correspondem ao novo percurso Na Figura 90 s o mostrados os dados que se referem evolu o de S1 e 3 durante o tempo a
149. tores em que cada vetor relativo a uma das vari veis de entrada ou de sa da do controlador difuso com um tamanho de 100 posi es e com uma frequ ncia de amostragem de 2 Hz Os dados guardados s o as medi es feitas pelos sensores S1 2 3 e 4 em cm o erro de orienta o EO diferen a entre a medi o do sensor 54 e o sensor 2 o erro de distancia ED diferenga entre o valor de refer ncia da distancia entre o AGV e a parede e a medi o do sensor 4 o valor de refer ncia da dist ncia 38 entre o AGV e a parede Ref a velocidade linear do sistema Vfinal e a velocidade angular do sistema Wfinal Para enviar os dados guardados a cada 100 amostras foi utilizado o m dulo Bluetooth existente no AGV que comunica com o microcontrolador via USART Na Figura 39 apresentado um extrato dos dados recebidos no PC via Bluetooth simulando uma comunica o s rie Como se pode verificar pela figura cada amostra linha composta por 10 valores colunas sendo o primeiro o n mero da amostra enquanto as outras colunas s o os dados guardados nos vetores durante a execu o do programa e pela seguinte ordem S1 2 3 4 EO ED Ref Vfinal e Wfinal e 46 15 36 15 6 15 30 0 10429 6 14 54 1 46 15 30 15 6 15 36 0 10429 0 14784 2 46 15 30 16 1 14 36 0 10429 6 11 25 3 48 15 30 17 2 13 36 0 10429 0 11725 4 48 15 26 19 4 11 30 0 10429 0 06627 5 46 17 28 21 4 9 30 0 10429 0 00509 6 48 18 30 22 4 8 30 0 10429
150. utilizados no treino como targets trago azul Nesta figura verifica se que os valores que a rede neuronal apresenta na sua sa da n o s o os valores definidos utilizados no treino Esta discrep ncia de valores era esperada e pretendida pois assim o AGV ira apresentar um funcionamento mais suave nas varia es das velocidades do que teria se os valores de sa da da rede neuronal fossem exatamente os utilizados como targets A implementa o desta rede neuronal no AGV apresenta um funcionamento timo no percurso treinado mas no percurso aleat rio apresenta uma situac o em que reage de uma forma n o pretendida Na zona apresentada na Figura 88 que pertence ao percurso aleat rio o AGV controlado autonomamente pela rede neuronal treinada atrav s de dados amostrados do controlo remoto na esquina destacada pelo c rculo vermelho n o se desviava da parede e posteriormente aproximava se desta at ir de encontro a ela 109 Velocidade angular do motor da direita E E Velocidade angular rad s Tempo s Velocidade angular do motor da esquerda C Remoto Velocidade angular rad s Figura 87 Resultados da simula o da RNA simulada no MATLAB quando a entrada s o os 200 primeiros valores de entrada utilizados no treino De forma a solucionar este problema resolveu se criar um percurso que tivesse uma zona com um problema semelhante a este para tentar re
151. vam uma rede neuronal que apresentava um funcionamento satisfat rio quando o percurso que o AGV tinha de percorrer era o mesmo que o treinado no percurso aleat rio isto j n o se verificava Por isso foi necess rio testar outras solu es que permitissem desenvolver uma rede neuronal que funcionasse de forma satisfat ria no percurso aleat rio 5 3 1 REDE NEURONAL TREINADA COM DADOS AMOSTRADOS DO AGV CONTROLADO REMOTAMENTE A PERCORRER OS 3 PERCURSOS DIFERENTES De forma a resolver o problema anterior do AGV n o percorrer satisfatoriamente o percurso aleat rio quando controlado com uma RNA treinada com dados amostrados do rob a efetuar o percurso apresentado na Figura 60 at Figura 62 foi realizado um teste experimental composto por tr s percursos diferentes em que um destes tr s percursos era o percurso apresentado nessas figuras Os dados amostrados do AGV a percorrer os tr s percursos s o apresentados na Figura 82 Figura 83 e Figura 84 e estes foram utilizados para o treino da RNA Tanto os dados de entrada como os dados de sa da que foram amostrados e que s o apresentados na Figura 82 Figura 83 e Figura 84 correspondem aos tr s percursos diferentes que foram utilizados no treino desta nova RNA Como se verifica nos gr ficos n o se distinguem os tr s percursos porque quando se efetuou a amostragem n o se teve isso em aten o tendo se efetuado esta de forma continua Al m disso n o s o apresentadas fotografias do
152. za o e controlo em Android 1 4 ORGANIZA O DO RELAT RIO Zz O relat rio constitu do por seis cap tulos sendo eles Introdu o Redes Neuronais Artificiais Plataforma do AGV e suas Funcionalidades Projeto e Simulag o da RNA Testes e Resultados e Conclus es No primeiro cap tulo feita uma introdu o ao projeto e aos objetivos do mesmo No Cap tulo 2 s o introduzidos os conceitos associados s redes neuronais artificiais No terceiro cap tulo apresentada a arquitetura do sistema utilizado e da aplica o desenvolvida para um smartphone Android No Cap tulo 4 apresenta se a fase de projeto e simula o das v rias redes neuronais implementadas para o controlo de um AGV No quinto cap tulo referido a implementa o das redes neuronais apresentados os resultados obtidos e a sua an lise No cap tulo seguinte Cap tulo 6 s o apresentadas as conclus es retiradas do projeto efetuado e propostas melhorias para trabalhos futuros 2 REDES NEURONAIS ARTIFICIAIS O trabalho em Redes Neuronais Artificiais RNA tem sido motivado e desenvolvido pelo reconhecimento de que o c rebro humano processa todas as informa es captadas de uma forma muito pr pria O c rebro pode ser compar vel a um computador altamente complexo n o linear e paralelo Ele tem a capacidade de estruturar e organizar as suas unidades de processamento conhecidas por neur nios de forma a realizar um processamento muito mais r pido
Download Pdf Manuals
Related Search
Related Contents
A USER GUIDE FOR TRIVAC VERSION4 A. Hébert Report 0 CHECK INSTALLATION DIMENSIONS t O INSTALL FLANGE IN Leisure Cookmaster CK90G232 Manuel d`utilisation Digital Voice Recorder Philips Dry iron HD1134 JDSU: User Manual - FiberChek2 NOTICE DLUTILISATION Poulan 187570 Lawn Mower User Manual Copyright © All rights reserved.
Failed to retrieve file