CENTRO UNIVERSITÁRIO DAS FACULDADES ASSOCIADAS DE ENSINO – UNIFAE FERNANDO CAPARRON MAGRIL MODELAGEM CINEMÁTICA E SIMULAÇÃO COMPUTACIONAL DE UM ROBO DE 7 GRAUS DE LIBERDADE SÃO JOÃO DA BOA VISTA – SP 2010 1 FERNANDO CAPARRON MAGRIL MODELAGEM CINEMÁTICA E SIMULAÇÃO COMPUTACIONAL DE UM ROBO DE 7 GRAUS DE LIBERDADE Monografia apresentada ao Centro Universitário das Faculdades Associadas de Ensino – UNIFAE, como requisito parcial para Graduação do Curso de Engenharia de Computação. Orientador: Prof. Dr. Helder Anibal Hermini SÃO JOÃO DA BOA VISTA – SP 2010 2 FERNANDO CAPARRON MAGRIL MODELAGEM CINEMÁTICA E SIMULAÇÃO COMPUTACIONAL DE UM ROBO DE 7 GRAUS DE LIBERDADE Esta monografia foi apresentada como trabalho de conclusão do curso de Engenharia de Computação do Centro Universitário da Faculdade Associadas de Ensino – UNIFAE, e foi avaliada pela banca examinadora integrada pelos professores abaixo nomeados. São João da Boa Vista - SP, _____________de_____________________________de 2010. Professores que compuseram a banca examinadora: __________________________________________ Prof. Dr. Helder Anibal Hermini Presidente Centro Universitário da Faculdade Associadas de Ensino – FAE __________________________________________ Prof. Ms. Henrique Antônio Mielli Camargo Examinador Centro Universitário da Faculdade Associadas de Ensino – FAE __________________________________________ Prof. Ms. Ramiro Romankevicius Costa Examinador Centro Universitário da Faculdade Associadas de Ensino – FAE 3 DEDICATÓRIA Aos meus pais Antonio Miguel Magril e Fátima Ap. Caparron Magril que formaram os fundamentos do meu caráter e da minha dignidade. À minha irmã Denise Caparron Magril, pelo, incentivo e companheirismo e a todos os familiares que contribuíram de alguma forma nesta conquista. À minha namorada Tatiane, meu maior estímulo, pela sua compreensão, carinho companheirismo. 4 e AGRADECIMENTOS Primeiramente a Deus, pela saúde, perseverança e inspiração que foi dada durante todo o curso. Aos meus pais por todos os conselhos, a boa educação que estabeleceram na minha vida e pelo incentivo aos estudos. À minha irmã pela amizade e companheirismo durante o curso. A todos os amigos de classe, principalmente Gustavo e Wagner, que desde o início do curso estabeleceram um vínculo de amizade, e que não faltaram com esforços para os estudos de domingo. À minha namorada Tatiane, que me proporcionou momentos de alegria, me dando forças para continuar a caminhada durante todo o curso, pela sua compreensão e carinho. Ao Prof. Dr. Helder A. Hermini, pela dedicação a turma e pela imensa ajuda para concluir este trabalho. A todos os professores e a UNIFAE pelo empenho demonstrado no curso. Obrigado a todos vocês por me ajudarem de alguma forma em todos esses anos. 5 RESUMO Neste trabalho de conclusão de curso é descrito o projeto e desenvolvimento da modelagem cinemática direta de um robô antropomórfico composto por sete graus de liberdade e de um algoritmo computacional dedicado a aplicação do aludido modelo, sendo que utiliza por dados de entrada os ângulos das articulações da cadeia cinemática e fornece por saída o vetor posição e a matriz orientação. Para verificar a exatidão dos resultados gerados nas simulações computacionais, os resultados obtidos no software criado neste trabalho de conclusão de curso são comparados com resultados obtidos em software comercial. Palavras-chave: Robótica, Modelagem Cinemática Direta de Robôs, Automação Flexível. 6 ABSTRACT In this work of completion is described the design and development of the direct kinematics modeling of an anthropomorphic robot consists of seven degrees of freedom and a computer program dedicated to applying the aforementioned model, and uses input data by the angles of joints kinematic chain and provides output for the position vector and orientation matrix. To check the accuracy of the results generated by computer simulations, the results obtained in the software created in this work of completion are compared with results from commercial software. Keywords: Robotics, Modeling Direct Kinematics Robots, Flexible Automation. 7 ÍNDICE DE FIGURAS FIGURA 1: Junta e Vínculos em um Braço de Robô FIGURA 2: Junta Deslizante FIGURA 3: Junta de Rotação FIGURA 4: Junta de Bola e Encaixe FIGURA 5: Três Juntas Rotacionais Substituindo a Junta de Bola e Encaixe FIGURA 6: Robô Cartesiano FIGURA 7: Robô Cilíndrico FIGURA 8: Robô Esférico FIGURA 9: Robô com Articulação Horizontal FIGURA 10: Robô com Articulação Vertical FIGURA 11: Ilustração de Juntas e Links de um Manipulador PUMA 560 FIGURA 12: Representação de um sistema de Coordenadas de um robô FIGURA 13: Notação de Denavit-Hartenberg FIGURA 14: Sistema de Referencia utilizado FIGURA 15: Estrutura cinemática do sistema robótico FIGURA 16: Fluxograma do programa desenvolvido para Modelagem Cinemática FIGURA 17: Esquema das Regiões do Robô FIGURA 18: Planta do Manipulador FIGURA 19: Disposição Espacial dos Eixos de Rotação FIGURA 20: Esquema do Processo de Definição do Manipulador FIGURA 21: Posição Inicial via WORKSPACER TM FIGURA 22: Posição definida no espaço de trabalho via WORKSPACER TM 18 19 19 20 20 22 22 23 24 24 26 27 28 35 37 41 42 44 45 46 47 48 8 ÍNDICE DE TABELAS TABELA 1: Vetores de Translação 38 TABELA 2: Matrizes de Transformação Homogêneas (Rotação) do Robô (Hemisfério Esquerdo) 38 TABELA 3: Equações de Relação Geométrica Espacial entre os Pontos Importantes 39 (Hemisfério Esquerdo) TABELA 4: Limites de Deslocamento Angular para cada Junta Rotacional 39 ÍNDICE DE QUADROS QUADRO 1: Histórico da robótica 38 9 SUMÁRIO RESUMO 06 ÍNDICE DE FIGURAS 08 ÍNDICE DE TABELAS 09 ÍNDICE DE QUADROS 09 SUMÁRIO 10 1 INTRODUÇÃO ............................................................................................................ 11 2 JUSTIFICATIVA .......................................................................................................... 12 3 OBJETIVO ................................................................................................................... 13 3.1 OBJETIVOS ESPECÍFICOS ...................................................................................... 13 4 REVISÃO BIBLIOGRAFICA ...................................................................................... 14 4.1 INTRODUÇÃO A ROBÓTICA .................................................................................. 14 4.2 O BRAÇO MECÂNICO ............................................................................................. 18 4.3 TIPOS DE JUNTAS .................................................................................................... 18 4.4 GRAUS DE LIBERDADE. ......................................................................................... 21 4.5 CLASSIFICAÇÃO DOS ROBÔS PELO TIPO DE ARTICULAÇÃO ......................... 21 4.6 MODELAGEM CINEMÁTICA DE ROBÔS .............................................................. 25 4.6.1 INTRODUÇÃO ....................................................................................................... 25 4.6.2 MODELO GEOMÉTRICO ...................................................................................... 27 4.6.3 DESCRIÇÃO CINEMÁTICA DE UM ROBÔ ......................................................... 28 4.6.4 NOTAÇÃO DE DENAVIT–HARTENBERG ........................................................... 29 4.7 ALGORITMO PARA OBTENÇÃO DO SISTEMA DE COORDENADAS PARA O LINK. .................................................................................................................................. 32 4.8 OBTENÇÃO DA MATRIZ DE TRANSFORMAÇÃO HOMOGÊNEA i-1Ai ............ 33 4.9 SISTEMAS DE REFERÊNCIA .................................................................................. 35 5 METODOLOGIA ......................................................................................................... 37 5.1 MODELAGEM CINEMÁTICA DO SISTEMA ROBÓTICO ..................................... 37 5.2 SIMULAÇÃO COMPUTACIONAL DE MOVIMENTOS DO ROBÔ ........................ 39 5.2.1 IMPLEMENTAÇÃO COMPUTACIONAL DO MODELO CINEMÁTICO DIRETO.......40 5.2.2 ALGORITMO COMPUTACIONAL PARA MODELAGEM CINEMÁTICA DE MEMBROS ANTROPOMÓRFICOS................................................................................... 41 5.2.3 SIMULAÇÃO DOS MOVIMENTOS BÁSICOS DO SISTEMA ROBÓTICO ......... 43 5.2.4 DEFINIÇÃO DOS ELEMENTOS DO ROBÔ EM AMBIENTE WORKSPACETM. . 46 5.2.5 RESULTADOS OBTIDOS DA SIMULAÇÃO COMPUTACIONAL ....................... 47 6 ANÁLISE DE RESULTADOS, CONCLUSÕES E PERSPECTIVAS FUTURAS. ....... 49 7 REFERÊNCIAS BIBLIOGRÁFICAS........................................................................... 51 10 1 INTRODUÇÃO Neste trabalho de conclusão de curso é desenvolvida a modelagem cinemática direta de um robô de sete graus de liberdade, sendo que a modelagem matemática e as respectivas relações algébricas foram implementadas em um software dedicado a aplicação de controle cinemático direto do sistema robótico, de forma que a partir da entrada dos ângulos das articulações, o computador dedicado calcula a posição e orientação final do servo-sistema. 11 2 JUSTIFICATIVA Este trabalho tem como por justificativa a importância do estudo e aplicação de metodologias para o desenvolvimento de sistemas abertos de controle de robôs. Importante se faz salientar que todos os principais fabricantes de robôs da atualidade apresentam de forma fechada seus softwares de controle. Para fins de programação em ambiente industrial isso é aceitável, porém em termos de engenharia de desenvolvimento, torna difícil ou até mesmo impossível a interface avançada entre o sistema de controle e um pesquisador. 12 3 OBJETIVO Elaborar a modelagem geométrica e cinemática direta de um braço robótico antropomórfico dotado de sete graus de liberdade, e elaborar programa computacional dedicado a aplicação de controle cinemático direto. 3.1 OBJETIVOS ESPECÍFICOS • Desenvolver levantamento bibliográfico aprofundado; • Elaborar modelo geométrico do robô; • Desenvolver a modelagem cinemática direta, obtendo as equações que estabelecem uma inter-relação da cadeia cinemática do robô; • Elaborar um programa computacional dedicado a aplicação de controle cinemático direto; • Estabelecer testes para verificação da precisão numérica dos resultados de algumas configurações geométricas; • Descrever as conclusões finais e trabalhos futuros. 13 4 REVISÃO BIBLIOGRAFICA 4.1 INTRODUÇÃO A ROBÓTICA Na sociedade atual, há uma crescente necessidade de se realizar tarefas com eficiência e precisão. Existem também tarefas a serem realizadas em lugares onde a presença humana se torna difícil, arriscadas e até mesmo impossível, como o fundo do mar ou a imensidão do espaço. Para realizar essas tarefas, se faz cada vez mais necessária a presença de dispositivos (robôs), que realizam essas tarefas sem risco de vida. A robótica é a área que se preocupa com o desenvolvimento de tais dispositivos. Robótica é uma área multidisciplinar, altamente ativa que busca o desenvolvimento e a integração de técnicas e algoritmos para a criação de robôs. A robótica envolve matérias como engenharia mecânica, engenharia elétrica, inteligência artificial, entre outras, com uma perfeita harmonia, que se faz necessária para se projetar essas maravilhosas tecnologias. Temos hoje robôs em várias áreas de nossa sociedade: robôs que prestam serviços, como os desarmadores de bomba, robôs com a nobre finalidade da pesquisa científica e educacional e até mesmo os robôs operários, que se instalaram em nossas fábricas e foram responsáveis pela "Segunda Revolução Industrial", revolucionando a produção em série, substituindo a carne e o osso pelo aço, agilizando e fornecendo maior qualidade aos produtos. Décadas atrás, os robôs faziam parte apenas da ficção científica, fruto da imaginação do homem. No início dos anos 60, os primeiros robôs começaram a ser usadas com o objetivo de substituir o homem em tarefas que ele não podia realizar por envolverem condições desagradáveis, tipicamente contendo altos níveis de calor, ruído, gases tóxicos, esforço físico extremo, trabalhos monótonos, "chatos". Na década de setenta, foi concebida a idéia de que sistemas mecânicos poderiam ser controlados por operações numérico-aritméticas. As máquinas-ferramentas CNC (Controle Numérico Computadorizado) são máquinas operadas, e suas velocidades são controladas por computadores conectados aos motores das máquinas. Existem duas tendências, nos últimos 20 anos, que garantem a evolução dos robôs: O constante aumento dos níveis salariais dos empregados; O extraordinário avanço tecnológico no ramo de computadores, que induz à redução dos preços do robô e uma significativa melhoria em seu desempenho. [Craig, 1986] 14 Histórico Uma das maiores fantasias do homem é construir uma máquina com "Inteligência Artificial" capaz de agir e pensar como ele. No entanto, este desejo esconde em seu subconsciente a vontade de possuir um "escravo metálico" que satisfaça todos os seus desejos, este sonho humano está perto de se tornar realidade com o espantoso avanço da tecnologia. A palavra robô tem origem da palavra tcheca robotnik, que significa servo, o termo robô foi utilizado inicialmente por Karel Capek em 1923, nesta época a idéia de um "homem mecânico" parecia vir de alguma obra de ficção. Não é só do homem moderno o desejo de construir tais robôs, existem alguns fatos históricos que nos mostram que a idéia não é nova, por exemplo, existem inúmeras referências sobre o "Homem Mecânico" construído por relojoeiros com a finalidade de se exibir em feiras. Temos relatos também da realização de várias "Animações Mecânicas" como o leão animado de Leonardo da Vinci, e seus esforços para fazer máquinas que reproduzissem o vôo das aves. Porém estes dispositivos eram muito limitados, pois não podiam realizar mais que uma tarefa, ou um número reduzido delas. [Craig, 1986] A seguir vem uma descrição dos fatos históricos que contribuíram para o desenvolvimento da Robótica: Quadro 1: Histórico da robótica Aristóteles: "Se cada instrumento pudesse realizar o seu próprio trabalho, obedecendo ou antecipando-se à vontade dos outros... se a lançadeira IV a.C. Grécia pudesse tecer, e a palheta tocar a lira, sem a mão para guiá-las então os chefes não necessitariam de servos nem os donos de escravos”. Inicia-se a revolução industrial; esta evolução de novas fontes, novos Séc. XIII instrumentos, nova indústria e novos mecanismos, tornam possível a evolução da maquinaria capaz de controlar uma série de ações seqüenciadas. Contudo, só no final do séc. XIX é que se inicia o desenvolvimento da máquina. As máquinas começam a ser usuais e exposições de máquinas sempre Séc. XIX a promover os últimos eventos tecnológicos. Nesta altura, o motor elétrico é introduzido. A máquina substitui o Homem. A 1ª Guerra Mundial trouxe muitas mudanças. O poder da máquina 1ª Guerra Mundial mostrou-nos a sua forma negativa e destrutiva. Foi introduzida a palavra "Robot" pelo dramaturgo Karel Capek no drama "Rossum´s Universal Robots"(R.U.R.) Inicialmente, os robôs foram criados para substituir o homem nos trabalhos pesados; mas o robô começou a 1921 ser visto como uma máquina "humana" com inteligência e personalidade individual. Um robô mecânico abriu uma exposição de modelos técnicos, em 1928 Londres. 1940 O grande escritor americano de ficção científica Isaac Asimov 15 estabeleceu quatro leis muito simples para a robótica: 1ªlei: "Um robô não pode ferir um ser humano ou, permanecendo passivo, deixar um ser humano exposto ao perigo". 2ª lei: "O robô deve obedecer às ordens dadas pelos seres humanos, exceto se tais ordens estiverem em contradição com a primeira lei". 3ª lei: "Um robô deve proteger sua existência na medida em que essa proteção não estiver em contradição com a primeira e as segundas leis". 4ª lei: “Um robô não pode causar mal à humanidade nem permitir que ela própria o faça". (Sendo que esta lei foi escrita por Asimov em 1984.). Meados de 1950 1959 1960 1962 1963 1968 1969 1970 Mas, o que realmente acontece é que os robôs têm braços e articulações capazes de trabalhos repetitivos e autônomos, mas não no sentido de sensibilidade para se controlarem a si próprios e resolver os problemas que poderão surgir. A mecânica é substituída pelo poder elétrico e hidráulico. George C. Devol desenvolveu uma invenção à qual chamou “programed articulated trasfer device"; um autômato cujas operações (uma seqüência de operações determinadas pelas instruções) são programadas. Devol e Joseph F. Engelberger desenvolveram o primeiro robô industrial pela Unimation Inc. Este robô tinha como função uma variedade de tarefas executadas automaticamente. Diferia dos autômatos já que poderia ser reprogramada e remodelada para outras tarefas com um nível de custos pouco elevado. Nos anos 60, tornou-se significativo o fato de a flexibilidade destas máquinas aumentarem utilizando diferentes tipos de sensores. É a partir de agora que a investigação sobre a robótica começa a incidir no tema Robótica Móvel. H.A.Ernest iniciou o desenvolvimento de um computador controlador de uma mão mecânica com sensores tacteis-MH-1. Esta invenção conseguia mover-se e "sentir" blocos, usando esta informação para controlar a mão e empilhar blocos sem ajuda humana. Tomovic e Boni desenvolveram um protótipo equipado com um sensor de pressão que quando "sentia" o objeto enviava informação do tamanho do objeto para um computador e um sinal para o motor que iniciava a ação de diferentes moldes. American Machine e Foundry Company(AMF) introduziu uma versão (VERSATRAN) de um robô comercial. Neste mesmo ano, vários designs de braços para manipuladores foram desenvolvidos, tais como o braço Roehampton e o braço Edinburgh. Melarthy e seus colegas, no Laboratório de Inteligência Artificial ed standford, desenvolveu um computador com "mãos, olhos, pernas, ouvidos" (ex. manipuladores, câmaras de vídeo e microfones). Demonstraram um sistema que reconhecia mensagens faladas, "via" blocos espalhados numa mesa e manipulava-os de acordo com as instruções. Pieper estudou o problema de "Kinematic" de um manipulador controlado por computador. O Homem pisa na lua pela 1ª vez. Nesta altura já eram utilizados manipuladores para recolher amostras e executar pequenas tarefas perante o comando do controlo remoto. O modo de teleoperação servia para efetuar escavações e outras tarefas de grau de complexidade reduzido. A Robótica começou a incidir na pesquisa do uso de sensores para 16 facilitar operações manuais. Kahn and Roth analisaram a dinâmica e o controlo de um tipo de braços restritos usando o controlo bang-bang(near minimum time). Em Standford, Balles e Paul utilizando um sensor visual e um sensor de peso demonstraram um braço controlado por computador para montar bombas de água do automóvel. Cincinnati Milacron introduziu o primeiro robô industrial controlado com computador- "The Tomorrow Tool" T3-, que movia objetos numa linha de montagem. Inoue no Laboratório de Inteligência Artificial aprofundou os sensores de peso (força) e no Draper Laboratory Nevins investigou diferentes técnicas de sensores. Will e Grossman na IBM desenvolveram um manipilador controlado por computador com sensores tácteis e de peso para realizar uma montagem mecânica de 20 partes de uma máquina de escrever. General Motors, em Detroit, introduziu um robô industrial com "inteligência" eletrônica capaz de reconhecer diferentes componentes numa tela transportadora e de escolher aquele que necessita. 1971 1973 1974 1975 1980 A idéia de se construir robôs começou a tomar força no início do século XX com a necessidade de aumentar a produtividade e melhorar a qualidade dos produtos. É nesta época que o robô industrial encontrou suas primeiras aplicações, o pai da robótica industrial foi George Devol. Na década de oitenta ocorreu a grande explosão tecnológica devido a aplicação efetiva dos semicondutores em circuitos integrados, propiciando redução de custos e uma maior aplicação por decorrência de tecnologias que envolvessem sistemas informáticos, permitindo assim a aplicação de técnicas “pesadas” computacionalmente falando, tais como algoritmos de controle baseados em paradigmas da inteligência artificial tais como redes neurais artificiais, algoritmos genéticos e lógica “fuzzy”. Tecnologicamente, pode-se enfatizar que até os dias atuais estão havendo pesquisas efetivas para aplicar essas técnicas em robôs, permitindo uma maior integração dos robôs com o meio externo e também a tomada de decisões ante imprevistos que possam ocorrer durante um processo de fabricação, por exemplo. [Rosário. 1990] 17 4.2 O BRAÇO MECÂNICO O braço mecânico é um manipulador projetado para realizar diferentes funções e ser capaz de repeti-las. Para realizar determinadas tarefas, o robô move partes, objetos, ferramentas, e dispositivos especiais segundo movimentos e pontos pré-programados, além de efetuar interface com o “mundo externo” através de sensorização dedicada. Um robô consiste de um braço mecânico cujos atuadores das articulações são servo-controlados por um computador dedicado que guarda em sua memória um programa que detalha o curso que o braço seguirá. Quando o programa está rodando, o computador envia sinais ativando motores que movem o braço e a carga no final dele, que é mantida sob controle pelo atuador. Na extremidade do braço existe um atuador usado na execução de suas tarefas. Todo braço de robô é composto de uma série de vínculos e juntas, onde a junta conecta dois vínculos permitindo o movimento relativo entre eles, como mostrado na Figura 1. Todo robô possui uma base fixa e o primeiro vínculo está preso a esta base. A mobilidade dos robôs depende do número de vínculos e articulações que o mesmo possui. [Paul, 1981] FIGURA 1: Junta e Vínculos em um Braço de Robô Fonte: [Paul, 1981] 4.3 TIPOS DE JUNTAS Geralmente, os elos de um braço robótico é conectada através de uma junta deslizante ou de uma junta de revolução, embora alguns incluam o de bola e encaixe. A seguir será descrito cada um destes tipos de juntas. Juntas Deslizantes: Este tipo de junta permite o movimento linear entre dois vínculos. É composto de dois vínculos alinhados um dentro do outro, onde um vínculo interno 18 escorrega pelo externo, dando origem ao movimento linear. Este tipo de junta é mostrado na Figura 2. FIGURA 2: Junta Deslizante Fonte: [Paul, 1981] Juntas de Rotação: Esta conexão permite movimentos de rotação entre dois vínculos. Os dois vínculos são unidos por uma dobradiça comum, com uma parte podendo se mover num movimento cadenciado em relação à outra parte, como mostrado na Figura 3. As juntas de rotação são utilizadas em muitas ferramentas e dispositivos, tal como tesouras, limpadores de pára-brisa e quebra-nozes. FIGURA 3: Junta de Rotação Fonte: [Paul, 1981] Juntas de Bola e Encaixe: Esta conexão se comporta como uma combinação de três juntas de rotação, permitindo movimentos de rotação em torno dos três eixos, como mostrado na Figura 4. [Paul, 1981] 19 FIGURA 4: Junta de Bola e Encaixe Fonte: [Paul, 1981] Estas juntas são usadas em um pequeno número de robôs, devido à dificuldade de ativação. De qualquer maneira, para se ter a performance de uma junta bola e encaixe, muitos robôs incluem três juntas rotacionais separadas, cujos eixos de movimentação se cruzam em um ponto, como na Figura 5. [Paul, 1981] FIGURA 5: Três Juntas Rotacionais Substituindo a Junta de Bola e Encaixe Fonte: [Paul, 1981] 20 4.4 GRAUS DE LIBERDADE. O número de articulações em um braço robótico é também referenciado como grau de liberdade. Quando o movimento relativo ocorre em um único eixo, a articulação tem um grau de liberdade. Quando o movimento é por mais de um eixo, a articulação tem dois graus de liberdade. A maioria dos robôs tem entre 4 a 6 graus de liberdade. Já o homem, do ombro até o pulso, tem 7 graus de liberdade. [Craig, 1986] 4.5 CLASSIFICAÇÃO DOS ROBÔS PELO TIPO DE ARTICULAÇÃO É usual classificar os robôs de acordo com o tipo de junta, ou mais exatamente, pelas três juntas mais próximas da base do robô. Esta divisão em classes fornece informações sobre características dos robôs em várias categorias importantes: 1. Espaço de trabalho. 2. Grau de rigidez. 3. Extensão de controle sobre o curso do movimento. 4. Aplicações adequadas ou inadequadas para cada tipo de robô. Robôs podem ser classificados pelo tipo de juntas em cinco grupos: • Cartesiano • Cilíndrico • Esférico • Articulação horizontal • Articulação vertical O código usado para estas classificações consiste em três letras, referindo-se ao tipo de junta (R = revolução, P = deslizante - do inglês prismatic) na ordem em que ocorrem, começando da junta mais próxima à base. Segue abaixo uma breve descrição de cada tipo de robôs manipuladores. [Craig, 1986] 21 Robôs Cartesianos: O braço destes robôs tem três articulações deslizantes sendo codificado como PPP, como na Figura 6. (a) (b) FIGURA 6: Robô Cartesiano Fonte: (a) [Paul, 1981] (b) [http://www.seluque.com.br/robo.html] Os robôs cartesianos caracterizam pela pequena área de trabalho, mas com um elevado grau de rigidez mecânica e são capazes de grande exatidão na localização do atuador. Seu controle é simples devido ao movimento linear dos vínculos e devido ao momento de inércia da carga ser fixo por toda a área de atuação. [Craig, 1986] Robôs Cilíndricos: Os braços destes robôs consistem de uma junta de revolução e duas juntas deslizantes, sendo codificada como RPP, como segue na Figura 7. (a) (b) FIGURA 7: Robô Cilíndrico Fonte: (a) [Paul, 1981] (b) [http://www.cornwalltube.com/index.php?key=mecatr%C3%B4nico] 22 A área de trabalho destes robôs é maior que a dos robôs cartesianos, mas a rigidez mecânica é ligeiramente inferior. O controle é um pouco mais complicado que o modelo cartesiano, devido a vários momentos de inércia para diferentes pontos na área de trabalho e pela rotação da junta da base. [Craig, 1986] Robôs Esféricos: Estes robôs possuem duas juntas de revolução e uma deslizante, sendo codificado como RRP, como na Figura 8. (a) (b) FIGURA 8: Robô Esférico Fonte: (a) [Paul, 1981] (b) [http://www.robots.com/blog.php?tag=411] Estes robôs têm uma área de trabalho maior que os modelos cilíndricos, mas perde na rigidez mecânica. Seu controle é ainda mais complicado devido os movimentos de rotação. Robôs com Articulação Horizontal: Caracterizam-se por possuir duas juntas de revolução e uma deslizante, sendo codificados RRP, como na Figura 9. [Paul, 1981] 23 (a) (b) FIGURA 9: Robô com Articulação Horizontal Fonte: (a) [Paul, 1981] (b) [http://www.ipnews.com/archives/automation_assembly/dec09/staubli.htm] A área de atuação deste tipo de robô é menor que no modelo esférico, sendo apropriados para operações de montagem, devido ao movimento linear vertical do terceiro eixo. Robôs com Articulação Vertical: Estes robôs caracterizam-se por possuir três juntas de revolução, sendo codificados por RRR, como na Figura 10. [Paul, 1981] (a) (b) FIGURA 10: Robô com Articulação Vertical Fonte: (a) [Paul, 1981] (b) [http://www.directindustry.es/prod/reis-robotics/robot-articulado-para-la-industria-delplastico-5644-14494.html] 24 Sua área de atuação é maior que qualquer tipo de robô, tendo uma baixa rigidez mecânica. Seu controle é complicado e difícil, devido as três juntas de revolução e devido a variações no momento de carga e momento de inércia. [Paul, 1981] 4.6 MODELAGEM CINEMÁTICA DE ROBÔS 4.6.1 INTRODUÇÃO Um manipulador mecânico consiste de links, conectados por juntas prismáticas ou revolutas. Cada par junta-link constitui um grau de liberdade. Assim, para um manipulador com N graus de liberdade, temos N pares juntas-links, onde o primeiro link é a base de sustentação do robô (sistema de coordenadas inerciais fixado) e o seu último link constituído de seu elemento terminal (ou ferramenta de trabalho). Um robô industrial é normalmente constituído de seis graus de liberdade, e o posicionamento de seu elemento terminal (ferramenta de operação) é especificado através do controle de modo apropriado de suas variáveis articulares. Conseqüentemente os valores do conjunto de variáveis articulares de um robô θi, determinam o posicionamento de seu elemento terminal no sistema de coordenadas de trabalho. De um modo geral, os três primeiros graus de liberdade de um robô são responsáveis pelo posicionamento de seu elemento terminal no espaço de tarefas e os restantes pela orientação de sua ferramenta. [Vanriper, 1992] 25 FIGURA 11: Ilustração de Juntas e Links de um Manipulador PUMA 560 Fonte: [Vanriper, 1992] A Figura 11 mostra as juntas e links do manipulador PUMA 560. As mesmas são numeradas desde a base até seu elemento terminal. Assim 1 é o ponto de conexão entre o link 1 e o suporte de base, e 6 representa o ponto de conexão entre o sexto grau de liberdade e a ferramenta. Na maioria das aplicações industriais, a programação de tarefas de robôs, é realizada por aprendizagem, consistindo no movimento individual de cada junta. Desta maneira, sua trajetória é definida através de um conjunto de ângulos associados ao movimento angular de cada grau de liberdade do robô. Como um robô é controlado através de suas variáveis articulares, a realização do controle de um robô em relação ao sistema de coordenadas cartesianas implicará no desenvolvimento de metodologias para transformação de coordenadas. O Supervisor de Controle é responsável pela geração dos sinais de referência individuais ao longo do tempo, para cada junta do robô. Através de uma malha de controle de posição independente para cada junta, estes sinais são comparados com os valores atuais (obtidos através dos sensores de posição articulares), que faz com que a configuração de um robô seja controlada a partir de um valor desejado, independente do movimento desejado e da carga transportada pelo robô. [Vanriper, 1992] 26 4.6.2 MODELO GEOMÉTRICO O modelo geométrico de um robô expressa a posição e orientação de seu elemento terminal em relação a um sistema de coordenadas solidário a base do robô, em função de suas coordenadas generalizadas (coordenadas angulares no caso de juntas rotacionais) (Figura 12). O modelo geométrico é representado pela expressão: X = f( θ ) (1) onde θ = (θ1, θ2, ......, θn): vetor das posições angulares das juntas e X = (X, Y, Z, ψ, θ, φ): vetor posição, onde os três primeiros termos denotam a posição cartesiana e os três últimos a orientação do órgão terminal. FIGURA 12: Representação de um sistema de Coordenadas de um robô Fonte: [Vanriper, 1992] Esta relação pode ser expressa matematicamente pela matriz que relaciona o sistema de coordenadas solidárias a base do robô com um sistema de coordenadas associadas com o seu órgão terminal. Esta matriz é chamada de matriz de passagem homogênea e é obtida a partir do produto das matrizes de transformação, Ai, i-1, que relaciona o sistema de coordenadas de um elemento i com o sistema de coordenadas anterior i-1, isto é: Tn = A0.1*A1,2*........*An-1,n (2) Tn = [ n s a p ] (3) 27 onde p = [ px , py , pz ]: vetor posição e n = [ nx ny nz ], s = [ sx sy sz ] e a = [ ax ay az ]: vetor ortonormal que descreve a orientação. A descrição da matriz de transformação é normalmente realizada utilizando a notação de Denavit-Hartenberg, após a obtenção dos quatro parâmetros θi, ai, di e αi,, descritos a seguir. [Vanriper, 1992] 4.6.3 DESCRIÇÃO CINEMÁTICA DE UM ROBÔ A evolução no tempo das coordenadas das juntas de um robô representa o modelo cinemático de um sistema articulado no espaço tridimensional. A notação de DenavitHartenberg é uma ferramenta utilizada para sistematizar a descrição cinemática de sistemas mecânicos articulados com N graus de liberdade. Na Figura 13 podem ser visualizados dois links conectados por uma junta que tem duas superfícies deslizantes uma sobre a outra remanescentes em contato. Um eixo de uma junta i (i = 1, . . . , 6) estabelece a conexão de dois links. [Kyriakopoulos et all, 1995] FIGURA 13: Notação de Denavit-Hartenberg Fonte: [Kyriakopoulos et all, 1995] Estes eixos de juntas devem ter duas normais conectadas neles, uma para cada um dos 28 links. A posição relativa destes dois links conectados (link i-1 e link i) é dada por di, que é a distância medida ao longo do eixo da junta entre suas normais. O ângulo de junta θi entre as normais é medido em um plano normal ao eixo da junta. Assim, di e θi podem ser chamados respectivamente, distância e o ângulo entre links adjacentes. Eles determinam a posição relativa de links vizinhos. Um link i poderá estar conectado, no máximo, dois outros links (link i-1 e link i +1). Assim, dois eixos de junta são estabelecidos em ambos terminais de conexão. O significado dos links, do ponto de vista cinemático, é que eles mantêm uma configuração fixa entre suas juntas que podem ser caracterizadas por dois parâmetros: ai e αi. O parâmetro ai é a menor distância medida ao longo da normal comum entre os eixos de junta (isto é, os eixos zi-1 e zi para a junta i e junta i+1, respectivamente) Assim, ai e αi , podem ser chamados respectivamente, comprimento e ângulo de twist (torção) do link i. Eles determinam a estrutura do link i. Assim sendo, quatro parâmetros: ai , αi , di ,θi são associados com cada link do manipulador. No momento, em que estabelecemos uma convenção de sinais para cada um destes parâmetros, estes constituem um conjunto suficiente para determinar a configuração cinemática de cada link do manipulador. Note que estes quatro parâmetros aparecem em pares: (ai , αi ) que determinam a estrutura do link e os parâmetros da junta; (di , θi ) que determinam a posição relativa de links vizinhos. [Kyriakopoulos et all, 1995] 4.6.4 NOTAÇÃO DE DENAVIT–HARTENBERG Para descrever a translação e rotação entre dois links adjacentes, Denavit e Hartemberg propuseram um método matricial para estabelecimento sistemático de um sistema de coordenadas fixo para cada link de uma cadeia cinemática articulada. A representação de Denavit-Hartemberg (D-H) resulta na obtenção de uma matriz de transformação homogênea 4 × 4, representando cada sistema de coordenadas do link na junta, em relação ao sistema de coordenadas do link anterior. Assim, a partir de transformações sucessivas, podem ser obtidas as coordenadas do elemento terminal de um robô (último link), expressas matematicamente no sistema de coordenadas fixo a base. Assim sendo, um sistema de coordenadas cartesianas ortonormal (Xi, Yi, Zi) pode ser estabelecido para cada link no seu eixo de junta, onde i= 1, 2, . . ., N (N número de graus de 29 liberdade) mais o sistema de coordenadas da base. Assim, uma junta rotacional tem somente 1 grau de liberdade, e cada sistema de coordenadas (Xi, Yi, Zi) do braço do robô corresponde a junta i+1, sendo fixo no link i. [Kyriakopoulos et all, 1995] Quando o acionador ativa a junta i, o link i deve mover-se com relação ao link i-1. Assim, o i-ésimo sistema de coordenadas é solidário ao link i, se movimentando junto com o mesmo. Assim, o n-ésimo sistema de coordenadas se movimentará com o elemento terminal (link n). As coordenadas da base são definidas como o sistema de coordenadas 0 (X0, Y0, Z0), também chamado de sistema de referência inercial. Os sistemas de coordenadas são determinados e estabelecidos obedecendo três regras: O eixo Zi-1 é colocado ao longo do eixo de movimento da junta i. O eixo Xi é normal ao eixo Zi-1 , e apontando para fora dele. O eixo Yi completa o sistema utilizando a regra da mão direita. Através destas regras podemos fazer a seguinte representação: • Suponha que dois sistemas de coordenadas coincidentes, X0Y0Z0 e X1Y1Z1. • A transformação homogênea que relaciona esses sistemas é a matriz identidade: 1 0 1 T0 ≡ 1 = 0 0 • 0 1 0 0 0 0 1 0 0 0 0 1 Provoca-se uma rotação de °θ em relação ao eixo Z0, através da transformação: cosθ senθ Rot(θ , z 0 ) = 0 0 - senθ cosθ 0 0 0 0 1 0 0 0 0 1 30 • A nova matriz é agora dada por: cosθ senθ T01 = I . Rot(θ , z 0 ) = 0 0 • - senθ cosθ 0 0 0 0 1 0 0 0 0 1 A seguir translada-se o sistema X1Y1Z1 de d unidades ao longo de Z1. A matriz fica então: cosθ senθ T01 = Rot(θ , z 0 ). Trans(0, 0, d ) = 0 0 • - senθ cosθ 0 0 0 0 1 0 0 0 d 1 Translada-se o sistema X1 Y1 Z1 de a unidades ao longo do eixo X1. A nova matriz é dada por: cosθ senθ 1 T0 = Rot(θ , z 0 ). Trans(0, 0, d ) . Trans(a, 0, 0 ) = 0 0 - senθ cosθ 0 0 0 0 1 0 a 0 d 1 31 • Finalmente, provoca-se uma rotação do sistema X1 Y1 Z1 de °α, em torno do eixo X1. Esta última transformação deixa a matriz como: cosθ senθ T01 = Rot(θ , z 0 ). Trans(0, 0, d ).Trans(a, 0, 0).Rot(α , x1 ) = 0 0 4.7 - cosα .senθ cosα .cosθ senα .senθ - senα .cosθ senα 0 cosα 0 a.cosθ a.senθ d 1 ALGORITMO PARA OBTENÇÃO DO SISTEMA DE COORDENADAS PARA O LINK. Dado um manipulador com N graus de liberdade, o algoritmo descrito a seguir, determina um sistema de coordenadas ortonormais para cada link do robô, a partir do sistema de coordenada fixo a base de suporte (sistema inercial) até o seu elemento terminal. As relações entre os links adjacentes podem ser representadas por uma matriz de transformação homogênea 4 × 4. O conjunto de matrizes de transformação homogêneo permite a obtenção do modelo cinemático do robô. [Paul, 1981] ALGORITMO: D1 - Obtenção do sistema de coordenadas da base: Estabelecer um sistema ortonormal de coordenadas (X0, Y0, Z0) na base de suporte com o eixo Z0 colocado ao longo do eixo de movimento da junta 1 apontando para o ombro do braço do robô. Os eixos X0 e Y0 podem ser convenientemente estabelecidos e são normais ao eixo Z0. D2 - Inicialização e iteração: Para cada i, i= 1, . . ., N-1, efetuar passos D3 até D6. 32 D3 - Estabelecer o eixo das juntas: Alinhar Zi com o eixo de movimento (rotação ou translação) da junta i+1. Para robôs tendo configurações de braço esquerdo-direito, os eixos Z1 e Z2 são apontados sempre para o ombro e o tronco do braço do robô. D4 - Estabelecer a origem do i-ésimo sistema de coordenadas: Situar a origem do iésimo sistema de coordenas na interseção dos eixos Zi e Zi-1 ou na interseção da normal comum entre os eixos Z i e Z i-1 e o eixo Zi. D5 - Estabelecimento do eixo Xi: Estabelecer X i = ±( Z i-1 × Z i ) / Z i-1 × Z i ou ao longo da normal comum entre os eixos Zi e Zi-1 quando eles forem paralelos. D6 - Estabelecimento do eixo y i: Determina-se Y i = ±( Z i × X i ) / Z i-1 × X i para completar o sistema de coordenadas. (Estender os eixos Z i e X i se necessário para passos D9 a D12). D7 - Estabelecer a direção do sistema de coordenadas: Normalmente a n-ésima junta é uma junta rotativa. Estabelecer Zn ao longo da direção do eixo Zn-1 apontando para fora do robô. Estabelecer Xn assim que ele é normal tanto aos eixos Zn-1 e Zn. Determine yn para completar o sistema de coordenadas. D8 - Encontrar os parâmetros das juntas e links: Para cada i, i = 1, . . . , n, efetuar passos D9 ao D12. D9 - Encontrar di: di é a distância da origem do (i-1)-ésimo sistema de coordenadas até a interseção do eixo Zi-1 e o eixo Xi ao longo do eixo Zi-1. Ela é a variável de junta se a junta i é prismática. D10 - Encontrar ai: ai é a distância da interseção do eixo Zi-1 e o eixo Xi para a origem do i-ésimo sistema de coordenadas ao longo do eixo Xi. D11 - Encontrar θ i: θ i é o ângulo de rotação entre os eixos Xi-1 e Xi sobre o eixo Zi-1. Esta é a variável de junta se a junta é rotacional. D12 - Encontrar αi: αi é o ângulo de rotação entre os eixos z i-1 e z i no eixo x i. [Paul, 1981] 4.8 OBTENÇÃO DA MATRIZ DE TRANSFORMAÇÃO HOMOGÊNEA i-1Ai Uma vez os sistemas de coordenadas D-H tenham sido estabelecidos, uma matriz de transformação homogênea pode facilmente ser desenvolvida relacionando o i-ésimo ao (i-1)ésimo frame de coordenadas. A Figura 13 mostra que um ponto ri expresso no i-ésimo sistema 33 de coordenadas pode ser expresso no (i-1)-ésimo sistema de coordenadas como ri-1 aplicando as transformações sucessivamente apresentadas a seguir: Rotação no eixo Z i-1 de um ângulo de θ i para alinhar o eixo Xi-1 com o eixo Xi (o eixo Xi-1 é paralelo ao eixo Xi e aponta para a mesma direção). Translação uma distância de d i ao longo do eixo Zi-1 para trazer os eixos Xi-1 e Xi na coincidência. Translação ao longo do eixo Xi uma distância de ai para trazer as duas origens também como o eixo X na coincidência. Rotação do eixo Xi um angulo de α i para trazer os dois sistemas de coordenadas na coincidência. Cada uma destas quatro operações pode ser expressa através de uma matriz homogênea de rotação-translação, e o produto destas quatro matrizes de transformações elementares produzem uma matriz de transformação homogênea composta i-1 Ai , conhecida como matriz de transformação de D-H, para sistemas de coordenadas adjacentes, i e i-1. [Kobayashi, 1985] i-1 Ai = Tz,d Tz,θ Tx,a Tx,α 1 0 = 0 0 0 0 0 cosθi 1 0 0 sinθi 0 1 d1 0 0 0 1 0 cosθi sinθ i = 0 0 − cosαi sinθi cosαi cosθi sinαi 0 − sinθi cosθi 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 sinαi sinθi − sinαi cosθi cosαi 0 0 ai 1 0 0 0 0 cosαi 1 0 0 sinαi 0 1 0 0 ai cosθi ai sinθi di 1 0 − sinαi cosαi 0 0 0 0 1 (4) A transformação inversa será: 34 cosθ i − cos α sinθ i i [i-1Ai]-1 = iAi-1 = sinα i sinθ i 0 sinθ i cos α i cosθ i − sinα cosθ i 0 0 sinα i cos α i 0 − ai − d i sinα i − d i cos α i 1 (5) onde ai , αi , di são constantes, e θi é a variável de junta para uma junta rotativa. Para uma junta prismática a variável de junta é di , enquanto ai , αi , θi são constantes. Neste caso, i-1Ai será definido como: i-1 Ai = Tz,θ Tz,d Tx,α cosθi sinθ i = 0 0 − cos αi sinθi cos αi cosθi sinαi 0 sinαi sinθi − sinαi cosθi cos αi 0 0 0 di 1 (6) e sua inversa será: cosθi − cos α sinθ i i i-1 -1 i [ Ai] = Ai-1 = sinαi sinθi 0 sinθi cos αi cosθi − sinα cosθ i 0 0 sinαi cos αi 0 0 − d i sinαi − d i cos αi 1 (7) [Kobayashi, 1985] 4.9 SISTEMAS DE REFERÊNCIA Um Sistema Articular pode ser representado matematicamente através de n corpos móveis Ci (i = 1, 2,..., n) e de um corpo C0 fixo, interligados por n articulações, formando uma estrutura de cadeia, sendo que estas juntas podem ser rotacionais ou prismáticas. Para representar a situação relativa dos vários corpos da cadeia, é fixado a cada elemento Ci um referencial R. Podemos relacionar um determinado referencial Ri+1 (oi+1, xi+1, yi+1, zi+1) com o seu anterior Ri (oi, xi, yi, zi), como também o sistema de coordenadas de origem da base (Figura 14) através da Equação (8), onde Ai,i+1 representa as matrizes de transformação homogênea de rotação e Li o vetor de translação de uma origem a outra, onde Ai, i+1 é resultante do produto matricial global entre as diversas matrizes de transformações homogêneas relacionadas com rotações ou translações sucessivas das diferentes articulações (Equação. (9)). [Li et all, 1989] 35 oi +1 = oi + Ai ,i +1 * Li (8) Ai,i+1 = A1,2. A2,3. ... A i,i+1 (9) onde Nxo Ai ,i + 1 = Nyo Nzo Sxo Syo Szo Axo Syo Szo (10) [Ai, ] FIGURA 14: Sistema de Referencia utilizado Fonte: [Li et all, 1989] Qualquer rotação no espaço pode ser decomposta em um grupo de rotações elementares ao longo dos eixos X, Y e Z. A matriz de rotação elementar usada na equação de transformação é associada com a rotação elementar do referencial correspondente em relação ao seu anterior. Este procedimento matemático pode ser estendido para toda extensão do modelo. Assim sendo, a matriz de orientação de um ponto de interesse pode ser obtida pela Equação (9). Conseqüentemente o posicionamento completo de um corpo rígido no espaço, poderá ser facilmente obtido através da Equação (8) que fornece o seu vetor posição, sendo que a Equação (10) representa a matriz de orientação. [Li et all, 1989] 36 5 5.1 METODOLOGIA MODELAGEM CINEMÁTICA DO SISTEMA ROBÓTICO O modelo gerado, descrito a seguir, representa a estrutura articular de um sistema robótico antropomórfico. Na Figura 15 é ilustrada a estrutura cinemática. No modelo proposto neste trabalho são definidas, após a determinação do modelo geométrico, as respectivas variáveis. (a) (b) FIGURA 15: Estrutura cinemática do sistema robótico. (a) Modelo Geométrico com o estabelecimento do sistema de referenciais locais oi e respectivos vetores de translação Li; (b) Esquema representativo das articulações qi. 37 Abaixo são descritos os parâmetros do modelo geométrico do robô, os quais foram usados na implementação de um programa computacional que calcula o deslocamento cartesiano a partir da entrada das coordenadas angulares para cada junta. Entre esses parâmetros são especificados os vetores de translação Li (Tabela 1), as matrizes de transformação homogênea de rotação Ai (Tabela 2), as equações de relação geométrica espacial entre os pontos importantes (Tabela 3) e os limites de deslocamento angular para cada junta rotacional (Tabela 4). Tabela 1 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 =[ 0 0 -60 ] T = [-72 0 0 ]T = [ 0 155 0 ]T = [ 72 0 0 ]T = [ 0 40 0 ]T =[ 0 0 -68 ] T = [ 0 -40 0 ]T =[ 0 0 -286 ] T =[ 0 0 -100 ] T =[ 0 0 -148 ] T =[ 0 0 -5 ] T =[ 0 0 -5 ] T Tabela 2 C1 − S1 0 Rz (1) = S1 C1 0 0 0 1 1 0 Rx ( 2) = 0 C2 0 S2 1 0 0 Rx ( 3) = 0 C3 − S3 0 S3 C3 C5 − S 5 0 R Z ( 5) = S 5 C5 0 0 0 1 C4 Ry ( 4 ) = 0 − S4 0 S4 1 0 0 C4 C6 Ry ( 6) = 0 − S6 0 S6 1 0 0 C6 C7 RZ ( 7) = S7 0 − S7 C7 0 0 − S2 C2 0 0 1 Fonte: Autor TABELA 1: Vetores de Translação TABELA 2: Matrizes de Transformação Homogêneas (Rotação) do Robô (Hemisfério Esquerdo) 38 TABELA 3: Equações de Relação Geométrica Espacial entre os Pontos Importantes (Hemisfério Esquerdo) O 1 = O0 O 2 = O 1 + R0 * L 1 O 3 = O 2 + R0 * L 2 O 4 = O 3 + R0 * L 3 O 5 = O 4 + R01 * L 4 O 6 = O 5 + R02 * L 5 O 7 = O 6 + R02 * L 6 O 8 = O 7 + R03 * L 7 O 9 = O 8 + R04 * L 8 O10 = O 9 + R04 * L 9 O11 = O10 + R05 * L10 O12 = O11 + R06 * L11 O13 = O12 + R07 * L12 Fonte: Autor TABELA 4: Limites de Deslocamento Angular para cada Junta Rotacional Junta Limites Angulares da Junta Ângulo Mínimo Ângulo Máximo q1 0o 5o q2 0o 30o q3 0o 140o q4 0o 90o q5 0o 90o q6 0o 155o q7 0o 180o Fonte: Autor 5.2 SIMULAÇÃO COMPUTACIONAL DE MOVIMENTOS DO ROBÔ Para controlar a seqüência dos deslocamentos angulares das juntas robóticas ativas, se fazem necessária a elaboração e aplicação de um modelamento do servo-sistema a ser comandado através de um algoritmo computacional processado por um controlador dedicado. A tarefa de simulação computacional dos movimentos de um robô apresenta um grande número de obstáculos no caso de ser implementada a partir de aplicativos disponíveis no mercado, devido a estes já preverem estruturas modulares e visualização pré-definidas, 39 apresentando ainda a limitação dos graus de liberdade da cadeia cinemática, não possuindo modelo numérico. A partir do modelo cinemático apresentado neste trabalho de conclusão de curso, foi desenvolvido um programa computacional que é apresentado a seguir, o qual tem por principal função a implementação da simulação de movimentos do robô. Nesta sessão, portanto, será apresentada uma descrição deste algoritmo computacional desenvolvido a partir do modelo geométrico gerado para o sistema articular robótico. A presente sessão é iniciada com a descrição da estruturação destes programas, seguido da apresentação e análise dos respectivos resultados das simulações computacionais efetuadas. 5.2.1 IMPLEMENTAÇÃO COMPUTACIONAL DO MODELO CINEMÁTICO DIRETO Devido a limitação apresentada pelos aplicativos atualmente disponíveis para a simulação dos movimentos de sistemas antropomórficos, por apresentarem muitos graus de liberdade, foi desenvolvido um programa dedicado a esta função específica. Como visto anteriormente, ao aplicarmos o conceito das transformações homogêneas de rotação e translação, depois da distribuição dos referenciais, os diferentes graus de liberdade do sistema articular são definidos através de seus sistemas de coordenadas. Deste modo a posição e orientação dos pontos da estrutura podem ser sistematicamente definidas. A partir das variáveis articulares é possível determinar a posição vetorial e a matriz de orientação do sistema em relação ao referencial inercial fixo na base localizada no centro geométrico do corpo. Assim sendo, utilizando o modelo cinemático descrito na seção 5.1, foi elaborado um programa computacional, o qual, através da aplicação das equações cinemáticas diretas do sistema articular, efetuam o cálculo do deslocamento no espaço cartesiano dos diversos elos da estrutura articulada e das matrizes de orientação, a partir da entrada do deslocamento angular das diversas juntas do sistema. Para simplificar a implementação computacional, foi usada a propriedade da simetria dos hemisférios esquerdo e direito, tendo como por metodologia de modelagem o estabelecimento dos parâmetros do lado esquerdo, possibilitando assim a determinação dos parâmetros do lado direito. 40 5.2.2 ALGORITMO COMPUTACIONAL PARA MODELAGEM CINEMÁTICA DE MEMBROS ANTROPOMÓRFICOS Neste trabalho foi realizado um programa computacional de aplicação da Modelagem Cinemática dos membros Superiores, cujo fluxograma é descrito a seguir: SELECIONAMENTO DO HEMISFÉRIO ESQUERDO DIREITO SELECIONAMENTO DA REGIÃO ESTABELECIMENTO DE PARÂMETROS ENTRADA E TRATAMENTO DE DADOS CÁLCULO DO VETOR POSIÇÃO E DA MATRIZ ORIENTAÇÃO SAÍDA DE RESULTADOS FIM FIGURA 16: Fluxograma do programa desenvolvido para Modelagem Cinemática Fonte: Autor 41 Descrição das Etapas do Fluxograma Etapa 1 – Selecionamento do Hemisfério Nesta etapa o usuário seleciona o hemisfério a ser simulado, podendo optar pelos hemisférios esquerdo ou direito. Etapa 2 – Selecionamento da Região Nesta etapa o usuário seleciona a região a ser considerada para a simulação, sendo que o menu dos membros superiores é composto pelos setores: • JUNTA INTERNA DO OMBRO • JUNTA INTERNA A JUNTA EXTERNA DO OMBRO • JUNTA INTERNA DO OMBRO AO COTOVELO • JUNTA INTERNA DO OMBRO AO ANTEBRAÇO • JUNTA INTERNA DO OMBRO AO PULSO Também esquematizado na Figura abaixo: FIGURA 17: Esquema das Regiões do Robô Fonte: Autor 42 Etapa 3 – Selecionamento de Parâmetros Nesta etapa o programa define automaticamente os parâmetros do membro, sendo definidos: • A Matriz e do Vetor de posição inicial, • Os Limites angulares das juntas, • As Dimensões dos elementos geométricos constituintes da cadeia, • O Número de graus de liberdade, • O Ponto inicial, • O Ponto final. Etapa 4 – Entrada de dados Nesta etapa o usuário carrega o programa com os dados de entrada requeridos no algoritmo, sendo que o processo é composto por: • Entrada de dados dos ângulos das juntas (em graus), • Alteração do ângulo caso haja erro ao entrar com o valor, • Conversão do angulo de graus em radianos, • Cálculo do valor dos senos e cossenos dos ângulos de entrada, Etapa 5 – Cálculo do Vetor Posição e da Matriz Orientação Nesta etapa, o programa efetua os cálculos da Matriz de Orientação final, do vetor posição final e das coordenadas retangulares dos pontos importantes do setor selecionado da cadeia cinemática do membro superior, conforme previamente determinado pelo usuário. Etapa 6 – Saída de Resultados Nesta etapa, o programa fornece a saída de resultados. 5.2.3 SIMULAÇÃO DOS MOVIMENTOS BÁSICOS DO SISTEMA ROBÓTICO Para validarmos o modelo apresentado anteriormente, referente aos membros superiores, foi utilizado o aplicativo comercial WORKSPACE TM , que permite a implementação de um sistema articular análogo ao natural, que aplica a metodologia da parametrização de Denavit-Hertenberg (seção 4.6.4) para essa cadeia cinemática. Assim 43 sendo, a partir dos parâmetros (a, α, d, θ) foi gerada automaticamente a visualização da configuração espacial do sistema, desenvolvendo a partir disso a simulação dos principais movimentos deste setor do corpo humano. A seguir, são descritas as plantas do modelo (Figura 19) com seus respectivos eixos de rotação (Figura 20). Vista Tridimensional Vista frontal Vista lateral Vista de Topo FIGURA 18: Planta do Manipulador Fonte: Autor 44 FIGURA 19: Disposição Espacial dos Eixos de Rotação Fonte: Autor 45 5.2.4 DEFINIÇÃO DOS ELEMENTOS DO ROBÔ EM AMBIENTE WORKSPACETM. Após a confecção dos elementos constituintes do sistema, e alocados os sistemas de coordenadas para cada elemento, prossegue-se a implementação com a etapa da definição do robô, a qual é constituída pelos passos inseridos nos submenus abaixo descritos do menu Model. DEFINEROBOT CREATEROBOT KINEMATICS SELECT JOINT TYPES –Seleciona todas juntas rotacionais da cadeia cinemática. ROBOT A MATRICES – Define automaticamente os parâmetros de Denavit Hartenberg JOINTLIMITS – Especifica o limite do deslocamento angular para cada junta. FIGURA 20: Esquema do Processo de Definição do Manipulador Fonte: Autor Após o desenvolvimento de todo o processo de definição geométrica e dos tipos de articulações do robô, é possível verificar-se que o deslocamento no espaço cartesiano, a partir da alocação de coordenadas em espaço angular, ou vice-versa, através do Menu Pendant. Visando conferir os resultados obtidos através deste aplicativo comercial, foram comparados alguns resultados de simulação obtidos a partir desta implementação com a metodologia descrita e aplicada na seção 4.6.4, que descreve a utilização do Método dos Referências Locais para obtenção da posição e da orientação final do setor do membro a ser considerado no algoritmo. 46 Para efeitos de simulação, adotaram-se duas posições, sendo a primeira, a posição de repouso (posição de inicialização) e a segunda, uma posição qualquer no espaço. A seguir, são especificados os resultados das simulações para as duas configurações. [Jacobsen, 1991] 5.2.5 RESULTADOS OBTIDOS DA SIMULAÇÃO COMPUTACIONAL 1a Configuração: Posição de inicialização Resultado obtido via software dedicado Config. Atual (graus) q (1) = 0 q (2) = 0 q (3) = 0 q (4) = 0 Matriz de Orientação n x s x a x ny sy ay n z 1 0 0 s z = 0 1 0 a z 0 0 1 Posição Final (em mm) 2,06 px p = 155,00 y pz − 690,00 q (5) = 0 q (6) = 0 q (7) = 0 Resultado obtido via Wspace FIGURA 21: Posição Inicial via WORKSPACER TM Fonte: Autor 47 2a Configuração: Posição definida no espaço de trabalho. Resultado obtido via software dedicado Config. Atual (graus) q (1) = 8 q (2) = 10 q (3) = 30 Posição Final (em mm) px 300.28 p = 480.67 y pz - 290.26 Matriz de Orientação n x s x a x ny sy ay − 0,8816853 n z − 0,2751614 0,3941514 s z = 0.3114475 - 0.8033795 - 0.4714774 a z - 6.473332 E - 02 9.971143 E - 02 - 3.165095 E - 02 q (4) = 15 q (5) = 10 q (6) = 55 q (7) = 5 Resultado obtido via Wspace FIGURA 22: Posição definida no espaço de trabalho via WORKSPACER TM Fonte: Autor 48 6 ANÁLISE DE RESULTADOS, CONCLUSÕES E PERSPECTIVAS FUTURAS. Os aplicativos computacionais desenvolvidos neste trabalho de conclusão de curso forneceram informações relativas a posição e a orientação dos diversos setores da estrutura, a partir da utilização da modelagem cinemática e dos sistemas, permitindo assim a reprodução dos movimentos efetuados pelos membros superiores. Inicialmente, foi descrita a estrutura dos programas computacionais dedicados a aplicação da modelagem cinemática direta a membros superiores, os quais efetuam o cálculo do vetor posição e da matriz orientação, sucessivamente, aplicando o conceito de referenciais locais. A última parte da metodologia teve como por objetivo efetuar a simulação computacional dos movimentos básicos do robô em aplicativo comercial workspace TM, que implementa através dos parâmetros de Denavit-Hartenberg do sistema à visualização espacial, permitindo a simulação completa do robô a partir dos ângulos correspondentes aos diferentes graus de liberdade da cadeia, obtendo-se automaticamente a posição a partir do cálculo do vetor posição e da matriz de orientação ao entrar-se com os valores dos ângulos das articulações, fornecendo ainda a visualização dos movimentos da estrutura. Foram desenvolvidas metodologias necessárias para a implementação do controle cinemático direto de um robô antropomórfico de 7 GL. Para tal tarefa, foram aplicados conceitos de Automação e Robótica, nas seguintes etapas: 1. Revisão bibliográfica do conteúdo a ser desenvolvido e posicionamento do problema; 2. Modelagem Direta de sistemas robóticos; 3. Elaboração de Algoritmo Computacional, visando o estabelecimento de controle cinemático, com ênfase no: a) Desenvolvimento do Modelo Cinemático Direto para a obtenção da posição no espaço cartesiano e da matriz de Orientação, a partir dos ângulos das juntas (Modelo Cinemático Direto); 49 b) Simulação gráfica utilizando software comercial do espaço de trabalho utilizando a metodologia de estabelecimento de parâmetros de Denavit-Hartemberg a partir da configuração geométrica do robô desenvolvida, fornecendo a posição espacial no sistema cartesiano a partir da entrada dos ângulos de junta. c) Desenvolvimento de aplicativo computacional para a modelagem do sistema articular do sistema robótico antropomórfico de membros superiores, fornecendo a posição espacial no espaço cartesiano e a matriz de orientação a partir da entrada dos ângulos de junta. Ante a análise dos resultados obtidos, pode ser verificada uma precisão razoável da implementação do método dos referenciais locais com relação a utilização da metodologia de Denavit-Hartemberg aplicada no software comercial Workspace. Importante se faz destacar que o algoritmo computacional elaborado permitiria a utilização de sistemas microprocessados para efetuarem o controle de um sistema robótico real, porém, para tal ainda haveria a necessidade do desenvolvimento da modelagem cinemática inversa, pois a partir da leitura da posição e orientação reais o microcontrolador calcularia os ângulos das juntas, fazendo comparação com os ângulos consignados pelo usuário, havendo a geração do sinal de erro, o qual seria tratado através da utilização de um controlador clássico do tipo PID (Proporcional + Integral + Derivativo), por exemplo. Também em uma implementação real, haveria a necessidade do estabelecimento do controle dinâmico e para tal, haveria a necessidade da modelagem matemática das equações que regem a dinâmica do servo-sistema. 50 7 REFERÊNCIAS BIBLIOGRÁFICAS [Ali, 1991] ALI, Engler C. System description document for the Anthrohot- 2: A dexterous robot hand. NASA Tech. Memo. 104535. Mar. 1991. [Craig, 1986] CRAIG, J.J. Introduction to Robotics. Mechanics and control. NY, USA: Addison- Wesley Publishing Company, 1986. 580 p. [Cutkosky, 1977] CUTKOSKY, R., Kao, I. Computing and controlling the compliance of a robotic hand. J. Robot. Syst., v. 7, n 2, p. 139-144, 1990. [Cruz, 1993] CRUZ, J.M. Projeto e Desenvolvimento de um Sistema de Geração Automática de Trajetória para Manipuladores. 1993. 134 f. Tese de Mestrado em Engenharia Mecânica – Faculdade de Engenharia Mecânica, Universidade Estadual de Campinas, Campinas. [Jacobsen et all, 1986] JACOBSEN C., Everson E. K., Knutti E. F., Johnson T. T. and Biggers K. B. Design of the Utah/MIT dextrous hand. IEEE Int. Conf. Robot. Automat. , p. 152-153, 1986. [Jacobsen, 1991] JACOBSEN, T. K. Visualização e Geração de Trajetórias de Robôs a Partir da Utilização do Software WORKSPACE. Programa IAESTE (Brasil-Dinamarca), Brasil, 1991. [Kobayashi, 1985] KOBAYASHI. Control and geometrical considerations for an articulated robot hand, Int. J. Robot. Res., v. 4, n 1, p. 3-12, 1985. [Kyriakopoulos et all, 1995] KYRIAKOPOULOS, Vanriper, J., Zink A., Stephanou H. E. Kinematic analysis and position/force control of the anthrobot dexterous hand. Center for Advanced Technology Tech. Rep. TR-95-OZ, Rensselaer Polytechnic Institute, Troy, NY, 1995. 51 [Li et all, 1989] LI, P. H., Sastry, S., Grasping and coordinated manipulation by a multifingered robot hand. Int. J. Robot. Res., v. 8, n. 4, p. 33-50, 1989. [Paul, 1981] PAUL, P. Robot Manipulators: Mathematics, Programming and Control. The Mit Press, 1981. 324 p. [Rosário. 1990] ROSÁRIO, J.M. Etude de Faisabilité d’ une Commande de Type NonLineaire pour un Robot Manipulateurs. 1990.248 f. PHD Thesis - Ecole Centrale des Arts et Manutactures, Paris, France. [Tomovic, 1962] TOMOVIC, Boni G. An adaptive artificial hand. RE Trans. Automat. Contr., v. AC-7, n. 3, p. 3-10, 1962. [Vanriper, 1992] VANRIPER. The kinematics for an anthropomorphic robot hand. 1992.235 f. M.S. thesis, Rensselaer Polytechnic Institute, Troy, NY. 52