Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Projeto, Controle e Análise de um Manipulador Robótico Modular, Manuais, Projetos, Pesquisas de Engenharia Mecânica

Projeto de um manipulador robótico modular e software em Matlab para simulação. O software pode ser baixado no link: http://www.mathworks.com/matlabcentral/fileexchange/58255-robotic-arm-simulator

Tipologia: Manuais, Projetos, Pesquisas

2016
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 16/06/2016

diego-varalda-de-almieda-12
diego-varalda-de-almieda-12 🇧🇷

1 documento

1 / 237

Documentos relacionados


Pré-visualização parcial do texto

Baixe Projeto, Controle e Análise de um Manipulador Robótico Modular e outras Manuais, Projetos, Pesquisas em PDF para Engenharia Mecânica, somente na Docsity! 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 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. 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 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 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 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 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 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 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 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: T ji = 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 T ji . 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,θiTransx,diTransz,aiRx,α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θicαi sθicαi aicθi sθi cθicαi −cθisα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 T 0n , ou seja: T n0 = n∏ i=1 Aii−1 (qi) =  n o a p 0 0 0 1  (3.25) A matriz T ji é 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 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−1e (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† = ( JTJ )−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: ( JTJ + λ2I ) ∆θ = JTe (3.37) O valor de JTJ +λ2I é não-linear (BUSS, 2009), e portanto, a solução dos mínimos Capítulo 3. Metodologia 51 quadrados é dada por: ∆θ = ( JTJ + λ2I )−1 JTe (3.38) O produto JTJ é uma matriz quadrada n× n, em que n é o número de variáveis de juntas (graus-de-liberdade), considerando que( JTJ + λ2I )−1 JT = JT ( JJT + λ2I )−1 (3.39) Então: ∆θ = JT ( JJT + λ2I )−1 e (3.40) A vantagem de se usar (3.40) ao invés de (3.38) é que ( JJT + λ2I )−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: Ẋ = J (q) q̇ (3.41) entre o vetor q̇ das velocidades da junta e do vetor Ẋ := (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 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 r2dm (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 r2dV (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 2mi|vci| 2 + 12Iiω 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 59 onde JLi e JAi , são respectivamente, as matriz 3×n relacionando a velocidade linear no centróide, e a velocidade angular do elo i com as velocidades das juntas. O jacobiano pode ser definido como: JLi = ∂r0,ci ∂qi (3.73) Substituindo a equação (3.72) nas equações (3.70) e (3.71): K = 12 n∑ i=1 ( m1q̇TJLi T JLi q̇ + q̇TJAi T IiJAi q̇ ) = 12 q̇ TMq̇ (3.74) onde M é uma matriz n× n dada por M = n∑ i=1 ( m1JLi T JLi + JAi T IiJAi ) (3.75) A matriz M incorpora todas as propriedades de massas do manipulador inteiro, e é referido como uma matriz de inércia multi-corpos (ASADA, 2008). Como essa matriz envolve matrizes jacobianas, e estas variam com a configuração do manipulador, portanto, a matriz de inércia multi-corpos é dependente da configuração e representa as propriedades de massa instantaneamente para o manipulador naquela configuração. Escrevemos a matriz de inércia como M(q), uma função da variável da junta q. Fazendo uso dos componentes da matriz de inércia multi-corpos M = Mij , escreve- mos a energia cinética total na forma quadrática escalar: K = 12 n∑ i=1 n∑ j=1 Mij q̇iq̇j (3.76) Diferenciando, para obter o primeiro termo da equação (3.69), d dt ∂K ∂q̇i = d dt 1 2 n∑ j=1 Mij q̇j  = n∑ j=1 Mij q̈j + n∑ j=1 dMij dt q̇j (3.77) Por ser uma matriz simétrica, M, os pares de juntas i e j, possuem os mesmos coeficientes de iteração dinâmica, portanto, Mij = Mji O segundo termo da equação (3.77), geralmente é não nulo (SPONG; VIDYASA- GAR, 1989), uma vez que a matriz M é dependente da configuração, aplicando a regra da cadeia neste termo, dMij dt = n∑ k=1 ∂Mij ∂qk dqk dt = n∑ k=1 ∂Mij ∂qk q̇k (3.78) Capítulo 3. Metodologia 60 O segundo termo da equação de movimento (3.69), também requer a derivada parcial de Mij da equação (3.76), ∂T ∂qi = ∂ ∂qi 1 2 n∑ j=1 n∑ k=1 Mjkq̇j q̇k  = 12 n∑ j=1 n∑ k=1 ∂Mjk ∂qi q̇j q̇k (3.79) Substituindo equação (3.78)no segundo termo da equação (3.77) e combinando os termos resultantes com a equação (3.79), escrevemos os termos não lineares como (ASADA, 2008) hi = n∑ j=1 n∑ k=1 Cijkq̇j q̇k (3.80) onde os coeficientes Cijk é dado por: Cijk = ∂Mij ∂qk − 12 ∂Mjk ∂qi (3.81) O coeficiente Cijk é chamado de símbolo de Christoffel (de primeira ordem) (SPONG; VIDYASAGAR, 1989). A equação (3.81) é não linear, uma vez que possui produtos de velocidades das juntas. Equação (3.81) pode ser dividida em termos proporcionais ao quadrado da velocidade das juntas, isto é, quando j = k e quando j 6= k. O primeiro representa os torques gerados por aceleração centrífuga e o segundo, os torque por aceleração de Coriolis (ASADA, 2008). hi = n∑ j=1 Cijj q̇ 2 j + n∑ k 6=j Cijkq̇j q̇k (3.82) Forças generalizadas Forças que agem no sistema de corpos rígidos, podem ser representados por forças conser- vativas e não conservativas (ASADA, 2008). Como visto em seção 3.3.1, a energia potencial armazenada em todos os n elos do manipulador é dado por U = − n∑ i=1 migT r0,ci (3.83) Onde r0,cié vetor posição do centróide Ci que é dependente da coordenada da junta. Substituindo esta equação, na equação de movimento de Lagrange (3.69), obtém-se a equação de torque por gravidade, para cada junta: Gi = ∂U ∂qi = − n∑ j=1 mjgT ∂r0,cj ∂qi = − n∑ j=1 mjgTJLj,i (3.84) Capítulo 3. Metodologia 61 onde JLj,i é um vetor coluna 3× 1 que relaciona a velocidade linear do centróide do elo j com a velocidade da junta. Para um manipulador articulado, a equação de movimento pode ser escrita da seguinte forma: τ = M (q) q̈ + C (q, q̇) q̇ + F (q, q̇) + G (q) (3.85) Onde: τ é o vetor de torque associado com as coordenadas generalizadas q. M é a matriz de massa do manipulador, M (q) q̈ = n∑ j=1 Mij q̈j (3.86) C descreve os efeitos da aceleração de Coriolis e centrípeta, torques relaci- onados com a primeira aceleração são proporcioanis à q̇iq̇j, enquanto que torques relacionados ao segundo termo são proporcionais à q̇2i , C (q, q̇) q̇ = n∑ j=1 Cijj q̇ 2 j + n∑ j 6=k Cijkq̇j q̇k = n∑ j=1 ( ∂Mij ∂qj − 12 ∂Mjj ∂qi ) q̇2j + n∑ j 6=k ( ∂Mij ∂qk − 12 ∂Mjk ∂qi ) q̇j q̇k (3.87) F descreve os efeitos por atrito viscoso e de Coulomb, e geralmente não é considerado parte da dinâmica de corpos rígidos (CORKE, 2011), G é o termo de carga pela gravidade, onde G = [G1, G2, ..., Gn]T . 3.4 Sistemas de controle Quando considerado em um nível mais alto, o objetivo do sistema de controle do robô é permitir que este conclua uma tarefa especificada (DUYSINX; GERADIN, 2004). Existem vários tipos de controle para robôs (CORKE, 2011), sendo o tipo mais simples deles conhecido como controle de junta independente. Neste tipo de controle cada eixo do manipulador é controlado com um sistema de entrada-única e saída-única (do ingês, SISO: Single-input / single-output). Qualquer efeito de acoplamento devido ao movimento de outras juntas é tratado como distúrbio (SPONG; VIDYASAGAR, 1989). O objetivo deste tipo de sistema de controle é escolher um compensador de tal forma que a saída da (plant) consiga rastrear ou seguir uma saída desejada (meta, velocidade, aceleração ou torque), dado um sinal de referência. O sinal de controle, contudo, não é a única entrada agindo no sistema (SPONG; VIDYASAGAR, 1989)). O controlador é projetado, portanto, de forma que os efeitos dos distúrbios são reduzidos na saída. Capítulo 3. Metodologia 64 Figura 25 – Esquema do controle antecipatório Fonte: Spong e Vidyasagar (1989) de transferência feedfoward F (s), precisa também ser estável (SPONG; VIDYASAGAR, 1989). Se existe um distúrbio entrando no sistema como mostrado abaixo, então é possível mostrar que o erro de rastreio E (s) é dado por: E (s) = q (s) d (s) p (s) d (s) + q (s) c (s)D (s) (3.90) No caso de não haver distúrbios o sistema fechado irá rastrear qualquer trajetória desde que o sistema seja estável. O erro é, portanto, devido apenas aos distúrbios (SPONG; VIDYASAGAR, 1989). Cancelamento de distúrbios por Torque computado O sinal feedforward resulta em um rastreio assintótico de qulquer trajetória com ausência de distúrbios mas não melhora as propriedades de rejeição de distúrbios do sistema. Portanto, adicionamos para o sinal feedfoward, um termo que antecipa o efeito de distúrbio. Para uma trajetória desejada, é sobreimposto o termo: dd := ∑ djk ( qd ) q̈dj + ∑ cijk ( qd ) q̇di q̇ d j + gk ( qd ) (3.91) Uma vez que dd tem unidade de torque, a equação (3.91) é chamada de método do torque computado. A equação acima compensa de uma maneira feedforward o termo não linear do acoplamento inercial, aceleração de coriolis, centrípeta, e forças gravitacionais que aparecem devido ao movimento do manipulador. Esta equação é de extrema complexidade, se tornando uma preocupação no tempo de processamento. Uma vez que a trajetória desejada precisa ser conhecida, muitos dos termos podem ser pré-calculados e armazenados off-line (SPONG; VIDYASAGAR, 1989). Capítulo 3. Metodologia 65 Figura 26 – Compensação de distúrbio por torque computado Fonte: Spong e Vidyasagar (1989) Figura 27 – Diagrama de blocos do método de torque computado Fonte: Spong e Vidyasagar (1989) 66 Capítulo 4 Modelamento do Manipulador Robótico 4.1 Requisitos iniciais Para que o projeto do manipulador pudesse ser iniciado, teve-se que estabelecer alguns requisitos iniciais. Estes valores são descritos a seguir. 4.1.1 Capacidade de carga O manipulador robótico projetado neste trabalho não possui uma missão específica, ele pode ser empregado em uma série de tarefas que vão desde soldagem à separação e montagem de componentes em uma linha de montagem, cada tarefa irá requerer um efetuador específico, por este motivo o projeto do efetuador não faz parte do escopo deste trabalho. Para fins de se limitar a dimensão do manipulador, determina-se que o manipulador tenha uma carga útil (do inglês: payload) de no máximo 15kg quando estiver em uma configuração composta de seis juntas (6 GDL). 4.1.2 Número de graus de liberdade O manipulador proposto é composto de 6 juntas e 5 elos, contudo, por ser um manipulador modular, pode-se alterar o número de juntas e elos do robô com certa facilidade. O robô foi projeto de maneira a ser possível trabalhar com o mínimo de 4 juntas, e no máximo 8 juntas. A carga útil do manipulador depende da quantidade de GDL do manipulador e do comprimento e peso de cada elo/junta, a tabela abaixo mostra a carga útil de acordo com o número de juntas montados no manipulador. 4.1.3 Velocidade linear Não se faz aqui um requisito mínimo ou máximo de velocidade linear, pois este irá depender de uma série de fatores, como: número de juntas, comprimento dos elos, tipo de atuador utilizado, sistema de controle e tipo de trajetória adotada (KOIVO, 1989). Capítulo 4. Modelamento do Manipulador Robótico 69 Figura 29 – Junta do cotovelo Fonte: Produzido pelo autor Atuador: motor DC sem escova e sem carcaça O conjunto da junta deve ser extremamente compacto, por este motivo, elas foram projetadas usando-se um motor especial que não possui carcaça, nem eixo próprio. O motor, conhecido como Direct Drive, foi projetado para ser incorporado diretamente na máquina, usando os próprios rolamentos da máquina para suportar o rotor. Esse motor é montado dentro da carcaça da junta, e possui sensores de efeito Hall1 para monitorar a posição do rotor. A Figura 30 mostra o motor da empresa Kollmorgen, escolhido a junta do cotovelo. Harmonic drive Em manipuladores robóticos é comum o uso de harmonic drives para a redução da velocidade do motor, uma vez que este tipo de redutor é extremamente compacto e oferece 1 Um Sensor de Efeito Hall é um transdutor que, quando sob a aplicação de um campo magnético, responde com uma variação em sua tensão de saída. Capítulo 4. Modelamento do Manipulador Robótico 70 Tabela 5 – Especificações técnicas das juntas Junta Diâm. externo(mm) Comprimento (mm) Torque máx. (N m) Variação angular (◦) Veloc. máx. (RPM) 1 - Ombro 150 194,7 627,2 -200/+200 23,75 2 - Ombro 150 194,7 627,2 -200/+200 23,75 3 - Cotovelo 125 221 263,68 -200/+200 29,06 4 - Punho (pitch) 90 143,35 62,34 -200/+200 95 5 - Punho (yall) 90 143,35 62,34 -200/+200 95 6 - Punho (roll) 90 143,35 62,34 -200/+200 95 Fonte – Produzido pelo autor Nota – Os valores apresentados na tabela foram obtidos com base nos catálogos dos fabricantes de cada componente. Figura 30 – Frameless brushless DC motor Fonte: Kollmorgen reduções entre 50:1 até 200:1, valores ideias para um manipulador (SCHULER et al., 2006). Para a junta do cotovelo mostrado na Figura 29, o redutor escolhido tem redução de 160:1. Os harmonic drives utilizados no projeto são produzidos pela empresa Harmonic Drive AG, a Figura 31 mostra o redutor aplicado na junta 3 (cotovelo). Freio eletromagnético Um freio permanente para alta rotação é usado na junta como sistema de segurança e para parada rápida do movimento. No caso de haver corte da tensão, o freio é ativado automaticamente, uma vez que este utiliza a tensão para desmagnetizar o disco. Como é possível perceber na Figura 29, o freio é montado antes do motor (lado oposto do harmonic drive), isto acontece pois nessa posição a redução de velocidade ainda não ocorreu, o que significa que o freio só precisa ter capacidade de parar o torque proveniente do motor (aprox. Capítulo 4. Modelamento do Manipulador Robótico 71 Figura 31 – Harmonic drive escolhido para a junta do cotovelo Fonte: Harmonic Drive UG. 4Nm), e não o torque ampliado 160 vezes presente no eixo de saída. O freio escolhido, mostrado na Figura 32 foi projetado para ambientes secos, sem lubrificação, e é produzido pela empresa KEB. Figura 32 – Freio permanente eletromagnético, modelo Combiperm Fonte: KEB. Trava mecânica A trava limita mecanicamente a variação angular de operação da junta. Foi projetado de maneira a permitir uma variação de rotação de aproximadamente 400◦. Uma rotação de Capítulo 4. Modelamento do Manipulador Robótico 74 Encoder O encoder utilizado é produzido pela empresa Netzerprecision. Ele funciona com 5V de tensão, tem baixo consumo de energia, baixo valor de inércia e quase nenhum atrito interno. Este modelo é ideal para a junta, pois além de ser vazado, requisito para permitir a passagem dos cabos, ele também permite rotação contínua, o que é necessário pois a trava mecânica só age na junta após 400◦. O sinal de saída do encoder é uma curva senoidal ou coseinodal que representa o ângulo do eixo. O sinal digital deve ser obtido através de processamento adicional usando a PCI de controle. A Figura 36 mostra o encoder utilizado. Figura 36 – Sensor de posição angular (encoder) Fonte: Netzerprecision Controlador do atuador Um controlador de motor é um dispositivo eletrônico que atua como um dispositivo intermediário entre a unidade central de controle, uma fonte de alimentação e os motores. Embora a unidade central (computador) decide a velocidade e direção dos motores, não pode movê-los diretamente por causa de sua potência limitada (corrente e tensão). O controlador do motor, por outro lado, pode fornecer a corrente na tensão necessária, mas não pode decidir o quão rápido o motor deve girar. Assim, o computador e o controlador do motor tem que trabalhar em conjunto a fim de fazer mover os motores de forma adequada. Normalmente, a unidade central de controle pode instruir o controlador do motor sobre como alimentar os motores através de um método de comunicação padrão e simples, como UART (conhecido como serial) ou PWM. Além disso, alguns controladores de motor pode ser controlado manualmente por uma tensão analógica (geralmente criados com um potenciômetro) (SCLATER; CHIRONIS, Capítulo 4. Modelamento do Manipulador Robótico 75 1991). Na Figura 29 percebe-se que existe três discos paralelos montados externamente ao freio. Estas placas representam as PCIs de controle do motor. Não faz parte do escopo deste trabalho o desenvolvimento eletrônico do controlador dos atuadores, mas fica como sugestão para trabalho futuro. 4.2.2 Elos do manipulador O módulo do elo tem a função de aumentar o alcance do manipulador e fazer o ligamento entre duas juntas. É a parte mais simples de todo o robô, uma vez que todas os componentes principais como motor e sensores, encontram-se na junta. Todos os fios elétricos que ligam um motor a outro e os cabos do controlador passam por dentro do elo, já que este é feito a partir de um tubo. Figura 37 – Conjunto do elo 2 Fonte: Produzido pelo autor 4.2.3 Punho A Figura 38 mostra o conjunto do punho desenvolvido para o robô. Percebe-se que ele não é esférico, uma vez que os três eixos não se cruzam em um ponto comum. Decidiu-se por usar esta configuração de punho por ser possível o uso do mesmo conjunto de junta nos três eixos que o compõe. Ao final do punho existe uma flange com furos roscados em que é possível afixar uma garra, ferramenta, arco de solda, etc. Capítulo 4. Modelamento do Manipulador Robótico 76 Figura 38 – Vista em corte do punho Fonte: Produzido pelo autor 4.3 Análise estrutural por Elementos Finitos Para verificação e validação do modelo projetado foi feita uma análise de elementos finitos (FEA) utilizando o software ANSYS, em que se buscou averiguar os pontos nas peças que concentram as maiores tensões, qual o fator de segurança para cada modelo e se vão ou não falhar devido as cargas às quais são submetidos. A análise foi feita nas peças estruturais principais do manipulador: elos 2 e 3, e o eixo principal de cada junta. O material empregado no robô é uma liga de alumínio que possui uma tensão de escoamento de 280MPa e tensão última de tração de 310MPa. A análise foi feita fixando-se uma extremidade do elo e aplicando uma carga na outra. Para o elo 2 foi aplicado uma força de 300N, já para o elo 3, a força aplicada foi de 150N, simulando um corpo com massa de 15kg. Para os eixos principais, foi inserido um suporte fixo nos furos onde o eixo é preso no harmonic drive e porteriormente foi aplicado um momento na face do eixo onde existe o rasgo da chaveta. Para o eixo da junta da base, esse momento foi de 630Nm, para o eixo da junta do cotovelo, o momento foi de 265Nm e 65Nm para o eixo da junta do punho. Capítulo 4. Modelamento do Manipulador Robótico 79 Figura 41 – Resultado da análise feita no eixo principal da junta da base Capítulo 4. Modelamento do Manipulador Robótico 80 Figura 42 – Resultado da análise feita no eixo principal da junta do cotovelo Capítulo 4. Modelamento do Manipulador Robótico 81 Figura 43 – Resultado da análise feita no eixo principal da junta do punho Capítulo 5. Análise e Resultados 84 T 54 = A5 =  cθ5 −sθ5cα5 sθ5sα5 a5cθ5 sθ5 cθ5cα5 −cθ5sα5 a5sθ5 0 sα5 cα5 d5 0 0 0 1  =  cθ5 0 sθ5 0 sθ5 0 −cθ5 0 0 1 0 −150 0 0 0 1  T 65 = A6 =  cθ6 −sθ6cα6 sθ6sα6 a6cθ6 sθ6 cθ6cα6 −cθ6sα6 a6sθ6 0 sα6 cα6 d6 0 0 0 1  =  cθ6 −sθ6 0 0 sθ6 cθ6 0 0 0 0 1 −113, 5 0 0 0 1  A transformação da base para o efetuador é dada pela multiplicação das seis matrizes Ai, como segue: T 60 = A1 × A2 × A3 × A4 × A5 × A6 =  nx sx ax px ny sy ay py nz sz az pz 0 0 0 1  =  n s a p 0 0 0 1  (5.2) Em que p é o vetor posição da base do robô ao efetuador, n é o vetor de orientação do ângulo de guinada, s é a orientação do ângulo de inclinação e a é o vetor de orientação do ângulo de rolagem. 5.1.1 Jacobiano Para que seja possível implementar a cinemática inversa no software a matriz Jacobiana deve ser calculada de forma numérica eliminando, assim, a necessidade de se trabalhar com as derivadas parciais quem compõem a matriz. Isto é necessário porque os cálculos com variáveis simbólicas no MATLAB são consideravelmente mais lentos em comparação com manipulação de matrizes de números apenas. De acordo com Spong e Vidyasagar (1989), a matriz Jacobiana pode ser calculada recursivamente da seguinte forma: J =  zi−1 (on − oi−1) zi−1  (5.3) em que zi−1 = Ri−10 k, e on − oi−1 = Ri−10 dni−1 das quais k é o vetor unitário na direção do eixo z, portanto, k = (0, 0, 1)T , Ri−10 é a matriz de rotação da junta 0 a i− 1, e d é o vetor formado pela junta i− 1 até o efetuador: dni−1 = pn − pi−1. O vetor p e a matriz Ri−10 são obtidos através das respectivas matrizes de transformação homogênea T . Por haver exatamente seis GDL, a matriz jacobiana é quadrada, isso significa que o manipulador não é redundante. Capítulo 5. Análise e Resultados 85 5.2 Controle Os sistemas de controle foram implementados utilizando o MATLAB Control System Toolbox (Simulink), e são baseados nos sistemas apresentado por Corke (2011) com algumas adaptações para a integração com o software de controle. A Figura 45 e Figura 46 mostram os diagramas de bloco dos dois sistemas de controle. Figura 45 – Diagrama de blocos do controle torque computado Fonte: Produzido pelo autor Capítulo 5. Análise e Resultados 86 Figura 46 – Diagrama de blocos do controle antecipatório Fonte: Produzido pelo autor 5.3 Trajetória Existem sete possíveis tipos de trajetórias que o usuário pode escolher para descrever um movimento, sendo a mais utilizada a trajetória ponto-a-ponto coordenada, que faz a interpolação polinomial dos pontos inicial e final. Para se obter um movimento ainda mais Capítulo 5. Análise e Resultados 89 Tabela 7 – Tipos e características de trajetórias Núm Trajetória(Tipo) Entradas do usuário Método de resolução Duração do trajeto (1) Descoordenado(ponto-a-ponto) meta cartesiana; θ̇ θ0 e θf calculados por cinemática inversa; função: θ(t) = θ0 + θ̇t ti = (θ0−θf )θ̇ (2.1) Sequencial(ponto-a-ponto) meta cartesiana; θ̇ θ0 e θf calculados por cinemática inversa; função: θ(t) = θ0 + θ̇t ti = (θ0−θf )θ̇ (2.2) Sequencial(ponto-a-ponto) meta cartesiana; tempo de trajeto θ0 e θf calculados por cinemática inversa; θ(t): Equação 5.4 θ̇(t): Equação 5.5 θ̈(t): Equação 5.6 Especificado pelo usuário (3) Coordenado(ponto-a-ponto) meta cartesiana; tempo de trajeto θ0 e θf calculados por cinemática inversa; θ(t): Equação 5.4 θ̇(t): Equação 5.5 θ̈(t): Equação 5.6 Especificado pelo usuário (4) Coordenado com pontos de passagem (ponto-a-ponto) meta cartesiana; tempo de trajeto; velicidade linear e angular do efetuador em cada ponto de passagem2 θ0 e θf calculados por cinemática inversa; θ(t): Equação 5.4 θ̇(t): Equação 5.5 θ̈(t): Equação 5.6 Especificado pelo usuário para cada ponto de passagem (5.1) Linha reta(ponto-a-ponto) meta cartesiana; tempo de trajeto θ0 e θf calculados por cinemática inversa; θ(t): algoritmo de Taylor θ̇(t): derivada numérica (3.16) θ̈(t): derivada numérica (3.17) Especificado pelo usuário (5.2) Linha reta(ponto-a-ponto) meta cartesiana; velocidade linear constante, (v) θ0 e θf calculados por cinemática inversa; θ(t): algoritmo de Taylor θ̇(t): Equação 5.11 θ̈(t): derivada numérica de θ̇, (3.16) t = Lv Capítulo 5. Análise e Resultados 90 Cont. Tipos e características de trajetórias Núm Trajetória(Tipo) Entradas do usuário Método de resolução Duração do trajeto (6.1) Parametrizada(contínua) funções paramétricas no espaço cartesiano; tempo de trajeto θ(t) : calculado pela cinemática inversa em vários pontos; θ̇(t): derivada numérica3.16 θ̈(t): derivada numérica3.17 Especificado pelo usuário (6.2) Parametrizada(contínua) funções paramétricas no espaço cartesiano; velocidade linear constante, (v) θ(t) : calculado pela cinemática inversa em vários pontos; θ̇(t): Equação 5.11 θ̈(t): derivada numérica de θ̇, (3.16) t = Sv (7.1) Modelada em CAD(tabelada) tabela de pontos no espaço cartesianos; tempo de trajeto θ(t) : calculado pela cinemática inversa em vários pontos; θ̇(t): derivada numérica3.16 θ̈(t): derivada numérica3.17 Especificado pelo usuário (7.2) Modelada em CAD(tabelada) tabela de pontos no espaço cartesianos; velocidade linear constante, (v) θ(t) : calculado pela cinemática inversa em vários pontos; θ̇(t): Equação 5.11 θ̈(t): derivada numérica de θ̇, (3.16) t = Sv Fonte – Produzido pelo autor. 5.3.1 Exemplo de trajetórias A seguir são apresentados alguns exemplos de trajetórias com o intuito de analisar o comportamento cinemático do manipulador. Ponto-a-ponto: junta interpolada (coordenado) O primeiro exemplo consiste de um movimento coordenado através de interpolação de quinto grau das juntas (Equação 5.4). O manipulador estava posicionado na origem: x = 1025, y = 215, z = 841 e foi movido para a posição: x = −100, y = −300, z = 670 com orientação arbitrária e tempo t = 10. A figura Figura 48 mostra o movimento e as curvas de posição, velocidade e aceleração. A trajetória foi determinada usando as definições do item (3) da Tabela 7. Capítulo 5. Análise e Resultados 91 Figura 48 – Exemplo 1 - coordenado; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas Fonte: Produzido pelo autor Percebe-se que as curvas são suaves e sem descontinuidades, por este motivo este é o método preferível para movimentações de cargas e afins. Ponto-a-ponto: descoordenado A Figura 49 mostra o trajeto feito para os mesmas coordenadas de partida e destino do exemplo anterior, mas dessa vez com trajetória descoordenada, a orientação é arbitrária e velocidade angular das juntas é constante θ̇ = 20[o/s]. Capítulo 5. Análise e Resultados 94 Figura 51 – Exemplo 4 - linear; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas Fonte: Produzido pelo autor A seguir são apresentados os gráficos de algumas trajetórias parametrizadas em um manipulador tridimensional com 6 graus-de-liberdade: Parametrizada: círculo Um círculo de raio r e centro em (h, k), pode ser parametrizado pelas seguintes equações: x = a y = r cos (t) + h t ∈ [0, 2π] z = r sin (t) + k (5.13) Considerando os valores a = 600, r = 500, h = 100, k = 600 e 0 ≤ t ≥ 2π Capítulo 5. Análise e Resultados 95 Figura 52 – Exemplo 5 - circulo; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas Fonte: Produzido pelo autor Parametrizada: elipse x = c y = Yc + a cos (t) cos (ϕ)− b sin (t) sin (ϕ) t ∈ [0, 2π] z = Zc + a cos (t) sin (ϕ) + b sin (t) sin (ϕ) (5.14) Em que (Xc, Yc) é o centro da elipse e ϕ é o ângulo entre o eixo Y e o eixo da elipse. Usando c = 800, Yc = 0, Zc = 600, a = 200, ϕ = 30 b = 400, d = 0, e = 700 e 0 ≤ t ≥ 2π Capítulo 5. Análise e Resultados 96 Figura 53 – Exemplo 6 - elipse; esquerda: percurso no espaço cartesiano; direita: curvas de posição, velocidade e aceleração das juntas Fonte: Produzido pelo autor Parametrizada: curva de Lissajous x = c y = a cos (kyt) + d t ∈ [0, 2π] z = b sin (kzt) + e (5.15) Onde ky e kz são constantes descrevendo o número de lóbulos na figura. Usando c = 600, a = 300, b = 400, ky = 1 kz = 3, d = 0, e = 700 e 0 ≤ t ≥ 2π com velocidade linear do manipulador v = 200[mm/s], obtém-se a curva mostrada na Figura 54.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved