• Nenhum resultado encontrado

Estudo e implementação de redes neurais e algoritmos genéticos para resolução de cinemática inversa de um manipulador robótico com 5 graus de liberdade

N/A
N/A
Protected

Academic year: 2021

Share "Estudo e implementação de redes neurais e algoritmos genéticos para resolução de cinemática inversa de um manipulador robótico com 5 graus de liberdade"

Copied!
113
0
0

Texto

(1)

Francisco Erivaldo Fernandes Junior

Estudo e implementa¸

ao de redes neurais e algoritmos

gen´

eticos para resolu¸

ao de cinem´

atica inversa de um

manipulador rob´

otico com 5 graus de liberdade

CAMPINAS 2014

(2)
(3)

Universidade Estadual de Campinas

Faculdade de Engenharia El´

etrica e de Computa¸c˜

ao

Francisco Erivaldo Fernandes Junior

Estudo e implementa¸c˜ao de redes neurais e algoritmos gen´eticos para resolu¸c˜ao de cinem´atica inversa de um manipulador rob´otico com 5 graus de

liberdade

Disserta¸c˜ao apresentada `a Faculdade de Engenharia El´etrica e de Computa¸c˜ao da Universidade Estadual de Campinas como parte dos requisitos exigidos para obten¸c˜ao do t´ıtulo de Mestre em Engenharia El´etrica. ´Area de concentra¸c˜ao: Automa¸c˜ao.

Orientador: Dr. Marconi Kolm Madrid

Este exemplar corresponde `a vers˜ao final da disserta¸c˜ao defendida pelo aluno Francisco Erivaldo Fernandes Junior, e orientado pelo Prof. Dr. Marconi Kolm Madrid.

CAMPINAS 2014

(4)

Biblioteca da Área de Engenharia e Arquitetura Rose Meire da Silva - CRB 8/5974

Fernandes Junior, Francisco Erivaldo,

F391e FerEstudo e implementação de redes neurais e algoritmos genéticos para resolução de cinemática inversa de um manipulador robótico com 5 graus de liberdade / Francisco Erivaldo Fernandes Junior. – Campinas, SP : [s.n.], 2014.

FerOrientador: Marconi Kolm Madrid.

FerDissertação (mestrado) – Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computação.

Fer1. Robótica. 2. Cinemática. 3. Redes neurais artificiais. 4. Algoritmos

genéticos. I. Madrid, Marconi Kolm,1962-. II. Universidade Estadual de Campinas. Faculdade de Engenharia Elétrica e de Computação. III. Título.

Informações para Biblioteca Digital

Título em outro idioma: Study and implementation of neural networks and genetic algorithms

to solve the inverse kinematics of a 5-DOF robotic manipulator

Palavras-chave em inglês:

Robotics Kinematics

Artificial neural networks Genetics algorithms

Área de concentração: Automação Titulação: Mestre em Engenharia Elétrica Banca examinadora:

Marconi Kolm Madrid [Orientador] Auzuir Ripardo de Alexandria José Raimundo de Oliveira

Data de defesa: 11-04-2014

Programa de Pós-Graduação: Engenharia Elétrica

Powered by TCPDF (www.tcpdf.org)

(5)
(6)
(7)

RESUMO

No presente trabalho ´e mostrado o estudo e a implementa¸c˜ao das Redes Neurais Artificiais, RNA, e Algoritmos Gen´eticos, AG, para resolu¸c˜ao da cinem´atica inversa de um manipulador rob´otico com 5 graus de liberdade. Todo manipulador rob´otico ´e constru´ıdo com o objetivo de se realize uma determinada tarefa. Para alcan¸car esse objetivo ´e necess´ario o estudo e o emprego dos seus modelos cinem´aticos. A descri¸c˜ao matem´atica do movimento espacial realizado por cada elo do robˆo ´e conhecida como Cinem´atica que ´e o estudo do movimento de um corpo ou um sistema de corpos r´ıgidos em rela¸c˜ao a um referencial cartesiano fixo ignorando as for¸cas e os momentos que causam tal movimento. Existem dois problemas ao se estudar a cinem´atica de um robˆo: o problema da cinem´atica direta e o problema da cinem´atica inversa. A cinem´atica inversa ´e um ramo com grandes desafios devido as equa¸c˜oes n˜ao serem lineares, dificultando a determina¸c˜ao de solu¸c˜oes de uma forma fechada. Portanto, diversos pesquisadores, ao longo dos anos, tentam resolver esse problema evitando o uso de invers˜oes de equa¸c˜oes. Nesse sentido, o uso das redes neurais artificiais e dos algoritmos gen´eticos se mostram alternativas atraentes. As solu¸c˜oes encontradas no presente trabalho foram aplicadas a um robˆo educacional com 5 graus de liberdade composto de seis servomotores controlado por um microcontrolador Arduino Uno. O software MATLAB foi utilizado como ferramenta para o desenvolvimento e a aplica¸c˜ao desses dois m´etodos.

Palavras-chave: Rob´otica, Cinem´atica, Redes Neurais Artificiais, Algoritmos Gen´eticos.

ABSTRACT

The present work shows the study and implementation of Artificial Neural Networks, ANN, and Genetic Algorithms, AG, to solve the inverse kinematics of a robotic manipulator with 5 degree of freedom. Every robotic manipulator is constructed with the goal of perform a specific task. To reach this goal, the robot needs to track a path, and for that it is necessary the study of its kinematics. The math description of the spatial movement performed by its links is known as kinematics that is the study of the movement of a rigid body or system of rigid bodies in relation to a fixed cartesian reference disregarding the forces and momentums that cause the movement. There are two problems when studying the kinematics: the forward kinematics problem and the inverse kinematics problem. The inverse kinematics is a field of study with challenges due the fact that the equations are not linear which become a problem to obtain closed form solutions. Therefore, many scientists try to solve this problem with methods that do not use equation inversions. In this sense, the use of artificial neural networks and genetic algorithms prove to be interesting alternatives for this purpose. The solutions found in this work were applied to an educational robot platform with 5 degree of freedom and six servomotors controlled by an Arduino Uno microcontroller. The MATLAB software was used as a tool to develop and application of these two methods.

Key-words: Robotics, Kinematics, Artificial Neural Networks, Genetics Algorithms.

(8)
(9)

Sum´

ario

Agradecimentos xiii

Lista de Figuras xvi

Lista de Tabelas xvii

1 Introdu¸c˜ao 1

1.1 Motiva¸c˜ao . . . 1

1.2 Objetivos . . . 2

1.3 Trabalhos relacionados . . . 3

1.4 Metodologia . . . 4

1.5 Delimita¸c˜oes do trabalho . . . 4

1.6 Estrutura do trabalho . . . 4

2 Cinem´atica de manipuladores rob´oticos 7 2.1 Introdu¸c˜ao . . . 7

2.2 Descri¸c˜ao espacial e transforma¸c˜oes . . . 9

2.2.1 Descrevendo posi¸c˜oes no espa¸co . . . 9

2.2.2 Descrevendo orienta¸c˜oes no espa¸co . . . 9

2.2.3 Matrizes de rota¸c˜ao . . . 10

2.2.4 Descrevendo um frame . . . 10

2.2.5 Transforma¸c˜oes . . . 10

2.3 Cinem´atica Direta . . . 12

2.3.1 Cadeias Cinem´aticas . . . 12

2.3.2 M´etodo de Denavit-Hartenberg . . . 13

2.4 Cinem´atica Inversa . . . 16

2.4.1 M´etodo alg´ebrico . . . 16

2.4.2 M´etodo geom´etrico . . . 19

2.4.3 Solu¸c˜ao alg´ebrica por redu¸c˜ao polinomial . . . 20

3 Redes Neurais Artificiais 21 3.1 Introdu¸c˜ao . . . 21

3.2 Hist´orico . . . 22

3.3 Fundamentos . . . 23

3.3.1 Um framework para representa¸c˜ao distribu´ıda . . . 23

3.3.2 N´os de processamento . . . 24

3.3.3 Conex˜oes entre n´os . . . 25

3.3.4 Ativa¸c˜ao e regras de sa´ıda . . . 25

(10)

3.3.7 Modificando parˆametros de conectividade . . . 27

3.4 Redes perceptron feed-forward de m´ultiplas camadas . . . 27

3.5 Algoritmo de retro-propaga¸c˜ao . . . 29

3.5.1 Regra delta generalizada . . . 29

3.5.2 Entendendo a retro-propaga¸c˜ao . . . 31

3.5.3 Trabalhando com a retro-propaga¸c˜ao . . . 31

4 Algoritmos Gen´eticos 33 4.1 Introdu¸c˜ao . . . 33

4.2 Hist´orico . . . 34

4.3 Terminologia . . . 35

4.4 Funcionamento de um algoritmo gen´etico . . . 35

4.4.1 Representa¸c˜ao cromossomial . . . 36

4.4.2 Fun¸c˜ao de avalia¸c˜ao . . . 37

4.4.3 Sele¸c˜ao de pais . . . 37

4.4.4 Operadores de crossover e muta¸c˜ao . . . 38

4.4.5 M´odulo de popula¸c˜ao . . . 39

4.5 Teorema dos Esquemas . . . 39

5 Simula¸c˜oes e Implementa¸c˜ao pr´atica 43 5.1 Materiais utilizados . . . 43

5.2 Placa de controle do robˆo . . . 44

5.3 Programa para testar o robˆo . . . 45

5.4 Cinem´atica direta do robˆo em estudo . . . 46

5.5 Trajet´oria utilizada para testes . . . 47

5.6 Metodologia utilizada . . . 49

5.7 Aplica¸c˜ao das redes neurais na resolu¸c˜ao da cinem´atica inversa . . . 50

5.7.1 Resultados da utiliza¸c˜ao das redes neurais no problema simplificado . . . 50

5.7.2 Resultados da utiliza¸c˜ao das redes neurais no problema completo . . . . 52

5.8 Aplica¸c˜ao dos algoritmos gen´eticos na resolu¸c˜ao da cinem´atica inversa . . . 53

5.8.1 Resultados da aplica¸c˜ao dos algoritmos gen´eticos no problema simplificado 54 5.8.2 Resultado dos algoritmos gen´eticos no problema completo . . . 55

5.9 Implementando os resultados no robˆo . . . 56

6 Conclus˜oes e perspectivas 59 6.1 Contribui¸c˜oes . . . 60

6.2 Dificuldades encontradas . . . 60

6.3 Sugest˜oes para trabalhos futuros . . . 61

Referˆencias 63

A Placa utilizada no controle do robˆo 69

B C´odigo-fonte do programa para o controle manual do robˆo 73 C C´odigo para gera¸c˜ao da trajet´oria de testes 79

(11)

D C´odigo para o treinamento da rede neural 83 E C´odigo para verificar o erro no rastreamento da trajet´oria usando redes

neu-rais 87

F C´odigo para otimiza¸c˜ao via algoritmo gen´etico 91 G C´odigo da implementa¸c˜ao dos resultados no robˆo 95

(12)
(13)

Agradecimentos

Agrade¸co a Universidade Estadual de Campinas e a todo o corpo docente pela educa¸c˜ao de qualidade que recebi;

Agrade¸co ao professor Madrid pela oportunidade de aprofundar meus estudos, pela orienta¸c˜ao e paciˆencia;

Agrade¸co ao colega do LSMR, Alberto Noboru Miyadaira, pelo companheirismo e conselhos durante a realiza¸c˜ao do trabalho;

Agrade¸co `a minha fam´ılia por sempre me apoiarem;

Agrade¸co `a minha noiva, Mariana, por sempre est´a comigo mesmo separados por uma grande distˆancia f´ısica;

Agrade¸co ao CNPq pela bolsa de estudos.

(14)
(15)

Lista de Figuras

2.1 Manipulador paralelo, adaptado de [37]. . . 8

2.2 Manipulador serial, adaptado de [1]. . . 8

2.3 O problema da cinem´atica, adaptado de [6]. . . 9

2.4 Exemplo de transforma¸c˜ao, adaptador de [5]. . . 11

2.5 Exemplo de fixa¸c˜ao de frames, adaptado de [1]. . . 12

2.6 Manipulador planar com 2 graus de liberdade, adaptado de [1]. . . 15

2.7 Manipulador planar com 3 graus de liberdade, adaptado de [5]. . . 17

2.8 Solu¸c˜ao geom´etrica para um manipulador com 3 graus de liberdade, adaptado de [5]. 19 3.1 Exemplo de uma Rede Neural Artificial, adaptado de [39]. . . 22

3.2 Componentes de uma Rede Neural Artificial, adaptado de [7]. . . 24

3.3 Exemplos de fun¸c˜oes de ativa¸c˜ao: (a) fun¸c˜ao sgn, (b) fun¸c˜ao semi-linear, (c) fun¸c˜ao sigmoide. Adaptado de [7]. . . 26

3.4 Exemplo de uma rede perceptron com m´ultiplas camadas, adaptado de [38]. . . 28

3.5 Fluxo de sinais em uma rede perceptron com m´ultiplas camadas, adaptado de [38]. 29 4.1 Funcionamento b´asico de um algoritmo gen´etico, adaptado de [8]. . . 36

5.1 Robˆo manipulador educacional que foi usado na realiza¸c˜ao do trabalho. . . 44

5.2 Arduino Uno Rev2. . . 45

5.3 Programa para o controle manual do robˆo. . . 45

5.4 Posicionamento dos eixos coordenados no robˆo. . . 48

5.5 Trajet´oria utilizada nos testes. . . 49

5.6 Valores de cada junta ao longo da trajet´oria. . . 49

5.7 Entradas e sa´ıdas utilizadas na RNA para resolver a cinem´atica inversa. . . 51

5.8 Erro quadr´atico m´edio do treinamento da rede neural no primeiro teste. . . 52

5.9 Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando rede neural no primeiro teste. . . 52

5.10 Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando rede neural no segundo teste. . . 54

5.11 C´odigo gen´etico dos indiv´ıduos do primeiro teste dos algoritmos gen´eticos. . . . 55

5.12 Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando algoritmo gen´etico no primeiro teste. . . 55

5.13 Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando algoritmo gen´etico no segundo teste. . . 57

A.1 Esquem´atico do circuito da placa de controle do robˆo. . . 69

A.2 Roteamento da placa de controle do robˆo. . . 70

A.3 Visualiza¸c˜ao da placa em 3D. . . 71

(16)
(17)

Lista de Tabelas

2.1 Parˆametros dos elos para um manipulador planar com 2 graus de liberdade. . . 16 2.2 Parˆametros dos elos para um manipulador planar com 3 graus de liberdade. . . 16 4.1 Terminologia usada nos algoritmos gen´eticos. . . 35 5.1 Parˆametros dos elos do robˆo em estudo. . . 47

(18)
(19)

Cap´ıtulo 1

Introdu¸

ao

Este cap´ıtulo cont´em as principais orienta¸c˜oes sobre o desenvolvimento do presente trabalho, como tema, motiva¸c˜ao, revis˜ao bibliogr´afica, objetivos, delimita¸c˜oes e estru-tura do trabalho.

1.1

Motiva¸

ao

A Rob´otica ´e um campo de pesquisa tecnol´ogica relativamente jovem que n˜ao ´e limitada pelas tradicionais fronteiras existentes entre as diversas engenharias. Para o entendimento das complexidades e aplica¸c˜oes que envolvem o estudo dos robˆos s˜ao geralmente necess´arios conhecimentos de Engenharia El´etrica, Engenharia Mecˆanica, Engenharia Industrial e de Sistemas, Ciˆencias da Computa¸c˜ao, Economia e Matem´atica [1]. Al´em disso, os robˆos s˜ao as principais ferramentas utilizadas na automa¸c˜ao da produ¸c˜ao industrial, em tarefas perigosas, em tarefas no espa¸co sideral e/ou em qualquer tarefa em que se deseja que uma m´aquina substitua ou coopere com seres humanos [2, 3]. Por isso, o estudo dessas m´aquinas tˆem vital importˆancia para o desenvolvimento das ´areas de tecnologia em Mecatrˆonica e Automa¸c˜ao.

Os robˆos podem ser classificados primariamente como robˆos manipuladores e robˆos m´oveis. Os robˆos manipuladores consistem de uma sequˆencia de elos, que podem ser r´ıgidos ou flex´ıveis, interconectados por meio de articula¸c˜oes, chamadas de juntas. Um manipulador ´e caracterizado por um bra¸co que assegura mobilidade, um pulso que confere destreza e um end-effector, ou garra, ao qual pode ser acoplada uma determinada ferramenta para realizar a tarefa requerida pelo robˆo. Al´em disso, cada junta presente na estrutura mecˆanica do manipulador contribui com 1 grau de liberdade. Por outro lado, a caracter´ıstica principal dos robˆos m´oveis ´e a presen¸ca de uma base m´ovel que permite ao robˆo mover-se livremente em um ambiente. Ao contr´ario dos manipuladores, que s˜ao usados principalmente na Ind´ustria, os robˆos m´oveis s˜ao usados principalmente em aplica¸c˜oes de servi¸co em que ´e necess´aria capacidade de movimento autˆonomo [3].

Um manipulador rob´otico ´e projetado para executar uma tarefa em um espa¸co 2D ou 3D. A ferramenta ou a garra necessita seguir uma determinada trajet´oria para realizar esta tarefa. Com isso faz-se necess´ario o controle da posi¸c˜ao de cada elo do robˆo para a obten¸c˜ao da posi¸c˜ao e da orienta¸c˜ao desejada. A descri¸c˜ao matem´atica do movimento espacial realizado por seus elos ´

e conhecida como Cinem´atica [2] que ´e o estudo do movimento de um corpo ou um sistema de corpos r´ıgidos em rela¸c˜ao a um referencial cartesiano fixo, ignorando as for¸cas e os momentos que

(20)

causam tal movimento [4]. Al´em disso, ´e poss´ıvel realizar o estudo cinem´atico em manipuladores cujos elos s˜ao flex´ıveis, o que ficaria em outro contexto de estudos. A formula¸c˜ao da cinem´atica de um robˆo permite o estudo de dois problemas chaves na Rob´otica: o problema da cinem´atica direta e o problema da cinem´atica inversa. A cinem´atica direta permite determinar a posi¸c˜ao e a orienta¸c˜ao da garra do robˆo, em rela¸c˜ao a um referencial cartesiano fixo, a partir dos valores das suas juntas. Por outro lado, o modelo cinem´atico inverso permite determinar os valores dos posicionamentos das juntas do robˆo a partir da posi¸c˜ao e da orienta¸c˜ao da garra. Se considerarmos elos r´ıgidos, a cinem´atica direta pode ser facilmente obtida pela utiliza¸c˜ao da conven¸c˜ao de Denavit-Hartenberg. Entretanto, n˜ao existe uma forma simples de se obter o modelo cinem´atico inverso de um robˆo [1–3, 5, 6].

Os dois principais m´etodos encontrados na literatura para a resolu¸c˜ao da cinem´atica inversa s˜ao os m´etodos alg´ebricos e geom´etricos, ambos fazem uso de invers˜oes das equa¸c˜oes obtidas pela cinem´atica direta [1, 5]. Sendo assim, a obten¸c˜ao do modelo cinem´atico de um manipulador ´

e uma tarefa complexa devido as seguintes raz˜oes [3, 5]:

ˆ As equa¸c˜oes s˜ao em geral n˜ao-lineares e transcendentais, por isso, nem sempre ´e poss´ıvel encontrar solu¸c˜oes de forma fechada;

ˆ M´ultiplas solu¸c˜oes podem existir;

ˆ Infinitas solu¸c˜oes podem existir, por exemplo, no caso de um manipulador redundante; ˆ Podem n˜ao existir solu¸c˜oes admiss´ıveis.

O problema da cinem´atica inversa ´e, de fato, crucial para o desenvolvimento de robˆos. Entretanto, devido ao exposto acima, n˜ao existe uma forma simples de se resolver esse problema. Por isso, ao longo dos anos diversos pesquisadores estudaram e, ainda, estudam abordagens alternativas para sua solu¸c˜ao.

Portanto, o presente trabalho foi desenvolvido buscando-se uma forma alternativa e eficiente para se resolver a cinem´atica inversa de manipuladores rob´oticos. Assim, as ferramentas escolhidas para a realiza¸c˜ao deste trabalho foram as Redes Neurais, que s˜ao conhecidas como aproximadores universais de fun¸c˜oes [7], e os algoritmos gen´eticos, que possuem a capacidade de otimizar um vasto n´umero de equa¸c˜oes [8]. Essas ferramentas ser˜ao explicadas em detalhes nos pr´oximos cap´ıtulos.

1.2

Objetivos

A partir da problem´atica apresentada na motiva¸c˜ao deste trabalho, os objetivos que se deseja atingir s˜ao os seguintes:

ˆ Objetivos gerais:

– Resolver a cinem´atica inversa de um manipulador rob´otico com 5 graus de liberdade com aux´ılio das Redes Neurais Artificiais e Algoritmos Gen´eticos;

(21)

1.3. Trabalhos relacionados 3

– Aplicar as solu¸c˜oes encontradas em um robˆo real para o rastreamento de uma dada trajet´oria;

ˆ Objetivos espec´ıficos:

– Estudar as principais arquiteturas das Redes Neurais Artificiais;

– Determinar qual a melhor arquitetura a ser utilizada para se atingir os objetivos gerais deste trabalho;

– Estudar os Algoritmos Gen´eticos;

– Determinar qual os melhores parˆametros a serem utilizados no Algoritmo Gen´etico para se atingir os objetivos gerais deste trabalho;

– Elaborar trajet´orias para testar as solu¸c˜oes encontradas;

– Implementar as solu¸c˜oes encontradas atrav´es do interfaceamento entre computador e microcontrolador.

1.3

Trabalhos relacionados

S˜ao apresentado a seguir um breve hist´orico de trabalhos relacionados com o tema em estudo. O presente trabalho foi desenvolvido no Laborat´orio de Sistemas Modulares Rob´oticos, LSMR, localizado na Faculdade de Engenharia El´etrica e de Computa¸c˜ao da Universidade de Campinas. O LSMR tem tradi¸c˜ao no estudo e desenvolvimento de estruturas rob´oticas. O primeiro trabalho do LSMR a utilizar t´ecnicas n˜ao convencionais para a resolu¸c˜ao da cinem´atica inversa de manipuladores rob´oticos foi desenvolvido pelo professor Dr. Marconi Kolm Madrid durante seu doutorado e utilizava-se da t´ecnica de busca heur´ıstica [9–11]. Ap´os isso, o Dr. Fabr´ıcio Nicolato, durante seu doutorado, aperfei¸coou a t´ecnica de busca heur´ıstica para utiliza¸c˜ao em controle servo visual [12–14]. Pode-se citar tamb´em o trabalho desenvolvido pelo Dr. Dionne Cavalcante Monteiro durante o seu doutorado em 2003 que consiste na utiliza¸c˜ao de algoritmos gen´eticos e redes neurais artificiais no planejamento e rastreamento de trajet´orias e controle de posi¸c˜ao [15]. Portanto, o presente trabalho adequa-se ao contexto hist´orico de pesquisas do LSMR.

Historicamente, as redes neurais artificiais s˜ao usadas em diversas ´areas da Rob´otica. Um dos primeiros trabalhos encontrados na literatura que fazem uso dessas ferramentas ´e o de Kuperstein de 1987 [16]. Nele, as redes neurais s˜ao usadas no controle adaptativo de um manipulador rob´otico com dois graus de liberdade e guiado visualmente. Em 1988, Suzuki e Arimoto publicam um artigo em que ´e desenvolvido um tipo especial de rede neural para o reconhecimento de escrita a m˜ao que foi usado em um robˆo com capacidade de entregar encomendas [17]. Kawato et al, tamb´em em 1989, publicaram um trabalho em que se usa uma rede neural para lidar com o controle dos motores em um sistema que imita o sistema nervoso central na realiza¸c˜ao de movimentos [18]. Al´em desses, tamb´em podem-se citar os trabalhos de King e Hwang em 1989 [19]; Clement em 1993 [20]; Tzafestas em 1995 [21]; Lu e Ito em 1995 [22]; Kim et al em 1997 [23]; Yee e Lim em 1997 [24]. Todos os autores citados anteriormente desenvolveram algum tipo de trabalho em que se usava redes neurais aplicada na resolu¸c˜ao de problemas de Rob´otica.

(22)

No caso do uso de Algoritmos Gen´eticos, os primeiros trabalhos encontrados na literatura datam do ano de 1989. Um deles ´e o trabalho de Parker, Khoogar e Goldberg. Nesse trabalho, utilizou-se algoritmos gen´eticos para resolver a cinem´atica inversa de manipuladores redundan-tes [25]. Em 1992, Shibata et al publicam um trabalho que utiliza algoritmos gen´eticos no planejamento de trajet´orias de m´ultiplos robˆos m´oveis [26]. Em 1994, tem-se a publica¸c˜ao de um trabalho que utiliza um sistema fuzzy integrado com um algoritmo evolutivo. Pode-se citar os trabalhos de Tabandeh et al (2006); Rolland e Chandra (2009); Zhang et al (2009); Mehrafsa et al (2011); e Tomic et al (2012) como alguns dos mais recentes que utilizam-se dos algoritmos gen´eticos na resolu¸c˜ao de diversos problemas existentes na ´area de Rob´otica.

Especificamente para a resolu¸c˜ao da cinem´atica inversa de manipuladores rob´oticos utilizando-se redes neurais artificiais, RNA, podem-utilizando-se citar os trabalhos de Lu, Karlik, Wei, Koker, Oyama, Youssef, Daya, Dash e Tejomurtula [22, 27–34]. Existem tamb´em trabalhos nos quais os autores usam uma combina¸c˜ao de algoritmos gen´eticos com RNAs [35, 36].

Todos os trabalhos citados anteriormente mostram que resolver a cinem´atica inversa de manipuladores rob´oticos usando redes neurais ou algoritmos gen´eticos traz grandes perspectivas para boas solu¸c˜oes e tem grande interesse entre os pesquisadores de Rob´otica. Portanto, todo esse interesse da comunidade cient´ıfica justifica o desenvolvimento do presente trabalho.

1.4

Metodologia

O presente trabalho trata do estudo te´orico e da implementa¸c˜ao de ferramentas derivadas da computa¸c˜ao bio-inspirada, redes neurais e algoritmos gen´eticos, na resolu¸c˜ao da cinem´atica inversa de um robˆo educacional de 5 graus de liberdade. Utilizou-se artigos dispon´ıveis em diversos reposit´orios, como IEEExplore e ScienceDirect, teses de mestrado e doutorado e diversos livros que tratam de temas pertinentes na realiza¸c˜ao da pesquisa bibliogr´afica. Foram feitas simula¸c˜oes utilizando-se o software MATLAB, sendo que as melhores solu¸c˜oes foram implementadas no robˆo real. Os detalhes sobre a realiza¸c˜ao do trabalho podem ser consultados no cap´ıtulo 5.

1.5

Delimita¸

oes do trabalho

O presente trabalho limita-se ao estudo cinem´atico de uma determinada estrutura rob´otica. Esse estudo ´e realizado por meio de ferramentas derivadas da computa¸c˜ao bio-inspirada, Redes Neurais Artificiais, RNA, e Algoritmos Gen´eticos, AG. Portanto, apesar do amplo escopo dos trabalhos citados na se¸c˜ao anterior, o estudo e o controle da dinˆamica de estruturas rob´oticas, o planejamento de trajet´orias, etc, n˜ao s˜ao abordados neste trabalho. Assim, s˜ao discutidos formas de se utilizar RNAs e AGs na busca de se alcan¸car os objetivos apresentados anteriormente e como aplicar as solu¸c˜oes encontradas em um robˆo real servo-controlado.

1.6

Estrutura do trabalho

Nos cap´ıtulos seguintes ´e apresentado o desenvolvimento do trabalho. No Cap´ıtulo 2 ´e explicado detalhadamente o processo para se obter o modelo cinem´atico de um manipulador

(23)

1.6. Estrutura do trabalho 5

rob´otico. No Cap´ıtulo 3 ´e apresentado as redes neurais artificiais e sua fundamenta¸c˜ao te´orica. No Cap´ıtulo 4 ´e explicado o que ´e e como funcionam os algoritmos gen´eticos, al´em de uma introdu¸c˜ao `as t´ecnicas de busca heur´ıstica. A parte experimental e os resultados do presente trabalho est˜ao detalhados no Cap´ıtulo 5. Por ´ultimo, a conclus˜ao, os trabalhos produzidos e as sugest˜oes para trabalhos futuros est˜ao no Cap´ıtulo 6.

Al´em disso, ao final do trabalho ´e apresentado uma sequˆencia de apˆendices contendo infor-ma¸c˜oes adicionais aos dados apresentados no Cap´ıtulo 5, como os c´odigos fonte dos programas desenvolvidos.

(24)
(25)

Cap´ıtulo 2

Cinem´

atica de manipuladores rob´

oticos

Este cap´ıtulo apresenta a fundamenta¸c˜ao te´orica da cinem´atica dos manipuladores rob´oticos. O cap´ıtulo est´a dividido em quatro partes: Introdu¸c˜ao, Descri¸c˜ao espacial e transforma¸c˜oes, Cinem´atica Direta e Cinem´atica Inversa.

2.1

Introdu¸

ao

Um manipulador rob´otico pode ser representado como uma cadeia cinem´atica de corpos r´ıgidos, elos, conectados por juntas prism´aticas ou de revolu¸c˜ao. Uma das extremidades da cadeia ´

e fixa em uma base, enquanto que a outra extremidade ´e livre para se movimentar e, geralmente, possui uma ferramenta, end-effector, para manipular objetos ou realizar tarefas diversas [3, 6]. A cadeia cinem´atica pode ser aberta ou fechada. Manipuladores de cadeia fechada s˜ao chamados de manipuladores paralelos, Figura 2.1, e manipuladores de cadeia aberta s˜ao chamados de manipuladores seriais, Figura 2.2 [1, 3]. O movimento da estrutura ´e obtido pela composi¸c˜ao dos movimentos de cada elo em rela¸c˜ao ao anterior. Normalmente, deseja-se saber a descri¸c˜ao espacial do end-effector em rela¸c˜ao a um sistema de coordenadas fixo [3, 6]. Portanto, afim de se manipular objetos no espa¸co, ´e necess´ario descrever a posi¸c˜ao e orienta¸c˜ao do end-effector. Isso ´

e poss´ıvel atrav´es do estudo da Cinem´atica.

A Cinem´atica lida com o estudo anal´ıtico da geometria do movimento do manipulador em rela¸c˜ao a um sistema de referˆencia coordenado fixo como uma fun¸c˜ao do tempo sem levar em considera¸c˜ao as for¸cas e os torques que causam o movimento. Portanto, a Cinem´atica estuda o movimento espacial do manipulador como uma fun¸c˜ao do tempo, em particular, a rela¸c˜ao entre o espa¸co das juntas com a posi¸c˜ao e orienta¸c˜ao do end-effector [6]. Dois problemas fundamentais surgem nesse estudo: o problema da cinem´atica direta e o problema da cinem´atica inversa.

Na cinem´atica direta deseja-se responder a seguinte pergunta: dados um vetor com as vari´aveis de juntas ~q(t) = (q1(t), q2(t), . . . , qn(t))T e os valores geom´etricos dos elos, onde n ´e o n´umero de graus de liberdade, qual a posi¸c˜ao e orienta¸c˜ao do end-effector do manipulador em rela¸c˜ao ao sistema de referˆencia fixo [6]?

Por outro lado, na cinem´atica inversa deseja-se responder a seguinte pergunta: dados a posi¸c˜ao e a orienta¸c˜ao desejadas para o end-effector do manipulador com rela¸c˜ao ao sistema de referˆencia fixo e os valores geom´etricos dos elos, o manipulador pode alcan¸car a posi¸c˜ao e a orienta¸c˜ao desejadas? Se sim, qual s˜ao os valores das vari´aveis de juntas [6]?

(26)

Figura 2.1: Manipulador paralelo, adaptado de [37].

Figura 2.2: Manipulador serial, adaptado de [1].

Na Figura 2.3 ´e apresentado um esquem´atico que resume os dois problemas envolvidos com o estudo da cinem´atica.

(27)

2.2. Descri¸c˜ao espacial e transforma¸c˜oes 9

Figura 2.3: O problema da cinem´atica, adaptado de [6].

a geometria espacial dos elos de um manipulador em rela¸c˜ao a um sistema de referˆencia fixo utilizando matrizes. Nesse m´etodo, uma matriz de transforma¸c˜ao homogˆenea 4×4 ´e utilizada para descrever a rela¸c˜ao entre o deslocamento espacial do manipulador e o sistema de referˆencia fixo. Com esse m´etodo ´e poss´ıvel resolver o problema da cinem´atica direta de forma simples. Entretanto, para a cinem´atica inversa n˜ao existem m´etodos simples que possam ser utilizados [1, 3, 5, 6].

Na pr´oxima se¸c˜ao ´e explicado como representar a posi¸c˜ao e a orienta¸c˜ao de um corpo no espa¸co; tamb´em ´e explicado as transforma¸c˜oes necess´arias para representar um sistema de coordenadas em rela¸c˜ao a outro.

2.2

Descri¸

ao espacial e transforma¸

oes

2.2.1

Descrevendo posi¸

oes no espa¸

co

Ap´os a fixa¸c˜ao de um sistema de coordenadas, pode-se localizar um ponto no espa¸co como um vector 3 × 1. Os valores desse vetor est˜ao relacionados com o sistema de coordenadas previamente fixado. Portanto, uma mesma posi¸c˜ao no espa¸co pode produzir diferentes vetores de posi¸c˜ao dependendo de qual ´e o sistema de coordenadas que est´a sendo referenciado. Por exemplo, na Equa¸c˜ao 2.1, Px, Py, Pz indicam a posi¸c˜ao do ponto P em rela¸c˜ao aos eixos x, y e z, respectivamente, do sistema de coordenadas {A} [5].

AP =   Px Py Pz   (2.1)

2.2.2

Descrevendo orienta¸

oes no espa¸

co

Para descrever a orienta¸c˜ao de um corpo r´ıgido no espa¸co em rela¸c˜ao a um sistema de referˆencia coordenado faz-se necess´ario a fixa¸c˜ao de um novo sistema de coordenadas no corpo. A matriz da Equa¸c˜ao 2.2 representa a orienta¸c˜ao de um sistema {B} em rela¸c˜ao a um sistema {A}.

(28)

A BR = A XB AYB AZB =   r11 r12 r13 r21 r22 r23 r31 r32 r33   (2.2)

2.2.3

Matrizes de rota¸

ao

Existem trˆes matrizes b´asicas de rota¸c˜ao que podem ser utilizadas para descrever a orienta¸c˜ao de um corpo que s˜ao as seguintes:

Rx,α =   1 0 0 0 cos(α) − sin(α) 0 sin(α) cos(α)  ; (2.3) Ry,φ=   cos(φ) 0 sin(φ) 0 1 0 − sin(φ) 0 cos(φ)  ; (2.4) Rz,θ =   cos(θ) − sin(θ) 0 sin(θ) cos(θ) 0 0 0 1  . (2.5)

As matrizes Rx,α, Ry,φ e Rz,θ representam rota¸c˜oes de α, φ e θ radianos em torno dos eixos x, y e z, respectivamente. Essas matrizes podem ser pr´e-multiplicadas ou p´os-multiplicadas o que torna poss´ıvel produzir matrizes para qualquer orienta¸c˜ao no espa¸co cartesiano.

2.2.4

Descrevendo um frame

Em Rob´otica, um frame descreve a orienta¸c˜ao e a posi¸c˜ao de um sistema de coordenadas em rela¸c˜ao a outro. Por exemplo, um frame {B} pode ser descrito da seguinte forma:

{B} = {A BR

A, P

BOrigem}. (2.6)

Em outras palavras. o frame {B} pode ser descrito como uma rota¸c˜ao em rela¸c˜ao ao frame {A} e a posi¸c˜ao da origem de {B} em rela¸c˜ao a {A}.

2.2.5

Transforma¸

oes

Frequentemente, a descri¸c˜ao de um vetor em algum frame {B} ´e conhecida e deseja-se saber a descri¸c˜ao desse vetor em um outro frame {A} com posi¸c˜ao e orienta¸c˜ao diferentes. Essa mudan¸ca ´e conhecida como uma transforma¸c˜ao de mapeamento que pode ser descrita de forma geral como [5]:

AP =AR

BBP +APBOrigem. (2.7)

A Equa¸c˜ao 2.7 mostra que o vetor descrito no frame {B} ´e primeiramente descrito em um frame intermedi´ario que possui a mesma orienta¸c˜ao do frame {A} e depois ´e adicionada a distˆancia entre as origens do dois frames.

(29)

2.2. Descri¸c˜ao espacial e transforma¸c˜oes 11

A Equa¸c˜ao 2.7 tamb´em pode ser descrita em forma matricial: A P 1  =  A RB APBOrigem 0 0 0 1  B P 1  . (2.8)

Assim, um vetor pode ser descrito em outro frame da seguinte forma: AP =AT

BBP. (2.9)

Na Figura 2.4 ´e mostrado como um mesmo ponto pode ter diferentes vetores de posi¸c˜ao dependendo de qual sistema de coordenadas est´a sendo referenciado. O vetor AP descreve a posi¸c˜ao do ponto P em rela¸c˜ao ao sistema {A} e o vetor BP descreve a posi¸c˜ao do ponto P em rela¸c˜ao ao sistema {B}. Portanto, sabendo-se os valores BP e a matriz de transforma¸c˜ao homogˆenea AT

B, pode-se determinar o vetor AP pela aplica¸c˜ao da Equa¸c˜ao 2.9.

Por exemplo, se um frame {B} est´a com uma rota¸c˜ao de 30 graus em torno do eixo Z em rela¸c˜ao a um frame {A}, transladado de 10 unidades em X, 5 unidades em Y e o ponto P ´

e descrito como BP = [3 7 0]T. Deseja-se saber os valores do vetor AP . Das informa¸c˜oes fornecidas e a partir da utiliza¸c˜ao das matrizes b´asicas de rota¸c˜ao tem-se:

AT B =     0, 866 −0, 5 0 10 0, 5 0, 866 0 5 0 0 1 0 0 0 0 1     . (2.10)

Substituindo na Equa¸c˜ao 2.9, tem-se:

AP =AT BBP =   9, 098 12, 562 0  . (2.11) XA YA {A} AP BOrigem AP BP XB YB {B} P

(30)

2.3

Cinem´

atica Direta

2.3.1

Cadeias Cinem´

aticas

Assume-se que cada junta de um manipulador possui um grau de liberdade. Cada junta pode ser de revolu¸c˜ao ou prism´atica. A a¸c˜ao de cada junta pode ser descrita por um n´umero: o ˆ

angulo de revolu¸c˜ao, no caso das juntas de revolu¸c˜ao, ou o deslocamento, no caso das juntas prism´aticas [1].

Um manipulador com n juntas ter´a n + 1 elos, porque cada junta ´e conectada por dois elos. As juntas s˜ao numeradas de 1 a n e os elos de 0 a n, come¸cando pela base. Portanto, a junta i conecta o elo i − 1 ao elo i. Considera-se que a localiza¸c˜ao da junta i ´e fixa em rela¸c˜ao ao elo i − 1. Quando a junta i ´e atuada, o elo i se move. Portanto, o elo 0 ´e fixo e n˜ao se move quando as juntas s˜ao atuadas. Associa-se uma vari´avel de junta a i-´esima junta, denotado por qi. No caso de juntas de revolu¸c˜ao, qi ´e um ˆangulo de revolu¸c˜ao e, no caso de juntas prism´aticas, qi ´e um deslocamento [1]:

qi = 

θi se i ´e uma junta de revolu¸c˜ao

di se i ´e uma junta prism´atica . (2.12) Ao se realizar uma an´alise cinem´atica ´e necess´ario fixar um sistema de coordenadas em cada elo. Para o elo i, fixa-se um sistema de coordenadas oixiyizi. Isso significa que n˜ao importa quais movimentos um robˆo fa¸ca, um ponto no elo i ser´a constante quando expresso no i-´esimo sistema coordenado. Na base do robˆo ´e fixada o sistema o0x0y0z0 e ´e considerado o sistema de referˆencia inercial ou fixo. Na Figura 2.5 ´e mostrado um exemplo de fixa¸c˜ao de frames para um manipulador com 3 graus de liberdade [1].

Seja Ai uma matriz de transforma¸c˜ao homogˆenea que expressa a posi¸c˜ao e a orienta¸c˜ao do frame oixiyizi em rela¸c˜ao ao frame oi−1xi−1yi−1zi−1. A matriz Ai n˜ao ser´a constante, ela varia conforme a configura¸c˜ao do robˆo muda. Entretanto, a suposi¸c˜ao de que todas as juntas s˜ao ou de revolu¸c˜ao ou prism´atica, significa que Ai ´e uma fun¸c˜ao de uma ´unica vari´avel de junta, ou seja:

(31)

2.3. Cinem´atica Direta 13

Ai = Ai(qi). (2.13)

Caso queira-se determinar a posi¸c˜ao e orienta¸c˜ao de um frame ojxjyjzj em rela¸c˜ao ao frame oixiyizi usa-se uma matriz de transforma¸c˜ao iTj tal que [1]

iT j = Ai+1Ai+2. . . Aj−1Aj se i < j iTj = I se i = j iT j = (iTj)−1 se j > i . (2.14)

Portanto, a posi¸c˜ao e orienta¸c˜ao do end-effector de um manipulador com n graus de liberdade em rela¸c˜ao ao referencial inercial pode ser determinado da seguinte forma:

H =0 Tn = A1(q1) . . . An(qn), (2.15) tal que: H = 0 Rn 0on 0 1  . (2.16) Na Equa¸c˜ao 2.16, 0R

n´e uma matrix de rota¸c˜ao 3 × 3 e0on ´e um vetor de posi¸c˜ao 3 × 1 [1]. Com isso j´a ´e poss´ıvel determinar a cinem´atica direta de um manipulador rob´otico, mas na pr´oxima sess˜ao ser´a apresentado o m´etodo de Denavit-Hartenberg que torna a fixa¸c˜ao dos frames e determina¸c˜ao das matrizes de transforma¸c˜ao uma tarefa mais simples.

2.3.2

etodo de Denavit-Hartenberg

No m´etodo de Denavit-Hartenberg, D-H, cada transforma¸c˜ao homogˆenea Ai ´e representada como o produto de quatro transforma¸c˜oes b´asicas

Ai = Rotz,θiT ransz,diT ransx,aiRotx,αi

=     Cθi −Sθi 0 0 Sθi Cθi 0 0 0 0 1 0 0 0 0 1         1 0 0 0 0 1 0 0 0 0 1 di 0 0 0 1         1 0 0 ai 0 1 0 0 0 0 1 0 0 0 0 1         1 0 0 0 0 Cαi −Sαi 0 0 Sαi Cαi 0 0 0 0 1     =     Cθi −SθiCαi SθiSαi aiCθi Sθi CθiCαi −CθiSαi aiSθi 0 Sαi Cαi di 0 0 0 1     (2.17)

onde os parˆametros θi, ai, di e αi est˜ao relacionados com o elo i e junta i. Como a matriz Ai ´

e fun¸c˜ao de uma ´unica vari´avel, trˆes parˆametros s˜ao constantes para um dado elo. O quarto parˆametro ser´a θi para juntas de revolu¸c˜ao ou di para juntas prism´aticas [1].

Afim de simplificar a escrita das matrizes, nesta se¸c˜ao ´e utilizada a seguinte nota¸c˜ao: ˆ Cθi significa cos(θi);

(32)

ˆ Sθi significa sin(θi); ˆ Ci significa cos(θi); ˆ Cij significa cos(θi+ θj); ˆ Si significa sin(θi); ˆ Sij significa sin(θi+ θj). Passo-a-passo

´

E poss´ıvel determinar a cinem´atica direta de qualquer manipulador rob´otico pelo uso do m´etodo de Denavit-Hartenberg. Esse m´etodo pode ser utilizado seguindo uma s´erie de passos que est˜ao explicados logo abaixo [1–3, 5, 6].

Passo 1: Localize e nomeie os eixos das juntas z0, . . . , zn−1. O eixo zi deve ser o eixo de atua¸c˜ao da junta i + 1. Assim, z0 est´a no eixo de atua¸c˜ao da junta 1 e z1 est´a no eixo de atua¸c˜ao da junta 2. Existem dois casos a serem considerados: se a junta i + 1 ´e de revolu¸c˜ao, zi ´e o eixo de revolu¸c˜ao da junta i + 1; se a junta i + 1 ´e prism´atica, zi ´e o eixo de transla¸c˜ao da junta i + 1.

Passo 2: Determine o frame da base. Coloque a origem em qualquer lugar ao longo do eixo z0. Os eixos x0 e y0 s˜ao escolhidos de acordo com a regra da m˜ao direita.

Para i = 1, . . . , n − 1, siga os passos 3 a 5.

Passo 3: Localize a origem oi onde a normal comum de zi e zi−1 intercepta zi. Se zi intercepta zi−1 coloque oi nessa interse¸c˜ao. Se zi e zi−1 s˜ao paralelos, coloque oi em qualquer posi¸c˜ao conveniente ao longo de zi.

Passo 4: Estabele¸ca xi ao longo da normal comum entre zi−1e zi atrav´es de oi ou na dire¸c˜ao normal ao plano zi−1− zi se zi−1 e zi se cruzam.

Passo 5: Estabele¸ca yi de acordo com a regra da m˜ao direita.

Passo 6: Estabele¸ca o frame do end-effector onxnynzn. Assuma que a n-´esima junta ´e de revolu¸c˜ao e estabele¸ca zn na dire¸c˜ao de zn−1. Estabele¸ca a origem on convenientemente ao longo de zn, preferivelmente no centro da garra. Fa¸ca yn na dire¸c˜ao do fechamento da garra e xn como yn× zn. Se o end-effector n˜ao possuir uma garra, estabele¸ca xn e yn de forma conveniente de acordo com a regra da m˜ao direita.

Passo 7: Crie uma tabela com os parˆametros dos elos, θi, ai, di e αi: ˆ ai: distˆancia ao longo do eixo xi de oi at´e a interse¸c˜ao dos eixos xi e zi−1.

ˆ di: distˆancia ao longo de zi−1 de oi−1 at´e a interse¸c˜ao dos eixos xi e zi, di ser´a vari´avel se a junta i for prism´atica.

ˆ αi: ˆangulo entre zi−1 e zi medido sobre xi.

ˆ θi: ˆangulo entre xi−1 e xi medido sobre zi−1, θi ser´a vari´avel se a junta i for de revolu¸c˜ao. Passo 8: Forme a matriz de transforma¸c˜ao homogˆenea Ai substituindo os parˆametros dos elos na Equa¸c˜ao 2.17.

Passo 9: Fa¸ca 0T

n = Ai. . . An. Assim obtˆem-se a posi¸c˜ao e orienta¸c˜ao da ferramenta em rela¸c˜ao a sistema de coordenadas da base do robˆo.

(33)

2.3. Cinem´atica Direta 15

Um exemplo

Um exemplo de um manipulador planar com 2 graus de liberdade ser´a usado para ilustrar como se utilizar o m´etodo de Denavit-Hartenberg.

Primeiro estabelece os eixos em cada elo do manipulador, conforme mostrado na Figura 2.6. Logo ap´os, monta-se uma tabela com os parˆametros dos elos conforme mostrado na Tabela 2.1. Ap´os isso, monta-se as matrizes A1 e A2, Equa¸c˜ao 2.18. Por ´ultimo, determina-se a matriz de transforma¸c˜ao conforme mostrado na Equa¸c˜ao 2.19.

A1 =     c1 −s1 0 a1c1 s1 c1 0 a1s1 0 0 1 0 0 0 0 1     A2 =     c2 −s2 0 a2c2 s2 c2 0 a2s2 0 0 1 0 0 0 0 1     (2.18) 0 T2 = A1A2 =     c12 −s12 0 a1c1+ a2c12 s12 c12 0 a1s1+ a2s12 0 0 1 0 0 0 0 1     (2.19) ´

E f´acil ver que o m´etodo desenvolvido por Denavit e Hartenberg possui muitas vantagens e torna a determina¸c˜ao da cinem´atica direta de qualquer manipulador rob´otico uma tarefa simples. Na pr´oxima se¸c˜ao est˜ao apresentados alguns m´etodos cl´assicos encontrados em diversos livros para resolver a cinem´atica inversa.

(34)

Elo ai αi di θi 1 a1 0 0 θ1 2 a2 0 0 θ2

Tabela 2.1: Parˆametros dos elos para um manipulador planar com 2 graus de liberdade.

2.4

Cinem´

atica Inversa

O problema geral da cinem´atica inversa pode ser posto da seguinte forma: dada uma matriz 4 × 4 de transforma¸c˜ao homogˆenea

H =R P 0 1 

, (2.20)

quais s˜ao as solu¸c˜oes da equa¸c˜ao [1] 0T

n(q1, . . . , qn) = H? (2.21) Nesta se¸c˜ao s˜ao apresentados dois m´etodos para resolver esse problema: o m´etodo alg´ebrico e o m´etodo geom´etrico. A utiliza¸c˜ao desses dois m´etodos pode ser encontrada em v´arios livros de rob´otica [1, 3, 5, 6]. Os dois m´etodos s˜ao aplicados ao exemplo de um manipulador planar com 3 graus de liberdade encontrado no livro Introduction to Robotics de Craig [5].

2.4.1

etodo alg´

ebrico

Em resumo, resolver a cinem´atica inversa utilizando-se o m´etodo alg´ebrico ´e basicamente realizar manipula¸c˜oes alg´ebricas para encontrar as solu¸c˜oes desejadas.

Considere o manipulador da Figura 2.7. Seguindo-se o m´etodo de Denavit-Hartenberg obtˆem-se os parˆametros dos elos, Tabela 2.2, e as equa¸c˜oes da cinem´atica direta, Equa¸c˜ao 2.22.

0T 3 =     C123 −S123 0 L1C1+ L2C12 S123 C123 0 L1S1+ L2S12 0 0 1 0 0 0 0 1     (2.22) Elo ai αi di θi 1 0 0 0 θ1 2 L1 0 0 θ2 3 L2 0 0 θ3

Tabela 2.2: Parˆametros dos elos para um manipulador planar com 3 graus de liberdade. Para ter certeza que a posi¸c˜ao e a orienta¸c˜ao desejada para o end-effector est´a dentro do espa¸co de trabalho do robˆo, usa-se a seguinte matriz de transforma¸c˜ao:

(35)

2.4. Cinem´atica Inversa 17 T =     Cφ −Sφ 0 x Sφ Cφ 0 y 0 0 1 0 0 0 0 1     . (2.23)

A matriz da Equa¸c˜ao 2.23 representa todas as orienta¸c˜oes e posi¸c˜oes poss´ıveis do end-effector. Onde φ ´e a orienta¸c˜ao do end-effector em rela¸c˜ao rela¸c˜ao ao eixo +X da base e x, y ´e a posi¸c˜ao do end-effector em rela¸c˜ao ao sistema de coordenadas da base.

A partir de 2.22 e 2.23 obt´em-se quatro equa¸c˜oes:

Cφ = C123, (2.24)

Sφ = S123, (2.25)

x = L1C1+ L2C12, (2.26)

y = L1S1+ L2S12. (2.27)

Elevando ao quadrado e somando x e y, obt´em-se:

x2+ y2 = L21+ L22+ 2L1L2C2, (2.28) onde usou-se as seguintes identidades trigonom´etricas:

C12 = C1C2− S1S2, (2.29)

S12= C1S2+ S1C2. (2.30)

(36)

Resolvendo 2.28 para C2, obt´em-se C2 = x2+ y2− L2 1− L22 2L1L2 . (2.31)

Para existir solu¸c˜ao para 2.31, o lado direito precisa ficar estar no intervalo [−1, 1]. Se essa condi¸c˜ao n˜ao for satisfeita, significa que o ponto desejado est´a fora do espa¸co de trabalho do robˆo. Assumindo que o ponto est´a dentro do espa¸co de trabalho, pode-se escrever S2 como

S2 = ± q 1 − C2 2. (2.32) Portanto, θ2 = AT AN 2(S2, C2). (2.33) Tendo encontrado θ2, pode-se resolver 2.26 e 2.27 para encontrar θ1. Pode-se reescrever 2.26 e 2.27 da seguinte forma: x = k1C1− k2S1, (2.34) y = k1S1+ k2C1, (2.35) onde k1 = L1+ L2C2, (2.36) k2 = L2S2. (2.37)

Para resolver essa equa¸c˜ao ´e necess´ario fazer uma mudan¸ca de vari´aveis. Se r = + q k2 1+ k22 (2.38) e γ = AT AN 2(k2, k1), (2.39) ent˜ao k1 = r cos γ, (2.40) k2 = r sin γ. (2.41)

Agora as equa¸c˜oes 2.34 e 2.35 podem ser reescritas como x

r = cos γ cos θ1 − sin γ sin θ1, (2.42) y

r = cos γ sin θ1+ sin γ cos θ1, (2.43) assim cos(γ + θ1) = x r, (2.44) sin(γ + θ1) = y r. (2.45)

Usando-se o arco-tangente de dois argumentos, tem-se γ + θ1 = AT AN 2( y r, x r) = AT AN 2(y, x), (2.46) portanto θ1 = AT AN 2(y, x) − AT AN 2(k2, k1). (2.47) Por fim, pode-se obter θ3 atrav´es da seguinte equa¸c˜ao:

(37)

2.4. Cinem´atica Inversa 19

Figura 2.8: Solu¸c˜ao geom´etrica para um manipulador com 3 graus de liberdade, adaptado de [5].

2.4.2

etodo geom´

etrico

No m´etodo geom´etrico, tenta-se decompor a geometria espacial do manipulador em diversos planos em que se possa utilizar geometria plana.

No caso do manipulador planar com 3 graus de liberdade, pode-se aplicar geometria plana diretamente para encontrar uma solu¸c˜ao. Na Figura 2.8 ´e mostrado o triˆangulo formado por L1, L2 e a linha que vai da origem do frame {0} at´e a origem do frame {3}. As linhas tracejadas mostram uma segunda configura¸c˜ao do robˆo que leva a mesma solu¸c˜ao. Considerando o triˆangulo, pode-se aplicar a lei dos cossenos para resolver θ2:

x2+ y2 = L21+ L22− 2L1L2cos(π + θ2). (2.49) Como cos(π + θ2) = − cos(θ2), tem-se

C2 =

x2+ y2− L2 1− L22

2L1L2 . (2.50)

Para resolver para θ1 ´e necess´ario encontrar express˜oes para os ˆangulos ψ e β, como indicado na Figura 2.8. Como β pode estar em qualquer quadrante, usa-se o arco-tangente com dois argumentos:

β = AT AN 2(y, x). (2.51)

Aplica-se a lei dos cossenos para encontrar ψ: cos ψ = x 2 + y2+ L2 1− L22 2L1px2+ y2 . (2.52) Portanto, tem-se: θ1 = β ± ψ, (2.53)

onde o sinal positivo ´e usado se θ2 < 0 e o sinal negativo ´e usado se θ2 > 0. Por ´ultimo, θ3 pode ser encontrado atrav´es da seguinte express˜ao:

(38)

2.4.3

Solu¸

ao alg´

ebrica por redu¸

ao polinomial

Equa¸c˜oes transcendentais s˜ao dif´ıceis de resolver, porque mesmo quando existe apenas uma vari´avel, ela geralmente aparece em fun¸c˜ao se senos e cossenos. Afim de transformar uma express˜ao transcendental em uma express˜ao polinomial, que ir´a facilitar a obten¸c˜ao de uma resposta, pode-se fazer as seguintes substitui¸c˜oes [5]:

u = tanθ 2, cos θ = 1 − u 2 1 + u2, sin θ = 2u 1 + u2. (2.55)

Polinˆomios de at´e quarto grau possuem solu¸c˜oes fechadas. Portanto, manipuladores simples podem ser resolvidos por m´etodos alg´ebricos [5].

(39)

Cap´ıtulo 3

Redes Neurais Artificiais

Neste cap´ıtulo ´e apresentado a teoria das redes neurais artificiais. O cap´ıtulo est´a dividido em introdu¸c˜ao, hist´orico, fundamentos, redes perceptron feed-forward de m´ultiplas camadas e algoritmo de retro-propaga¸c˜ao.

3.1

Introdu¸

ao

O c´erebro humano processa informa¸c˜oes de uma forma inteiramente diferente de um compu-tador digital convencional. O c´erebro ´e um sistema de processamento de informa¸c˜oes altamente complexo, n˜ao-linear e paralelo; possuindo capacidade de organizar seus constituintes estruturais, conhecidos como neurˆonios, de forma a realizar certos processamentos muito mais rapidamente que o mais r´apido computador digital existente [38]. Essas caracter´ısticas s˜ao a motiva¸c˜ao do estudo e desenvolvimento das redes neurais artificiais, RNA [38]. Portanto, as RNAs s˜ao modelos computacionais baseados em sistemas biol´ogicos [7]. V´arias defini¸c˜oes de RNA podem ser encontradas em livros, dois exemplos s˜ao mostrados a seguir:

ˆ Segundo Gurney [39], uma rede neural ´e um conjunto interconectado de elementos de processamento simples, chamados de n´os, cuja funcionalidade ´e livremente baseada em neurˆonios animais. A capacidade de processamento da rede ´e armazenada nas for¸cas de liga¸c˜ao entre as unidades, denominadas de pesos, obtidas pelo processo de adapta¸c˜ao ou aprendizagem de um conjunto de treinamento.

ˆ Segundo Haykin [38], uma rede neural ´e um processador maci¸camente paralelamente distribu´ıdo constitu´ıdo de unidades de processamento simples, que tˆem a propens˜ao natural para armazenar conhecimentos experimental e torn´a-lo dispon´ıvel para o uso. Ela se assemelha ao c´erebro em dois aspectos:

1. O conhecimento ´e adquirido pela rede a partir de seu ambiente atrav´es de um processo de aprendizagem.

2. For¸cas de conex˜ao entre neurˆonios, conhecidas como pesos sin´apticos, s˜ao utilizadas para armazenar o conhecimento adquirido.

(40)

Tipicamente, uma rede neural artificial ´e composta por um conjuntos de entradas e um conjunto de sa´ıdas, que ´e denominado de camada de sa´ıda. Uma RNA pode ser composta por camadas de neurˆonios entre as entradas e as sa´ıdas. Essas camadas intermedi´aria de neurˆonios s˜ao conhecidas pelo nome de Camadas Escondidas, do inglˆes Hidden Layers. Uma RNA pode ter um n´umero arbitr´ario de camadas escondidas e cada uma delas podem ter um n´umero arbitr´ario de neurˆonios [7, 39]. Por exemplo, na Figura 3.1 ´e mostrado uma RNA com 4 entradas, 2 sa´ıdas e 1 camada escondida com 3 neurˆonios.

Figura 3.1: Exemplo de uma Rede Neural Artificial, adaptado de [39].

As RNAs s˜ao objetos de interesses de diversos pesquisadores em diversas ´areas por diferentes raz˜oes. Engenheiros eletricistas encontram in´umeras aplica¸c˜oes em processamento de sinais e teoria de controle. Para engenheiros da computa¸c˜ao, as RNAs apresentam resultados promissores para problemas dif´ıceis em ´areas como Inteligˆencia Artificial e Reconhecimento de Padr˜oes. Para matem´aticos, as RNAs s˜ao ferramentas eficientes para modelagem de problemas em que a forma expl´ıcita e as rela¸c˜oes entre certas vari´aveis s˜ao desconhecidas [40]. As RNAs tamb´em encontram aplica¸c˜oes em v´arias outras ´areas, como Aeroespacial, Automotiva, Automa¸c˜ao Banc´aria, Defesa, Eletrˆonica, Entretenimento, Financeira, Manufatura, M´edica, Rob´otica, etc [41].

3.2

Hist´

orico

Considera-se que a era moderna das redes neurais come¸cou com o trabalho pioneiro de McCulloch e Pitts em 1943 em que ´e apresentado o primeiro modelo artificial de um neurˆonio biol´ogico. Neste trabalho ´e apresentada uma discuss˜ao sofisticada sobre redes l´ogicas de neurˆonios artificiais, al´em de novas ideias a cerca de m´aquinas de estados finitos, elementos de decis˜ao de limiar lineares e representa¸c˜oes l´ogicas de v´arias formas de comportamento e mem´oria. Nesse trabalho, McCulloch e Pitts se concentraram mais em descrever um neurˆonio artificial e apresentar suas capacidades computacionais do que apresentar t´ecnicas de aprendizado [38, 42].

Em 1949, Donald Hebb apresentou um dos primeiros trabalhos a lidar com a quest˜ao do aprendizado em redes biol´ogicas e artificiais. Ele mostrou que a capacidade de aprendizagem das redes neurais deriva da varia¸c˜ao dos pesos das entradas dos neurˆonios. A teoria de Hebb ´e baseada no refor¸co das liga¸c˜oes sin´apticas entre os neurˆonios excitados. A regra de Hebb ´e utilizada at´e hoje em v´arios algoritmos de aprendizagem. Mais tarde, Widrow e Hoff sugeriram uma regra de

(41)

3.3. Fundamentos 23

aprendizado que utiliza o m´etodo do gradiente descendente de minimiza¸c˜ao. Essa regra ficou conhecida como regra Delta ou Widrow-Hoff e ´e tamb´em bastante utilizada atualmente [38,41,42].

Em 1958, Rosenblatt demonstrou a rede neural perceptron que apresentavam sinapses ajus-t´aveis que podiam ser treinadas para reconhecimento de certos tipos de padr˜oes. Rosenblatt descreveu uma topologia de RNA, estruturas de liga¸c˜oes entre os neurˆonios e, o mais importante, propˆos um algoritmo para treinar a rede para executar determinados tipos de fun¸c˜oes. A rede descrita por Rosenblatt possui 3 camadas, uma camada que recebe os dados de entrada, uma camada intermedi´aria com pesos ajust´aveis e uma camada de sa´ıda de dados. A rede perceptron ´

e capaz de atuar como um classificador de padr˜oes [38, 42].

Apesar do grande interesse inicial pelo estudo das RNAs, na d´ecada de 1970, esse interesse diminuiu drasticamente. Isso aconteceu devido ao trabalho de Minsky e Papert em 1969. Eles mostraram que as redes perceptron n˜ao eram capaz de realizar tarefas consideradas simples. Por exemplo, as redes perceptron n˜ao eram capazes de detectar paridade, conectividade e simetria, que s˜ao problemas n˜ao-linearmente separ´aveis. A cr´ıtica de Minsky e Papert residia no fato do problema do crescimento explosivo, tanto de espa¸co ocupado como do tempo requerido para a solu¸c˜ao de problemas complexos. Al´em disso, eles argumentaram que n˜ao existia um algoritmo que garantisse convergˆencia para redes perceptron com mais de uma camada. Atualmente, os argumentos de Minsk e Papert podem ser vistos como bastante pessimistas j´a que hoje as redes neurais s˜ao capazes de resolver problemas n˜ao-linearmente separ´aveis e n˜ao sofrem do problema do crescimento explosivo [42].

O campo das redes neurais se tornou novamente de interesse dos pesquisados a partir da d´ecada de 1980. Em 1982, Hopfield publicou um artigo que chamou a aten¸c˜ao para as propriedades associativas das RNAs. Hopfield mostrou a rela¸c˜ao entre redes recorrentes auto-associativas e sistemas f´ısicos. Anos mais tarde pesquisadores desenvolveram o algoritmo de treinamento back-propagation, retro-propaga¸c˜ao. O que mostrou que as ideias de Minsk e Papert eram na realidade muito pessimista e que redes neurais podem aprender at´e mesmo problemas considerados complexos. O que tamb´em ajudou no ressurgimento do interesse nas redes neurais foi o desenvolvimento de computadores mais potentes [38, 42].

Atualmente, diversos pesquisadores continuam interessados em desenvolver trabalhos rela-cionados as redes neurais. O foco atual ´e o desenvolvimento de t´ecnicas de aprendizagem que convirjam mais r´apido [42]. Al´em disso, tamb´em h´a a tentativa de implementar as redes neurais diretamente no n´ıvel de hardware [42]. N˜ao obstante, existe a tentativa de solucionar diversos problemas atuais pela utiliza¸c˜ao desse tipo de rede. Portanto, as redes neurais continuam sendo uma ´area promissora para pesquisa e desenvolvimento de novas tecnologias.

3.3

Fundamentos

3.3.1

Um framework para representa¸

ao distribu´ıda

Uma rede neural artificial consiste de um conjunto de unidades de processamento simples que se comunicam enviando sinais entre si por um grande n´umero de conex˜oes ponderadas [7].

(42)

ˆ Um conjunto de unidades de processamento ou n´os, neurˆonios ou c´elulas;

ˆ Um estado de ativa¸c˜ao yk para cada unidade, que ´e equivalente a sa´ıda da unidade; ˆ Conex˜oes entre as unidades. Geralmente cada conex˜ao ´e definida por um peso wjk que

determina o efeito do sinal;

ˆ Uma regra de propaga¸c˜ao, que determina a entrada efetiva sk de uma unidade em rela¸c˜ao `

as v´arias entradas externas;

ˆ Uma fun¸c˜ao de ativa¸c˜ao, tamb´em chamada de fun¸c˜ao de transferˆencia, Fk, que determina o novo n´ıvel de ativa¸c˜ao baseado na entrada efetiva e na ativa¸c˜ao atual;

ˆ Uma entrada externa, chamada de bias ou offset, θk, para cada unidade; ˆ Um m´etodo para reunir informa¸c˜ao, a regra de treinamento;

ˆ Um ambiente dentro do qual o sistema precisa operar, provendo sinais de entrada e sinais de erro.

A Figura 3.2 ilustra os aspectos discutidos acima em uma RNA.

Figura 3.2: Componentes de uma Rede Neural Artificial, adaptado de [7].

3.3.2

os de processamento

Cada n´o realiza um trabalho simples: receber uma entrada de seus vizinhos ou de uma fonte externa e us´a-la para calcular um sinal de sa´ıda que ir´a se propagar para outras unidades. Uma segunda tarefa ´e o ajuste de pesos. O sistema ´e inerentemente paralelo, porque muitos n´os podem operar ao mesmo tempo [7].

Faz-se necess´ario distinguir trˆes tipos de n´os: n´os de entradas, que recebem dados de fora da rede, n´os de sa´ıda que enviam dados para fora da rede e n´os escondidos cujas entradas e sa´ıdas permanecem dentro da rede. [7].

Durante a opera¸c˜ao da rede, os n´os podem ser atualizados de forma sincronizada ou n˜ao sincronizada. Na atualiza¸c˜ao sincronizada todos os n´os atualizam suas ativa¸c˜oes de forma

(43)

3.3. Fundamentos 25

simultˆanea. Na atualiza¸c˜ao n˜ao sincronizada, cada n´o tem uma probabilidade de atualizar sua ativa¸c˜ao durante um certo tempo, geralmente apenas um n´o ser´a capaz de consegui isso durante esse tempo [7].

3.3.3

Conex˜

oes entre n´

os

Na maioria dos casos assume-se que cada n´o provˆe uma contribui¸c˜ao positiva a entrada do n´o conectado a ele. A entrada total do n´o k ´e simplesmente a soma ponderada das sa´ıdas de cada n´o conectado mais o bias ou offset θk [7]:

sk(t) = X

j

wjk(t)yj(t) + θk(t). (3.1)

Uma contribui¸c˜ao positiva de wjk ´e considerada uma excita¸c˜ao e uma contribui¸c˜ao negativa de wjk ´e considerada uma inibi¸c˜ao. Em alguns casos mais complexos, regras para combinar entradas s˜ao usadas fazendo-se uma distin¸c˜ao entre entradas excitat´orias e inibit´orias. Os n´os que utilizam a regra de propaga¸c˜ao 3.1 s˜ao chamados de n´os sigma [7].

Existe uma regra diferente de propaga¸c˜ao, chamada de sigma-pi:

sk(t) = X j wjk(t) Y m yjm(t) + θk(t). (3.2)

Geralmente, os yjm s˜ao ponderados antes da multiplica¸c˜ao [7].

3.3.4

Ativa¸

ao e regras de sa´ıda

Faz-se necess´ario, a utiliza¸c˜ao de uma regra que determine o efeito da entrada total na ativa¸c˜ao do n´o. ´E necess´ario, uma fun¸c˜ao Fk que tome a entrada total sk(t) e a ativa¸c˜ao atual yk(t) e produza um novo valor de ativa¸c˜ao para o n´o k [7]:

yk(t + 1) = Fk(yk(t), sk(t)). (3.3) Geralmente, a fun¸c˜ao de ativa¸c˜ao ´e uma fun¸c˜ao n˜ao-decrescente da entrada total da unidade:

yk(t + 1) = Fk(sk(t)) = Fk(sk(t)) = Fk( X

j

wjk(t)yj(t) + θk(t)), (3.4)

embora uma fun¸c˜ao de ativa¸c˜ao n˜ao seja restrita a fun¸c˜oes n˜ao-decrescentes. Alguns exemplos de fun¸c˜oes de ativa¸c˜oes usadas em redes neurais s˜ao mostradas na Figura 3.3. A fun¸c˜ao sigmoide ´

e um tipo comum de fun¸c˜ao de ativa¸c˜ao usada em redes neurais:

yk= F (sk) = 1

1 + e−sk. (3.5)

Em algumas aplica¸c˜oes a tangente hiperb´olica ´e utilizada, produzindo valores de sa´ıda entre -1 e +1 [7].

(44)

Figura 3.3: Exemplos de fun¸c˜oes de ativa¸c˜ao: (a) fun¸c˜ao sgn, (b) fun¸c˜ao semi-linear, (c) fun¸c˜ao sigmoide. Adaptado de [7].

Em alguns casos, a sa´ıda do n´o pode ser uma fun¸c˜ao estoc´astica da entrada total do n´o. Nesse caso, a ativa¸c˜ao n˜ao ´e determinada de forma determ´ıstica pela entrada do neurˆonio, mas a entrada do n´o determina a probabilidade p do neurˆonio atingir um valor alto de excita¸c˜ao:

p(yk ← 1) = 1 1 + e−skT

, (3.6)

onde T ´e um parˆametro que determina a inclina¸c˜ao da fun¸c˜ao de probabilidade [7].

3.3.5

Topologias de redes

A topologia de uma RNA est´a associada com seu padr˜ao de conex˜oes entre os n´os e a propaga¸c˜ao dos dados. Existem dois tipos principais de topologia [7]:

ˆ Redes feed-forward, onde o fluxo de dados dos n´os de entrada para os n´os de sa´ıda ´e estritamente direto. O processamento de dados pode se estender a v´arias camadas de n´os, mas nenhuma conex˜ao de realimenta¸c˜ao est´a presente.

ˆ Redes recorrentes que cont´em conex˜oes de realimenta¸c˜ao. Ao contr´ario das redes do tipo feed-forward, as propriedades dinˆamicas desta rede s˜ao importantes. Em alguns casos, os valores de ativa¸c˜ao dos n´os sofrem um processo de relaxa¸c˜ao tal que a rede evolui para um estado est´avel em que n˜ao h´a mais varia¸c˜oes nas ativa¸c˜oes.

3.3.6

Treinamento de redes neurais artificiais

Uma rede neural precisa ser configurada para que a aplica¸c˜ao de um conjunto de entradas produza um conjunto de sa´ıdas desejadas. Existem v´arios m´etodos para configurar o peso das conex˜oes. Uma maneira ´e configurar os pesos explicitamente, usando conhecimentos a priori. Outra maneira ´e treinar e ensinar padr˜oes `a rede deixando que os pesos mudem de acordo com uma regra de treinamento.

Paradigmas de aprendizagem

Existem dois tipos de aprendizagem [7]:

ˆ Aprendizagem supervisionada na qual a rede ´e treinada utilizando-se entradas e padr˜oes de sa´ıda fornecidos. Os pares de entrada e sa´ıda podem ser fornecidos por uma fonte externa, ou pelo sistema que cont´em a rede.

(45)

3.4. Redes perceptron feed-forward de m´ultiplas camadas 27

ˆ Aprendizagem n˜ao supervisionada na qual a sa´ıda ´e resultado dos n´os treinados para responder a um padr˜ao de clusters existente dentro das entradas. Nesse paradigma, o sistema pode descobrir estatisticamente caracter´ısticas na popula¸c˜ao de entradas. Diferente do aprendizado supervisionado, n˜ao existe um conjunto de categorias nos quais os padr˜oes podem ser classificados; o sistema precisa desenvolver sua pr´opria representa¸c˜ao dos est´ımulos de entrada.

3.3.7

Modificando parˆ

ametros de conectividade

Ambos os paradigmas discutidos acima resultam em um ajuste de pesos das conex˜oes entre os n´os, de acordo com alguma regra de modifica¸c˜ao. Virtualmente todas as regras para modelos desse tipo podem ser considerados uma varia¸c˜ao da regra de aprendizagem sugerida por Hebb em 1949. A ideia b´asica ´e que se dois n´os j e k est˜ao ativos ao mesmo tempo, suas interconex˜oes precisam ser fortalecidas. Na vers˜ao mais simples da regra de Hebb, se j recebe uma entrada de k, a modifica¸c˜ao do peso wjk ser´a dada por:

∆wjk = γyjyk, (3.7)

onde γ ´e uma constante positiva de proporcionalidade representando a taxa de aprendizagem. Em uma outra regra comumente utilizada, o ajuste de pesos n˜ao ´e feito usando a ativa¸c˜ao atual do n´o k, mas a diferen¸ca entre a ativa¸c˜ao atual e a ativa¸c˜ao desejada, como mostrado a seguir: ∆wjk = γyj(dk− yk), (3.8) onde dk ´e n´ıvel de ativa¸c˜ao desejado fornecido por uma fonte externa. Essa forma ´e usualmente chamada de regra de Widrow-Huff ou regra Delta [7].

3.4

Redes perceptron feed-forward de m´

ultiplas camadas

Neste trabalho s˜ao utilizadas redes neurais para resolver o problema da cinem´atica inversa. Esse ´e um cl´assico problema n˜ao-linear. Portanto, n˜ao seria poss´ıvel resolvˆe-lo utilizando redes perceptron de uma ´unica camada porque esse tipo de rede s´o ´e capaz de resolver problemas lineares. As n˜ao-linearidades s˜ao incorporadas a redes neurais atrav´es de fun¸c˜oes de ativa¸c˜ao n˜ao-lineares [7, 38, 42].

Para redes de uma ´unica camada, o aprendizado supervisionado ´e realizado atrav´es da aplica¸c˜ao do ajuste ao vetor de pesos. O erro ´e obtido diretamente atrav´es da diferen¸ca entre a sa´ıda desejada e a sa´ıda corrente da rede. No entanto, para redes de m´ultiplas camadas, esse procedimento pode ser aplicado somente para a camada de sa´ıda, j´a que n˜ao existem sa´ıdas desejadas definidas para as camadas intermedi´arias. Assim, o problema passa a ser ent˜ao como calcular ou estimar o erro das camadas intermedi´arias [38, 42].

A aprendizagem por retro-propaga¸c˜ao consiste de dois passos: um passo para frente, a propaga¸c˜ao, e um passo para tr´as, a retro-propaga¸c˜ao. No passo para frente, um padr˜ao de atividade ´e aplicado aos n´os sensoriais da rede e seu efeito se propaga atrav´es da rede, camada por camada. Finalmente, um conjunto de sa´ıdas ´e produzido como a resposta real da rede.

(46)

Figura 3.4: Exemplo de uma rede perceptron com m´ultiplas camadas, adaptado de [38].

Durante o passo de propaga¸c˜ao, os pesos sin´apticos da rede s˜ao todos fixos. Durante o passo para tr´as, por outro lado, os pesos sin´apticos s˜ao ajustados de acordo com uma regra de corre¸c˜ao de erro. Especificamente, a resposta real da rede ´e subtra´ıda de uma resposta desejada para produzir um sinal de erro. Este sinal de erro ´e propagado para tr´as atrav´es da rede, contra a dire¸c˜ao das conex˜oes sin´apticas. Os pesos s˜ao ajustados para fazer que a resposta real da rede se mova para mais perto da resposta desejada [38].

Na Figura 3.4 ´e mostrado um exemplo de uma rede perceptron com duas camadas escondidas e uma camada de sa´ıda. Considera-se que a rede ´e totalmente conectada, ou seja, um neurˆonio em qualquer camada est´a conectado a todos os neurˆonios da camada anterior. O fluxo de sinais progride para frente, da esquerda para a direita e de camada em camada [38].

Na Figura 3.5 ´e mostrado a dire¸c˜ao dos sinais em uma rede perceptron com m´ultiplas camadas. Percebe-se que existem dois tipos de sinais nessa rede [38]:

ˆ Sinais funcionais: ´e um sinal de entrada que incide no terminal de entrada da rede, propaga-se para frente (n´o por n´o) atrav´es da rede e emerge no terminal de sa´ıda da rede como um sinal de sa´ıda. Presume-se que este sinal realize uma fun¸c˜ao na sa´ıda da rede. Em cada neurˆonio que ele passa, o sinal ´e calculado como uma fun¸c˜ao de suas entradas e pesos associados, aplicados `aquele n´o.

ˆ Sinais de erro: este sinal se origina em um n´o de sa´ıda da rede e se propaga para tr´as, camada por camada, atrav´es da rede. Ele ´e chamado de sinal de erro porque sua computa¸c˜ao para cada neurˆonio da rede envolve uma fun¸c˜ao dependente do erro, de uma forma ou de outra.

As camadas ocultas da rede n˜ao fazem parte nem da entrada nem da sa´ıda da rede. Portanto, cada neurˆonio nas camadas ocultas ´e projetado para realizar os seguintes c´alculos [38]:

ˆ C´alculo do sinal funcional que aparece na sua sa´ıda, que ´e expresso como uma fun¸c˜ao n˜ao-linear do sinal de entrada e dos pesos sin´apticos associados a ele;

(47)

3.5. Algoritmo de retro-propaga¸c˜ao 29

ˆ C´alculo de uma estimativa do vetor gradiente que ´e necess´ario para a retro-propaga¸c˜ao atrav´es da rede.

Figura 3.5: Fluxo de sinais em uma rede perceptron com m´ultiplas camadas, adaptado de [38].

Na pr´oxima se¸c˜ao ser´a apresentado o funcionamento do algoritmo de aprendizagem por retro-propaga¸c˜ao.

3.5

Algoritmo de retro-propaga¸

ao

3.5.1

Regra delta generalizada

´

E necess´aria uma regra delta generalizada para fun¸c˜oes de ativa¸c˜oes n˜ao-lineares. A ativa¸c˜ao ser´a uma fun¸c˜ao diferenci´avel da entrada total p, dada por [7]

ykp = F (spk), (3.9)

onde

spk =X j

wjkykp+ θk. (3.10)

Afim de obter-se a correta generaliza¸c˜ao da regra delta, adota-se

∆pwjk = −γ ∂EP

∂wjk. (3.11)

O erro EP ´e definido como o erro quadr´atico total do padr˜ao p na sa´ıda dos n´os [7]:

EP = 1 2 No X o=1 (dpo− ip o) 2 , (3.12)

onde dpo ´e a sa´ıda desejada para o n´o ”o”quando o padr˜ao p ´e fixado. Al´em disso, pode-se fazer E =P

pE

p e cham´a-lo de somat´orio do erro quadr´atico. Pode-se escrever [7]

∂EP ∂wjk = ∂E P ∂spk ∂spk ∂wjk . (3.13)

(48)

Pela Equa¸c˜ao 3.10, tem-se ∂spk ∂wjk = yjp. (3.14) Quando define-se [7] δpk= −∂E p ∂spk, (3.15)

obt´em-se uma regra delta baseada no gradiente descendente. A mudan¸ca nos pesos ocorrer´a de acordo com [7]

∆pwjk = γδpkyjp. (3.16) O problema ´e como determinar δkp para cada n´o k da rede. O resultado interessante, que ser´a derivado a seguir, ´e que existe uma maneira simples e recursiva de determinar os “δ’s” que pode ser implementada para propagar o sinal de erro para tr´as por toda a rede [7].

Para determinar δkp aplica-se a regra da cadeia para escrever a derivada parcial como o produto de dois fatores, um fato que reflete a mudan¸ca do erro como uma fun¸c˜ao da sa´ıda do n´o, e outro que reflete a mudan¸ca na sa´ıda como fun¸c˜ao de mudan¸cas na entrada. Assim, tem-se [7]

δpk= −∂E P ∂spk = − ∂Ep ∂ykp ∂ypk ∂spk. (3.17) Da Equa¸c˜ao 3.9, tem-se ∂ypk ∂spk = F 0 (spk), (3.18)

que ´e simplesmente a derivada da fun¸c˜ao F para o k-´esimo n´o, avaliado para a entrada da rede spk para esse n´o. Para determinar o primeiro fator da Equa¸c˜ao 3.17, considera-se dois casos. Primeiro, assume-se que o n´o k ´e um n´o de sa´ıda da rede, k = o, onde o significa output. Nesse caso, tem-se [7]

∂EP ∂ypo

= −(dpo− yp

o), (3.19)

que ´e o mesmo resultado obtido pela regra delta padr˜ao. Substituindo a equa¸c˜ao acima e a Equa¸c˜ao 3.18 na Equa¸c˜ao 3.17, tem-se

δpo = (dpo− yp o)F 0 o(s p o) (3.20)

para qualquer n´o de sa´ıda o. No segundo caso, se k n˜ao ´e um n´o de sa´ıda, mas um n´o de uma camada escondida k = h, n˜ao se pode saber de forma direta a contribui¸c˜ao do n´o no erro de sa´ıda da rede. Entretanto, o erro pode ser escrito como fun¸c˜ao do conjunto de entradas da camada escondida para a camada de sa´ıda; Ep = Ep(sp1, sp2, . . . , spj, . . . ) e pode-se usar a regra da cadeia para escrever [7] ∂Ep ∂yph = No X o=1 ∂Ep δspo ∂sp o ∂yph = No X o=1 ∂Ep δspo ∂ ∂yph Nh X j=1 wkoypj = No X o=1 ∂Ep δspo who = − No X o=1 δpowho. (3.21)

Substituindo a equa¸c˜ao acima na Equa¸c˜ao 3.17, tem-se

δhp = F0(sph) No X o=1

Referências

Documentos relacionados

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

O efetivo pagamento da(s) RECEITA(S) FIXA(S) estará condicionado ao início da operação comercial da(s) USINA(S), devendo os recursos financeiros associados a este

Considerando a importância do assunto, a variabilidade existente nas características físicas e a ausência de dados na literatura especializada referente a

Falamos so- bre os métodos dos elipsóides, embora este método seja muito ineficiente na resolução prática de problemas de prograrnaç-ã.o linear, ele tem um val()r

O objetivo deste artigo é justamente abordar uma metodologia alternativa para a elaboração de análises contábeis e financeiras, denominada de balanço perguntado e

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a

Neste caso, embora possam existir nestes locais, forrageiras de alta qualidade, como o capim-de-capivara (Hymenachne amplexicaulis), a disponibilidade de recursos forrageiros vai

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual