SlideShare uma empresa Scribd logo
1 de 237
Baixar para ler offline
UNIVERSIDADE DE MOGI DAS CRUZES
Diego Varalda de Almeida
PROJETO, CONTROLE E ANÁLISE DE UM
MANIPULADOR ROBÓTICO MODULAR
Mogi das Cruzes
Junho de 2016
UNIVERSIDADE DE MOGI DAS CRUZES
Diego Varalda de Almeida  11121502987
PROJETO, CONTROLE E ANÁLISE DE UM
MANIPULADOR ROBÓTICO MODULAR
Projeto de Graduação apresentado ao curso
de Engenharia Mecânica da Universidade de
Mogi das Cruzes, como parte dos requisitos
necessários à obtenção do título de Enge-
nheiro.
Orientador: Prof. Ms. Gilberto Tomáz Junior
Universidade de Mogi das Cruzes – UMC
Engenharia Mecânica
Programa de Graduação
Mogi das Cruzes
Junho de 2016
Almeida, Diego Varalda de
PROJETO, CONTROLE E ANÁLISE DE UM
MANIPULADOR ROBÓTICO MODULAR/ Diego Varalda de Almeida. – Mogi das
Cruzes, Junho de 2016-
236 p. : il. (algumas color.) ; 30 cm.
Orientador: Prof. Ms. Gilberto Tomáz Junior
Monografia – Universidade de Mogi das Cruzes – UMC
Engenharia Mecânica
Programa de Graduação, Junho de 2016.
1. Manipulador Robótico. 2. Controle. 2. Análise Dinâmica. I. Gilberto Tomaz
Junior. II. Universidade de Mogi das Cruzes. III. Curso de Engenharia Mecânica IV.
Projeto, Controle e Análise de um Manipulador Robótico Modular
Dedico este trabalho aos meus pais,
Suleine e Arlindo e à todos os
moradores do flat 33
Agradecimentos
No decorrer de minha formação algumas pessoas e instituições foram de vital importância
e merecem os meus agradecimentos. Primeiramente, gostaria de expressar minha gratidão
ao meu orientador, prof. Ms. Gilberto Tomáz Junior, pelas orientações proporcionadas
que definitivamente contribuíram para a realização dessa monografia.
Além do meu orientador, meus sincero agradecimento vai também aos professores
ph.D. Jan Vorstius e ph.D. William Lewinger, da Universidade de Dundee na Escócia,
pelo auxílio e orientações durante o desenvolvimento do software no estágio de verão no
Laboratório de Robótica. Seus conselhos e ensinamentos me proporcionaram uma maior
compreensão sobre este fascinante campo que é a robótica.
Agradeço também ao Governo Brasileiro, em especial, ao Ministério da Educação e
CNPq que criaram programas de incentivo à educação tais como o PROUNI e o Ciências
sem Fronteiras, o que me possibilitou concluir o curso de engenharia e participar de um
intercâmbio.
Por fim gostaria de agradecer aos meus amigos de classe, tanto aos que conheci na
UMC quanto aos que conheci na Universidade de Dundee, pelas conversas estimulantes,
pela companhia e pela diversão que compartilhamos durante estes anos de graduação,
tanto em sala de aula quanto fora dela.
“Jamais considere seus estudos como uma obrigação,
mas como uma oportunidade invejável (...) para aprender
a conhecer a influência libertadora da beleza do reino do
espírito, para seu próprio prazer pessoal e para proveito
da comunidade à qual seu futuro trabalho pertencer.”
(Albert Einstein)
Resumo
Manipuladores robóticos são amplamente utilizados na indústria por serem máquinas de
grande versatilidade. Este tipo de robô pode realizar tarefas como: pintura, soldagem,
identificação e movimentação de objetos além de montagem de componentes em uma linha
de montagem entre outras. Contudo, para se realizar tais tarefas o robô necessita de uma
série de instruções fornecidas pelo usuário. Estas instruções são geralmente linhas de código
em uma linguagem própria da máquina, que são armazenadas na memória do controlador
e posteriormente lidas pelo robô. Com o intuito de agilizar a fase de programação de
uma tarefa, um software de controle baseado em interface gráfica se faz necessário. Esta
interface gráfica possibilita o usuário a passar instruções para o manipulador robótico
através de simples opções pré-programadas podendo, inclusive, combinar estas opções para
criar tarefas mais complexas. Neste trabalho, será proposto um projeto de manipulador
robótico modular com seis graus de liberdade e é apresentado um programa baseado em
interface gráfica desenvolvido em MATLAB para controle e simulação do manipulador.
Palavras-chave: manipulador. robô. projeto. controle. software. análise. interface
gráfica.
Abstract
Robotic Manipulators are widely used in the industry for being machines of high versatility.
This type of robot can perform tasks such as painting, welding, identification and objects
handling as well as component assembly on an assembly line among others. However, to
perform such tasks the robot requires a series of instructions provided by the user. These
instructions are usually lines of code in its own machine language, which are stored in the
controller memory and later read by the robot. In order to speed up the programming
phase of a task, GUI-based control software is required. This GUI allows the user to pass
instructions to the robotic manipulator through simple preprogrammed options, with the
possibility to combine these options to create more complex tasks. In this paper, it will be
presented the design of a six degrees of freedom modular robotic manipulator in addition
to a GUI-based program developed in MATLAB for robot control and simulation.
Keywords: manipulator. robot. design. control. software. analysis. graphical user interface
Lista de ilustrações
Figura 1 – Manipuladores modular: a)Robotnik modular robot, b)Kuka LBR iiwa
7R800, c)Universal Robot UR10 . . . . . . . . . . . . . . . . . . . . . 18
Figura 2 – Estrutura geral do robô integrado com seu ambiente . . . . . . . . . . 22
Figura 3 – Os três ângulos de rotação de um punho esférico . . . . . . . . . . . . . 23
Figura 4 – Configurações básicas de um manipulador robótico: (a: cartesiano; b:
cilíndrico; c: polar; d: articulado). . . . . . . . . . . . . . . . . . . . . . 25
Figura 5 – Tipos de juntas empregadas em robôs . . . . . . . . . . . . . . . . . . 26
Figura 6 – Representação esquemática das juntas . . . . . . . . . . . . . . . . . . 26
Figura 7 – Manipulador planar de 2 GDL com suporte em O . . . . . . . . . . . . 27
Figura 8 – Típico volume de trabalho para configurações comuns de robôs . . . . . 28
Figura 9 – Cinemática: a)direta; b)inversa . . . . . . . . . . . . . . . . . . . . . . 30
Figura 10 – Movimento descoordenado (esquerda: deslocamento de cada junta; di-
reita: trajetória do manipulador no plano) . . . . . . . . . . . . . . . . 35
Figura 11 – Movimento sequencial (esquerda: deslocamento de cada junta; direita:
trajetória do manipulador no plano) . . . . . . . . . . . . . . . . . . . 36
Figura 12 – Movimento coordenado (esquerda: deslocamento de cada junta; direita:
trajetória do manipulador no plano) . . . . . . . . . . . . . . . . . . . 36
Figura 13 – Aproximação numérica de derivada . . . . . . . . . . . . . . . . . . . . 40
Figura 14 – Exemplo de trajetória desenhada em CAD . . . . . . . . . . . . . . . . 41
Figura 15 – Gráfcos da trajetória linear: a) trajetória em linha reta; b) aproximação
da linha reta por pontos de passagem; c) curvas de coordenadas das
juntas em função da distância linear; d) velocidade angular; e) aceleração
angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 16 – Problemas geométricos com trajetória cartesiana: a)tipo 1; b)tipo 2;
c)tipo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 17 – Parâmetros de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . 46
Figura 18 – Manipulador do tipo articulado com os parâmetros D-H . . . . . . . . 47
Figura 19 – Divisão da matriz de transformação homogênea . . . . . . . . . . . . . 47
Figura 20 – Representação geométrica do Jacobiano . . . . . . . . . . . . . . . . . 48
Figura 21 – Fluxograma de solução da Cinemática Reversa por Jacobiano . . . . . 50
Figura 22 – Trajetória com restrição de orientação . . . . . . . . . . . . . . . . . . 53
Figura 23 – Diagrama de blocos para o problema de controle do robô. . . . . . . . 62
Figura 24 – Sistema de simulação do robô e controle . . . . . . . . . . . . . . . . . 63
Figura 25 – Esquema do controle antecipatório . . . . . . . . . . . . . . . . . . . . 64
Figura 26 – Compensação de distúrbio por torque computado . . . . . . . . . . . . 65
Figura 27 – Diagrama de blocos do método de torque computado . . . . . . . . . . 65
Figura 28 – Manipulador proposto em uma configuração arbitrária . . . . . . . . . 67
Figura 29 – Junta do cotovelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Figura 30 – Frameless brushless DC motor . . . . . . . . . . . . . . . . . . . . . . . 70
Figura 31 – Harmonic drive escolhido para a junta do cotovelo . . . . . . . . . . . . 71
Figura 32 – Freio permanente eletromagnético, modelo Combiperm . . . . . . . . . 71
Figura 33 – Trava mecânica proposta . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Figura 34 – Sensor de torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Figura 35 – Eixo principal da junta do cotovelo . . . . . . . . . . . . . . . . . . . . 73
Figura 36 – Sensor de posição angular (encoder) . . . . . . . . . . . . . . . . . . . 74
Figura 37 – Conjunto do elo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Figura 38 – Vista em corte do punho . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Figura 39 – Resultado da análise feita no elo 2 . . . . . . . . . . . . . . . . . . . . 77
Figura 40 – Resultado da análise feita no elo 3 . . . . . . . . . . . . . . . . . . . . 78
Figura 41 – Resultado da análise feita no eixo principal da junta da base . . . . . . 79
Figura 42 – Resultado da análise feita no eixo principal da junta do cotovelo . . . . 80
Figura 43 – Resultado da análise feita no eixo principal da junta do punho . . . . . 81
Figura 44 – Manipulador proposto com os eixos de referência de cada elo . . . . . . 82
Figura 45 – Diagrama de blocos do controle torque computado . . . . . . . . . . . 85
Figura 46 – Diagrama de blocos do controle antecipatório . . . . . . . . . . . . . . 86
Figura 47 – Pontos de passagem com as velocidades desejadas nos pontos indicados
pelas tangentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Figura 48 – Exemplo 1 - coordenado; esquerda: percurso no espaço cartesiano; direita:
curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 91
Figura 49 – Exemplo 2 - descoordenado; esquerda: percurso no espaço cartesiano;
direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 92
Figura 50 – Exemplo 3 - sequencial; esquerda: percurso no espaço cartesiano; direita:
curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 93
Figura 51 – Exemplo 4 - linear; esquerda: percurso no espaço cartesiano; direita:
curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 94
Figura 52 – Exemplo 5 - circulo; esquerda: percurso no espaço cartesiano; direita:
curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 95
Figura 53 – Exemplo 6 - elipse; esquerda: percurso no espaço cartesiano; direita:
curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 96
Figura 54 – Exemplo 7 - curva de Lissajous; esquerda: percurso no espaço cartesiano;
direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 97
Figura 55 – Exemplo 8 - hipotrocoide; esquerda: percurso no espaço cartesiano;
direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 98
Figura 56 – Exemplo 9 - hélice cônica; esquerda: percurso no espaço cartesiano;
direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 99
Figura 57 – Vetores do centro de gravidade de cada elo . . . . . . . . . . . . . . . . 100
Figura 58 – Curvas de torque da trajetória 1 - coordenado . . . . . . . . . . . . . . 102
Figura 59 – Curvas de torque da trajetória 2 - descoordenado . . . . . . . . . . . . 102
Figura 60 – Curvas de torque da trajetória 3 - sequencial . . . . . . . . . . . . . . . 103
Figura 61 – Curvas de torque da trajetória 4 - linear . . . . . . . . . . . . . . . . . 103
Figura 62 – Curvas de torque da trajetória 5 - círculo . . . . . . . . . . . . . . . . . 104
Figura 63 – Curvas de torque da trajetória 6 - elipse . . . . . . . . . . . . . . . . . 104
Figura 64 – Curvas de torque da trajetória 7 - curva de Lissajous . . . . . . . . . . 105
Figura 65 – Curvas de torque da trajetória 8 - hipotrocoide . . . . . . . . . . . . . 105
Figura 66 – Curvas de torque da trajetória 9 - hélice . . . . . . . . . . . . . . . . . 106
Figura 67 – Posição do manipulador em diferentes momentos da simulação . . . . . 107
Figura 68 – Resultados da simulação dinâmica . . . . . . . . . . . . . . . . . . . . 108
Figura 69 – Estrutura e princípio de funcionamento do SJM III . . . . . . . . . . . 111
Figura 70 – Mensagem exibida ao iniciar o programa . . . . . . . . . . . . . . . . . 118
Figura 71 – Aba Configurações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Figura 72 – Conjuntos de ângulos - (a)conjunto da junta, (b)conjunto global, (c)conjunto
do motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Figura 73 – Tabela de parâmetros do robô . . . . . . . . . . . . . . . . . . . . . . . 126
Figura 74 – Propriedades de massa do desenho . . . . . . . . . . . . . . . . . . . . 127
Figura 75 – Alinhamento da modelo no software . . . . . . . . . . . . . . . . . . . 127
Figura 76 – Aba Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Figura 77 – Mover efetuador com pontos de passagem . . . . . . . . . . . . . . . . 130
Figura 78 – Percurso através de funções paramétricas . . . . . . . . . . . . . . . . . 130
Figura 79 – Aba Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Figura 80 – Aba Simulação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Figura 81 – Janela de Animação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Lista de tabelas
Tabela 1 – Comparação entre diferentes métodos de cinemática inversa; modelo
com um efetuador, 18 GDL, e metas dentro do volume de trabalho . . 31
Tabela 2 – Comparação entre diferentes métodos de cinemática inversa; modelo
com um efetuador, 18 GDL, e metas fora do volume de trabalho . . . . 31
Tabela 3 – Capacidade de carga do manipulador . . . . . . . . . . . . . . . . . . . 67
Tabela 4 – Especificações técnicas estimadas para o manipulador . . . . . . . . . . 68
Tabela 5 – Especificações técnicas das juntas . . . . . . . . . . . . . . . . . . . . . 70
Tabela 6 – Parâmetros de Denavit–Hartenberg do manipulador proposto . . . . . 83
Tabela 7 – Tipos e características de trajetórias . . . . . . . . . . . . . . . . . . . 89
Tabela 8 – Propriedades dos elos . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Tabela 9 – Variáveis da estrutura Histórico (H) . . . . . . . . . . . . . . . . . . . 137
Tabela 10 – Variáveis da estrutura Mensagens (M) . . . . . . . . . . . . . . . . . . 138
Tabela 11 – Variáveis da estrutura Configurações Adicionais (AS) . . . . . . . . . . 138
Lista de abreviaturas e siglas
CAD Desenho assistido por computador.
CNC Comando Numérico Computadorizado
DC Corrente contínua.
FEA Análise de Elementos Finitos
GDL Graus de liberdade
GUI Interface Gráfica do Usuário
GUIDE Graphical User Interface Developer Environment
NASA Administração Nacional da Aeronáutica e Espaço
PCI Placa de circuito impresso
PID Sistema de controle do tipo Proporcional, Integral e Derivado.
PWM Modulação por Largura de Pulso
RIA Robotics Institute of America
RPM Rotações por minuto
SI Sistema Internacional de Unidades
SISO Única Entrada - Única Saída
Lista de símbolos
J Matrix Jacobiana
t Tempo [s]
θ Coordenada de uma junta de revolução, [rad]
˙θ Velocidade da variável de junta, [rad/s]
¨θ Aceleração da variável da junta, [rad/s2
]
λ Constante de amortecimento
ai Coeficiente i da função polinomial
L Lagrangiano
qi Coordenada generalizada
T Matriz de transformação homogênea
Qi Forças externas generalizadas
K Energia cinética, [kg.m2
s−2
]
U Energia potencial, [kg.m2
s−2
]
I Tensor de inércia, [kg.m2
]
r Vetor distância
ρ Densidade do corpo, [kg.m−3
]
L Transformada de Laplace
Sumário
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1 Histórico dos manipuladores robóticos industriais . . . . . . . . 17
1.1.1 Manipuladores modulares . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5 Organização e escopo do trabalho . . . . . . . . . . . . . . . . . . . 20
2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . 21
2.1 Manipuladores robóticos . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Estrutura e componentes de um robô . . . . . . . . . . . . . . . . . . . 21
2.1.2 Sistemas de acionamento e congurações do robô . . . . . . . . . . . . . 24
2.1.3 Esquema de notação de juntas . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.4 Movimentos do robô e graus de liberdade . . . . . . . . . . . . . . . . . 25
2.1.5 Volume de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.6 Ciclo de funcionamento de um manipulador . . . . . . . . . . . . . . . 28
2.2 Cinemática e geração de trajetória . . . . . . . . . . . . . . . . . . 29
2.3 Dinâmica e controle . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.1 Modelagem dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.2 Controle do manipulador . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1 Geração de trajetórias . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.1 Trajetória ponto-a-ponto . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.2 Trajetórias parametrizadas . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.3 Trajetória modelada em AutoCad . . . . . . . . . . . . . . . . . . . . . 40
3.1.4 Trajetória linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.5 Algoritmo anticolisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Cinemática do manipulador . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1 Cinemática direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.2 Cinemática inversa: método pseudo-inverso Jacobiano . . . . . . . . . . 46
3.2.3 Mínimos quadrados amortecido. . . . . . . . . . . . . . . . . . . . . . . 49
3.2.4 Redundância e Singularidades . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.5 Velocidade e aceleração . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.6 Restrições na conguração do manipulador . . . . . . . . . . . . . . . . 52
3.3 Dinâmica do Manipulador . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.1 Conceitos preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.2 Equações de movimento do manipulador . . . . . . . . . . . . . . . . . 56
3.3.3 Extendendo para um manipulador de n GDL . . . . . . . . . . . . . . 58
3.4 Sistemas de controle . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4.1 Rastreio de um ponto de referência . . . . . . . . . . . . . . . . . . . . 62
3.4.2 Controle antecipatório e torque computado . . . . . . . . . . . . . . . . 62
4 MODELAMENTO DO MANIPULADOR ROBÓTICO . . . . 66
4.1 Requisitos iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Capacidade de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.2 Número de graus de liberdade . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.3 Velocidade linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Detalhamento do mecanismo . . . . . . . . . . . . . . . . . . . . . . 67
4.2.1 Módulo da junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.2 Elos do manipulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.3 Punho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3 Análise estrutural por Elementos Finitos . . . . . . . . . . . . . . 76
5 ANÁLISE E RESULTADOS . . . . . . . . . . . . . . . . . . . . 82
5.1 Cinemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.1 Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2 Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3 Trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.1 Exemplo de trajetórias . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.4 Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4.1 Curvas de torque dos exemplos . . . . . . . . . . . . . . . . . . . . . . . 101
5.4.2 Exemplo de simulação dinâmica . . . . . . . . . . . . . . . . . . . . . . 106
6 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . 109
6.1 Sugestões para trabalhos futuros . . . . . . . . . . . . . . . . . . . 110
6.1.1 Implementar um sistema de controle de força no software . . . . . . . . 110
6.1.2 Reprogramação do software em outra linguagem de programação . . . . 110
6.1.3 Implementação de mecanismo de segurança . . . . . . . . . . . . . . . . 111
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
APÊNDICES 116
APÊNDICE A  SOFTWARE DE CONTROLE . . . . . . . . . . 117
A.1 Leiaute e funcionalidades do programa . . . . . . . . . . . . . . . 117
A.1.1 Caixa de Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.1.2 Aba Congurações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.1.2.1 Obtendo a matriz de inércia do elo . . . . . . . . . . . . . . . . . . . . . . 126
A.1.3 Aba Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.1.4 Aba Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
A.1.5 Aba Simulação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . 133
A.1.6 Janela de Animação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
A.2 Arquivos do programa . . . . . . . . . . . . . . . . . . . . . . . . . . 135
A.2.1 SMART-GUI.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
A.2.2 SMART-GUI.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
A.2.3 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.3 Estruturas de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.3.1 HISTORY.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.3.2 MESSAGES.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.3.3 ROBOT-DATA.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
A.3.4 SETTINGS.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
APÊNDICE B  ROTINAS EM MATLAB R DO SOFTWARE
DE CONTROLE . . . . . . . . . . . . . . . . . . . 139
APÊNDICE C  PROJETO DO MANIPULADOR . . . . . . . . 223
17
Capítulo 1
Introdução
1.1 Histórico dos manipuladores robóticos industriais
A palavra robô surgiu por volta de 1920 pelo autor tcheco K. Capek em sua obra teatral
Robô universal de Rossum, e é derivada da palavra robota, que significa trabalhador.
Em 1941 Isaac Asimov propôs as quatro leis da robótica em sua curta história de ficção
científica Runaround, com o intuito de proteger a humanidade de gerações inteligentes de
robôs. As quatro leis são:
Lei zero: um robô não pode causar mal à humanidade ou, por omissão,
permitir que a humanidade sofra algum mal.
Lei um: Um robô não pode ferir um ser humano ou, por inação, permitir
que um ser humano sofra algum mal.
Lei dois: Um robô deve obedecer as ordens que lhe sejam dadas por seres
humanos exceto nos casos em que tais ordens entrem em conflito com a
Primeira Lei.
Lei três: Um robô deve proteger sua própria existência desde que tal
proteção não entre em conflito com a Primeira ou Segunda Leis (JAZAR,
2007).
Posteriormente, o robô industrial foi definido pelo Instituto de Robótica da Amé-
rica (RIA), como um manipulador multifuncional reprogramável, projetado para mover
materiais, peças, ferramentas, ou outros dispositivos especializados através de movimentos
programáveis e realizar uma série de outras atividades (DUYSINX; GERADIN, 2004).
O primeiro robô moderno foi o Unimates, produzido por J. Engelberger no início
dos anos 60. A empresa Unimation foi a primeira a comercializar robôs. Por este motivo
Engelberger é conhecido como o pai da robótica. Nos anos 80 a indústria de robôs cresceu
muito rápido principalmente devido ao grande investimento pela indústria automotiva.
Robôs apareceram como um resultado da combinação de duas tecnologias: te-
leoperadores e controle numérico computadorizado (CNC) de máquinas de usinagem.
Teleoperadores foram desenvolvidos durante a Guerra Mundia II para manipulagem de
materiais radioativos, e CNC foi desenvolvido para aumentar a precisão que era requisitada
para a manufatura de peças com novas tecnologias. Portanto, os primeiros robôs não
passavam de estruturas mecânicas com comando numérico que basicamente transferiam
um material de um ponto A para B (JAZAR, 2007).
Os robôs tradicionais possuem manipuladores de precisão controlados por PID com
altos ganhos que corrigem distúrbios rapidamente. O manipulador são movidos geralmente
Capítulo 1. Introdução 18
por motores de passo ou DC conectados a uma redução enquanto que encoders rastreiam as
juntas permitindo o controle da posição. Atuadores dinâmicos (incluindo massas, refletores
inerciais e rigidez) influenciam drasticamente no sistema de controle e performance geral.
Eles transmitem alta (idealmente infinita) impedância mecânica, o que significa que o robô
resiste ao movimento quando sujeito à uma força. Os robôs também possuem alta largura
de banda e movem para a posição comandada não importa a força externa agindo em suas
juntas. Esta característica é perfeita para automação industrial por que permite que os
robôs rastreiam trajetórias em ambientes estáticos ou mapeados, como em selecionar e
levantar, por exemplo.
1.1.1 Manipuladores modulares
Manipuladores robóticos são cinematicamente compostos de elos conectados por juntas
para formar uma cadeia cinemática. Contudo, o robô como um sistema, consiste de um
manipulador, um punho, um efetuador, atuadores, sensores, controladores, processadores,
e software (JAZAR, 2007).
Manipuladores modulares são geralmente, formados por juntas rotativas e ligados
por elos. Possuem duas juntas na região do ombro, uma na parte do cotovelo e três juntas
compondo o punho. A maioria dos manipuladores robóticos moudulares são colaborativos,
isto é, permitem que o operador trabalhe no mesmo ambiente em que o robô está sem a
necessidade de grades de proteção, característica esta vantajosa para tarefas complexas
que o robô não consegue executar, sendo este utilizado para aumentar a velocidade do
operador. A Figura 1 mostra alguns modelos existentes no mercado de manipuladores
modulares.
Figura 1 – Manipuladores modular: a)Robotnik modular robot, b)Kuka LBR iiwa 7R800,
c)Universal Robot UR10
Fonte: Robotnik (2016), Corp. (2016), Robots (2016)
Capítulo 1. Introdução 19
1.2 Motivação
Uma das motivações para a realização desse trabalho se baseia na escassez de robôs
modulares na indústria. A maioria dos modelos presentes no mercado atualmente são de
grande porte e possuem configuração de elos e juntas fixa, o que dificulta sua aplicação
em determinados ambientes.
Outro motivo é o fato de que os software controladores de robôs e os próprios robôs
que possuem certa precisão terem preços muito elevados, dificultando a aquisição dessas
máquinas em pequenas e médias empresas. Além disso, os softwares de controle presentes
atualmente são de pouco ou quase nenhuma versatilidade, isto é, são produzidos para
um único robô. Por este motivo, o software de controle foi desenvolvido de maneira que
possa ser empregado em vários manipuladores com configuração de juntas de revolução,
precisando apenas de fazer uma modificação dos parâmetros passados ao software tais
como: quantidade de juntas, massa, comprimento e centro de massa de cada elo.
Por último, a interface gráfica foi projetada de maneira a apresentar ferramentas
didáticas para o aprendizado da disciplina de robótica e automação nas salas de aula. O
modo de simulação permite que o software simule movimentos do manipulador sem que
um manipulador físico esteja conectado ao programa.
1.3 Objetivos
Este trabalho tem como objetivo principal desenvolver o projeto de um protótipo de
manipulador robótico modular na qual seja possível acoplar um determinado número de
juntas. Também será desenvolvido neste trabalho um software de controle com interface
gráfica utilizando o software Matlab capaz de controlar o manipulador robótico em questão.
1.4 Metodologia
O trabalho começa com o projeto de um manipulador robótico modular utilizando o
software Solidworks. Durante o desenvolvimento do manipulador, o software ANSYS
será empregado para análise de elementos finitos (FEA) de suas partes. Em seguida, as
equações e métodos para a análise comportamental do manipulador são estudados. Como o
manipulador é modular e pode possuir diversas juntas, métodos algébricos para se calcular
a cinemática e dinâmica do robô não são apropriados, devendo então fazer uso de métodos
numéricos para obtenção dos resultados.
Em seguida, um sistema de controle usando as equações da dinâmica é criado para
o manipulador e simulado no software MATLAB. Este sistema de controle será utilizado
no software desenvolvido permitindo um controle preciso do manipulador.
Capítulo 1. Introdução 20
Por fim a interface gráfica é desenvolvida, utilizando a toolbox GUIDE do MATLAB.
A interface gráfica apresentará uma opção de trabalhar apenas em modo de simulação,
onde simulará os movimentos do robô quando este não estiver conectado ao computador,
ou em modo real, que efetivamente manda o sinal para o manipulador, movimentando-o.
1.5 Organização e escopo do trabalho
Este trabalho está dividido em 6 capítulos. O primeiro consistiu de uma breve introdução
ao tema abordado e histórico dos manipuladores robóticos.
No Capítulo 2 é apresentado uma revisão bibliográfica dos principais temas relacio-
nados a este trabalho. Nesta revisão é mostrado os métodos existentes para modelagem
cinemática e dinâmica para manipuladores robóticos, além dos diferentes tipos de siste-
mas de controle. É mostrado nesse capítulo quais os métodos que serão empregados e a
justificativa de se usar tais métodos.
O Capítulo 3 apresenta toda a metodologia para o trabalho. Neste capítulo a
definição e modelagem matemática dos métodos escolhidos para a cinemática, dinâmica e
sistema de controle utilizados em manipuladores robóticos são apresentados e discutidos.
No Capítulo 4, a modelagem do manipulador modular proposto é apresentada.
Será mostrado neste capítulo os elementos de máquinas utilizado, tais como: redutor de
velocidade, transmissor de potência, sensores elétricos e outros componentes que compõem
as juntas. Ao final é realizada uma análise de elementos finitos dos componentes estruturais
do robô.
O Capítulo 5 apresenta a análise e resultados para o manipulador de seis graus-de-
liberdade apresentado no Capítulo 4. É aplicado neste capítulo as equações e conceitos
visto no Capítulo 3. É feita também uma discussão sobre o comportamento cinemático e
dinâmico para diferentes tipos de trajetórias.
No Apêndice A, o software de controle baseado em interface gráfica é apresentado.
É mostrado como o programa foi desenvolvido, além do papel de cada função dentro do
programa. É mostrado ao final deste apêndice como a interface gráfica é utilizada para o
controle do manipulador robótico.
Por fim, no Capítulo 6, são apresentadas as conclusões do trabalho e as propostas
de trabalhos futuros.
21
Capítulo 2
Revisão Bibliográfica
Spong e Vidyasagar (1989) sugerem que existem seis problemas que devem ser estudados
para se controlar efetivamente um manipulador robótico, são eles: cinemática direta,
cinemática inversa, velocidade cinemática, dinâmica, controle da posição e controle da
força. Existem inúmeros métodos para se tratar cada problema citado, o modelo dinâmico
do manipulador, por exemplo, pode ser desenvolvido usando-se a segunda lei de Newton
ou o método de energia de Euler-Lagrange. Neste capítulo é feita uma revisão bibliográfica
em que procura-se apresentar os métodos existentes na literatura e justificar a escolha dos
métodos escolhidos que serão empregados no software de controle do manipulador.
2.1 Manipuladores robóticos
Na indústria os robôs do tipo manipulador são empregados em uma variedade de aplicações,
sendo a maioria delas para a movimentação de materiais, peças e ferramentas de diversos
tipos (GROOVER, 1988). As aplicações industriais podem ser dividas nas áreas: aplicações
de manuseio de materiais e carregamento e descarregamento de máquinas; aplicações
de processamento (soldagem a ponto, soldagem a arco; pintura a pistola, entre outras);
montagem e inspeção (GROOVER, 1988).
2.1.1 Estrutura e componentes de um robô
Um manipulador robótico tem uma estrutura composta de cinco componentes que inte-
ragem juntos para garantir que o manipulador consiga completar a função passada a ele
(DUYSINX; GERADIN, 2004).
A estrutura mecânica, ou mecanismo articulado, é feito idealmente de membros
rígidos ou elos que articula junto com juntas mecânicas. Esta estrutura carrega o efetuador
que pode ser uma ferramenta, garra, ou outro dispositivo específico.
Os atuadores proporcionam a potência mecânica de forma a mover a estrutura
mecânica contra a ação de forças externas, gravidade, inércia para modificar a configuração
e, portanto, a posição geométrica da ferramenta. Estes podem ser elétricos, hidráulicos, ou
pneumáticos e devem ser controlados apropriadamente.
A transmissão mecânica, conecta e adapta os atuadores à estrutura mecânica. Esta
transmissão adapta os atuadores para carga aplicada e ao mesmo tempo transmitem os
Capítulo 2. Revisão Bibliográfica 22
esforços do atuador para as juntas mecânicas.
Os sensores proporcionam os sentidos para o robô. Eles podem, por exemplo,
providenciar informações de tato, visão, e temperatura. Eles são divididos em dois grupos:
sensores que fornece informação sobre o próprio robô ou sobre o ambiente externo, na qual
o manipulador se encontra.
E por fim, tem-se a unidade de controle, que assume algumas funções, como: coletar
e processar as informações dadas pelos sensores; tomar decisões sobre o plano de movimento
do manipulador; e organizar o fluxo de informações para se comunicar com as juntas do
manipulador e o ambiente (DUYSINX; GERADIN, 2004).
Figura 2 – Estrutura geral do robô integrado com seu ambiente
Fonte: (DUYSINX; GERADIN, 2004)
A estrutura mecânica é detalhada a seguir.
Elos
Os corpos rígidos individuais que compõem o robô são chamados elos. Em robótica,
geralmente quando dizemos braço, nos referimos aos elos. Uma braço robótico é um
membro rígido que pode ter movimento relativo com respeito de todos os outros elos. Do
ponto de vista cinemático, dois ou mais membros conectados juntos de forma que não é
possível ter movimento relativo entre eles são considerados um único elo (JAZAR, 2007).
Capítulo 2. Revisão Bibliográfica 23
Juntas
Dois elos são conectados por contato na junta onde seus movimentos relativos podem ser
expressos por uma única coordenada. Juntas são tipicamente de revolução ou prismática.
A junta de revolução permite rotação relativa entre os elos, já a junta prismática permite
movimento de translação relativo entre dois elos.
Rotação relativa de elos conectados por uma junta de revolução ocorre sobre um
linha chamada de eixo da junta, esse também é o caso para movimento linear que ocorre
em elos conectados por uma junta prismática. O valor da coordenada que descreve a
posição relativa de dois elos conectados a uma junta é chamado de coordenada da junta
ou variável da junta (JAZAR, 2007).
Punhos
As juntas na cadeia cinemática entre o antebraço e o efetuador são referidos como punho.
Enquanto que a estrutura do manipulador é responsável por posicionar o efetuador em
uma posição do espaço, o punho é responsável em orientar o efetuador nos três ângulos
desejados. A maioria dos punhos são projetados como esféricos, o que significa que três
eixos de juntas rotativas se intersectam em um ponto chamado de ponto do punho. Este
tipo de configuração, simplifica a análise cinemática, permitindo a separação da posição e
orientação do efetuador (DUYSINX; GERADIN, 2004; JAZAR, 2007).
Figura 3 – Os três ângulos de rotação de um punho esférico
Fonte: PLW (2013)
Capítulo 2. Revisão Bibliográfica 24
Efetuadores
O efetuador é a parte montada no último elo para fazer o trabalho necessário do robô.
O tipo mais simples do efetuador é a garra, que é geralmente capaz de executar duas
ações: abrir e fechar. A montagem do punho e braço do robô são usados essencialmente
para posicionar e orientar o efetuador e a possível ferramenta que ele pode carregar. É o
efetuador ou a ferramenta que irá realmente executar a tarefa (JAZAR, 2007). Por ser um
item muito específico de cada tarefa, o projeto do efetuador não faz parte do escopo desse
trabalho, mas é apontado nas sugestões de trabalhos futuros.
2.1.2 Sistemas de acionamento e congurações do robô
Robôs industriais são acionados por um dos três tipos de sistema de acionamento (GROO-
VER, 1988):
1 Acionamento hidráulico;
2 Acionamento elétrico;
3 Acionamento pneumático.
Robôs industriais estão disponíveis em uma variedade de tamanhos, formas e
configurações físicas. As quatro configurações básicas são (GROOVER, 1988):
1 Configuração polar;
2 Configuração cilíndrica;
3 Configuração de coordenadas cartesianas;
4 Configuração articulada.
A configuração adotada para o projeto do manipulador apresentado neste trabalho,
foi a configuração articulada. Sua configuração é semelhante à de um braço humano. É
composta por juntas rotacionais e elos em sequência alternada. Um punho pode ser unido à
extremidade do antebraço, proporcionando, assim, um maior número de graus-de-liberdade.
Manipulador articulado
De acordo com Craig (1989), um manipulador antropormófico, ou articulado, geralmente
consiste de duas juntas no ombro, sendo uma para elevação para fora do plano horizontal
e outro para rotação em torno de um eixo vertical (geralmente o eixo z), uma junta no
cotovelo, que é muitas vezes paralelo à junta de elevação do ombro e duas ou três juntas
no punho.
Capítulo 2. Revisão Bibliográfica 25
Figura 4 – Configurações básicas de um manipulador robótico: (a: cartesiano; b: cilíndrico;
c: polar; d: articulado).
Fonte: Duysinx e Geradin (2004)
Os robôs articulados têm a vantagem de serem capazes de alcançar espaço confina-
dos, como a soldagem dentro de um automóvel, por exemplo, o que minimiza a intrusão da
estrutura do robô no espaço de trabalho. Outra vantagem é que eles geralmente requerem
uma estrutura muito menor do que a dos robôs cartesianos, o que os tornam mais baratos
e mais comuns em aplicações industriais (CRAIG, 1989).
2.1.3 Esquema de notação de juntas
A configuração de um manipulador robótico pode ser descrita em termos de tipos de
juntas. Começa-se pela junta mais próxima a base e prosseguindo para as outras 2 juntas
seguintes. Para um manipulador do tipo configuração articulada, a denominação se torna:
TRR ou VVR. Onde T é uma junta de torção, R junta de revolução e V é uma junta
revolvente, como mostrado na figura abaixo.
A notação do robô pode incluir os movimentos do punho, mediante designação
de dois ou três tipos de juntas de punho. A importância de se designar um manipulador
em relação ao tipo de suas juntas se deve ao fato que a configuração do manipulador vai
determinar o seu volume de trabalho.
2.1.4 Movimentos do robô e graus de liberdade
As juntas e elos permitem que o robô mova seu corpo a fim de se realizar um trabalho
produtivo. O efetuador localizado ao final do último elo, possibilita a realização de alguma
tarefa específica, como por exemplo, o efetuador pode ser uma ferramenta ou uma garra,
de maneira a movimentar ou usinar uma peça. Os movimentos de juntas individuais e do
Capítulo 2. Revisão Bibliográfica 26
Figura 5 – Tipos de juntas empregadas em robôs
Fonte: Duysinx e Geradin (2004)
Figura 6 – Representação esquemática das juntas
Fonte: Groover (1988)
punho são chamados de graus de liberdade, sendo um robô industrial típico equipado com
4 a 6 graus de liberdade (GROOVER, 1988).
Em um corpo rígido, grau de liberdade é definido como o número de movimentos
independentes que ele possui. Pode-se calcular o número de graus de liberdade de um
sistema utilizando a equação Gruebler (YI FINGER SUSAN, 2010).
GDL = 3 (e − 1) − 2n − h (2.1)
Onde:
GDL é o total de graus de liberdade de um mecanismo
e é o número de elos (incluindo suporte)
Capítulo 2. Revisão Bibliográfica 27
n é o número de pares inferiores (um grau de liberdade)
h equivale ao número de pares superiores (dois graus de liberdade)
Os pares inferiores são considerados as juntas (tanto de rotação como de translação), já os
pares superiores são considerados as engrenagens ou cames. Para um manipulador com
duas juntas e dois elos como mostrado na Figura 7, o número de graus-de-liberdade se
torna:
GDL = 3 (3 − 1) − 2.2 − 0 = 2
Neste caso e = 3 pois o sistema possui 2 elos e mais 1 suporte, e h = 0 pois o sistema não
possui engrenagens e/ou cames. Se fizermos e = 4 e n = 3, então GDL = 3 e para e = 5 e
n = 4, GDL = 4. É possível perceber que, para um manipulador com juntas de revolução,
a cada par de junta e elo inserido, o número de graus de liberdade aumenta em 1. Sendo
assim, um manipulador com n juntas, possuirá n graus de liberdade.
Figura 7 – Manipulador planar de 2 GDL com suporte em O
Fonte: Produzido pelo autor.
2.1.5 Volume de trabalho
De acordo com Groover (1988), volume de trabalho se refere ao espaço que um dado
manipulador consegue posicionar seu efetuador. É, em geral, definido pelo tipo de juntas
usado na estrutura do robô e do pulso. Para um braço esférico (TRL), por exemplo,
seu volume de trabalho seria, teoricamente, uma esfera cujo raio corresponde a extensão
máxima do braço esticado. A figura abaixo mostra o volume de trabalho para cada
configuração do robô.
Capítulo 2. Revisão Bibliográfica 28
Figura 8 – Típico volume de trabalho para configurações comuns de robôs
Fonte: Groover (1988)
2.1.6 Ciclo de funcionamento de um manipulador
Fazendo uso de um software de controle baseado em interface gráfica, o usuário especifica
uma posição para o efetuador, esta posição pode ser uma coordenada final apenas ou
uma trajetória no espaço ; o usuário então define a velocidade do efetuador (esta pode ser
constante ou uma função do tempo) ou o tempo desejado para finalizar o trajeto, o com-
putador então precisa converter as coordenadas definidas pelo usuário (estas coordenadas
são cartesianas: xyz) em coordenadas das juntas (ângulo θ), esta conversão é feita usando
as equações da cinemática e é chamada de cinemática inversa. Quando o usuário especifica
apenas o ponto final (meta) para o efetuador, o computador calcula os ângulos das juntas
apenas para este ponto e faz uma interpolação polinomial utilizando o tempo do trajeto
para fazer um movimento suave, evitando picos de velocidade e aceleração. Para o caso de
ser definido uma trajetória, então o computador deve calcular os ângulos das juntas para
cada ponto da trajetória, neste caso a velocidade e aceleração das juntas podem apresentar
descontinuidades (DUYSINX; GERADIN, 2004).
Uma vez obtidos a posição, velocidade e aceleração de cada junta em qualquer
instante t, o computador calcula o torque em cada junta necessário para efetuar este
movimento. Este torque é calculado usando as equações de movimento do manipulador.
As equações da dinâmica podem apresentar imprecisões no valor do torque devido
a forças que são difíceis de quantificar, como atritos presentes na transmissão da junta
entre outros fatores. Por este motivo utiliza-se sensores que medem a posição (ângulo) da
junta a cada período de tempo, esta informação é utilizada em um sistema de controle, que
Capítulo 2. Revisão Bibliográfica 29
vai calcular a quantidade de torque que deve ser adicionado ao valor inicial para garantir
que o manipulador chegue à sua meta nas condições (velocidade, ou tempo) impostas pelo
usuário.
Este ciclo é conhecido como inteligência comportamental do robô, onde cada etapa
é fundamental para a realização do movimento do manipulador. Este ciclo é repetido cada
vez que o usuário define uma nova meta para o efetuador.
2.2 Cinemática e geração de trajetória
Em robótica, o movimento do efetuador de um manipulador deve ser o mais suave possível,
evitando assim variações abruptas de posição, velocidade e aceleração. Movimentos abruptos
necessitam de uma quantidade ilimitada de potência para ser implementado (CRAIG,
1989). Por este motivo, implementar um algoritmo eficaz para geração de trajetória é
essencial para um bom funcionamento do manipulador.
Como visto na subseção 2.1.1, um manipulador é composto por elo e juntas. Estas
juntas podem ser de quatro formas: junta de revolução, junta prismática, de rosca e
esférica, cada uma possuindo um número diferente de graus de liberdade. O problema da
cinemática direta faz uso das equações da cinemática e dos parâmetros de cada junta para
determinar a posição e orientação do efetuador.
O ângulo entre os elos é a variável da equação para uma junta de revolução, assim
como a extensão do elo é a variável para uma junta prismática. Na cinemática direta, as
variáveis de cada junta são conhecidas e deseja-se saber a posição e orientação de cada
junta.
Cinemática inversa se refere ao uso das equações da cinemática para a determinação
dos parâmetros das juntas que providenciam uma posição desejada do efetuador (CRAIG,
1989). Na maioria das aplicações de um manipulador, deseja-se que o efetuador vá para
uma certa posição no espaço sem se ter conhecimento das variáveis das juntas (ângulo
ou deslocamento). O usuário então programa a posição final ou a trajetória do efetuador
e as equações da cinemática inversa transformam essas coordenadas em ângulos ou
deslocamentos para os atuadores. O problema da cinemática inversa é considerado mais
complexo que a cinemática direta (BUSS, 2009), por se ter várias possíveis soluções (ou
em alguns casos nenhuma solução é encontrada) de variável da junta para um determinado
conjunto de coordenada (x, y e z).
Os métodos para se resolver cinemática inversa são divididos em dois grandes
grupos: soluções analítica e numérica, sendo o primeiro utilizado para manipuladores com
seis juntas ou menos em que o punho é esférico. Neste, obtém-se uma equação fechada
para cada junta.
Capítulo 2. Revisão Bibliográfica 30
Figura 9 – Cinemática: a)direta; b)inversa
Fonte: Buss (2009)
O segundo grupo de soluções, os métodos numéricos são dividos em pela forma
como são abordados, sendo os principais: uso da matriz Jacobiana, uso de um sistema de
controle, e uso de métodos de otimização que minimizam uma função erro (objetiva).
Ao longo dos anos, diversos modelos numéricos para resolver o problema de cine-
mática inversa foram implementados (ARISTIDOU; LASENBY, 2009). De acordo com
Fëdor (2003), a maioria dos sistemas usam o método da peseudoinversa Jacobiana ou sua
transposta para solucionar o problema contudo este método sofre de singularidades. Zhao
e Badler (1994) resolve a cinemática inversa como um problema de otimização, em que
se minimiza um conjunto de equações não-lineares, definidas no espaço Cartesiano com
restrições.
A solução por método Jacobiano lineariza o movimento do efetuador relativo à
mudanças instantâneas de posição das variáveis das juntas aristidou. Muitos métodos tem
side desenvolvidos para calcular or aproximar a inversa do Jacobiano, tais como: Transposta
Jacobiano, Mínimos quadrados amortecido (DLS), mínimos quadrados amortecido com
decomposição de valor único (SVD-DLS) e mínimos quadrados amortecido seletivo (SDLS)
e outras extensões (BUSS, 2009; NAKAMURA; HANAFUSA, 1986; W.WAMPLER, 1986;
BAILLIEUL, 1985; WOLOVICH; ELLIOTT, 1984; BALESTRINO; SCIAVICCO, 1984).
Outros tipo de solução é baseado no método de Newton. Estes algoritmos procuram
uma posição e orientação do efetuador que irá minimizar a função objetiva, retornando
portanto, um movimento suave sem descontinuidades (ARISTIDOU; LASENBY, 2009).
Os mais conhecidos são o metódo de Powell, o método de Broyden e o método de Broyden,
Fletcher, Goldfarb e Shanno (BFGS)(FLETCHER, 1987), utilizados extensivamente em
otimização.
O método cíclico de coordenadas descendente(CCD), apresentado por Wang e Chen
(1991), é um método iterativo heurístico bastante popular por ser considerado um dos mais
Capítulo 2. Revisão Bibliográfica 31
rápidos a convergir para a proximidade da resposta, contudo é relativamente lento para
alcançar alta precisão e frequentemente produz movimentos erráticos e descontínuos. Por
este motivo, CCD é geralmente empregado em conjunto com outros métodos de otimização,
como o BFGS, que assume quando o manipulador já está na proximidade da meta desejada,
como apresentado por Wang e Chen (1991).
Estes métodos são extensivamente empregados em animações gráficas e em mani-
puladores robóticos com elevado número de graus de liberdade. Podem ser usados como
soluções em tempo real onde a posição da junta do manipulador é atualizada a cada
iteração do algoritmo ou pode-se computar todas as iterações previamente e obter os
valores de ângulos de cada junta para só então depois atualizar a posição do manipulador.
Tabela 1 – Comparação entre diferentes métodos de cinemática inversa;
modelo com um efetuador, 18 GDL, e metas dentro do volume
de trabalho
Método Núm. de iterações Tempo de cada iteração (µs)
Pseudoinversa 32 96,4
Pseudoinversa’ 46 104,1
Mínimos quadrados amortecido 35 89,2
Transposta 59 83,3
Transposta’ 163 84,8
Fonte – (NILSSON, 2009)
A Tabela 1 mostra alguns dos métods que utiliza a matriz Jacobiana. Nesta tabela
precebe-se que o método de pseudoinversa tem o menor número de iterações, contudo
o tempo para cada iteração é um pouco maior que o método dos mínimos quadrados
amortecido (NILSSON, 2009)
Tabela 2 – Comparação entre diferentes métodos de cinemática inversa;
modelo com um efetuador, 18 GDL, e metas fora do volume de
trabalho
Método Núm. de iterações Tempo de cada iteração (µs)
Pseudoinversa - -
Pseudoinversa’ - -
Mínimos quadrados amortecido 74 81,5
Transposta 117 73,8
Transposta’ 98 77,8
Fonte – (NILSSON, 2009)
A Tabela 2 mostra que ambos os métodos da pseudoinversa não puderam produzir
nenhum resultado quando as metas estão fora de alcance (NILSSON, 2009). O metódo da
Capítulo 2. Revisão Bibliográfica 32
pseudoinversa puro fica instável próximos a singularidades (ASADA, 2008), já os outros
métodos necessitam de um maior número de iterações para alcançar o ponto mais próximo
possível da meta.
Conclui-se que o método dos mínimos quadrados amortecido que utiliza a matriz
Jacobiana do sistema é o método ideal para ser empregado em manipuladores robóticos,
uma vez que se mostra estável e consegue alcançar a meta em menos iterações. Este
método será empregado no software de controle apresentado no Apêndice A.
2.3 Dinâmica e controle
A dinâmica e sistemas de controle são partes fundamentais para o controle do manipulador.
A simulação do movimento só pode ser feita se as equações de movimento do manipulador
forem obtidas, assim como o movimento real no robô físico, só obterá precisão se for
implementado um sistema de controle adequado para rastreio de trajetória.
2.3.1 Modelagem dinâmica
A descrição do movimento do robô quando há considerações das forças agindo nele é
dada pelas equações de movimento, que são obtidas através da modelagem dinâmica do
manipulador (CRAIG, 1989).
Assim como na cinemática, em dinâmica de manipuladores, existem dois problemas
a resolver: no primeiro, tem-se a trajetória desejada e deve-se encontrar o torque necessário
em cada junta para mover o manipulador, no outro tem-se uma curva de torque e deseja-se
saber como o manipulador vai responder à isto (CRAIG, 1989).
O comportamento dinâmico do robô é descrito em termos de taxa de variação de
tempo da configuração do robô em relação aos torques aplicados por cada atuador. Esta
relação pode ser expressa por um conjunto de equações diferenciais, chamadas equações
de movimento.
Existem várias técnicas para se determinar tais equações (FU et al., 1987; SHAHIN-
POOR, 1987; SPONG; VIDYASAGAR, 1989; MURRAY et al., 1994; CRAIG, 1989).
A formulação por Newton-Euler, por exemplo, implica em determinar as equações de
movimento baseando-se no balanceamento de forças agindo em cada elo. Este método
resulta em equações para cada corpo, ou elo do robô, o que faz o sistema volumoso e
difícil de se trabalhar para robôs com grande número de elos. Fang A. Basu e Wang
(1994), apresenta um método recursivo baseado no princípio de D’Alambert e trabalho
virtual para se determinar o modelo dinâmico de um manipulador genérico. O método
de Lagrange-Euler usa a conservação de energia no sistema (princípio da ação mínima de
Hamilton) com um Lagrangiano, para determinar as equações de movimento (ASADA,
Capítulo 2. Revisão Bibliográfica 33
2008).
O problema será abordado neste texto fazendo uso do método de Euler-Lagrange
para equações de movimento. Este método foi preferido por apresentar algumas vantagens
sobre o método de Newton-Euler, algumas delas são: o método de Lagrange fornece
automaticamente tantas equações quanto há graus de liberdade; as equações de Lagrange
utilizam naturalmente as coordenadas generalizadas do sistema1
sem a necessidade de
converter tudo para Cartesiano como é o caso do método de Newton-Euler; o método de
Lagrange também elimina as forças de suportes, o que torna o método de certa forma
mais direto e menos laborioso (VANDIVER, 2011). A seção 3.3 mostra o equacionamento
para obter-se as equações de movimento de um manipulador com n graus de liberdade.
2.3.2 Controle do manipulador
O problema de controle para manipuladores robóticos consiste em determinar as entradas
das juntas em função do tempo que faça o efetuador executar o movimento comandado
(sequência de posições e orientações ou um percurso contínuo). Estas entradas podem
ser forças e torques nas juntas, ou podem ser entradas do atuadores, como por exemplo,
voltagem (SPONG; VIDYASAGAR, 1989) Existem diferentes técnicas e metodologias para
controle de manipuladores, o método escolhido tem impacto significante na performance do
manipulador. Rastreio de percursos contínuos requer uma arquitetura de controle diferente
que requer o controle para ponto-a-ponto (SPONG; VIDYASAGAR, 1989).
Um dos mais simples tipos de estratégia de controle é o controle independente de
junta. Neste tipo de controle cada eixo do manipulador é controlado como um sistema de
uma única-entrada/única-saída. Qualquer efeito de acoplamento devido ao movimento dos
outros elos é tratado como uma perturbação (SPONG; VIDYASAGAR, 1989).
O usuário ou o algorítmo do software determina a trajetória desejada para o movi-
mento do manipulador. O sistema de controle deve ser projetado para que o manipulador
consiga se aproximar o melhor possível da trajetória desejada (KOIVO, 1989).
Os valores da trajetória real são retroalimentados através de retroação para determi-
nar possíveis erros de trajetória, o sistema de controle vai então trabalhar para compensar
os erros observados (KOIVO, 1989).
Na realidade, as equações dinâmicas para um manipulador robótico formam um
sistema de multi-variáveis complexo e não-linear (SPONG; VIDYASAGAR, 1989). A
análise de controle no contexto não-linear permite uma análise rigorosa da performance do
sistema de controle, e também permite o projeto de leis de controle robustas e adaptivas
que garantem a estabilidade e rastreio de trajetórias arbitrárias (SPONG; VIDYASAGAR,
1989).
1
para manipuladores articulados, a coordenada generalizada é o ângulo da junta θ.
34
Capítulo 3
Metodologia
Neste capítulo são apresentados os conceitos teóricos que constituem as bases para a análise
e controle de um manipulador robótico. São tratados neste capítulo os seis problemas
apresentados no capítulo anterior que, de acordo com Spong e Vidyasagar (1989), são
fundamentais para o desenvolvimento do software de controle do manipulador e para a
análise apresentados no Capítulo 5
3.1 Geração de trajetórias
A trajetória consiste de um histórico de posição, velocidade e aceleração da coordenada da
junta em função do tempo, para cada grau de liberdade, e descreve o movimento desejado
de um manipulador no espaço multidimensional.
A intenção de se criar uma interface para geração de trajetória para um sistema
robótico, é que o usuário não deve ter a necessidade de escrever funções complicadas de
tempo e espaço para especificar a tarefa, ao invés disso, o usuário especificaria apenas
uma posição meta desejada e a orientação do efetuador, e o sistema decide a forma exata
do percurso para chegar lá, a duração, o perfil de velocidade e outros detalhes (CRAIG,
1989).
3.1.1 Trajetória ponto-a-ponto
O tipo de movimento mais simples do robô é o movimento ponto-a-ponto. Neste tipo de
movimento o robô encontra-se em uma determinada posição e orientação e ordena-se que
ele vá para uma posição e orientação final sem se importar com o caminho intermediário
entre esses dois pontos. O computador converte essa meta descrita no espaço cartesiano
em espaço das juntas usando a cinemática inversa e define como será a curva de posição
da junta com base na velocidade ou tempo estipulado pelo usuário.
Este tipo de movimento é adequado para tarefas de transferência quando a área
de trabalho está livre de obstáculos (SPONG; VIDYASAGAR, 1989). Com relação ao
movimento das juntas neste tipo de movimento, existem algumas possíveis maneiras de
acionamento, mostrados a seguir.
Capítulo 3. Metodologia 35
Movimento Descoordenado
Em um manipulador com todas as juntas rotativas, o efetuador terá um movimento
descoordenado se todas as juntas se moverem com a mesma velocidade. Uma vez que,
para um determinado movimento, cada junta terá uma distância diferente a percorrer,
uma vez que todas estão a uma velocidade constante igual, elas terminarão seu movimento
em momentos diferentes. O caminho criado por este tipo de movimento é circular com
descontinuidades, como mostrado na Figura 10. Este tipo de trajetória foi implementado na
interface gráfica, embora seja desaconselhado utilizá-lo quando o robô estiver carregando
objetos pesados. O programa envia o ângulo de destino para cada junta com uma velocidade
constante e igual para todas as juntas conectadas.
Figura 10 – Movimento descoordenado (esquerda: deslocamento de cada junta; direita:
trajetória do manipulador no plano)
Fonte: Marion e Thornton (1981)
Movimento sequencial
O movimento sequencial consiste em mover uma junta por vez até o efetuar alcançar seu
destino. A junta mais próxima da base geralmente é movida primeiro, e apenas quando
seu movimento for concluído é que o movimento da próxima junta se inicia, a velocidade
para cada junta pode ser diferente e não necessariamente constante.
Uma vantagem deste tipo de controle de junta, é que, uma vez que apenas uma
junta está sendo movida por vez, a corrente total consumida por cada atuador é menor
se comparado com os outros tipos de movimento. A desvantagem, contudo, é que este
método apresenta várias descontinuidades na trajetória do efetuador e em muitos casos, um
controle adicional é necessário para evitar que o efetuador colida com objetos ou superfícies.
A figura a seguir mostra o movimento de um manipulador com 2 graus-de-liberdade com
movimento sequencial.
Capítulo 3. Metodologia 36
Figura 11 – Movimento sequencial (esquerda: deslocamento de cada junta; direita: trajetó-
ria do manipulador no plano)
Fonte: Marion e Thornton (1981)
Junta interpolada
O método de junta interpolada é um dos mais usados em sistemas robóticos por ser um
movimento suave. Neste caso, todas as juntas possuem velocidades diferentes o que faz
com que todas as juntas terminem ao mesmo tempo, ou seja, não há grandes variações em
velocidade e aceleração. O caminho descrito pelo efetuador, por ser curvo, não apresenta
descontinuidades e pode ser descrito por uma interpolação polinomial.
Movimento suave é considerado como uma função contínua que possui, no mínimo,
duas derivadas contínuas. Isto evita movimentos bruscos, com solavancos diminuindo,
assim, o desgaste do mecanismo e possíveis vibrações que podem provocar ressonâncias no
manipulador (CRAIG, 1989).
Figura 12 – Movimento coordenado (esquerda: deslocamento de cada junta; direita: traje-
tória do manipulador no plano)
Fonte: Marion e Thornton (1981)
Para um percurso suave, a velocidade inicial e e velocidade final são iguais à zero,
Capítulo 3. Metodologia 37
e os ângulos das juntas inicial e final correspondem ao ângulo em que a junta está e o
ângulo calculado final respectivamente, portanto:
θ (0) = θ0,
θ (tf ) = θf ,
˙θ (0) = 0,
˙θ (tf ) = 0.
(3.1)
As quatro restrições podem ser satisfeitas por um polinômio de terceiro grau. Este polinômio
tem a forma
θ (t) = a0 + a1t + a2t2
+ a3t3
(3.2)
tomando-se a derivada desse polinômio para calcular a velocidade e aceleração, obtém-se
˙θ (t) = a1 + 2a2t + 3a3t2
¨θ (t) = 2a2 + 6a3t
(3.3)
Combinando as equações (3.2) e (3.3) com as restrições desejadas (3.1), obtém-se quatro
equações com quatro incógnitas:
θ0 = a0
θf = a0 + a1tf + a2t2
f + a3t3
f
0 = a1
0 = a1 + 2a2tf + 3a3t2
f
(3.4)
Encontrando os coeficientes ai dessas equações, obtém-se:
a0 = θ0
a1 = 0
a2 =
3
t2
f
(θf − θ0)
a3 = −
2
t3
f
(θf − θ0)
(3.5)
Com esses coeficientes é possível calcular o polinômio cúbico que conecta qualquer posição
inicial de ângulo de junta com qualquer posição final, de forma que as velocidades inicial e
final sejam zero, formando portanto, um movimento suave. As funções θ (t), ˙θ (t) e ¨θ (t),
tornam-se, portanto:
θ (t) = −
2
t3
f
(θf − θ0) t3
+
3
t2
f
(θf − θ0) t2
+ θ0 (3.6)
˙θ (t) = −
6
t3
f
(θf − θ0) t2
+
6
t2
f
(θf − θ0) t (3.7)
¨θ (t) = −
12
t3
f
(θf − θ0) t +
6
t2
f
(θf − θ0) (3.8)
Capítulo 3. Metodologia 38
É possível também descrever alguns pontos de passagem para o efetuador1
, de
forma que o efetuador passará por esses pontos sem parar. Cada um desses pontos são
convertidos para o espaço das juntas pelo uso da cinemática inversa.
As restrições para os pontos inicial e final permanecem os mesmos, contudo para
os pontos de passagem as velocidades se torna uma velocidade conhecida.
˙θ (0) = ˙θ0
˙θ (tf ) = ˙θf
(3.9)
As equações que descrevem o polinômio cúbico são:
θ0 = a0
θf = a0 + a1tf + a2t2
f + a3t3
f
˙θ0 = a1
˙θf = a1 + 2a2tf + 3a3t2
f
(3.10)
Obtém-se, portanto, os coeficientes da função:
a0 = θ0
a1 = ˙θ0
a2 =
3
t2
f
(θf − θ0) −
2
tf
˙θ0 −
1
tf
˙θf
a3 = −
3
t3
f
(θf − θ0) +
1
t2
f
˙θf − ˙θ0
(3.11)
Substituindo os coeficientes nas equações (3.2) e (3.3), para obter:
θ (t) = −
3
t3
f
(θf − θ0) +
1
t2
f
˙θf − ˙θ0 t3
+
3
t2
f
(θf − θ0) −
2
tf
˙θ0 −
1
tf
˙θf t2
+ ˙θ0t + θ0
(3.12)
˙θ (t) = −
9
t3
f
(θf − θ0) +
3
t2
f
˙θf − ˙θ0 t2
+
6
t2
f
(θf − θ0) −
4
tf
˙θ0 −
2
tf
˙θf t + ˙θ0 (3.13)
¨θ (t) = −
18
t3
f
(θf − θ0) +
6
t2
f
˙θf − ˙θ0 t +
6
t2
f
(θf − θ0) −
4
tf
˙θ0 −
2
tf
˙θf (3.14)
As velocidades nos pontos de passagem devem ser conhecidas para se calcular o
polinômio para cada junta. Essa velocidade pode ser especificada pelas seguintes formas:
pelo usuário, como uma velocidade cartesiana linear e angular para o efetuador naquele
instante; o sistema escolhe automaticamente as velocidades aplicando uma heusterística
adequada no espaço das juntas ou no espaço cartesiano; ou o sistema escolhe as velocidades
de forma que a aceleração no ponto de passagem seja contínua (CRAIG, 1989).
1
A expressão ponto se refere à sistemas de referência que fornecem tanto a posição quanto a orientação
do efetuador.
Capítulo 3. Metodologia 39
3.1.2 Trajetórias parametrizadas
Em certas ocasiões o usuário necessita que o efetuador percorra um caminho específico, ao
invés de apenas especificar um ponto inicial e uma meta. Esta trajetória pode ser descrita
no espaço cartesiano de forma paramétrica, onde as coordenadas x, y, z são funções de
tempo. Para este caso, o usuário especifica um tempo desejado para se completar o trajeto,
ou uma velocidade linear constante.
Para cada ponto da trajetória, é necessário calcular o valor da variável de junta
utilizando o método de cinemática inversa apresentado na subseção 3.2.3. Para mani-
puladores com até três juntas, pode-se utilizar o método geométrico, e substituindo as
variáveis cartesianas pela função paramétrica se tem a função fechada de variável de junta
em função do tempo. Nos casos em que o manipulador possui mais de três juntas, ou graus
de liberdade, um método numérico é usado para calcular a variável de junta para certos
ponto da trajetória, com espaçamento ∆s entre cada ponto, uma tabela é então formada
para cada junta.
Para a implementação da interface gráfica, o método numérico de cinemática inversa
escolhido foi o método dos mínimos quadrados amortecido , por se mostrar ser o mais
rápido a convergir os valores. Este método reduz o número total de iterações para se obter
a tabela de variáveis de junta para cada ponto, tornando o processo mais rápido e estável.
Em trajetórias parametrizadas, os pontos estão muito próximos um do outro, o
que torna inviável computar um polinômio cúbico para cada ponto. Por este motivo não
é possível determinar a derivada de forma algébrica, uma derivada numérica é então
empregada de forma a obter a velocidade e aceleração do espaço de junta.
Uma derivada numérica é obtida utilizando a definição de derivada:
f = lim
h→0
f(x + h) − f(x)
h
(3.15)
Onde a aproximação numérica se torna:
f ≈
f(x0 + h) − f(x0)
h
(3.16)
A aceleração é obtida pela segunda derivada:
f ≈
f(x0 + h) − 2f(x0) + f(x0 − h)
h2
(3.17)
Onde f(x0) é o valor do ângulo θ da junta i para um dado momento t. O valor de
h deve ser pequeno o suficiente de maneira que se tenha uma boa aproximação, mas não
tão pequeno que se carregue muito o processamento do algoritmo.
Capítulo 3. Metodologia 40
Figura 13 – Aproximação numérica de derivada
Fonte: Produzido pelo autor
3.1.3 Trajetória modelada em AutoCad
Quando a obtenção das equações parametrizadas se torna complexa, pode-se recorrer a um
software de desenho como o AutoCAD, para obter uma tabela de coordenadas cartesianas
para o efetuador. No software, o usuário desenha a trajetória desejada para o efetuador a
converte em uma tabela de pontos relativamente próximos e uniformemente espaçados.
Com o AutoCAD é possível exportar uma tabela de pontos presentes em um arquivo de
desenho para o Microsoft Excel, que posteriormente pode ser incorporado na interface
gráfica do usuário. Contudo, a tabela de pontos nem sempre está em ordem, e é necessário
utilizar um algoritmo para reorganização dos pontos (a ordem dos pontos de uma trajetória
é fundamental). Este algoritmo não será explicado aqui, mas é descrito brevemente na
descrição do programa feito em Matlab para este fim. Neste programa, contido nos anexos,
também descreve o método de se converter uma curva ou até mesmo caracteres de texto,
como no exemplo abaixo, em tabela de pontos utilizando o AutoCAD.
O exemplo abaixo mostra a trajetória desenhada em AutoCAD correspondente às
três letras que compõem o logo da universidade, isto é, ‘UMC’. A Figura 14 mostra os
pontos distribuídos no espaço de trabalho do manipulador.
3.1.4 Trajetória linear
Em um manipulador de juntas de revolução, o movimento do efetuador nunca é linear
(BUSS, 2009; CRAIG, 1989). Porém, é possível aproximar o trajeto em um percurso linear,
Capítulo 3. Metodologia 41
Figura 14 – Exemplo de trajetória desenhada em CAD
Fonte: Produzido pelo autor
informando pontos de passagens relativamente próximos uns dos outros.
A trajetória retilínea pode ser entendida como um caso específico da trajetória
parametrizada. Para este caso, também é necessário calcular os ângulos das juntas para
pontos igualmente espaçados do percurso da linha. O efetuador terá sua velocidade linear
constante durante o percurso, fazendo com que a curva de variável de junta se torne
complexa. Em percursos de linha reta, as derivadas primeira e segunda das coordenadas
de juntas, são quase sempre curvas com descontinuidades, por isso é aconselhável evitar os
percursos de linha reta em tarefas com elevação de cargas.
Um dos métodos mais simples para se obter uma trajetória em linha reta é o
algoritmo de Taylor, que utiliza pontos de passagem igualmente espaçados entre o ponto
inicial e final. O algoritmo pode ser descrito como segue:
1o
Calcule as coordenadas das juntas para o ponto inicial e final (meta);
2o
Calcule um ponto médio, no espaço das juntas e Cartesiano;
3o
Se o erro no trajeto planejado for maior que o permitido, então divida o trecho em
dois e insira mais um ponto de passagem entre as extremidades;
4o
Cheque o erro em ambos os lados do trajeto, caso o erro ainda permanecer maior que
o permitido, adicione mais pontos de passagem até que o erro seja reduzido.
Quanto maior o número de pontos de passagem, mais próximo será a aproximação
da trajetória necessária.
Capítulo 3. Metodologia 42
Figura 15 – Gráfcos da trajetória linear: a) trajetória em linha reta; b) aproximação da
linha reta por pontos de passagem; c) curvas de coordenadas das juntas em
função da distância linear; d) velocidade angular; e) aceleração angular
Fonte: Marion e Thornton (1981)
Alguns problemas podem aparecer quando é utilizado trajetórias lineares. O primeiro
tipo é o problema da trajetória possuir pontos intermediários inalcançáveis. Neste caso,
embora a localização inicial do manipulador e a meta estejam dentro do volume de trabalho,
é possível que alguns pontos da reta sejam inalcancáveis, um exemplo disso seria uma linha
reta em que seu meio passe muito próximo à base do manipulador, não sendo possível o
efetuador alcançar esses pontos sem que haja uma colisão do efetuador com algum elo.
O segundo problema ocorre quando os pontos da trajetória são próximos à singula-
ridades. Se um manipulador está seguindo uma trajetória cartesiana em linha reta e se
aproxima de uma configuração singular do mecanismo, a velocidade de uma ou mais juntas
pode aumentar ao infinito. Sendo as velocidades de mecanismos limitadas, o que ocorre na
prática é que existirá um desvio do manipulador do curso desejado (CRAIG, 1989).
O problema do tipo três surge quando um manipulador tem os pontos inicial e alvo
atingíveis por diferentes soluções. Neste caso o manipulador consegue alcançar todos os
pontos da trajetória com algumas soluções ao invés de uma única. Neste caso, o sistema
de planejamento pode detectar o problema antes de mover o robô pelo percurso (CRAIG,
1989).
Como será mostrado no Apêndice A, existe uma função específica que irá checar a
trajetória gerada antes de iniciar a simulação ou enviar o movimento ao robô. A Figura 16
ilustra os três tipos de problemas.
Capítulo 3. Metodologia 43
Figura 16 – Problemas geométricos com trajetória cartesiana: a)tipo 1; b)tipo 2; c)tipo 3
Fonte: Craig (1989)
3.1.5 Algoritmo anticolisão
Em uma ocasião ideal, o usuário iria entrar com um ponto meta desejado e o sistema
determinaria quantos pontos de passagem seria necessário para que a trajetória gerada
fosse capaz de se livrar de qualquer obstáculo. Contudo, para se alcançar tal estado, o
sistema precisaria ter modelos do manipulador, da área de trabalho e de todos os possíveis
obstáculos que nela se encontram(através de sistema de visão) (CRAIG, 1989).
Atualmente, não existem sistemas que conseguem planejar trajetórias que sejam
totalmente livres de colisão (CRAIG, 1989). As técnicas existentes conseguem evitar
algumas das possíveis colisões buscando em uma representação gráfica do ambiente
uma trajetória livre de colisão. Contudo esses métodos são exponencialmente complexos
se considerar um obstáculo móvel (como no caso de um segundo manipulador estar
trabalhando na mesma área) ou se o manipulador possuir muitos graus de liberdade
(CRAIG, 1989).
Uma dos algoritmos mais simples para se evitar colisão consiste em descrever o
objeto presente na área de trabalho do manipulador como uma aproximação do formato
usando uma função parametrizada, como a da esfera por exemplo. O sistema iria então
verificar se algum ponto da trajetória estaria dentro do volume da esfera e caso estivesse,
este iria procurar através de uma análise vetorial, a menor distância fora da esfera em que
não haveria trajetória. Este método é laborioso, pois o usuário teria que descrever o objeto
toda vez que esse mudasse de lugar.
Como o sistema de visão não faz parte do escopo deste trabalho, não será imple-
mentado no software de controle o algoritmo anticolisão. É apresentado no Capítulo 6
como sugestão para trabalho futuro, a implementação de um sistema de visão e algoritmo
anticolisão no software de controle. Também é sugerido uma atualização para a junta
Capítulo 3. Metodologia 44
do manipulador para que esta consiga detectar quando o manipulador colide com algum
objeto acionando, assim, um sistema de segurança que desliga o torque dos atuadores das
juntas.
3.2 Cinemática do manipulador
Cinemática é o campo da Mecânica clássica que descreve os movimentos de pontos,
corpos de sistemas de corpos sem consideração às causas do movimento (forças e torques).
Cinemática é de grande importância no estudo de manipuladores robóticos pois permite a
determinação da posição de cada junta e do efetuador para qualquer instante.
3.2.1 Cinemática direta
Em um manipulador, juntas e elos são conectados de forma alternada. Assumindo que cada
junta tenha um único grau de liberdade, o movimento de cada junta pode ser descrito por
uma única variável: ângulo para juntas de revolução e deslocamento para juntas prismáticas.
As equações da cinemática direta determinam o efeito acumulativo do conjunto inteiro de
variáveis.
Para um manipulador de n juntas, ele apresentará n + 1 elo, uma vez que cada
junta se conecta com dois elos. Por convenção, as juntas são numeradas de 1 até n e os
elos de 0 até n , partindo da base. É considerado que cada junta i é fixa com respeito o
elo i − 1. Desta forma, quando uma junta i é acionada, o elo i se move. Para cada junta,
uma variável qi é associada a esta, sendo que para uma junta de revolução, a variável qié o
ângulo entre as juntas, portanto: qi = θi.
Permitindo que Ai seja a matriz homogênea de transformação que descreve a
posição e orientação do link i com respeito as coordenadas x, y, z a partir da origem. Para
um manipulador com uma matriz única Ai, esta matriz é função de uma única variável,
isto é, Ai (qi). Para um manipulador com duas ou mais juntas, a matriz de transformação
das juntas j até a junta i é obtida a partir da multiplicação de todas as matrizes A de i
até j:
Tj
i = Ai+1Ai+2...Aj−1Aj (3.18)
Para resolver o problema da cinemática direta, é necessária determinar a matriz de
transformação Ai, uma vez determinada, a posição e orientação pode ser obtida diretamente
da matriz final Tj
i . A convenção e método de obtenção de Ai é apresentado a seguir.
Critério de notação de Denavit-Hartenberg
Jacques Denavit e Richard Hartenberg introduziram uma convenção em 1995 para a
definição de matrizes de juntas e matrizes de elo com o intuito de padronizar a estrutura
Capítulo 3. Metodologia 45
de coordenadas de uma cadeia cinemática. Na convenção de D-H, cada matriz homogênea
de transformação é representada com um produto de quatro outras transformações básicas:
Ai = Rz,θi
Transx,di
Transz,ai
Rx,αi
(3.19)
Onde:
Rz,θi
=








cθi
−sθi
0 0
sθi
cθi
0 0
0 0 1 0
0 0 0 1








(3.20)
Transx,di
=








1 0 0 0
0 1 0 0
0 0 1 di
0 0 0 1








(3.21)
Transz,ai
=








1 0 0 ai
0 1 0 0
0 0 1 0
0 0 0 1








(3.22)
Rx,αi
=








1 0 0 0
0 cαi
−sαi
0
0 −sαi
cαi
0
0 0 0 1








(3.23)
As matrizes de rotação geralmente são apresentadas com dimensão 3 × 3. A quarta
linha e coluna da matriz são adicionados para permitir a descrição não apenas da rotação
em torno de um eixo, mas também de uma translação d. Portanto, a matriz Ai que é
produto de duas matrizes de rotação e duas de translação, possui dimensão 4 × 4.
Efetuando a multiplicação das quatro matrizes, a matriz Ai se torna:
Ai =








cθi
−sθi
cαi
sθi
cαi
aicθi
sθi
cθi
cαi
−cθi
sαi
aisθi
0 sαi
cαi
di
0 0 0 1








(3.24)
Onde c representa o cosseno do ângulo θ ou α, s representa o seno do ângulo e
os parâmetros ai, αi, di e θi são: comprimento do elo, giro do elo, deslocamento do elo e
ângulo da junta, respectivamente.
Com estes parâmetros estabelecidos, a posição e orientação do efetuador com
respeito a origem global do robô O pode ser encontrada, multiplicando-se n matrizes de
Capítulo 3. Metodologia 46
Figura 17 – Parâmetros de Denavit-Hartenberg
Fonte: Craig (1989)
transformação homogêneas A, obtendo-se a matriz de transformação T0
n , ou seja:
Tn
0 =
n
i=1
Ai
i−1 (qi) =


n o a p
0 0 0 1

 (3.25)
A matriz Tj
i é uma matriz quadrada 4 × 4 onde as primeiras três linhas e colunas
representam a orientação da junta j e a quarta coluna fornece a coordenada (x, y e z)
com respeito ao sistema de coordenada do elo i. A Figura 18 mostra os parâmetros D-H
para um manipulador do tipo articulado e a Figura 19 mostra como é divida a matriz de
transformação homogênea.
3.2.2 Cinemática inversa: método pseudo-inverso Jacobiano
A cinemática direta pode ser interpretada com uma função da variável da junta qi. A
posição do efetuador pode, então, ser escrita como:
e = f(θ) (3.26)
Onde e é a posição do efetuador, isto é: e = (e1, e2, ..., em)T
, (em espaço tridimen-
sional: m = 3), e θ é um vetor-coluna composto por todos as n variáveis de juntas, isto é:
θ = (θ1, θ2, ..., θn)T
.
Para a cinemática inversa, deseja-se encontrar uma função que retorna um vetor de
variáveis de juntas (ângulos ou deslocamentos) que vai fazer com que o efetuador alcance
Capítulo 3. Metodologia 47
Figura 18 – Manipulador do tipo articulado com os parâmetros D-H
Fonte: Produzido pelo autor
Figura 19 – Divisão da matriz de transformação homogênea
Fonte: Produzido pelo autor
alguma posição desejada. Neste caso e é conhecido e queremos encontrar o valor de θ,
então computa-se a função inversa de (3.26).
θ = f−1
(e) (3.27)
Esta função inversa nem sempre tem solução única, e é muito mais complexa
quando o manipulador possui múltiplos graus-de-liberdade ou múltiplos efetuadores, o que
faz o processo de encontrar as soluções mais exigente computacionalmente.
Para manipuladores com múltiplos efetuadores (k), a posição no espaço é denotada
por p1, ..., pk, onde a posição de cada efetuador é uma função da variável da junta. Pode-se
também escrever o vetor p como um vetor-coluna: (p1, p2, ..., pk)T
que pode ser visto como
um vetor com k entradas pertencentes ao R3
.
Permita que o vetor t seja a posição desejada para cada efetuador, isto pode ser
representado como um vetor coluna com k entradas: t = (t1, ..., tk)T
. A mudança em
posição de cada efetuador pode ser calculada usando o vetor de posição atual s e a posição
de destino t, considere e como o vetor de diferença entre os dois vetores, pode-se escrever
para cada efetuador: e = t − p. Uma vez que a posição atual do efetuador é uma função
Capítulo 3. Metodologia 48
de θ, a equação (3.26) para múltiplos efetuadores, se torna:
ti = pi(θ) para todos k efetuador (3.28)
Os valores para θ que satisfazem as equações (3.28) pode, em alguns casos, ter
múltiplas soluções ou nenhuma solução. Contudo, é possível aproximar a função usando
uma matriz Jacobiana, que é definida por:
J (θ) =
∂pi
∂θj i,j
(3.29)
Onde J é a matriz k × n cujos elementos são vetores do R3
. A justificativa de se
usar uma matriz Jacobiana é que a função de posição de cada efetuador pi(θ) é sempre
diferenciável, portanto, a matriz Jacobiana apresentará a melhor aproximação linear
da função ao redor do ponto escolhido, como mostrado na figura abaixo. As equações
de velocidade e aceleração do efetuador também podem ser obtidas a partir da matriz
Jacobiana. O algoritmo para se obter as soluções da cinemática inversa, pode ser descrito
Figura 20 – Representação geométrica do Jacobiano
Fonte: Produzido pelo autor
como segue:
Capítulo 3. Metodologia 49
Suponha que se conheça o valor da variável da junta θ e posição atual da junta
(vetores p e t) em um dado instante. A partir desses valores, calcula-se a matriz Jacobiana
usando a equação (3.29). Procuramos um valor de atualização para ∆θ que irá incrementar
o ângulo da junta:
θ := θ + ∆θ (3.30)
Esta mudança da variável vai causar uma mudança da posição atual do efetuador
p, e pode ser estimado:
∆p ≈ J∆θ (3.31)
O valor ∆θ é escolhido de forma que ∆s é aproximadamente igual a diferença entre
a posição final e a posição inicial (vetor e). Podemos encontra um valor de ∆θ que vá
satisfazer a equação:
e = J∆θ (3.32)
O valor de ∆θ é encontrado calculando-se a inversa de matriz Jacobiana:
∆θ = J−1
e (3.33)
Contudo, dependendo do número de juntas e do número de efetuadores do manipulador, a
matriz Jacobiana pode não ser quadrada, da qual não se pode calcular a inversa. Por isso,
é empregado alguns métodos para se contornar este problema, sendo um deles o uso do
método da Transposta Jacobiana, que consiste de usar a transposta da matriz Jacobiana
ao invés da inversa de J para encontrar ∆θ. Outro método utilizado é conhecido como
método pseudoinverso, que é usado quando a matriz Jacobiana for retangular, a equação
(3.33) se torna:
∆θ = J†
e (3.34)
Onde a matriz J†
que possui dimensão n × m é o pseudo-inverso de J, também conhecida
como Moore-Penrose inversa de J e fornece a melhor solução possível para a equação
(3.32), uma vez que este método calcula esta equação usando o método dos quadrados
mínimos. O pseudo-inverso de J pode ser calculada usando a equação:
J†
= JT
J
−1
JT
(3.35)
Onde JT
é a transposta da Jacobiana.
3.2.3 Mínimos quadrados amortecido.
O método pseudo-inverso Jacobiano apresenta alguns problemas quando a meta está
fora de alcance do manipulador ou quando está muito próxima da distância máxima de
alcance. Estes problemas fazem o método numericamente instável quando o programa
Capítulo 3. Metodologia 50
Figura 21 – Fluxograma de solução da Cinemática Reversa por Jacobiano
Fonte: Joubert (2008)
estiver tentando calcular o valor de ∆θ. Para evitar estes problemas com singularidades, o
método de mínimos quadrados amortecido é utilizado.
Este método se difere do pseudo-inverso Jacobiano no sentido que ao invés de
encontrar um mínimo vetor ∆θ que fornece a melhor solução para a equação (3.32), o
algoritmo vai procurar o valor de ∆θ que irá minimizar a quantidade
J∆θ − e 2
+ λ2
∆θ 2
(3.36)
Onde λ ∈ R é uma constante de amortecimento não nulo. Pode-se reescrever a expressão
acima como:
JT
J + λ2
I ∆θ = JT
e (3.37)
O valor de JT
J +λ2
I é não-linear (BUSS, 2009), e portanto, a solução dos mínimos
Capítulo 3. Metodologia 51
quadrados é dada por:
∆θ = JT
J + λ2
I
−1
JT
e (3.38)
O produto JT
J é uma matriz quadrada n × n, em que n é o número de variáveis
de juntas (graus-de-liberdade), considerando que
JT
J + λ2
I
−1
JT
= JT
JJT
+ λ2
I
−1
(3.39)
Então:
∆θ = JT
JJT
+ λ2
I
−1
e (3.40)
A vantagem de se usar (3.40) ao invés de (3.38) é que JJT
+ λ2
I
−1
é mais fácil
de se calcular sua inversa, uma vez que JJT
é uma matriz m × m , em que m é o espaço
da meta (para uma espaço tridimensional: m = 3) e é na maioria dos casos menor que n.
A constante de amortecimento λ depende dos detalhes do manipulador e da meta
e deve ser escolhido com cuidado de maneira à fazer a equação (3.40) numericamente
estável. A constante deve ser grande o suficiente de maneira que as soluções para ∆θ
tenha bom comportamento próximo de singularidades, mas não tão grandes que a taxa de
convergência se torne muito lenta (BUSS, 2009).
3.2.4 Redundância e Singularidades
Um manipulador deve possuir pelo menos seis graus de liberdade de forma a poder alocar
o efetuador em uma ponto e orientação arbitrária no espaço. Os manipuladores com uma
número menor que 6 graus de liberdade não são capazes de executar o posicionamento de
tais pontos arbitrários. Contudo, se o manipulador tiver mias que 6 graus de liberdade,
irá existir um infinito número de soluções para as equações da cinemática. São, portanto,
referidos como manipuladores redundantes (ASADA, 2008).
A matriz jacobiana 6 × n, J (q) define um mapeamento:
˙X = J (q) ˙q (3.41)
entre o vetor ˙q das velocidades da junta e do vetor ˙X := (v, ω)T
de velocidades do efetuador.
Infinitesimalmente, isso define uma transformação linear (SPONG; VIDYASAGAR, 1989)
dX = J (q) dq (3.42)
entre os diferenciais dq e dX. Uma vez que a jacobiana é uma função da configuração q,
aquelas configurações em que o ranque de J diminui são de significância especial. Tais confi-
gurações são chamadas singularidades ou configurações singular (SPONG; VIDYASAGAR,
1989).
Capítulo 3. Metodologia 52
3.2.5 Velocidade e aceleração
Como mostrado acima, as velocidades da junta e as velocidades do efetuador são relacio-
nadas pela matriz jacobiana:
˙X = J (q) ˙q (3.43)
Portanto, a velocidade inversa se torna um problema de resolver um sistema de
equações lineares. Para encontrar a aceleração, pode-se diferenciar a equação acima. Usando
a regra do produto:
¨X = J (q) ¨q +
d
dt
J (q) ˙q (3.44)
Portanto, dado um vetor ¨X de acelerações do efetuador, o vetor de aceleração
instantânea da junta ¨q é dado como a solução de:
b = J (q) ¨q (3.45)
onde
b = ¨X −
d
dt
J (q) ˙q (3.46)
Para um manipulador de 6 graus de liberdade, as equações da velocidade e aceleração
inversa podem ser escritas como (SPONG; VIDYASAGAR, 1989):
˙q = J(q)−1 ˙X (3.47)
e
¨q = J(q)−1
b (3.48)
Considerando que det J (q) = 0. Para manipuladores redundantes ou manipuladores com
menos que 6 elos a matriz jacobiana não pode ser invertida, por não ser quadrada. Nestes
casos, apenas existirá uma solução para a equação se o vetor do lado esquerdo da equação
possuir o mesmo intervalo de espaço que a matriz jacobiana (SPONG; VIDYASAGAR,
1989)
A velocidade linear do efetuado ˙X, é determinada pelo usuário no software de
controle. Uma vez que a inversa da jacobina varia dependendo da configuração do braço,
a matriz de velocidade das juntas também irão variar, mesmo que a velocidade linear do
efetuador seja constante (ASADA, 2008).
3.2.6 Restrições na conguração do manipulador
Em alguns casos é necessário que o efetuador se movimente com uma orientação restrita.
Um exemplo disso seria o movimento de uma lata de refrigerante aberta, como mostra a
Figura 22. Deseja-se movimentar essa lata do ponto A para o ponto B por um caminho
Capítulo 3. Metodologia 53
qualquer de forma que o plano do fundo da lata fique, durante todo o trajeto, paralelo
ao chão evitando que a bebida derrame. Isso é alcançado descrevendo o ângulo do punho
em função dos outros ângulos das juntas do cotovelo e ombro. Berenson e Kuffner (2012)
e Ratliff Matt Zucker e Srinivasa (), apresentam técnicas baseada em otimização para
restringir o movimento do punho durante a geração de trajetória.
Figura 22 – Trajetória com restrição de orientação
Fonte: Berenson e Kuffner (2012)
Uma das formas de se restringir a orientação do punho é especificar três ângulos
fixos com relação aos planos da base do robô e utilizar-se de um algoritmo de otimização
como o método de Newton, que é um dos mais simples, para minimizar a função custo.
Como o método de Newton tende a não convergir quando o manipulador está longe da
meta, é utilizado o método da cinemática inversa por mínimos quadrados amortecido,
apresentado na 3.2.3 para posicionar o efetuador na posição da meta, e a partir deste
ponto, o método de Newton assume para satisfazer a orientação desejada.
Usando o método de Newton-Raphson , a solução para o sistema de equações é
determinado usando, iterativamente, a seguinte aproximação (GOLDENBERG; FENTON,
Capítulo 3. Metodologia 54
1985)
q(k+1)
= q(k)
+ δ(k)
(3.49)
onde δ(k)
é a solução para o sistema linear e
rj q(k)
+
n
i=1
J
(k)
ji δ
(k)
i = 0, j = 1, ..., 6 (3.50)
em que Jji é definido como
J
(k)
ji =
∂rj
∂qi q=q(k)
i = 1, ..., n; j = 1, ..., 6 (3.51)
e rj q(k)
consiste nos termos do vetor de erro residual entre a orientação e posição atuais
do efetuador e meta. Estes valores são obtidos das matrizes de transformação homogênea,
Equação 3.25, usando a seguinte relação (GOLDENBERG; FENTON, 1985):
rx = na
. pt
− pa
ry = oa
. pt
− pa
rz = aa
. pt
− pa
rφ =
1
2
. aa
.ot
− at
.oa
rθ =
1
2
. na
.at
− nt
.aa
rψ =
1
2
. oa
.nt
− ot
.na
(3.52)
em que (φ, θ, ψ) são os ângulos desejados ao redor dos eixos xyz, respectivamente.
Este método, funciona razoavelmente bem, até mesmo próximos de singularidades,
porém deixa a resolução da cinemática inversa um pouco lenta e deve ser aplicado apenas
onde há realmente a necessidade de se restringir o movimento do robô, como em operações
de soldagem e pintura. É importante observar que para manipuladores com número de
juntas menor que seis, não é possível satisfazer a meta e orientação desejada nos três eixos,
para estes casos determina-se um ou mais valores do vetor r para 0.
3.3 Dinâmica do Manipulador
3.3.1 Conceitos preliminares
Tensor de Inércia
Um momento de inércia é definido como a integral do segundo momento em relação a um
eixo de todos os elementos de massa dm que compõe o corpo. Para um eixo qualquer, o
momento de inércia é (HIBBELER, 1999):
I =
m
r2
dm (3.53)
Capítulo 3. Metodologia 55
Para um corpo com densidade constante, podemos reescrever a equação acima, de forma
que seus termos fiquem puramente geométricos, como segue:
I = ρ
V
r2
dV (3.54)
) Onde ρ é a densidade do corpo e r é o vetor distância perpendicular do eixo até o elemento
arbitrário dm. Para um elemento diferencial descrito em coordenadas cartesianas o vetor
r com relação ao eixo de rotação x pode ser descrito como: r =
√
y2 + z2, o momento de
inércia então fica:
Ixx =
V
y2
+ z2
ρdV (3.55)
Para os eixos y e z :
Iyy =
V
x2
+ z2
ρdV (3.56)
Izz =
V
x2
+ y2
ρdV (3.57)
O produto de inércia é um conjunto de dois planos ortogonais é definido como o
produto da massa do elemento e as distâncias perpendiculares dos planos até o elemento.
Para o plano y − z essa distância é x e para o plano x − z, a distância é y. Os produtos de
inércia do corpo em relação a cada combinação de planos ficam: (HIBBELER, 1999)
Ixy = Iyx =
V
(xy) ρdV
Iyz = Izy =
V
(yz) ρdV
Ixz = Izx =
V
(xz) ρdV
(3.58)
O tensor de inércia é um conjunto único de valores para um corpo quando é determinado
para cada localização da origem O e orientação dos eixos de coordenadas, este tensor é
definido como:
I =





Ixx −Ixy −Ixz
−Iyx Iyy −Iyz
−Izx −Izy Izz





(3.59)
O tensor de inércia é uma matriz simétrica, visto que Ixy = Iyx, Iyz = Izy e Ixz = Izx.
Existem três eixos de inércia, que quando I é calculada, os termos Ixy = Iyx = Iyz =
Izy = Ixz = Izx = 0, desta forma I se torna uma matriz diagonal. Quando o corpo é
rotacionado em torno de seus eixos principais de inércia, não existe forças resultantes de
desbalanceamento do corpo pois a massa está igualmente distribuída.
Capítulo 3. Metodologia 56
Energia Potencial
Energia potencial (simbolizado por U ou Ep) é a forma de energia que está associada a
um sistema onde ocorre interação entre diferentes corpos e está relacionada com a posição
que o determinado corpo ocupa, e sua unidade no Sistema Internacional de Unidades (SI),
assim como o trabalho, é joule (J).
A energia potencial é o nome dado a forma de energia quando está “armazenada”,
isto é, que pode a qualquer momento manifestar-se , por exemplo, sob a forma de movimento,
e a energia potencial é derivada de forças conservativas, ou seja, a trajetória do corpo não
interfere no trabalho realizado pela força, o que importa são a posição final e a inicial,
então o percurso não interfere no valor final da variação da energia potencial.
U = −migr0,ci (3.60)
Energia Cinética
A energia cinética é a energia que está relacionada com o estado de movimento de um
corpo. Este tipo de energia é uma grandeza escalar que depende da massa e do módulo da
velocidade do corpo em questão. Quanto maior o módulo da velocidade do corpo, maior é
a energia cinética. Quando o corpo está em repouso, ou seja, o módulo da velocidade é
nulo, a energia cinética é nula.
Para um dado sistema que se move a uma velocidade vci (velocidade do centro de
massa) e velocidade angular ωi sua energia cinética é dada por (ASADA, 2008):
K =
n
i=1
1
2
mi|vci|2
+
1
2
Iiω2
i (3.61)
3.3.2 Equações de movimento do manipulador
As equações de Lagrange são derivadas do princípio da ação mínima. Este teorema denota
que a ação - uma grandeza física com dimensão equivalente à de energia multiplicada pela
de tempo (joule-segundo no S.I.) - possui um valor estacionário - é máximo, mínimo, ou
um ponto de sela - para a trajetória que será efetivamente percorrida pelo sistema em seu
espaço de configuração (MARION; THORNTON, 1995).
Para se utilizar das equações de Lagrange o sistema deve atender à alguns requisitos,
como: ser holonômico, possuir coordenadas generalizadas independentes, e ter o tantos
graus-de-liberdade quanto coordenadas generalizadas.
Entende-se como coordenadas generalizadas de um sistema, o grupo mínimo de
parâmetros para descrever completamente todas as configurações do sistema a qualquer
instante t (VANDIVER, 2011).
Capítulo 3. Metodologia 57
Trabalho virtual
Uma força aplica trabalho W, quando existe um deslocamento da partícula ou corpo na
direção de aplicação da força (HIBBELER, 1999). Um trabalho virtual consiste do produto
de uma força generalizada e o deslocamento virtual que ela causa. Para um corpo que
sofre um deslocamento de sua coordenada generalizada qi, seu trabalho seria:
δWnc
=
n
i=1
Qiδqi (3.62)
Assim como no caso de trabalho virtual para sistemas em equilíbrio estático, a variação
do conjunto de energia cinética e energia potencial para uma força não conservativa seria
zero. Considerado um dado instante em tempo, há uma variação infinitesimal na posição
do sistema partindo de sua posição natural de equilíbrio dinâmico, a equação de variação
de energia cinética, potencial e trabalho seria (VANDIVER, 2011):
δK + δU − δWnc
= 0 (3.63)
Onde o índice nc significa que o trabalho é feito por uma força não conservativa.2
A técnica usada para encontrar as forças generalizadas do sistema é assumir que o
sistema experimenta uma pequena deflexão virtual, da qual computa-se o incremento de
variação de trabalho resultante.
Equações de Lagrange
Para um sistema com n graus de liberdade e coordenadas generalizadas qj, é possível
calcular a função Lagrangiana L = K − U, onde K é a energia cinética e U é a energia
potencial do sistema. A Lagrangiana é uma função de coordenadas generalizadas qj e
velocidades generalizadas ˙qj (VANDIVER, 2011):
L = L (q1, ...qi...qn, ˙q1, ... ˙qi.... ˙qn) (3.64)
Onde n é o número de graus-de-liberdade do sistema. Uma vez que a energia potencial
U, é função da coordenada generalizada qi, e a energia cinética é função da coordenada
generalizada e da velocidade ˙qi, pode-se reescrever a equação (3.64), como segue:
L (qi, ˙qi) = K (qi, ˙qi) − U (qi) (3.65)
Utilizando as equações de Lagrange, as equações de movimento são, portanto:
d
dt
∂L
∂ ˙qi
−
∂L
∂qi
= Qi i = 1, 2..., n (3.66)
2
Uma força é considerada conservativa quando causa trabalho em um sistema que é independente da
trajetória do corpo ou partícula. Exemplos de forças conservativas são o peso de uma partícula e
o trabalho realizado por uma força de mola (HIBBELER, 1999). Todas as outras forças externas e
momentos que aplicam ou retiram energia do sistema são considerados como forças não conservativas.
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular

Mais conteúdo relacionado

Semelhante a Projeto, controle e análise de um manipulador robótico modular

Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Giovani Barili
 
ROBÔ LOCALIZADOR DE SERES HUMANOS
ROBÔ LOCALIZADOR DE SERES HUMANOSROBÔ LOCALIZADOR DE SERES HUMANOS
ROBÔ LOCALIZADOR DE SERES HUMANOSAgnaldo Coelho
 
Dainez_Tese_de_Doutorado
Dainez_Tese_de_DoutoradoDainez_Tese_de_Doutorado
Dainez_Tese_de_DoutoradoPaulo Dainez
 
Trabalho de Conclusão de Curso - Fernando Sacilotto Crivellaro
Trabalho de Conclusão de Curso - Fernando Sacilotto CrivellaroTrabalho de Conclusão de Curso - Fernando Sacilotto Crivellaro
Trabalho de Conclusão de Curso - Fernando Sacilotto CrivellaroFernando Sacilotto Crivellaro
 
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIA
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIAANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIA
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIAJerbialdo
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores UmbertoXavierdaSilva
 
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSUTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSJesimar Arantes
 
Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Dyego Torres
 
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios Porosos
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios PorososSimulador Numérico Bidimensional para Escoamento Monofásico em Meios Porosos
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios PorososBismarck Gomes
 
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Eduardo Carrara de Araujo
 
Tcc carlos felipe de paiva perché
Tcc   carlos felipe de paiva perchéTcc   carlos felipe de paiva perché
Tcc carlos felipe de paiva perchéCarlos Felipe
 

Semelhante a Projeto, controle e análise de um manipulador robótico modular (20)

Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
Avaliação de Topologias de Redes Neurais Artificiais para Previsão do Consumo ...
 
ROBÔ LOCALIZADOR DE SERES HUMANOS
ROBÔ LOCALIZADOR DE SERES HUMANOSROBÔ LOCALIZADOR DE SERES HUMANOS
ROBÔ LOCALIZADOR DE SERES HUMANOS
 
Dainez_Tese_de_Doutorado
Dainez_Tese_de_DoutoradoDainez_Tese_de_Doutorado
Dainez_Tese_de_Doutorado
 
Monografia Arduino
Monografia ArduinoMonografia Arduino
Monografia Arduino
 
Trabalho de Conclusão de Curso - Fernando Sacilotto Crivellaro
Trabalho de Conclusão de Curso - Fernando Sacilotto CrivellaroTrabalho de Conclusão de Curso - Fernando Sacilotto Crivellaro
Trabalho de Conclusão de Curso - Fernando Sacilotto Crivellaro
 
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIA
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIAANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIA
ANÁLISE DE COMPORTMENTO NÃO COOPERATIVO EM COMPUTAÇÃO VOLUNTÁRIA
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores
 
tg
tgtg
tg
 
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔSUTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
UTILIZANDO ROBÓTICA EVOLUTIVA PARA O DESENVOLVIMENTO DA MORFOLOGIA DE ROBÔS
 
Apostila winplot
Apostila winplotApostila winplot
Apostila winplot
 
tcc_2015_otavio_final
tcc_2015_otavio_finaltcc_2015_otavio_final
tcc_2015_otavio_final
 
R - D - DANIEL KAMINSKI DE SOUZA
R - D - DANIEL KAMINSKI DE SOUZAR - D - DANIEL KAMINSKI DE SOUZA
R - D - DANIEL KAMINSKI DE SOUZA
 
Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-
 
PROCESSO DE FRESAMENTO.pdf
PROCESSO DE FRESAMENTO.pdfPROCESSO DE FRESAMENTO.pdf
PROCESSO DE FRESAMENTO.pdf
 
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios Porosos
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios PorososSimulador Numérico Bidimensional para Escoamento Monofásico em Meios Porosos
Simulador Numérico Bidimensional para Escoamento Monofásico em Meios Porosos
 
Tese marinho
Tese marinhoTese marinho
Tese marinho
 
Apostila autocad 3_d
Apostila autocad 3_dApostila autocad 3_d
Apostila autocad 3_d
 
R 2008 3 d
R 2008 3 dR 2008 3 d
R 2008 3 d
 
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
 
Tcc carlos felipe de paiva perché
Tcc   carlos felipe de paiva perchéTcc   carlos felipe de paiva perché
Tcc carlos felipe de paiva perché
 

Projeto, controle e análise de um manipulador robótico modular

  • 1. UNIVERSIDADE DE MOGI DAS CRUZES Diego Varalda de Almeida PROJETO, CONTROLE E ANÁLISE DE UM MANIPULADOR ROBÓTICO MODULAR Mogi das Cruzes Junho de 2016
  • 2. UNIVERSIDADE DE MOGI DAS CRUZES Diego Varalda de Almeida 11121502987 PROJETO, CONTROLE E ANÁLISE DE UM MANIPULADOR ROBÓTICO MODULAR Projeto de Graduação apresentado ao curso de Engenharia Mecânica da Universidade de Mogi das Cruzes, como parte dos requisitos necessários à obtenção do título de Enge- nheiro. Orientador: Prof. Ms. Gilberto Tomáz Junior Universidade de Mogi das Cruzes – UMC Engenharia Mecânica Programa de Graduação Mogi das Cruzes Junho de 2016
  • 3. Almeida, Diego Varalda de PROJETO, CONTROLE E ANÁLISE DE UM MANIPULADOR ROBÓTICO MODULAR/ Diego Varalda de Almeida. – Mogi das Cruzes, Junho de 2016- 236 p. : il. (algumas color.) ; 30 cm. Orientador: Prof. Ms. Gilberto Tomáz Junior Monografia – Universidade de Mogi das Cruzes – UMC Engenharia Mecânica Programa de Graduação, Junho de 2016. 1. Manipulador Robótico. 2. Controle. 2. Análise Dinâmica. I. Gilberto Tomaz Junior. II. Universidade de Mogi das Cruzes. III. Curso de Engenharia Mecânica IV. Projeto, Controle e Análise de um Manipulador Robótico Modular
  • 4. Dedico este trabalho aos meus pais, Suleine e Arlindo e à todos os moradores do flat 33
  • 5. Agradecimentos No decorrer de minha formação algumas pessoas e instituições foram de vital importância e merecem os meus agradecimentos. Primeiramente, gostaria de expressar minha gratidão ao meu orientador, prof. Ms. Gilberto Tomáz Junior, pelas orientações proporcionadas que definitivamente contribuíram para a realização dessa monografia. Além do meu orientador, meus sincero agradecimento vai também aos professores ph.D. Jan Vorstius e ph.D. William Lewinger, da Universidade de Dundee na Escócia, pelo auxílio e orientações durante o desenvolvimento do software no estágio de verão no Laboratório de Robótica. Seus conselhos e ensinamentos me proporcionaram uma maior compreensão sobre este fascinante campo que é a robótica. Agradeço também ao Governo Brasileiro, em especial, ao Ministério da Educação e CNPq que criaram programas de incentivo à educação tais como o PROUNI e o Ciências sem Fronteiras, o que me possibilitou concluir o curso de engenharia e participar de um intercâmbio. Por fim gostaria de agradecer aos meus amigos de classe, tanto aos que conheci na UMC quanto aos que conheci na Universidade de Dundee, pelas conversas estimulantes, pela companhia e pela diversão que compartilhamos durante estes anos de graduação, tanto em sala de aula quanto fora dela.
  • 6. “Jamais considere seus estudos como uma obrigação, mas como uma oportunidade invejável (...) para aprender a conhecer a influência libertadora da beleza do reino do espírito, para seu próprio prazer pessoal e para proveito da comunidade à qual seu futuro trabalho pertencer.” (Albert Einstein)
  • 7. Resumo Manipuladores robóticos são amplamente utilizados na indústria por serem máquinas de grande versatilidade. Este tipo de robô pode realizar tarefas como: pintura, soldagem, identificação e movimentação de objetos além de montagem de componentes em uma linha de montagem entre outras. Contudo, para se realizar tais tarefas o robô necessita de uma série de instruções fornecidas pelo usuário. Estas instruções são geralmente linhas de código em uma linguagem própria da máquina, que são armazenadas na memória do controlador e posteriormente lidas pelo robô. Com o intuito de agilizar a fase de programação de uma tarefa, um software de controle baseado em interface gráfica se faz necessário. Esta interface gráfica possibilita o usuário a passar instruções para o manipulador robótico através de simples opções pré-programadas podendo, inclusive, combinar estas opções para criar tarefas mais complexas. Neste trabalho, será proposto um projeto de manipulador robótico modular com seis graus de liberdade e é apresentado um programa baseado em interface gráfica desenvolvido em MATLAB para controle e simulação do manipulador. Palavras-chave: manipulador. robô. projeto. controle. software. análise. interface gráfica.
  • 8. Abstract Robotic Manipulators are widely used in the industry for being machines of high versatility. This type of robot can perform tasks such as painting, welding, identification and objects handling as well as component assembly on an assembly line among others. However, to perform such tasks the robot requires a series of instructions provided by the user. These instructions are usually lines of code in its own machine language, which are stored in the controller memory and later read by the robot. In order to speed up the programming phase of a task, GUI-based control software is required. This GUI allows the user to pass instructions to the robotic manipulator through simple preprogrammed options, with the possibility to combine these options to create more complex tasks. In this paper, it will be presented the design of a six degrees of freedom modular robotic manipulator in addition to a GUI-based program developed in MATLAB for robot control and simulation. Keywords: manipulator. robot. design. control. software. analysis. graphical user interface
  • 9. Lista de ilustrações Figura 1 – Manipuladores modular: a)Robotnik modular robot, b)Kuka LBR iiwa 7R800, c)Universal Robot UR10 . . . . . . . . . . . . . . . . . . . . . 18 Figura 2 – Estrutura geral do robô integrado com seu ambiente . . . . . . . . . . 22 Figura 3 – Os três ângulos de rotação de um punho esférico . . . . . . . . . . . . . 23 Figura 4 – Configurações básicas de um manipulador robótico: (a: cartesiano; b: cilíndrico; c: polar; d: articulado). . . . . . . . . . . . . . . . . . . . . . 25 Figura 5 – Tipos de juntas empregadas em robôs . . . . . . . . . . . . . . . . . . 26 Figura 6 – Representação esquemática das juntas . . . . . . . . . . . . . . . . . . 26 Figura 7 – Manipulador planar de 2 GDL com suporte em O . . . . . . . . . . . . 27 Figura 8 – Típico volume de trabalho para configurações comuns de robôs . . . . . 28 Figura 9 – Cinemática: a)direta; b)inversa . . . . . . . . . . . . . . . . . . . . . . 30 Figura 10 – Movimento descoordenado (esquerda: deslocamento de cada junta; di- reita: trajetória do manipulador no plano) . . . . . . . . . . . . . . . . 35 Figura 11 – Movimento sequencial (esquerda: deslocamento de cada junta; direita: trajetória do manipulador no plano) . . . . . . . . . . . . . . . . . . . 36 Figura 12 – Movimento coordenado (esquerda: deslocamento de cada junta; direita: trajetória do manipulador no plano) . . . . . . . . . . . . . . . . . . . 36 Figura 13 – Aproximação numérica de derivada . . . . . . . . . . . . . . . . . . . . 40 Figura 14 – Exemplo de trajetória desenhada em CAD . . . . . . . . . . . . . . . . 41 Figura 15 – Gráfcos da trajetória linear: a) trajetória em linha reta; b) aproximação da linha reta por pontos de passagem; c) curvas de coordenadas das juntas em função da distância linear; d) velocidade angular; e) aceleração angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Figura 16 – Problemas geométricos com trajetória cartesiana: a)tipo 1; b)tipo 2; c)tipo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Figura 17 – Parâmetros de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . 46 Figura 18 – Manipulador do tipo articulado com os parâmetros D-H . . . . . . . . 47 Figura 19 – Divisão da matriz de transformação homogênea . . . . . . . . . . . . . 47 Figura 20 – Representação geométrica do Jacobiano . . . . . . . . . . . . . . . . . 48 Figura 21 – Fluxograma de solução da Cinemática Reversa por Jacobiano . . . . . 50 Figura 22 – Trajetória com restrição de orientação . . . . . . . . . . . . . . . . . . 53 Figura 23 – Diagrama de blocos para o problema de controle do robô. . . . . . . . 62 Figura 24 – Sistema de simulação do robô e controle . . . . . . . . . . . . . . . . . 63 Figura 25 – Esquema do controle antecipatório . . . . . . . . . . . . . . . . . . . . 64
  • 10. Figura 26 – Compensação de distúrbio por torque computado . . . . . . . . . . . . 65 Figura 27 – Diagrama de blocos do método de torque computado . . . . . . . . . . 65 Figura 28 – Manipulador proposto em uma configuração arbitrária . . . . . . . . . 67 Figura 29 – Junta do cotovelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Figura 30 – Frameless brushless DC motor . . . . . . . . . . . . . . . . . . . . . . . 70 Figura 31 – Harmonic drive escolhido para a junta do cotovelo . . . . . . . . . . . . 71 Figura 32 – Freio permanente eletromagnético, modelo Combiperm . . . . . . . . . 71 Figura 33 – Trava mecânica proposta . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Figura 34 – Sensor de torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Figura 35 – Eixo principal da junta do cotovelo . . . . . . . . . . . . . . . . . . . . 73 Figura 36 – Sensor de posição angular (encoder) . . . . . . . . . . . . . . . . . . . 74 Figura 37 – Conjunto do elo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Figura 38 – Vista em corte do punho . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Figura 39 – Resultado da análise feita no elo 2 . . . . . . . . . . . . . . . . . . . . 77 Figura 40 – Resultado da análise feita no elo 3 . . . . . . . . . . . . . . . . . . . . 78 Figura 41 – Resultado da análise feita no eixo principal da junta da base . . . . . . 79 Figura 42 – Resultado da análise feita no eixo principal da junta do cotovelo . . . . 80 Figura 43 – Resultado da análise feita no eixo principal da junta do punho . . . . . 81 Figura 44 – Manipulador proposto com os eixos de referência de cada elo . . . . . . 82 Figura 45 – Diagrama de blocos do controle torque computado . . . . . . . . . . . 85 Figura 46 – Diagrama de blocos do controle antecipatório . . . . . . . . . . . . . . 86 Figura 47 – Pontos de passagem com as velocidades desejadas nos pontos indicados pelas tangentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Figura 48 – Exemplo 1 - coordenado; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 91 Figura 49 – Exemplo 2 - descoordenado; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 92 Figura 50 – Exemplo 3 - sequencial; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 93 Figura 51 – Exemplo 4 - linear; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 94 Figura 52 – Exemplo 5 - circulo; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 95 Figura 53 – Exemplo 6 - elipse; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . . . . . 96 Figura 54 – Exemplo 7 - curva de Lissajous; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 97 Figura 55 – Exemplo 8 - hipotrocoide; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 98
  • 11. Figura 56 – Exemplo 9 - hélice cônica; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas . . . . . . 99 Figura 57 – Vetores do centro de gravidade de cada elo . . . . . . . . . . . . . . . . 100 Figura 58 – Curvas de torque da trajetória 1 - coordenado . . . . . . . . . . . . . . 102 Figura 59 – Curvas de torque da trajetória 2 - descoordenado . . . . . . . . . . . . 102 Figura 60 – Curvas de torque da trajetória 3 - sequencial . . . . . . . . . . . . . . . 103 Figura 61 – Curvas de torque da trajetória 4 - linear . . . . . . . . . . . . . . . . . 103 Figura 62 – Curvas de torque da trajetória 5 - círculo . . . . . . . . . . . . . . . . . 104 Figura 63 – Curvas de torque da trajetória 6 - elipse . . . . . . . . . . . . . . . . . 104 Figura 64 – Curvas de torque da trajetória 7 - curva de Lissajous . . . . . . . . . . 105 Figura 65 – Curvas de torque da trajetória 8 - hipotrocoide . . . . . . . . . . . . . 105 Figura 66 – Curvas de torque da trajetória 9 - hélice . . . . . . . . . . . . . . . . . 106 Figura 67 – Posição do manipulador em diferentes momentos da simulação . . . . . 107 Figura 68 – Resultados da simulação dinâmica . . . . . . . . . . . . . . . . . . . . 108 Figura 69 – Estrutura e princípio de funcionamento do SJM III . . . . . . . . . . . 111 Figura 70 – Mensagem exibida ao iniciar o programa . . . . . . . . . . . . . . . . . 118 Figura 71 – Aba Configurações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Figura 72 – Conjuntos de ângulos - (a)conjunto da junta, (b)conjunto global, (c)conjunto do motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Figura 73 – Tabela de parâmetros do robô . . . . . . . . . . . . . . . . . . . . . . . 126 Figura 74 – Propriedades de massa do desenho . . . . . . . . . . . . . . . . . . . . 127 Figura 75 – Alinhamento da modelo no software . . . . . . . . . . . . . . . . . . . 127 Figura 76 – Aba Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Figura 77 – Mover efetuador com pontos de passagem . . . . . . . . . . . . . . . . 130 Figura 78 – Percurso através de funções paramétricas . . . . . . . . . . . . . . . . . 130 Figura 79 – Aba Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Figura 80 – Aba Simulação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Figura 81 – Janela de Animação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
  • 12. Lista de tabelas Tabela 1 – Comparação entre diferentes métodos de cinemática inversa; modelo com um efetuador, 18 GDL, e metas dentro do volume de trabalho . . 31 Tabela 2 – Comparação entre diferentes métodos de cinemática inversa; modelo com um efetuador, 18 GDL, e metas fora do volume de trabalho . . . . 31 Tabela 3 – Capacidade de carga do manipulador . . . . . . . . . . . . . . . . . . . 67 Tabela 4 – Especificações técnicas estimadas para o manipulador . . . . . . . . . . 68 Tabela 5 – Especificações técnicas das juntas . . . . . . . . . . . . . . . . . . . . . 70 Tabela 6 – Parâmetros de Denavit–Hartenberg do manipulador proposto . . . . . 83 Tabela 7 – Tipos e características de trajetórias . . . . . . . . . . . . . . . . . . . 89 Tabela 8 – Propriedades dos elos . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Tabela 9 – Variáveis da estrutura Histórico (H) . . . . . . . . . . . . . . . . . . . 137 Tabela 10 – Variáveis da estrutura Mensagens (M) . . . . . . . . . . . . . . . . . . 138 Tabela 11 – Variáveis da estrutura Configurações Adicionais (AS) . . . . . . . . . . 138
  • 13. Lista de abreviaturas e siglas CAD Desenho assistido por computador. CNC Comando Numérico Computadorizado DC Corrente contínua. FEA Análise de Elementos Finitos GDL Graus de liberdade GUI Interface Gráfica do Usuário GUIDE Graphical User Interface Developer Environment NASA Administração Nacional da Aeronáutica e Espaço PCI Placa de circuito impresso PID Sistema de controle do tipo Proporcional, Integral e Derivado. PWM Modulação por Largura de Pulso RIA Robotics Institute of America RPM Rotações por minuto SI Sistema Internacional de Unidades SISO Única Entrada - Única Saída
  • 14. Lista de símbolos J Matrix Jacobiana t Tempo [s] θ Coordenada de uma junta de revolução, [rad] ˙θ Velocidade da variável de junta, [rad/s] ¨θ Aceleração da variável da junta, [rad/s2 ] λ Constante de amortecimento ai Coeficiente i da função polinomial L Lagrangiano qi Coordenada generalizada T Matriz de transformação homogênea Qi Forças externas generalizadas K Energia cinética, [kg.m2 s−2 ] U Energia potencial, [kg.m2 s−2 ] I Tensor de inércia, [kg.m2 ] r Vetor distância ρ Densidade do corpo, [kg.m−3 ] L Transformada de Laplace
  • 15. Sumário 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.1 Histórico dos manipuladores robóticos industriais . . . . . . . . 17 1.1.1 Manipuladores modulares . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5 Organização e escopo do trabalho . . . . . . . . . . . . . . . . . . . 20 2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . 21 2.1 Manipuladores robóticos . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.1 Estrutura e componentes de um robô . . . . . . . . . . . . . . . . . . . 21 2.1.2 Sistemas de acionamento e congurações do robô . . . . . . . . . . . . . 24 2.1.3 Esquema de notação de juntas . . . . . . . . . . . . . . . . . . . . . . . 25 2.1.4 Movimentos do robô e graus de liberdade . . . . . . . . . . . . . . . . . 25 2.1.5 Volume de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.6 Ciclo de funcionamento de um manipulador . . . . . . . . . . . . . . . 28 2.2 Cinemática e geração de trajetória . . . . . . . . . . . . . . . . . . 29 2.3 Dinâmica e controle . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3.1 Modelagem dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3.2 Controle do manipulador . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.1 Geração de trajetórias . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.1.1 Trajetória ponto-a-ponto . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.1.2 Trajetórias parametrizadas . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.3 Trajetória modelada em AutoCad . . . . . . . . . . . . . . . . . . . . . 40 3.1.4 Trajetória linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.5 Algoritmo anticolisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 Cinemática do manipulador . . . . . . . . . . . . . . . . . . . . . . 44 3.2.1 Cinemática direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2.2 Cinemática inversa: método pseudo-inverso Jacobiano . . . . . . . . . . 46 3.2.3 Mínimos quadrados amortecido. . . . . . . . . . . . . . . . . . . . . . . 49
  • 16. 3.2.4 Redundância e Singularidades . . . . . . . . . . . . . . . . . . . . . . . 51 3.2.5 Velocidade e aceleração . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2.6 Restrições na conguração do manipulador . . . . . . . . . . . . . . . . 52 3.3 Dinâmica do Manipulador . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.1 Conceitos preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.2 Equações de movimento do manipulador . . . . . . . . . . . . . . . . . 56 3.3.3 Extendendo para um manipulador de n GDL . . . . . . . . . . . . . . 58 3.4 Sistemas de controle . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.4.1 Rastreio de um ponto de referência . . . . . . . . . . . . . . . . . . . . 62 3.4.2 Controle antecipatório e torque computado . . . . . . . . . . . . . . . . 62 4 MODELAMENTO DO MANIPULADOR ROBÓTICO . . . . 66 4.1 Requisitos iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.1.1 Capacidade de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.1.2 Número de graus de liberdade . . . . . . . . . . . . . . . . . . . . . . . 66 4.1.3 Velocidade linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.2 Detalhamento do mecanismo . . . . . . . . . . . . . . . . . . . . . . 67 4.2.1 Módulo da junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.2.2 Elos do manipulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.2.3 Punho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3 Análise estrutural por Elementos Finitos . . . . . . . . . . . . . . 76 5 ANÁLISE E RESULTADOS . . . . . . . . . . . . . . . . . . . . 82 5.1 Cinemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.1.1 Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2 Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.3 Trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.3.1 Exemplo de trajetórias . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4 Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4.1 Curvas de torque dos exemplos . . . . . . . . . . . . . . . . . . . . . . . 101 5.4.2 Exemplo de simulação dinâmica . . . . . . . . . . . . . . . . . . . . . . 106 6 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . 109 6.1 Sugestões para trabalhos futuros . . . . . . . . . . . . . . . . . . . 110 6.1.1 Implementar um sistema de controle de força no software . . . . . . . . 110 6.1.2 Reprogramação do software em outra linguagem de programação . . . . 110 6.1.3 Implementação de mecanismo de segurança . . . . . . . . . . . . . . . . 111 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
  • 17. APÊNDICES 116 APÊNDICE A SOFTWARE DE CONTROLE . . . . . . . . . . 117 A.1 Leiaute e funcionalidades do programa . . . . . . . . . . . . . . . 117 A.1.1 Caixa de Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.1.2 Aba Congurações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.1.2.1 Obtendo a matriz de inércia do elo . . . . . . . . . . . . . . . . . . . . . . 126 A.1.3 Aba Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 A.1.4 Aba Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 A.1.5 Aba Simulação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . 133 A.1.6 Janela de Animação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 A.2 Arquivos do programa . . . . . . . . . . . . . . . . . . . . . . . . . . 135 A.2.1 SMART-GUI.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 A.2.2 SMART-GUI.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 A.2.3 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 A.3 Estruturas de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 A.3.1 HISTORY.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 A.3.2 MESSAGES.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 A.3.3 ROBOT-DATA.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 A.3.4 SETTINGS.mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 APÊNDICE B ROTINAS EM MATLAB R DO SOFTWARE DE CONTROLE . . . . . . . . . . . . . . . . . . . 139 APÊNDICE C PROJETO DO MANIPULADOR . . . . . . . . 223
  • 18. 17 Capítulo 1 Introdução 1.1 Histórico dos manipuladores robóticos industriais A palavra robô surgiu por volta de 1920 pelo autor tcheco K. Capek em sua obra teatral Robô universal de Rossum, e é derivada da palavra robota, que significa trabalhador. Em 1941 Isaac Asimov propôs as quatro leis da robótica em sua curta história de ficção científica Runaround, com o intuito de proteger a humanidade de gerações inteligentes de robôs. As quatro leis são: Lei zero: um robô não pode causar mal à humanidade ou, por omissão, permitir que a humanidade sofra algum mal. Lei um: Um robô não pode ferir um ser humano ou, por inação, permitir que um ser humano sofra algum mal. Lei dois: Um robô deve obedecer as ordens que lhe sejam dadas por seres humanos exceto nos casos em que tais ordens entrem em conflito com a Primeira Lei. Lei três: Um robô deve proteger sua própria existência desde que tal proteção não entre em conflito com a Primeira ou Segunda Leis (JAZAR, 2007). Posteriormente, o robô industrial foi definido pelo Instituto de Robótica da Amé- rica (RIA), como um manipulador multifuncional reprogramável, projetado para mover materiais, peças, ferramentas, ou outros dispositivos especializados através de movimentos programáveis e realizar uma série de outras atividades (DUYSINX; GERADIN, 2004). O primeiro robô moderno foi o Unimates, produzido por J. Engelberger no início dos anos 60. A empresa Unimation foi a primeira a comercializar robôs. Por este motivo Engelberger é conhecido como o pai da robótica. Nos anos 80 a indústria de robôs cresceu muito rápido principalmente devido ao grande investimento pela indústria automotiva. Robôs apareceram como um resultado da combinação de duas tecnologias: te- leoperadores e controle numérico computadorizado (CNC) de máquinas de usinagem. Teleoperadores foram desenvolvidos durante a Guerra Mundia II para manipulagem de materiais radioativos, e CNC foi desenvolvido para aumentar a precisão que era requisitada para a manufatura de peças com novas tecnologias. Portanto, os primeiros robôs não passavam de estruturas mecânicas com comando numérico que basicamente transferiam um material de um ponto A para B (JAZAR, 2007). Os robôs tradicionais possuem manipuladores de precisão controlados por PID com altos ganhos que corrigem distúrbios rapidamente. O manipulador são movidos geralmente
  • 19. Capítulo 1. Introdução 18 por motores de passo ou DC conectados a uma redução enquanto que encoders rastreiam as juntas permitindo o controle da posição. Atuadores dinâmicos (incluindo massas, refletores inerciais e rigidez) influenciam drasticamente no sistema de controle e performance geral. Eles transmitem alta (idealmente infinita) impedância mecânica, o que significa que o robô resiste ao movimento quando sujeito à uma força. Os robôs também possuem alta largura de banda e movem para a posição comandada não importa a força externa agindo em suas juntas. Esta característica é perfeita para automação industrial por que permite que os robôs rastreiam trajetórias em ambientes estáticos ou mapeados, como em selecionar e levantar, por exemplo. 1.1.1 Manipuladores modulares Manipuladores robóticos são cinematicamente compostos de elos conectados por juntas para formar uma cadeia cinemática. Contudo, o robô como um sistema, consiste de um manipulador, um punho, um efetuador, atuadores, sensores, controladores, processadores, e software (JAZAR, 2007). Manipuladores modulares são geralmente, formados por juntas rotativas e ligados por elos. Possuem duas juntas na região do ombro, uma na parte do cotovelo e três juntas compondo o punho. A maioria dos manipuladores robóticos moudulares são colaborativos, isto é, permitem que o operador trabalhe no mesmo ambiente em que o robô está sem a necessidade de grades de proteção, característica esta vantajosa para tarefas complexas que o robô não consegue executar, sendo este utilizado para aumentar a velocidade do operador. A Figura 1 mostra alguns modelos existentes no mercado de manipuladores modulares. Figura 1 – Manipuladores modular: a)Robotnik modular robot, b)Kuka LBR iiwa 7R800, c)Universal Robot UR10 Fonte: Robotnik (2016), Corp. (2016), Robots (2016)
  • 20. Capítulo 1. Introdução 19 1.2 Motivação Uma das motivações para a realização desse trabalho se baseia na escassez de robôs modulares na indústria. A maioria dos modelos presentes no mercado atualmente são de grande porte e possuem configuração de elos e juntas fixa, o que dificulta sua aplicação em determinados ambientes. Outro motivo é o fato de que os software controladores de robôs e os próprios robôs que possuem certa precisão terem preços muito elevados, dificultando a aquisição dessas máquinas em pequenas e médias empresas. Além disso, os softwares de controle presentes atualmente são de pouco ou quase nenhuma versatilidade, isto é, são produzidos para um único robô. Por este motivo, o software de controle foi desenvolvido de maneira que possa ser empregado em vários manipuladores com configuração de juntas de revolução, precisando apenas de fazer uma modificação dos parâmetros passados ao software tais como: quantidade de juntas, massa, comprimento e centro de massa de cada elo. Por último, a interface gráfica foi projetada de maneira a apresentar ferramentas didáticas para o aprendizado da disciplina de robótica e automação nas salas de aula. O modo de simulação permite que o software simule movimentos do manipulador sem que um manipulador físico esteja conectado ao programa. 1.3 Objetivos Este trabalho tem como objetivo principal desenvolver o projeto de um protótipo de manipulador robótico modular na qual seja possível acoplar um determinado número de juntas. Também será desenvolvido neste trabalho um software de controle com interface gráfica utilizando o software Matlab capaz de controlar o manipulador robótico em questão. 1.4 Metodologia O trabalho começa com o projeto de um manipulador robótico modular utilizando o software Solidworks. Durante o desenvolvimento do manipulador, o software ANSYS será empregado para análise de elementos finitos (FEA) de suas partes. Em seguida, as equações e métodos para a análise comportamental do manipulador são estudados. Como o manipulador é modular e pode possuir diversas juntas, métodos algébricos para se calcular a cinemática e dinâmica do robô não são apropriados, devendo então fazer uso de métodos numéricos para obtenção dos resultados. Em seguida, um sistema de controle usando as equações da dinâmica é criado para o manipulador e simulado no software MATLAB. Este sistema de controle será utilizado no software desenvolvido permitindo um controle preciso do manipulador.
  • 21. Capítulo 1. Introdução 20 Por fim a interface gráfica é desenvolvida, utilizando a toolbox GUIDE do MATLAB. A interface gráfica apresentará uma opção de trabalhar apenas em modo de simulação, onde simulará os movimentos do robô quando este não estiver conectado ao computador, ou em modo real, que efetivamente manda o sinal para o manipulador, movimentando-o. 1.5 Organização e escopo do trabalho Este trabalho está dividido em 6 capítulos. O primeiro consistiu de uma breve introdução ao tema abordado e histórico dos manipuladores robóticos. No Capítulo 2 é apresentado uma revisão bibliográfica dos principais temas relacio- nados a este trabalho. Nesta revisão é mostrado os métodos existentes para modelagem cinemática e dinâmica para manipuladores robóticos, além dos diferentes tipos de siste- mas de controle. É mostrado nesse capítulo quais os métodos que serão empregados e a justificativa de se usar tais métodos. O Capítulo 3 apresenta toda a metodologia para o trabalho. Neste capítulo a definição e modelagem matemática dos métodos escolhidos para a cinemática, dinâmica e sistema de controle utilizados em manipuladores robóticos são apresentados e discutidos. No Capítulo 4, a modelagem do manipulador modular proposto é apresentada. Será mostrado neste capítulo os elementos de máquinas utilizado, tais como: redutor de velocidade, transmissor de potência, sensores elétricos e outros componentes que compõem as juntas. Ao final é realizada uma análise de elementos finitos dos componentes estruturais do robô. O Capítulo 5 apresenta a análise e resultados para o manipulador de seis graus-de- liberdade apresentado no Capítulo 4. É aplicado neste capítulo as equações e conceitos visto no Capítulo 3. É feita também uma discussão sobre o comportamento cinemático e dinâmico para diferentes tipos de trajetórias. No Apêndice A, o software de controle baseado em interface gráfica é apresentado. É mostrado como o programa foi desenvolvido, além do papel de cada função dentro do programa. É mostrado ao final deste apêndice como a interface gráfica é utilizada para o controle do manipulador robótico. Por fim, no Capítulo 6, são apresentadas as conclusões do trabalho e as propostas de trabalhos futuros.
  • 22. 21 Capítulo 2 Revisão Bibliográfica Spong e Vidyasagar (1989) sugerem que existem seis problemas que devem ser estudados para se controlar efetivamente um manipulador robótico, são eles: cinemática direta, cinemática inversa, velocidade cinemática, dinâmica, controle da posição e controle da força. Existem inúmeros métodos para se tratar cada problema citado, o modelo dinâmico do manipulador, por exemplo, pode ser desenvolvido usando-se a segunda lei de Newton ou o método de energia de Euler-Lagrange. Neste capítulo é feita uma revisão bibliográfica em que procura-se apresentar os métodos existentes na literatura e justificar a escolha dos métodos escolhidos que serão empregados no software de controle do manipulador. 2.1 Manipuladores robóticos Na indústria os robôs do tipo manipulador são empregados em uma variedade de aplicações, sendo a maioria delas para a movimentação de materiais, peças e ferramentas de diversos tipos (GROOVER, 1988). As aplicações industriais podem ser dividas nas áreas: aplicações de manuseio de materiais e carregamento e descarregamento de máquinas; aplicações de processamento (soldagem a ponto, soldagem a arco; pintura a pistola, entre outras); montagem e inspeção (GROOVER, 1988). 2.1.1 Estrutura e componentes de um robô Um manipulador robótico tem uma estrutura composta de cinco componentes que inte- ragem juntos para garantir que o manipulador consiga completar a função passada a ele (DUYSINX; GERADIN, 2004). A estrutura mecânica, ou mecanismo articulado, é feito idealmente de membros rígidos ou elos que articula junto com juntas mecânicas. Esta estrutura carrega o efetuador que pode ser uma ferramenta, garra, ou outro dispositivo específico. Os atuadores proporcionam a potência mecânica de forma a mover a estrutura mecânica contra a ação de forças externas, gravidade, inércia para modificar a configuração e, portanto, a posição geométrica da ferramenta. Estes podem ser elétricos, hidráulicos, ou pneumáticos e devem ser controlados apropriadamente. A transmissão mecânica, conecta e adapta os atuadores à estrutura mecânica. Esta transmissão adapta os atuadores para carga aplicada e ao mesmo tempo transmitem os
  • 23. Capítulo 2. Revisão Bibliográfica 22 esforços do atuador para as juntas mecânicas. Os sensores proporcionam os sentidos para o robô. Eles podem, por exemplo, providenciar informações de tato, visão, e temperatura. Eles são divididos em dois grupos: sensores que fornece informação sobre o próprio robô ou sobre o ambiente externo, na qual o manipulador se encontra. E por fim, tem-se a unidade de controle, que assume algumas funções, como: coletar e processar as informações dadas pelos sensores; tomar decisões sobre o plano de movimento do manipulador; e organizar o fluxo de informações para se comunicar com as juntas do manipulador e o ambiente (DUYSINX; GERADIN, 2004). Figura 2 – Estrutura geral do robô integrado com seu ambiente Fonte: (DUYSINX; GERADIN, 2004) A estrutura mecânica é detalhada a seguir. Elos Os corpos rígidos individuais que compõem o robô são chamados elos. Em robótica, geralmente quando dizemos braço, nos referimos aos elos. Uma braço robótico é um membro rígido que pode ter movimento relativo com respeito de todos os outros elos. Do ponto de vista cinemático, dois ou mais membros conectados juntos de forma que não é possível ter movimento relativo entre eles são considerados um único elo (JAZAR, 2007).
  • 24. Capítulo 2. Revisão Bibliográfica 23 Juntas Dois elos são conectados por contato na junta onde seus movimentos relativos podem ser expressos por uma única coordenada. Juntas são tipicamente de revolução ou prismática. A junta de revolução permite rotação relativa entre os elos, já a junta prismática permite movimento de translação relativo entre dois elos. Rotação relativa de elos conectados por uma junta de revolução ocorre sobre um linha chamada de eixo da junta, esse também é o caso para movimento linear que ocorre em elos conectados por uma junta prismática. O valor da coordenada que descreve a posição relativa de dois elos conectados a uma junta é chamado de coordenada da junta ou variável da junta (JAZAR, 2007). Punhos As juntas na cadeia cinemática entre o antebraço e o efetuador são referidos como punho. Enquanto que a estrutura do manipulador é responsável por posicionar o efetuador em uma posição do espaço, o punho é responsável em orientar o efetuador nos três ângulos desejados. A maioria dos punhos são projetados como esféricos, o que significa que três eixos de juntas rotativas se intersectam em um ponto chamado de ponto do punho. Este tipo de configuração, simplifica a análise cinemática, permitindo a separação da posição e orientação do efetuador (DUYSINX; GERADIN, 2004; JAZAR, 2007). Figura 3 – Os três ângulos de rotação de um punho esférico Fonte: PLW (2013)
  • 25. Capítulo 2. Revisão Bibliográfica 24 Efetuadores O efetuador é a parte montada no último elo para fazer o trabalho necessário do robô. O tipo mais simples do efetuador é a garra, que é geralmente capaz de executar duas ações: abrir e fechar. A montagem do punho e braço do robô são usados essencialmente para posicionar e orientar o efetuador e a possível ferramenta que ele pode carregar. É o efetuador ou a ferramenta que irá realmente executar a tarefa (JAZAR, 2007). Por ser um item muito específico de cada tarefa, o projeto do efetuador não faz parte do escopo desse trabalho, mas é apontado nas sugestões de trabalhos futuros. 2.1.2 Sistemas de acionamento e congurações do robô Robôs industriais são acionados por um dos três tipos de sistema de acionamento (GROO- VER, 1988): 1 Acionamento hidráulico; 2 Acionamento elétrico; 3 Acionamento pneumático. Robôs industriais estão disponíveis em uma variedade de tamanhos, formas e configurações físicas. As quatro configurações básicas são (GROOVER, 1988): 1 Configuração polar; 2 Configuração cilíndrica; 3 Configuração de coordenadas cartesianas; 4 Configuração articulada. A configuração adotada para o projeto do manipulador apresentado neste trabalho, foi a configuração articulada. Sua configuração é semelhante à de um braço humano. É composta por juntas rotacionais e elos em sequência alternada. Um punho pode ser unido à extremidade do antebraço, proporcionando, assim, um maior número de graus-de-liberdade. Manipulador articulado De acordo com Craig (1989), um manipulador antropormófico, ou articulado, geralmente consiste de duas juntas no ombro, sendo uma para elevação para fora do plano horizontal e outro para rotação em torno de um eixo vertical (geralmente o eixo z), uma junta no cotovelo, que é muitas vezes paralelo à junta de elevação do ombro e duas ou três juntas no punho.
  • 26. Capítulo 2. Revisão Bibliográfica 25 Figura 4 – Configurações básicas de um manipulador robótico: (a: cartesiano; b: cilíndrico; c: polar; d: articulado). Fonte: Duysinx e Geradin (2004) Os robôs articulados têm a vantagem de serem capazes de alcançar espaço confina- dos, como a soldagem dentro de um automóvel, por exemplo, o que minimiza a intrusão da estrutura do robô no espaço de trabalho. Outra vantagem é que eles geralmente requerem uma estrutura muito menor do que a dos robôs cartesianos, o que os tornam mais baratos e mais comuns em aplicações industriais (CRAIG, 1989). 2.1.3 Esquema de notação de juntas A configuração de um manipulador robótico pode ser descrita em termos de tipos de juntas. Começa-se pela junta mais próxima a base e prosseguindo para as outras 2 juntas seguintes. Para um manipulador do tipo configuração articulada, a denominação se torna: TRR ou VVR. Onde T é uma junta de torção, R junta de revolução e V é uma junta revolvente, como mostrado na figura abaixo. A notação do robô pode incluir os movimentos do punho, mediante designação de dois ou três tipos de juntas de punho. A importância de se designar um manipulador em relação ao tipo de suas juntas se deve ao fato que a configuração do manipulador vai determinar o seu volume de trabalho. 2.1.4 Movimentos do robô e graus de liberdade As juntas e elos permitem que o robô mova seu corpo a fim de se realizar um trabalho produtivo. O efetuador localizado ao final do último elo, possibilita a realização de alguma tarefa específica, como por exemplo, o efetuador pode ser uma ferramenta ou uma garra, de maneira a movimentar ou usinar uma peça. Os movimentos de juntas individuais e do
  • 27. Capítulo 2. Revisão Bibliográfica 26 Figura 5 – Tipos de juntas empregadas em robôs Fonte: Duysinx e Geradin (2004) Figura 6 – Representação esquemática das juntas Fonte: Groover (1988) punho são chamados de graus de liberdade, sendo um robô industrial típico equipado com 4 a 6 graus de liberdade (GROOVER, 1988). Em um corpo rígido, grau de liberdade é definido como o número de movimentos independentes que ele possui. Pode-se calcular o número de graus de liberdade de um sistema utilizando a equação Gruebler (YI FINGER SUSAN, 2010). GDL = 3 (e − 1) − 2n − h (2.1) Onde: GDL é o total de graus de liberdade de um mecanismo e é o número de elos (incluindo suporte)
  • 28. Capítulo 2. Revisão Bibliográfica 27 n é o número de pares inferiores (um grau de liberdade) h equivale ao número de pares superiores (dois graus de liberdade) Os pares inferiores são considerados as juntas (tanto de rotação como de translação), já os pares superiores são considerados as engrenagens ou cames. Para um manipulador com duas juntas e dois elos como mostrado na Figura 7, o número de graus-de-liberdade se torna: GDL = 3 (3 − 1) − 2.2 − 0 = 2 Neste caso e = 3 pois o sistema possui 2 elos e mais 1 suporte, e h = 0 pois o sistema não possui engrenagens e/ou cames. Se fizermos e = 4 e n = 3, então GDL = 3 e para e = 5 e n = 4, GDL = 4. É possível perceber que, para um manipulador com juntas de revolução, a cada par de junta e elo inserido, o número de graus de liberdade aumenta em 1. Sendo assim, um manipulador com n juntas, possuirá n graus de liberdade. Figura 7 – Manipulador planar de 2 GDL com suporte em O Fonte: Produzido pelo autor. 2.1.5 Volume de trabalho De acordo com Groover (1988), volume de trabalho se refere ao espaço que um dado manipulador consegue posicionar seu efetuador. É, em geral, definido pelo tipo de juntas usado na estrutura do robô e do pulso. Para um braço esférico (TRL), por exemplo, seu volume de trabalho seria, teoricamente, uma esfera cujo raio corresponde a extensão máxima do braço esticado. A figura abaixo mostra o volume de trabalho para cada configuração do robô.
  • 29. Capítulo 2. Revisão Bibliográfica 28 Figura 8 – Típico volume de trabalho para configurações comuns de robôs Fonte: Groover (1988) 2.1.6 Ciclo de funcionamento de um manipulador Fazendo uso de um software de controle baseado em interface gráfica, o usuário especifica uma posição para o efetuador, esta posição pode ser uma coordenada final apenas ou uma trajetória no espaço ; o usuário então define a velocidade do efetuador (esta pode ser constante ou uma função do tempo) ou o tempo desejado para finalizar o trajeto, o com- putador então precisa converter as coordenadas definidas pelo usuário (estas coordenadas são cartesianas: xyz) em coordenadas das juntas (ângulo θ), esta conversão é feita usando as equações da cinemática e é chamada de cinemática inversa. Quando o usuário especifica apenas o ponto final (meta) para o efetuador, o computador calcula os ângulos das juntas apenas para este ponto e faz uma interpolação polinomial utilizando o tempo do trajeto para fazer um movimento suave, evitando picos de velocidade e aceleração. Para o caso de ser definido uma trajetória, então o computador deve calcular os ângulos das juntas para cada ponto da trajetória, neste caso a velocidade e aceleração das juntas podem apresentar descontinuidades (DUYSINX; GERADIN, 2004). Uma vez obtidos a posição, velocidade e aceleração de cada junta em qualquer instante t, o computador calcula o torque em cada junta necessário para efetuar este movimento. Este torque é calculado usando as equações de movimento do manipulador. As equações da dinâmica podem apresentar imprecisões no valor do torque devido a forças que são difíceis de quantificar, como atritos presentes na transmissão da junta entre outros fatores. Por este motivo utiliza-se sensores que medem a posição (ângulo) da junta a cada período de tempo, esta informação é utilizada em um sistema de controle, que
  • 30. Capítulo 2. Revisão Bibliográfica 29 vai calcular a quantidade de torque que deve ser adicionado ao valor inicial para garantir que o manipulador chegue à sua meta nas condições (velocidade, ou tempo) impostas pelo usuário. Este ciclo é conhecido como inteligência comportamental do robô, onde cada etapa é fundamental para a realização do movimento do manipulador. Este ciclo é repetido cada vez que o usuário define uma nova meta para o efetuador. 2.2 Cinemática e geração de trajetória Em robótica, o movimento do efetuador de um manipulador deve ser o mais suave possível, evitando assim variações abruptas de posição, velocidade e aceleração. Movimentos abruptos necessitam de uma quantidade ilimitada de potência para ser implementado (CRAIG, 1989). Por este motivo, implementar um algoritmo eficaz para geração de trajetória é essencial para um bom funcionamento do manipulador. Como visto na subseção 2.1.1, um manipulador é composto por elo e juntas. Estas juntas podem ser de quatro formas: junta de revolução, junta prismática, de rosca e esférica, cada uma possuindo um número diferente de graus de liberdade. O problema da cinemática direta faz uso das equações da cinemática e dos parâmetros de cada junta para determinar a posição e orientação do efetuador. O ângulo entre os elos é a variável da equação para uma junta de revolução, assim como a extensão do elo é a variável para uma junta prismática. Na cinemática direta, as variáveis de cada junta são conhecidas e deseja-se saber a posição e orientação de cada junta. Cinemática inversa se refere ao uso das equações da cinemática para a determinação dos parâmetros das juntas que providenciam uma posição desejada do efetuador (CRAIG, 1989). Na maioria das aplicações de um manipulador, deseja-se que o efetuador vá para uma certa posição no espaço sem se ter conhecimento das variáveis das juntas (ângulo ou deslocamento). O usuário então programa a posição final ou a trajetória do efetuador e as equações da cinemática inversa transformam essas coordenadas em ângulos ou deslocamentos para os atuadores. O problema da cinemática inversa é considerado mais complexo que a cinemática direta (BUSS, 2009), por se ter várias possíveis soluções (ou em alguns casos nenhuma solução é encontrada) de variável da junta para um determinado conjunto de coordenada (x, y e z). Os métodos para se resolver cinemática inversa são divididos em dois grandes grupos: soluções analítica e numérica, sendo o primeiro utilizado para manipuladores com seis juntas ou menos em que o punho é esférico. Neste, obtém-se uma equação fechada para cada junta.
  • 31. Capítulo 2. Revisão Bibliográfica 30 Figura 9 – Cinemática: a)direta; b)inversa Fonte: Buss (2009) O segundo grupo de soluções, os métodos numéricos são dividos em pela forma como são abordados, sendo os principais: uso da matriz Jacobiana, uso de um sistema de controle, e uso de métodos de otimização que minimizam uma função erro (objetiva). Ao longo dos anos, diversos modelos numéricos para resolver o problema de cine- mática inversa foram implementados (ARISTIDOU; LASENBY, 2009). De acordo com Fëdor (2003), a maioria dos sistemas usam o método da peseudoinversa Jacobiana ou sua transposta para solucionar o problema contudo este método sofre de singularidades. Zhao e Badler (1994) resolve a cinemática inversa como um problema de otimização, em que se minimiza um conjunto de equações não-lineares, definidas no espaço Cartesiano com restrições. A solução por método Jacobiano lineariza o movimento do efetuador relativo à mudanças instantâneas de posição das variáveis das juntas aristidou. Muitos métodos tem side desenvolvidos para calcular or aproximar a inversa do Jacobiano, tais como: Transposta Jacobiano, Mínimos quadrados amortecido (DLS), mínimos quadrados amortecido com decomposição de valor único (SVD-DLS) e mínimos quadrados amortecido seletivo (SDLS) e outras extensões (BUSS, 2009; NAKAMURA; HANAFUSA, 1986; W.WAMPLER, 1986; BAILLIEUL, 1985; WOLOVICH; ELLIOTT, 1984; BALESTRINO; SCIAVICCO, 1984). Outros tipo de solução é baseado no método de Newton. Estes algoritmos procuram uma posição e orientação do efetuador que irá minimizar a função objetiva, retornando portanto, um movimento suave sem descontinuidades (ARISTIDOU; LASENBY, 2009). Os mais conhecidos são o metódo de Powell, o método de Broyden e o método de Broyden, Fletcher, Goldfarb e Shanno (BFGS)(FLETCHER, 1987), utilizados extensivamente em otimização. O método cíclico de coordenadas descendente(CCD), apresentado por Wang e Chen (1991), é um método iterativo heurístico bastante popular por ser considerado um dos mais
  • 32. Capítulo 2. Revisão Bibliográfica 31 rápidos a convergir para a proximidade da resposta, contudo é relativamente lento para alcançar alta precisão e frequentemente produz movimentos erráticos e descontínuos. Por este motivo, CCD é geralmente empregado em conjunto com outros métodos de otimização, como o BFGS, que assume quando o manipulador já está na proximidade da meta desejada, como apresentado por Wang e Chen (1991). Estes métodos são extensivamente empregados em animações gráficas e em mani- puladores robóticos com elevado número de graus de liberdade. Podem ser usados como soluções em tempo real onde a posição da junta do manipulador é atualizada a cada iteração do algoritmo ou pode-se computar todas as iterações previamente e obter os valores de ângulos de cada junta para só então depois atualizar a posição do manipulador. Tabela 1 – Comparação entre diferentes métodos de cinemática inversa; modelo com um efetuador, 18 GDL, e metas dentro do volume de trabalho Método Núm. de iterações Tempo de cada iteração (µs) Pseudoinversa 32 96,4 Pseudoinversa’ 46 104,1 Mínimos quadrados amortecido 35 89,2 Transposta 59 83,3 Transposta’ 163 84,8 Fonte – (NILSSON, 2009) A Tabela 1 mostra alguns dos métods que utiliza a matriz Jacobiana. Nesta tabela precebe-se que o método de pseudoinversa tem o menor número de iterações, contudo o tempo para cada iteração é um pouco maior que o método dos mínimos quadrados amortecido (NILSSON, 2009) Tabela 2 – Comparação entre diferentes métodos de cinemática inversa; modelo com um efetuador, 18 GDL, e metas fora do volume de trabalho Método Núm. de iterações Tempo de cada iteração (µs) Pseudoinversa - - Pseudoinversa’ - - Mínimos quadrados amortecido 74 81,5 Transposta 117 73,8 Transposta’ 98 77,8 Fonte – (NILSSON, 2009) A Tabela 2 mostra que ambos os métodos da pseudoinversa não puderam produzir nenhum resultado quando as metas estão fora de alcance (NILSSON, 2009). O metódo da
  • 33. Capítulo 2. Revisão Bibliográfica 32 pseudoinversa puro fica instável próximos a singularidades (ASADA, 2008), já os outros métodos necessitam de um maior número de iterações para alcançar o ponto mais próximo possível da meta. Conclui-se que o método dos mínimos quadrados amortecido que utiliza a matriz Jacobiana do sistema é o método ideal para ser empregado em manipuladores robóticos, uma vez que se mostra estável e consegue alcançar a meta em menos iterações. Este método será empregado no software de controle apresentado no Apêndice A. 2.3 Dinâmica e controle A dinâmica e sistemas de controle são partes fundamentais para o controle do manipulador. A simulação do movimento só pode ser feita se as equações de movimento do manipulador forem obtidas, assim como o movimento real no robô físico, só obterá precisão se for implementado um sistema de controle adequado para rastreio de trajetória. 2.3.1 Modelagem dinâmica A descrição do movimento do robô quando há considerações das forças agindo nele é dada pelas equações de movimento, que são obtidas através da modelagem dinâmica do manipulador (CRAIG, 1989). Assim como na cinemática, em dinâmica de manipuladores, existem dois problemas a resolver: no primeiro, tem-se a trajetória desejada e deve-se encontrar o torque necessário em cada junta para mover o manipulador, no outro tem-se uma curva de torque e deseja-se saber como o manipulador vai responder à isto (CRAIG, 1989). O comportamento dinâmico do robô é descrito em termos de taxa de variação de tempo da configuração do robô em relação aos torques aplicados por cada atuador. Esta relação pode ser expressa por um conjunto de equações diferenciais, chamadas equações de movimento. Existem várias técnicas para se determinar tais equações (FU et al., 1987; SHAHIN- POOR, 1987; SPONG; VIDYASAGAR, 1989; MURRAY et al., 1994; CRAIG, 1989). A formulação por Newton-Euler, por exemplo, implica em determinar as equações de movimento baseando-se no balanceamento de forças agindo em cada elo. Este método resulta em equações para cada corpo, ou elo do robô, o que faz o sistema volumoso e difícil de se trabalhar para robôs com grande número de elos. Fang A. Basu e Wang (1994), apresenta um método recursivo baseado no princípio de D’Alambert e trabalho virtual para se determinar o modelo dinâmico de um manipulador genérico. O método de Lagrange-Euler usa a conservação de energia no sistema (princípio da ação mínima de Hamilton) com um Lagrangiano, para determinar as equações de movimento (ASADA,
  • 34. Capítulo 2. Revisão Bibliográfica 33 2008). O problema será abordado neste texto fazendo uso do método de Euler-Lagrange para equações de movimento. Este método foi preferido por apresentar algumas vantagens sobre o método de Newton-Euler, algumas delas são: o método de Lagrange fornece automaticamente tantas equações quanto há graus de liberdade; as equações de Lagrange utilizam naturalmente as coordenadas generalizadas do sistema1 sem a necessidade de converter tudo para Cartesiano como é o caso do método de Newton-Euler; o método de Lagrange também elimina as forças de suportes, o que torna o método de certa forma mais direto e menos laborioso (VANDIVER, 2011). A seção 3.3 mostra o equacionamento para obter-se as equações de movimento de um manipulador com n graus de liberdade. 2.3.2 Controle do manipulador O problema de controle para manipuladores robóticos consiste em determinar as entradas das juntas em função do tempo que faça o efetuador executar o movimento comandado (sequência de posições e orientações ou um percurso contínuo). Estas entradas podem ser forças e torques nas juntas, ou podem ser entradas do atuadores, como por exemplo, voltagem (SPONG; VIDYASAGAR, 1989) Existem diferentes técnicas e metodologias para controle de manipuladores, o método escolhido tem impacto significante na performance do manipulador. Rastreio de percursos contínuos requer uma arquitetura de controle diferente que requer o controle para ponto-a-ponto (SPONG; VIDYASAGAR, 1989). Um dos mais simples tipos de estratégia de controle é o controle independente de junta. Neste tipo de controle cada eixo do manipulador é controlado como um sistema de uma única-entrada/única-saída. Qualquer efeito de acoplamento devido ao movimento dos outros elos é tratado como uma perturbação (SPONG; VIDYASAGAR, 1989). O usuário ou o algorítmo do software determina a trajetória desejada para o movi- mento do manipulador. O sistema de controle deve ser projetado para que o manipulador consiga se aproximar o melhor possível da trajetória desejada (KOIVO, 1989). Os valores da trajetória real são retroalimentados através de retroação para determi- nar possíveis erros de trajetória, o sistema de controle vai então trabalhar para compensar os erros observados (KOIVO, 1989). Na realidade, as equações dinâmicas para um manipulador robótico formam um sistema de multi-variáveis complexo e não-linear (SPONG; VIDYASAGAR, 1989). A análise de controle no contexto não-linear permite uma análise rigorosa da performance do sistema de controle, e também permite o projeto de leis de controle robustas e adaptivas que garantem a estabilidade e rastreio de trajetórias arbitrárias (SPONG; VIDYASAGAR, 1989). 1 para manipuladores articulados, a coordenada generalizada é o ângulo da junta θ.
  • 35. 34 Capítulo 3 Metodologia Neste capítulo são apresentados os conceitos teóricos que constituem as bases para a análise e controle de um manipulador robótico. São tratados neste capítulo os seis problemas apresentados no capítulo anterior que, de acordo com Spong e Vidyasagar (1989), são fundamentais para o desenvolvimento do software de controle do manipulador e para a análise apresentados no Capítulo 5 3.1 Geração de trajetórias A trajetória consiste de um histórico de posição, velocidade e aceleração da coordenada da junta em função do tempo, para cada grau de liberdade, e descreve o movimento desejado de um manipulador no espaço multidimensional. A intenção de se criar uma interface para geração de trajetória para um sistema robótico, é que o usuário não deve ter a necessidade de escrever funções complicadas de tempo e espaço para especificar a tarefa, ao invés disso, o usuário especificaria apenas uma posição meta desejada e a orientação do efetuador, e o sistema decide a forma exata do percurso para chegar lá, a duração, o perfil de velocidade e outros detalhes (CRAIG, 1989). 3.1.1 Trajetória ponto-a-ponto O tipo de movimento mais simples do robô é o movimento ponto-a-ponto. Neste tipo de movimento o robô encontra-se em uma determinada posição e orientação e ordena-se que ele vá para uma posição e orientação final sem se importar com o caminho intermediário entre esses dois pontos. O computador converte essa meta descrita no espaço cartesiano em espaço das juntas usando a cinemática inversa e define como será a curva de posição da junta com base na velocidade ou tempo estipulado pelo usuário. Este tipo de movimento é adequado para tarefas de transferência quando a área de trabalho está livre de obstáculos (SPONG; VIDYASAGAR, 1989). Com relação ao movimento das juntas neste tipo de movimento, existem algumas possíveis maneiras de acionamento, mostrados a seguir.
  • 36. Capítulo 3. Metodologia 35 Movimento Descoordenado Em um manipulador com todas as juntas rotativas, o efetuador terá um movimento descoordenado se todas as juntas se moverem com a mesma velocidade. Uma vez que, para um determinado movimento, cada junta terá uma distância diferente a percorrer, uma vez que todas estão a uma velocidade constante igual, elas terminarão seu movimento em momentos diferentes. O caminho criado por este tipo de movimento é circular com descontinuidades, como mostrado na Figura 10. Este tipo de trajetória foi implementado na interface gráfica, embora seja desaconselhado utilizá-lo quando o robô estiver carregando objetos pesados. O programa envia o ângulo de destino para cada junta com uma velocidade constante e igual para todas as juntas conectadas. Figura 10 – Movimento descoordenado (esquerda: deslocamento de cada junta; direita: trajetória do manipulador no plano) Fonte: Marion e Thornton (1981) Movimento sequencial O movimento sequencial consiste em mover uma junta por vez até o efetuar alcançar seu destino. A junta mais próxima da base geralmente é movida primeiro, e apenas quando seu movimento for concluído é que o movimento da próxima junta se inicia, a velocidade para cada junta pode ser diferente e não necessariamente constante. Uma vantagem deste tipo de controle de junta, é que, uma vez que apenas uma junta está sendo movida por vez, a corrente total consumida por cada atuador é menor se comparado com os outros tipos de movimento. A desvantagem, contudo, é que este método apresenta várias descontinuidades na trajetória do efetuador e em muitos casos, um controle adicional é necessário para evitar que o efetuador colida com objetos ou superfícies. A figura a seguir mostra o movimento de um manipulador com 2 graus-de-liberdade com movimento sequencial.
  • 37. Capítulo 3. Metodologia 36 Figura 11 – Movimento sequencial (esquerda: deslocamento de cada junta; direita: trajetó- ria do manipulador no plano) Fonte: Marion e Thornton (1981) Junta interpolada O método de junta interpolada é um dos mais usados em sistemas robóticos por ser um movimento suave. Neste caso, todas as juntas possuem velocidades diferentes o que faz com que todas as juntas terminem ao mesmo tempo, ou seja, não há grandes variações em velocidade e aceleração. O caminho descrito pelo efetuador, por ser curvo, não apresenta descontinuidades e pode ser descrito por uma interpolação polinomial. Movimento suave é considerado como uma função contínua que possui, no mínimo, duas derivadas contínuas. Isto evita movimentos bruscos, com solavancos diminuindo, assim, o desgaste do mecanismo e possíveis vibrações que podem provocar ressonâncias no manipulador (CRAIG, 1989). Figura 12 – Movimento coordenado (esquerda: deslocamento de cada junta; direita: traje- tória do manipulador no plano) Fonte: Marion e Thornton (1981) Para um percurso suave, a velocidade inicial e e velocidade final são iguais à zero,
  • 38. Capítulo 3. Metodologia 37 e os ângulos das juntas inicial e final correspondem ao ângulo em que a junta está e o ângulo calculado final respectivamente, portanto: θ (0) = θ0, θ (tf ) = θf , ˙θ (0) = 0, ˙θ (tf ) = 0. (3.1) As quatro restrições podem ser satisfeitas por um polinômio de terceiro grau. Este polinômio tem a forma θ (t) = a0 + a1t + a2t2 + a3t3 (3.2) tomando-se a derivada desse polinômio para calcular a velocidade e aceleração, obtém-se ˙θ (t) = a1 + 2a2t + 3a3t2 ¨θ (t) = 2a2 + 6a3t (3.3) Combinando as equações (3.2) e (3.3) com as restrições desejadas (3.1), obtém-se quatro equações com quatro incógnitas: θ0 = a0 θf = a0 + a1tf + a2t2 f + a3t3 f 0 = a1 0 = a1 + 2a2tf + 3a3t2 f (3.4) Encontrando os coeficientes ai dessas equações, obtém-se: a0 = θ0 a1 = 0 a2 = 3 t2 f (θf − θ0) a3 = − 2 t3 f (θf − θ0) (3.5) Com esses coeficientes é possível calcular o polinômio cúbico que conecta qualquer posição inicial de ângulo de junta com qualquer posição final, de forma que as velocidades inicial e final sejam zero, formando portanto, um movimento suave. As funções θ (t), ˙θ (t) e ¨θ (t), tornam-se, portanto: θ (t) = − 2 t3 f (θf − θ0) t3 + 3 t2 f (θf − θ0) t2 + θ0 (3.6) ˙θ (t) = − 6 t3 f (θf − θ0) t2 + 6 t2 f (θf − θ0) t (3.7) ¨θ (t) = − 12 t3 f (θf − θ0) t + 6 t2 f (θf − θ0) (3.8)
  • 39. Capítulo 3. Metodologia 38 É possível também descrever alguns pontos de passagem para o efetuador1 , de forma que o efetuador passará por esses pontos sem parar. Cada um desses pontos são convertidos para o espaço das juntas pelo uso da cinemática inversa. As restrições para os pontos inicial e final permanecem os mesmos, contudo para os pontos de passagem as velocidades se torna uma velocidade conhecida. ˙θ (0) = ˙θ0 ˙θ (tf ) = ˙θf (3.9) As equações que descrevem o polinômio cúbico são: θ0 = a0 θf = a0 + a1tf + a2t2 f + a3t3 f ˙θ0 = a1 ˙θf = a1 + 2a2tf + 3a3t2 f (3.10) Obtém-se, portanto, os coeficientes da função: a0 = θ0 a1 = ˙θ0 a2 = 3 t2 f (θf − θ0) − 2 tf ˙θ0 − 1 tf ˙θf a3 = − 3 t3 f (θf − θ0) + 1 t2 f ˙θf − ˙θ0 (3.11) Substituindo os coeficientes nas equações (3.2) e (3.3), para obter: θ (t) = − 3 t3 f (θf − θ0) + 1 t2 f ˙θf − ˙θ0 t3 + 3 t2 f (θf − θ0) − 2 tf ˙θ0 − 1 tf ˙θf t2 + ˙θ0t + θ0 (3.12) ˙θ (t) = − 9 t3 f (θf − θ0) + 3 t2 f ˙θf − ˙θ0 t2 + 6 t2 f (θf − θ0) − 4 tf ˙θ0 − 2 tf ˙θf t + ˙θ0 (3.13) ¨θ (t) = − 18 t3 f (θf − θ0) + 6 t2 f ˙θf − ˙θ0 t + 6 t2 f (θf − θ0) − 4 tf ˙θ0 − 2 tf ˙θf (3.14) As velocidades nos pontos de passagem devem ser conhecidas para se calcular o polinômio para cada junta. Essa velocidade pode ser especificada pelas seguintes formas: pelo usuário, como uma velocidade cartesiana linear e angular para o efetuador naquele instante; o sistema escolhe automaticamente as velocidades aplicando uma heusterística adequada no espaço das juntas ou no espaço cartesiano; ou o sistema escolhe as velocidades de forma que a aceleração no ponto de passagem seja contínua (CRAIG, 1989). 1 A expressão ponto se refere à sistemas de referência que fornecem tanto a posição quanto a orientação do efetuador.
  • 40. Capítulo 3. Metodologia 39 3.1.2 Trajetórias parametrizadas Em certas ocasiões o usuário necessita que o efetuador percorra um caminho específico, ao invés de apenas especificar um ponto inicial e uma meta. Esta trajetória pode ser descrita no espaço cartesiano de forma paramétrica, onde as coordenadas x, y, z são funções de tempo. Para este caso, o usuário especifica um tempo desejado para se completar o trajeto, ou uma velocidade linear constante. Para cada ponto da trajetória, é necessário calcular o valor da variável de junta utilizando o método de cinemática inversa apresentado na subseção 3.2.3. Para mani- puladores com até três juntas, pode-se utilizar o método geométrico, e substituindo as variáveis cartesianas pela função paramétrica se tem a função fechada de variável de junta em função do tempo. Nos casos em que o manipulador possui mais de três juntas, ou graus de liberdade, um método numérico é usado para calcular a variável de junta para certos ponto da trajetória, com espaçamento ∆s entre cada ponto, uma tabela é então formada para cada junta. Para a implementação da interface gráfica, o método numérico de cinemática inversa escolhido foi o método dos mínimos quadrados amortecido , por se mostrar ser o mais rápido a convergir os valores. Este método reduz o número total de iterações para se obter a tabela de variáveis de junta para cada ponto, tornando o processo mais rápido e estável. Em trajetórias parametrizadas, os pontos estão muito próximos um do outro, o que torna inviável computar um polinômio cúbico para cada ponto. Por este motivo não é possível determinar a derivada de forma algébrica, uma derivada numérica é então empregada de forma a obter a velocidade e aceleração do espaço de junta. Uma derivada numérica é obtida utilizando a definição de derivada: f = lim h→0 f(x + h) − f(x) h (3.15) Onde a aproximação numérica se torna: f ≈ f(x0 + h) − f(x0) h (3.16) A aceleração é obtida pela segunda derivada: f ≈ f(x0 + h) − 2f(x0) + f(x0 − h) h2 (3.17) Onde f(x0) é o valor do ângulo θ da junta i para um dado momento t. O valor de h deve ser pequeno o suficiente de maneira que se tenha uma boa aproximação, mas não tão pequeno que se carregue muito o processamento do algoritmo.
  • 41. Capítulo 3. Metodologia 40 Figura 13 – Aproximação numérica de derivada Fonte: Produzido pelo autor 3.1.3 Trajetória modelada em AutoCad Quando a obtenção das equações parametrizadas se torna complexa, pode-se recorrer a um software de desenho como o AutoCAD, para obter uma tabela de coordenadas cartesianas para o efetuador. No software, o usuário desenha a trajetória desejada para o efetuador a converte em uma tabela de pontos relativamente próximos e uniformemente espaçados. Com o AutoCAD é possível exportar uma tabela de pontos presentes em um arquivo de desenho para o Microsoft Excel, que posteriormente pode ser incorporado na interface gráfica do usuário. Contudo, a tabela de pontos nem sempre está em ordem, e é necessário utilizar um algoritmo para reorganização dos pontos (a ordem dos pontos de uma trajetória é fundamental). Este algoritmo não será explicado aqui, mas é descrito brevemente na descrição do programa feito em Matlab para este fim. Neste programa, contido nos anexos, também descreve o método de se converter uma curva ou até mesmo caracteres de texto, como no exemplo abaixo, em tabela de pontos utilizando o AutoCAD. O exemplo abaixo mostra a trajetória desenhada em AutoCAD correspondente às três letras que compõem o logo da universidade, isto é, ‘UMC’. A Figura 14 mostra os pontos distribuídos no espaço de trabalho do manipulador. 3.1.4 Trajetória linear Em um manipulador de juntas de revolução, o movimento do efetuador nunca é linear (BUSS, 2009; CRAIG, 1989). Porém, é possível aproximar o trajeto em um percurso linear,
  • 42. Capítulo 3. Metodologia 41 Figura 14 – Exemplo de trajetória desenhada em CAD Fonte: Produzido pelo autor informando pontos de passagens relativamente próximos uns dos outros. A trajetória retilínea pode ser entendida como um caso específico da trajetória parametrizada. Para este caso, também é necessário calcular os ângulos das juntas para pontos igualmente espaçados do percurso da linha. O efetuador terá sua velocidade linear constante durante o percurso, fazendo com que a curva de variável de junta se torne complexa. Em percursos de linha reta, as derivadas primeira e segunda das coordenadas de juntas, são quase sempre curvas com descontinuidades, por isso é aconselhável evitar os percursos de linha reta em tarefas com elevação de cargas. Um dos métodos mais simples para se obter uma trajetória em linha reta é o algoritmo de Taylor, que utiliza pontos de passagem igualmente espaçados entre o ponto inicial e final. O algoritmo pode ser descrito como segue: 1o Calcule as coordenadas das juntas para o ponto inicial e final (meta); 2o Calcule um ponto médio, no espaço das juntas e Cartesiano; 3o Se o erro no trajeto planejado for maior que o permitido, então divida o trecho em dois e insira mais um ponto de passagem entre as extremidades; 4o Cheque o erro em ambos os lados do trajeto, caso o erro ainda permanecer maior que o permitido, adicione mais pontos de passagem até que o erro seja reduzido. Quanto maior o número de pontos de passagem, mais próximo será a aproximação da trajetória necessária.
  • 43. Capítulo 3. Metodologia 42 Figura 15 – Gráfcos da trajetória linear: a) trajetória em linha reta; b) aproximação da linha reta por pontos de passagem; c) curvas de coordenadas das juntas em função da distância linear; d) velocidade angular; e) aceleração angular Fonte: Marion e Thornton (1981) Alguns problemas podem aparecer quando é utilizado trajetórias lineares. O primeiro tipo é o problema da trajetória possuir pontos intermediários inalcançáveis. Neste caso, embora a localização inicial do manipulador e a meta estejam dentro do volume de trabalho, é possível que alguns pontos da reta sejam inalcancáveis, um exemplo disso seria uma linha reta em que seu meio passe muito próximo à base do manipulador, não sendo possível o efetuador alcançar esses pontos sem que haja uma colisão do efetuador com algum elo. O segundo problema ocorre quando os pontos da trajetória são próximos à singula- ridades. Se um manipulador está seguindo uma trajetória cartesiana em linha reta e se aproxima de uma configuração singular do mecanismo, a velocidade de uma ou mais juntas pode aumentar ao infinito. Sendo as velocidades de mecanismos limitadas, o que ocorre na prática é que existirá um desvio do manipulador do curso desejado (CRAIG, 1989). O problema do tipo três surge quando um manipulador tem os pontos inicial e alvo atingíveis por diferentes soluções. Neste caso o manipulador consegue alcançar todos os pontos da trajetória com algumas soluções ao invés de uma única. Neste caso, o sistema de planejamento pode detectar o problema antes de mover o robô pelo percurso (CRAIG, 1989). Como será mostrado no Apêndice A, existe uma função específica que irá checar a trajetória gerada antes de iniciar a simulação ou enviar o movimento ao robô. A Figura 16 ilustra os três tipos de problemas.
  • 44. Capítulo 3. Metodologia 43 Figura 16 – Problemas geométricos com trajetória cartesiana: a)tipo 1; b)tipo 2; c)tipo 3 Fonte: Craig (1989) 3.1.5 Algoritmo anticolisão Em uma ocasião ideal, o usuário iria entrar com um ponto meta desejado e o sistema determinaria quantos pontos de passagem seria necessário para que a trajetória gerada fosse capaz de se livrar de qualquer obstáculo. Contudo, para se alcançar tal estado, o sistema precisaria ter modelos do manipulador, da área de trabalho e de todos os possíveis obstáculos que nela se encontram(através de sistema de visão) (CRAIG, 1989). Atualmente, não existem sistemas que conseguem planejar trajetórias que sejam totalmente livres de colisão (CRAIG, 1989). As técnicas existentes conseguem evitar algumas das possíveis colisões buscando em uma representação gráfica do ambiente uma trajetória livre de colisão. Contudo esses métodos são exponencialmente complexos se considerar um obstáculo móvel (como no caso de um segundo manipulador estar trabalhando na mesma área) ou se o manipulador possuir muitos graus de liberdade (CRAIG, 1989). Uma dos algoritmos mais simples para se evitar colisão consiste em descrever o objeto presente na área de trabalho do manipulador como uma aproximação do formato usando uma função parametrizada, como a da esfera por exemplo. O sistema iria então verificar se algum ponto da trajetória estaria dentro do volume da esfera e caso estivesse, este iria procurar através de uma análise vetorial, a menor distância fora da esfera em que não haveria trajetória. Este método é laborioso, pois o usuário teria que descrever o objeto toda vez que esse mudasse de lugar. Como o sistema de visão não faz parte do escopo deste trabalho, não será imple- mentado no software de controle o algoritmo anticolisão. É apresentado no Capítulo 6 como sugestão para trabalho futuro, a implementação de um sistema de visão e algoritmo anticolisão no software de controle. Também é sugerido uma atualização para a junta
  • 45. Capítulo 3. Metodologia 44 do manipulador para que esta consiga detectar quando o manipulador colide com algum objeto acionando, assim, um sistema de segurança que desliga o torque dos atuadores das juntas. 3.2 Cinemática do manipulador Cinemática é o campo da Mecânica clássica que descreve os movimentos de pontos, corpos de sistemas de corpos sem consideração às causas do movimento (forças e torques). Cinemática é de grande importância no estudo de manipuladores robóticos pois permite a determinação da posição de cada junta e do efetuador para qualquer instante. 3.2.1 Cinemática direta Em um manipulador, juntas e elos são conectados de forma alternada. Assumindo que cada junta tenha um único grau de liberdade, o movimento de cada junta pode ser descrito por uma única variável: ângulo para juntas de revolução e deslocamento para juntas prismáticas. As equações da cinemática direta determinam o efeito acumulativo do conjunto inteiro de variáveis. Para um manipulador de n juntas, ele apresentará n + 1 elo, uma vez que cada junta se conecta com dois elos. Por convenção, as juntas são numeradas de 1 até n e os elos de 0 até n , partindo da base. É considerado que cada junta i é fixa com respeito o elo i − 1. Desta forma, quando uma junta i é acionada, o elo i se move. Para cada junta, uma variável qi é associada a esta, sendo que para uma junta de revolução, a variável qié o ângulo entre as juntas, portanto: qi = θi. Permitindo que Ai seja a matriz homogênea de transformação que descreve a posição e orientação do link i com respeito as coordenadas x, y, z a partir da origem. Para um manipulador com uma matriz única Ai, esta matriz é função de uma única variável, isto é, Ai (qi). Para um manipulador com duas ou mais juntas, a matriz de transformação das juntas j até a junta i é obtida a partir da multiplicação de todas as matrizes A de i até j: Tj i = Ai+1Ai+2...Aj−1Aj (3.18) Para resolver o problema da cinemática direta, é necessária determinar a matriz de transformação Ai, uma vez determinada, a posição e orientação pode ser obtida diretamente da matriz final Tj i . A convenção e método de obtenção de Ai é apresentado a seguir. Critério de notação de Denavit-Hartenberg Jacques Denavit e Richard Hartenberg introduziram uma convenção em 1995 para a definição de matrizes de juntas e matrizes de elo com o intuito de padronizar a estrutura
  • 46. Capítulo 3. Metodologia 45 de coordenadas de uma cadeia cinemática. Na convenção de D-H, cada matriz homogênea de transformação é representada com um produto de quatro outras transformações básicas: Ai = Rz,θi Transx,di Transz,ai Rx,αi (3.19) Onde: Rz,θi =         cθi −sθi 0 0 sθi cθi 0 0 0 0 1 0 0 0 0 1         (3.20) Transx,di =         1 0 0 0 0 1 0 0 0 0 1 di 0 0 0 1         (3.21) Transz,ai =         1 0 0 ai 0 1 0 0 0 0 1 0 0 0 0 1         (3.22) Rx,αi =         1 0 0 0 0 cαi −sαi 0 0 −sαi cαi 0 0 0 0 1         (3.23) As matrizes de rotação geralmente são apresentadas com dimensão 3 × 3. A quarta linha e coluna da matriz são adicionados para permitir a descrição não apenas da rotação em torno de um eixo, mas também de uma translação d. Portanto, a matriz Ai que é produto de duas matrizes de rotação e duas de translação, possui dimensão 4 × 4. Efetuando a multiplicação das quatro matrizes, a matriz Ai se torna: Ai =         cθi −sθi cαi sθi cαi aicθi sθi cθi cαi −cθi sαi aisθi 0 sαi cαi di 0 0 0 1         (3.24) Onde c representa o cosseno do ângulo θ ou α, s representa o seno do ângulo e os parâmetros ai, αi, di e θi são: comprimento do elo, giro do elo, deslocamento do elo e ângulo da junta, respectivamente. Com estes parâmetros estabelecidos, a posição e orientação do efetuador com respeito a origem global do robô O pode ser encontrada, multiplicando-se n matrizes de
  • 47. Capítulo 3. Metodologia 46 Figura 17 – Parâmetros de Denavit-Hartenberg Fonte: Craig (1989) transformação homogêneas A, obtendo-se a matriz de transformação T0 n , ou seja: Tn 0 = n i=1 Ai i−1 (qi) =   n o a p 0 0 0 1   (3.25) A matriz Tj i é uma matriz quadrada 4 × 4 onde as primeiras três linhas e colunas representam a orientação da junta j e a quarta coluna fornece a coordenada (x, y e z) com respeito ao sistema de coordenada do elo i. A Figura 18 mostra os parâmetros D-H para um manipulador do tipo articulado e a Figura 19 mostra como é divida a matriz de transformação homogênea. 3.2.2 Cinemática inversa: método pseudo-inverso Jacobiano A cinemática direta pode ser interpretada com uma função da variável da junta qi. A posição do efetuador pode, então, ser escrita como: e = f(θ) (3.26) Onde e é a posição do efetuador, isto é: e = (e1, e2, ..., em)T , (em espaço tridimen- sional: m = 3), e θ é um vetor-coluna composto por todos as n variáveis de juntas, isto é: θ = (θ1, θ2, ..., θn)T . Para a cinemática inversa, deseja-se encontrar uma função que retorna um vetor de variáveis de juntas (ângulos ou deslocamentos) que vai fazer com que o efetuador alcance
  • 48. Capítulo 3. Metodologia 47 Figura 18 – Manipulador do tipo articulado com os parâmetros D-H Fonte: Produzido pelo autor Figura 19 – Divisão da matriz de transformação homogênea Fonte: Produzido pelo autor alguma posição desejada. Neste caso e é conhecido e queremos encontrar o valor de θ, então computa-se a função inversa de (3.26). θ = f−1 (e) (3.27) Esta função inversa nem sempre tem solução única, e é muito mais complexa quando o manipulador possui múltiplos graus-de-liberdade ou múltiplos efetuadores, o que faz o processo de encontrar as soluções mais exigente computacionalmente. Para manipuladores com múltiplos efetuadores (k), a posição no espaço é denotada por p1, ..., pk, onde a posição de cada efetuador é uma função da variável da junta. Pode-se também escrever o vetor p como um vetor-coluna: (p1, p2, ..., pk)T que pode ser visto como um vetor com k entradas pertencentes ao R3 . Permita que o vetor t seja a posição desejada para cada efetuador, isto pode ser representado como um vetor coluna com k entradas: t = (t1, ..., tk)T . A mudança em posição de cada efetuador pode ser calculada usando o vetor de posição atual s e a posição de destino t, considere e como o vetor de diferença entre os dois vetores, pode-se escrever para cada efetuador: e = t − p. Uma vez que a posição atual do efetuador é uma função
  • 49. Capítulo 3. Metodologia 48 de θ, a equação (3.26) para múltiplos efetuadores, se torna: ti = pi(θ) para todos k efetuador (3.28) Os valores para θ que satisfazem as equações (3.28) pode, em alguns casos, ter múltiplas soluções ou nenhuma solução. Contudo, é possível aproximar a função usando uma matriz Jacobiana, que é definida por: J (θ) = ∂pi ∂θj i,j (3.29) Onde J é a matriz k × n cujos elementos são vetores do R3 . A justificativa de se usar uma matriz Jacobiana é que a função de posição de cada efetuador pi(θ) é sempre diferenciável, portanto, a matriz Jacobiana apresentará a melhor aproximação linear da função ao redor do ponto escolhido, como mostrado na figura abaixo. As equações de velocidade e aceleração do efetuador também podem ser obtidas a partir da matriz Jacobiana. O algoritmo para se obter as soluções da cinemática inversa, pode ser descrito Figura 20 – Representação geométrica do Jacobiano Fonte: Produzido pelo autor como segue:
  • 50. Capítulo 3. Metodologia 49 Suponha que se conheça o valor da variável da junta θ e posição atual da junta (vetores p e t) em um dado instante. A partir desses valores, calcula-se a matriz Jacobiana usando a equação (3.29). Procuramos um valor de atualização para ∆θ que irá incrementar o ângulo da junta: θ := θ + ∆θ (3.30) Esta mudança da variável vai causar uma mudança da posição atual do efetuador p, e pode ser estimado: ∆p ≈ J∆θ (3.31) O valor ∆θ é escolhido de forma que ∆s é aproximadamente igual a diferença entre a posição final e a posição inicial (vetor e). Podemos encontra um valor de ∆θ que vá satisfazer a equação: e = J∆θ (3.32) O valor de ∆θ é encontrado calculando-se a inversa de matriz Jacobiana: ∆θ = J−1 e (3.33) Contudo, dependendo do número de juntas e do número de efetuadores do manipulador, a matriz Jacobiana pode não ser quadrada, da qual não se pode calcular a inversa. Por isso, é empregado alguns métodos para se contornar este problema, sendo um deles o uso do método da Transposta Jacobiana, que consiste de usar a transposta da matriz Jacobiana ao invés da inversa de J para encontrar ∆θ. Outro método utilizado é conhecido como método pseudoinverso, que é usado quando a matriz Jacobiana for retangular, a equação (3.33) se torna: ∆θ = J† e (3.34) Onde a matriz J† que possui dimensão n × m é o pseudo-inverso de J, também conhecida como Moore-Penrose inversa de J e fornece a melhor solução possível para a equação (3.32), uma vez que este método calcula esta equação usando o método dos quadrados mínimos. O pseudo-inverso de J pode ser calculada usando a equação: J† = JT J −1 JT (3.35) Onde JT é a transposta da Jacobiana. 3.2.3 Mínimos quadrados amortecido. O método pseudo-inverso Jacobiano apresenta alguns problemas quando a meta está fora de alcance do manipulador ou quando está muito próxima da distância máxima de alcance. Estes problemas fazem o método numericamente instável quando o programa
  • 51. Capítulo 3. Metodologia 50 Figura 21 – Fluxograma de solução da Cinemática Reversa por Jacobiano Fonte: Joubert (2008) estiver tentando calcular o valor de ∆θ. Para evitar estes problemas com singularidades, o método de mínimos quadrados amortecido é utilizado. Este método se difere do pseudo-inverso Jacobiano no sentido que ao invés de encontrar um mínimo vetor ∆θ que fornece a melhor solução para a equação (3.32), o algoritmo vai procurar o valor de ∆θ que irá minimizar a quantidade J∆θ − e 2 + λ2 ∆θ 2 (3.36) Onde λ ∈ R é uma constante de amortecimento não nulo. Pode-se reescrever a expressão acima como: JT J + λ2 I ∆θ = JT e (3.37) O valor de JT J +λ2 I é não-linear (BUSS, 2009), e portanto, a solução dos mínimos
  • 52. Capítulo 3. Metodologia 51 quadrados é dada por: ∆θ = JT J + λ2 I −1 JT e (3.38) O produto JT J é uma matriz quadrada n × n, em que n é o número de variáveis de juntas (graus-de-liberdade), considerando que JT J + λ2 I −1 JT = JT JJT + λ2 I −1 (3.39) Então: ∆θ = JT JJT + λ2 I −1 e (3.40) A vantagem de se usar (3.40) ao invés de (3.38) é que JJT + λ2 I −1 é mais fácil de se calcular sua inversa, uma vez que JJT é uma matriz m × m , em que m é o espaço da meta (para uma espaço tridimensional: m = 3) e é na maioria dos casos menor que n. A constante de amortecimento λ depende dos detalhes do manipulador e da meta e deve ser escolhido com cuidado de maneira à fazer a equação (3.40) numericamente estável. A constante deve ser grande o suficiente de maneira que as soluções para ∆θ tenha bom comportamento próximo de singularidades, mas não tão grandes que a taxa de convergência se torne muito lenta (BUSS, 2009). 3.2.4 Redundância e Singularidades Um manipulador deve possuir pelo menos seis graus de liberdade de forma a poder alocar o efetuador em uma ponto e orientação arbitrária no espaço. Os manipuladores com uma número menor que 6 graus de liberdade não são capazes de executar o posicionamento de tais pontos arbitrários. Contudo, se o manipulador tiver mias que 6 graus de liberdade, irá existir um infinito número de soluções para as equações da cinemática. São, portanto, referidos como manipuladores redundantes (ASADA, 2008). A matriz jacobiana 6 × n, J (q) define um mapeamento: ˙X = J (q) ˙q (3.41) entre o vetor ˙q das velocidades da junta e do vetor ˙X := (v, ω)T de velocidades do efetuador. Infinitesimalmente, isso define uma transformação linear (SPONG; VIDYASAGAR, 1989) dX = J (q) dq (3.42) entre os diferenciais dq e dX. Uma vez que a jacobiana é uma função da configuração q, aquelas configurações em que o ranque de J diminui são de significância especial. Tais confi- gurações são chamadas singularidades ou configurações singular (SPONG; VIDYASAGAR, 1989).
  • 53. Capítulo 3. Metodologia 52 3.2.5 Velocidade e aceleração Como mostrado acima, as velocidades da junta e as velocidades do efetuador são relacio- nadas pela matriz jacobiana: ˙X = J (q) ˙q (3.43) Portanto, a velocidade inversa se torna um problema de resolver um sistema de equações lineares. Para encontrar a aceleração, pode-se diferenciar a equação acima. Usando a regra do produto: ¨X = J (q) ¨q + d dt J (q) ˙q (3.44) Portanto, dado um vetor ¨X de acelerações do efetuador, o vetor de aceleração instantânea da junta ¨q é dado como a solução de: b = J (q) ¨q (3.45) onde b = ¨X − d dt J (q) ˙q (3.46) Para um manipulador de 6 graus de liberdade, as equações da velocidade e aceleração inversa podem ser escritas como (SPONG; VIDYASAGAR, 1989): ˙q = J(q)−1 ˙X (3.47) e ¨q = J(q)−1 b (3.48) Considerando que det J (q) = 0. Para manipuladores redundantes ou manipuladores com menos que 6 elos a matriz jacobiana não pode ser invertida, por não ser quadrada. Nestes casos, apenas existirá uma solução para a equação se o vetor do lado esquerdo da equação possuir o mesmo intervalo de espaço que a matriz jacobiana (SPONG; VIDYASAGAR, 1989) A velocidade linear do efetuado ˙X, é determinada pelo usuário no software de controle. Uma vez que a inversa da jacobina varia dependendo da configuração do braço, a matriz de velocidade das juntas também irão variar, mesmo que a velocidade linear do efetuador seja constante (ASADA, 2008). 3.2.6 Restrições na conguração do manipulador Em alguns casos é necessário que o efetuador se movimente com uma orientação restrita. Um exemplo disso seria o movimento de uma lata de refrigerante aberta, como mostra a Figura 22. Deseja-se movimentar essa lata do ponto A para o ponto B por um caminho
  • 54. Capítulo 3. Metodologia 53 qualquer de forma que o plano do fundo da lata fique, durante todo o trajeto, paralelo ao chão evitando que a bebida derrame. Isso é alcançado descrevendo o ângulo do punho em função dos outros ângulos das juntas do cotovelo e ombro. Berenson e Kuffner (2012) e Ratliff Matt Zucker e Srinivasa (), apresentam técnicas baseada em otimização para restringir o movimento do punho durante a geração de trajetória. Figura 22 – Trajetória com restrição de orientação Fonte: Berenson e Kuffner (2012) Uma das formas de se restringir a orientação do punho é especificar três ângulos fixos com relação aos planos da base do robô e utilizar-se de um algoritmo de otimização como o método de Newton, que é um dos mais simples, para minimizar a função custo. Como o método de Newton tende a não convergir quando o manipulador está longe da meta, é utilizado o método da cinemática inversa por mínimos quadrados amortecido, apresentado na 3.2.3 para posicionar o efetuador na posição da meta, e a partir deste ponto, o método de Newton assume para satisfazer a orientação desejada. Usando o método de Newton-Raphson , a solução para o sistema de equações é determinado usando, iterativamente, a seguinte aproximação (GOLDENBERG; FENTON,
  • 55. Capítulo 3. Metodologia 54 1985) q(k+1) = q(k) + δ(k) (3.49) onde δ(k) é a solução para o sistema linear e rj q(k) + n i=1 J (k) ji δ (k) i = 0, j = 1, ..., 6 (3.50) em que Jji é definido como J (k) ji = ∂rj ∂qi q=q(k) i = 1, ..., n; j = 1, ..., 6 (3.51) e rj q(k) consiste nos termos do vetor de erro residual entre a orientação e posição atuais do efetuador e meta. Estes valores são obtidos das matrizes de transformação homogênea, Equação 3.25, usando a seguinte relação (GOLDENBERG; FENTON, 1985): rx = na . pt − pa ry = oa . pt − pa rz = aa . pt − pa rφ = 1 2 . aa .ot − at .oa rθ = 1 2 . na .at − nt .aa rψ = 1 2 . oa .nt − ot .na (3.52) em que (φ, θ, ψ) são os ângulos desejados ao redor dos eixos xyz, respectivamente. Este método, funciona razoavelmente bem, até mesmo próximos de singularidades, porém deixa a resolução da cinemática inversa um pouco lenta e deve ser aplicado apenas onde há realmente a necessidade de se restringir o movimento do robô, como em operações de soldagem e pintura. É importante observar que para manipuladores com número de juntas menor que seis, não é possível satisfazer a meta e orientação desejada nos três eixos, para estes casos determina-se um ou mais valores do vetor r para 0. 3.3 Dinâmica do Manipulador 3.3.1 Conceitos preliminares Tensor de Inércia Um momento de inércia é definido como a integral do segundo momento em relação a um eixo de todos os elementos de massa dm que compõe o corpo. Para um eixo qualquer, o momento de inércia é (HIBBELER, 1999): I = m r2 dm (3.53)
  • 56. Capítulo 3. Metodologia 55 Para um corpo com densidade constante, podemos reescrever a equação acima, de forma que seus termos fiquem puramente geométricos, como segue: I = ρ V r2 dV (3.54) ) Onde ρ é a densidade do corpo e r é o vetor distância perpendicular do eixo até o elemento arbitrário dm. Para um elemento diferencial descrito em coordenadas cartesianas o vetor r com relação ao eixo de rotação x pode ser descrito como: r = √ y2 + z2, o momento de inércia então fica: Ixx = V y2 + z2 ρdV (3.55) Para os eixos y e z : Iyy = V x2 + z2 ρdV (3.56) Izz = V x2 + y2 ρdV (3.57) O produto de inércia é um conjunto de dois planos ortogonais é definido como o produto da massa do elemento e as distâncias perpendiculares dos planos até o elemento. Para o plano y − z essa distância é x e para o plano x − z, a distância é y. Os produtos de inércia do corpo em relação a cada combinação de planos ficam: (HIBBELER, 1999) Ixy = Iyx = V (xy) ρdV Iyz = Izy = V (yz) ρdV Ixz = Izx = V (xz) ρdV (3.58) O tensor de inércia é um conjunto único de valores para um corpo quando é determinado para cada localização da origem O e orientação dos eixos de coordenadas, este tensor é definido como: I =      Ixx −Ixy −Ixz −Iyx Iyy −Iyz −Izx −Izy Izz      (3.59) O tensor de inércia é uma matriz simétrica, visto que Ixy = Iyx, Iyz = Izy e Ixz = Izx. Existem três eixos de inércia, que quando I é calculada, os termos Ixy = Iyx = Iyz = Izy = Ixz = Izx = 0, desta forma I se torna uma matriz diagonal. Quando o corpo é rotacionado em torno de seus eixos principais de inércia, não existe forças resultantes de desbalanceamento do corpo pois a massa está igualmente distribuída.
  • 57. Capítulo 3. Metodologia 56 Energia Potencial Energia potencial (simbolizado por U ou Ep) é a forma de energia que está associada a um sistema onde ocorre interação entre diferentes corpos e está relacionada com a posição que o determinado corpo ocupa, e sua unidade no Sistema Internacional de Unidades (SI), assim como o trabalho, é joule (J). A energia potencial é o nome dado a forma de energia quando está “armazenada”, isto é, que pode a qualquer momento manifestar-se , por exemplo, sob a forma de movimento, e a energia potencial é derivada de forças conservativas, ou seja, a trajetória do corpo não interfere no trabalho realizado pela força, o que importa são a posição final e a inicial, então o percurso não interfere no valor final da variação da energia potencial. U = −migr0,ci (3.60) Energia Cinética A energia cinética é a energia que está relacionada com o estado de movimento de um corpo. Este tipo de energia é uma grandeza escalar que depende da massa e do módulo da velocidade do corpo em questão. Quanto maior o módulo da velocidade do corpo, maior é a energia cinética. Quando o corpo está em repouso, ou seja, o módulo da velocidade é nulo, a energia cinética é nula. Para um dado sistema que se move a uma velocidade vci (velocidade do centro de massa) e velocidade angular ωi sua energia cinética é dada por (ASADA, 2008): K = n i=1 1 2 mi|vci|2 + 1 2 Iiω2 i (3.61) 3.3.2 Equações de movimento do manipulador As equações de Lagrange são derivadas do princípio da ação mínima. Este teorema denota que a ação - uma grandeza física com dimensão equivalente à de energia multiplicada pela de tempo (joule-segundo no S.I.) - possui um valor estacionário - é máximo, mínimo, ou um ponto de sela - para a trajetória que será efetivamente percorrida pelo sistema em seu espaço de configuração (MARION; THORNTON, 1995). Para se utilizar das equações de Lagrange o sistema deve atender à alguns requisitos, como: ser holonômico, possuir coordenadas generalizadas independentes, e ter o tantos graus-de-liberdade quanto coordenadas generalizadas. Entende-se como coordenadas generalizadas de um sistema, o grupo mínimo de parâmetros para descrever completamente todas as configurações do sistema a qualquer instante t (VANDIVER, 2011).
  • 58. Capítulo 3. Metodologia 57 Trabalho virtual Uma força aplica trabalho W, quando existe um deslocamento da partícula ou corpo na direção de aplicação da força (HIBBELER, 1999). Um trabalho virtual consiste do produto de uma força generalizada e o deslocamento virtual que ela causa. Para um corpo que sofre um deslocamento de sua coordenada generalizada qi, seu trabalho seria: δWnc = n i=1 Qiδqi (3.62) Assim como no caso de trabalho virtual para sistemas em equilíbrio estático, a variação do conjunto de energia cinética e energia potencial para uma força não conservativa seria zero. Considerado um dado instante em tempo, há uma variação infinitesimal na posição do sistema partindo de sua posição natural de equilíbrio dinâmico, a equação de variação de energia cinética, potencial e trabalho seria (VANDIVER, 2011): δK + δU − δWnc = 0 (3.63) Onde o índice nc significa que o trabalho é feito por uma força não conservativa.2 A técnica usada para encontrar as forças generalizadas do sistema é assumir que o sistema experimenta uma pequena deflexão virtual, da qual computa-se o incremento de variação de trabalho resultante. Equações de Lagrange Para um sistema com n graus de liberdade e coordenadas generalizadas qj, é possível calcular a função Lagrangiana L = K − U, onde K é a energia cinética e U é a energia potencial do sistema. A Lagrangiana é uma função de coordenadas generalizadas qj e velocidades generalizadas ˙qj (VANDIVER, 2011): L = L (q1, ...qi...qn, ˙q1, ... ˙qi.... ˙qn) (3.64) Onde n é o número de graus-de-liberdade do sistema. Uma vez que a energia potencial U, é função da coordenada generalizada qi, e a energia cinética é função da coordenada generalizada e da velocidade ˙qi, pode-se reescrever a equação (3.64), como segue: L (qi, ˙qi) = K (qi, ˙qi) − U (qi) (3.65) Utilizando as equações de Lagrange, as equações de movimento são, portanto: d dt ∂L ∂ ˙qi − ∂L ∂qi = Qi i = 1, 2..., n (3.66) 2 Uma força é considerada conservativa quando causa trabalho em um sistema que é independente da trajetória do corpo ou partícula. Exemplos de forças conservativas são o peso de uma partícula e o trabalho realizado por uma força de mola (HIBBELER, 1999). Todas as outras forças externas e momentos que aplicam ou retiram energia do sistema são considerados como forças não conservativas.