UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA SUPERVISÃO DE UM MANIPULADOR ROBÓTICO DE 3 DOF Dalton de Araújo Honório Fortaleza Dezembro de 2010 ii DALTON DE ARAÚJO HONÓRIO SUPERVISÃO E CONTROLE DE UM MANIPULADOR ROBÓTICO Trabalho Final de Curso submetida à Universidade Federal do Ceará como parte dos requisitos para obtenção do grau de Graduado em Engenharia Elétrica. Orientador: Prof. Me. Eber de Castro Diniz Fortaleza Dezembro de 2010 iii iv “Quando menos se espera, o que seria já era. O que seria de nós, se não fosse a ilusão que nos trouxe até aqui.” (Humberto Gessinger) v A Deus, Ao meu irmão, Paulo, Aos meus pais, Paulo e Liduina, Aos meus tios Raimundo e Fátima A minha namorada Adayla Suellen, A todos meus amigos e familiares. vi AGRADECIMENTOS Primeiramente a Deus por me guiar no caminho que segui até chegar aqui. Ao Professor Me. Eber de Castro Diniz, pela sua orientação, grande amizade, enorme paciência e disponibilidade durante todo este tempo. Ao Professor Me. Antonio Barbosa de Souza Junior, pelo seu companheirismo incansável, por todos os conselhos relevantes. Ao Professor Me. Fernando Sobreira, pelo seu apoio ao projeto na Universidade de Fortaleza. Ao Professor Dr. Luiz Henrique Silva Colado Barreto, pela confiança que depositou a mim a fim de participar em projetos de Iniciação Científica. Aos professores do departamento Fernando Antunes, José Carlos, Otacílio Mota, Laurinda Reis, Arthur Plínio, Ricardo Thé, Paulo Praça, André Lima, Adson Bezerra, Gabriela Bauab, Sergio Daher, Demercil de Souza, José Almeida, Carlos Gustavo, Ruth Leão. Aos colegas de pesquisa, José Robério vulgo Buldog, Jéssica, André, muito obrigado pela ajuda. Aos meus amigos Carlos Alberto, Wellington Avelino, Ernande Eugênio pelo companheirismo durante toda graduação. A meu Pai Paulo Honório, minha mãe Liduina Honório, meu irmão Paulo Honório Filho, sem eles minha vida não seria possível. Imagine a graduação! Aos meus tios, primos, a toda minha família que apoiou minha caminhada. A minha namorada Adayla Suellen, por me suportar por “curtos” sete anos. Obrigado por todo amor, carinho, compreensão e dedicação. Aos meus amigos de infância Bruno dos Santos, Frederico, Alisson, Pádua, Felipe Vasconcelos, Heitor das Virgens, Marillya Rabelo, Cynthia Sampaio e suas redações, Sávio e sua bateria, Weverton vulgo Tonton, Wenderson vulgo Derson, Wemerson vulgo Bizonga, Aline Castro. A todas as pessoas que por motivo de esquecimento não foram citadas anteriormente, vou deixando neste espaço minhas sinceras desculpas. vii Honório, D. A. “Supervisão e controle de um manipulador robótico”, Universidade Federal do Ceará – UFC, 2010, 58p. Este trabalho aborda a modelagem de um manipulador robótico de seis graus de liberdade. São utilizados conceitos de cinemática direta, através da convenção de DenavitHartenberg e de cinemática inversa, através do método geométrico, para o desenvolvimento do aplicativo de supervisão. Será apresentada a metodologia adotada para o desenvolvimento da supervisão do robô. Em seguida será desenvolvido o software de supervisão do manipulador através de um aplicativo implementado em ambiente MatLab®, onde será capaz de configurar cada motor responsável por cada articulação do manipulador de forma independente, assim como gerar um gráfico vetorial, baseado no tempo, do movimento do manipulador. Faz-se, posteriormente, um breve descritivo sobre o protocolo de comunicação utilizado no trabalho, o qual compreende em um mestre e dois escravos comunicando-se através de um barramento RS-485 de ligação. Esse protocolo será responsável por fazer a comunicação entre o sistema supervisório de controle dos atuadores. Por fim desenvolveu-se um algoritmo de controle. Palavras-Chave: Manipuladores Robóticos, Automação, MatLab, Supervisório, RS-485. viii Honório, D. A. “Supervision and control a robotic arm”, Universidade Federal do Ceará – UFC, 2010, 58p. This paper addresses the modeling of a robotic manipulator of six degrees of freedom (DOF). Kinematics concepts are used directly by the Denavit-Hartenberg convention and inverse kinematics, through the geometric method for developing the application of supervision. It will present a methodology for developing the supervision of the robot. Then the software will be developed to manipulate the supervision of pain through an application implemented in Matlab® environment, where you will be able to set each engine responsible for each joint of the manipulator independently as well as generating a vector graphics based on time, movement of the manipulator. It is then a brief description about the communication protocol used in the study, which comprises a master and two slaves communicating via an RS-485 bus connection. This protocol will be responsible for the communication between the supervisory system of control actuators. Finally we developed a control algorithm. Keyswords: Robot Manipulator, Automation, MatLab, Supervisory, RS-485. ix SUMÁRIO LISTA DE FIGURAS ................................................................................................................................ XI LISTA DE TABELAS ............................................................................................................................ XIII INTRODUÇÃO ........................................................................................................................................... 1 CAPÍTULO 2 .............................................................................................................................................4 FUNDAMENTOS TEÓRICOS ................................................................................................................... 4 2.1 - TRANFORMAÇÕES HOMOGÊNEAS........................................................................................... 4 2.1.1 - MATRIZ DE TRANSFORMAÇÃO PARA ROTAÇÃO E TRANSLAÇÃO ................................. 4 2.1.2 - MATRIZ DE TRANSFORMAÇÃO EM 3 DIMENSÕES ............................................................... 6 2.2 - CINEMÁTICA DIRETA ..................................................................................................................... 8 2.2.1 - NOTAÇÃO DE DENAVIT-HARTENBERG .................................................................................. 9 2.3 - CINEMÁTICA INVERSA ................................................................................................................. 12 2.3.1 - SOLUÇÃO DO MANIPULADOR ANTROPOMÓRFICO A 3 GRAUS DE LIBERDADE ........ 13 2.3.2 - SOLUÇÃO DO PUNHO ESFÉRICO ............................................................................................ 17 2.3.3 - SOLUÇÃO DO MANIPULADOR COM UM PUNHO ESFÉRICO ............................................. 19 2.4 - ÁRVORE DE SOLUÇÕES ................................................................................................................ 20 CAPÍTULO 3 ...........................................................................................................................................22 METODOLOGIA ......................................................................................................................................22 CAPÍTULO 4 ...........................................................................................................................................26 DESENVOLVIMENTO ............................................................................................................................ 26 4.1 - PROTOCOLO ELÉTRICO DE COMUNICAÇÃO SERIAL RS-232 .............................................. 26 4.2 - PROTOCOLO ELÉTRICO DE COMUNICAÇÃO SERIAL RS-485 .............................................. 26 4.3 - DESENVOLVIMENTO DO PROTOCOLO DE COMUNICAÇÃO .......................................... 30 4.4 - MODELAGEM DAS CINEMÁTICAS ........................................................................................... 31 4.4.1 - CINEMÁTICA DIRETA ................................................................................................................ 31 4.4.2 - CINEMÁTICA INVERSA ............................................................................................................. 32 4.5 - SOFTWARE DE SUPERVISÃO ....................................................................................................... 33 4.6 - FLUXOGRAMA ............................................................................................................................... 38 CAÍTULO 5 ...........................................................................................................................................40 RESULTADOS E DISCURSSÕES ........................................................................................................... 40 5.1 - APLICAÇÃO DO SUPERVISÓRIO EM UM MANIPIULADOR REAL.................................. 40 CONCLUSÃO.............. ............................................................................................................................. 44 x REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................................................... 45 xi LISTA DE FIGURAS Figura 1 – Diagrama de bloco do ciclo de controle ...................................................... 2 Figura 2 – Componentes da matriz de transformação a duas dimensões. ...................... 5 Figura 3 – Rotação genérica de um ponto no plano. ..................................................... 5 Figura 4 – Componentes da matriz de transformação3D. ............................................. 7 Figura 5 – Estrutura de um Manipulador ..................................................................... 9 Figura 6 – Posição relativa de duas retas no espaço................................................... 10 Figura 7 – Parâmetros Denavit-Hartenberg ............................................................... 10 Figura 8 – Braço antropomórfico de 3 DOF ............................................................... 13 Figura 9 – os três elos e juntas do punho esférico ....................................................... 17 Figura 10 – Manipulador antropomórfico com 6 DOF e um punho esférico ............... 19 Figura 11 – Diferença entre os eixos marginais dos dois sistemas .............................. 20 Figura 12 – Árvore de soluções para a cinemática inversa ......................................... 21 Figura 13 – Aplicação do MAX232 ............................................................................. 24 Figura 14 – Conversor USB-Serial (Cortesia Leader Ship) ......................................... 26 Figura 15 – Esquema de ligação para comunicação Supervisório-Manipulador ......... 27 Figura 16 – Conversor RS-232 para RS-485 ............................................................... 28 Figura 17 – Kit de desenvolvimento DSP da TEXAS INSTRUMENTS® ezdsp2812® .. 29 Figura 18 – Fluxograma de funcionamento da planta ................................................. 29 Figura 19 – Concentrador .......................................................................................... 30 Figura 20 – Telegrama de envio da comunicação. ...................................................... 31 Figura 21 – Interface do software ............................................................................... 33 Figura 22 – Aba grau de liberdade ............................................................................. 33 Figura 23 – Aba passo ................................................................................................ 34 Figura 24 – Aba posição ............................................................................................. 34 Figura 25 – Controle de posicionamento através do software ..................................... 35 Figura 26 – Cotrole de acesso à porta serial ............................................................. 35 Figura 27 – Painel de controle automático ................................................................. 36 Figura 28 – Gravação dos Pontos do Ciclo de Movimentação .................................... 36 Figura 29 – Botão Iniciar/Parar do ciclo de Movimentação Automática..................... 36 Figura 30 – Aba do controle principal ........................................................................ 37 Figura 31 – Gráfico com os movimentos do manipulador ........................................... 37 Figura 32 – Fluxograma de Supervisão ...................................................................... 38 xii Figura 33 – Foto da planta situada na UNIFOR ......................................................... 40 Figura 34 – Planta de acionamento dos motores......................................................... 41 Figura 35 – Desenho do manipulador ......................................................................... 41 Figura 36 – Manipulador robótico.............................................................................. 42 Figura 37 – Posição angular do cotovelo.................................................................... 42 Figura 38 – Posição angular do punho ....................................................................... 43 xiii LISTA DE TABELAS Tabela 1–Parâmetros de Denavit-Hartenberg para o punho esférico .......................... 17 Tabela 2 – Parâmetros de Denavit-Hartenberg........................................................... 32 INTRODUÇÃO A pesquisa nas áreas de mecânica e acionamentos de robôs não é exatamente uma ciência recente, e sim um conjunto de múltiplos assuntos oriundos de diversas áreas, abordados com outras ênfases. A engenharia mecânica contribui com estudo e entendimentos de maquinas em situações dinâmicas e estáticas. A matemática fornece as ferramentas necessárias para a modelagem dos movimentos espaciais e representações do próprio robô. As técnicas de controle provêm procedimentos necessários para controlar os movimentos do manipulador, bem como a força aplicada a esse movimento. A engenharia elétrica possibilita o projeto de sensores, a implementação das técnicas de modelagem e controle, bem como o acionamento dos atuadores do robô. Por fim, a ciência da computação subsidia a programação dos robôs nas execuções de suas tarefas. [4] Novas disciplinas, como engenharia de manufatura, engenharia de aplicação e engenharia do conhecimento tentam lidar com a complexidade do campo de aplicação da robótica em um sistema de automação fabril. [7] O termo robot, no português robô, foi usado primeiramente por Karel Câpek em sua peça Robôs Universais de Rossum. Desde então esse termo tem sido aplicado à uma vasta quantidade de equipamentos mecanicos. Devido à esse fato, dispositivos que, basicamente, operam com alguns graus de autonomia, geralmente sob comando computacional, são conhecidos normalmentes por robôs. Em tcheco a palavra robota significa trabalhador que nunca cansa. [6][7] As primeiras aplicações de robôs manipuladores geralmente estão associadas a transferências de pequenos materiais, tais como, injeção plástica e estampagem. A função dos manipuladores nessas aplicações se resumiam em apenas descarregar materiais, ou empilhar os produtos finais de uma certa linha de produção[7]. Como não se tinha sensores externos de modo a realimentar o processo e corrigir enventuais erros, não se podia exigir um desempenho eficiente dos manipulados robóticos. Com o avanço da tecnologia pôde-se obter essa realimentação dos processos, difundindo o uso desses robôs no meio industrial. Com isso, deu-se o inicio ao processo de automação. Defini-se por automação o uso de qualquer dispositivo mecânico ou eletro-eletrônico para controlar máquinas e processos[7]. Entre os dispositivos eletro-eletrônicos pode-se utilizar computadores ou outros dispositivos lógicos (como CLPs - Controladores Lógicos Programáveis ou CNC's - Computer Numeric Control), substituindo algumas tarefas da mão- 2 de-obra obra humana e realizando outras que o humano não consegue realizar. É um passo além da mecanização,, na qual operadores humanos são providos de maquinaria para auxiliá auxiliá-los em seus trabalhos. Este trabalho,, inicialmente, pretende mostrar algumas das etapas como a modelagem cic nemática de um manipulador robótico robótico,, que consiste no levantamento de todo as leis de formaform ção dos ângulos dos ligamentos e sua correlação entre o eixo da base e do efetuador efetuador. Várias são as definições adotadas para o que vem a ser um robô manipulador industrial industrial. Três definições de importantes associações na área da robótica são dadas a seguir: i) Definição pela ISO 8373:1994 [6]: “Um robô industrial é definido como manipulador programável em três ou mais eixos, controlados automaticamente, reprogramável e multifuncional.” ii) Definição da Robot Institute of America [7]: “Um manipulador reprogramável e multifuncional projetado para mover e manusear materiais, peças, ferramentas, ou dispositivos especiais capazes de desempenhar uma vvariedade de tarefas através de movimentos variáveis programados.” iii) Definição da Eshed Robotics [6]: “Um robô é um braço mecânico; um manipulador concebido concebido para levar a cabo muitas tarefas diferentes, e capaz de ser programado sucessivamente. Para levar a cabo as tarefas atribuídas, o robô move componentes, objetos, ferramentas e outros dispositivos especiais por meio de movimentos e pontos pré-programados.” pré Este trabalho tem,, também, como proposta desenvolver um software de supervisão para um manipulador robótico. Figura 1 – Diagrama de bloco do ciclo de controle O software realizará o controle e supervisão do manipulador robótico. Na Figura 1 tem temse o diagrama de blocos do ciclo de controle do equipamento. O início do controle se dá pelo usuário indicando o ponto inicial no qual o manipulador deve iniciar o movimento. Após esta 3 etapa tem-se a definição do ponto final, e por fim o ciclo de posicionamento do robô. Entende-se por ciclo de posicionamento as ações do supervisório que tem a responsabilidade de iniciar a comunicação, enviar os dados aos atuadores, atualizar a janela do aplicativo e encerrar a comunicação, sendo executadas de forma cíclica nessa respectiva ordem. De posse destes dois pontos, será feita, através de algoritmos de cinemática direta e cinemática inversa, a localização destes pontos no espaço (cinemática direta) e a movimentação entre estes pontos de forma a gerar o menor esforço possível para o equipamento (cinemática inversa). Este trabalho está divido da seguinte forma: No capítulo 1 foi dada uma introdução geral acerca de manipuladores robóticos No capítulo 2 são descritos os modelos matemáticos de modelagem dos manipuladores, havendo o desenvolvimento do modelo matemático do manipulador utilizado neste trabalho, bem como uma explanação acerca do protocolo de comunicação utilizado. No capítulo 3 é descrita a metodologia utilizada no trabalho. No capítulo 4 contém o desenvolvimento dos objetivos descritos na metodologia. No capítulo 5 são apresentados os resultados obtidos bem como uma discussão sobre os mesmos. E por fim uma conclusão avaliando o resultado em conjunto de todo o projeto, desde a concepção até os resultados obtidos experimentalmente. 4 CAPÍTULO 2 FUNDAMENTOS TEÓRICOS A cinemática de um robô manipulador é o estudo da posição do seu efetuador e dos seus ligamentos com relação a um determinado sistema de coordenadas de referência. Defini-se como efetuador o componente ligado a extremidade do braço, ou seja, o componente ligado ao último ligamento do manipulador. Por sua vez, ligamentos são usualmente blocos alongados rígidos, e são ligados uns aos outros através das juntas. E por fim, entende-se por junta a sobreposição de dois ligamentos. O problema da cinemática de um manipulador pode ser dividido em dois, o da cinemática de posição, que diz respeito aos valores dos atuadores (elementos que produzem movimento, atendendo a comandos que podem ser manuais ou automáticos) nos graus de liberdade que vão desde a base até o centro do pulso, e a cinemática de orientação, que define os valores dos atuadores que controlam o efetuador. Podem-se distinguir dois tipos de cinemática, a direta e a inversa. Na cinemática direta deseja-se obter a posição do efetuador para uma dada posição das articulações. A cinemática inversa é o oposto da cinemática direta, ou seja, é fornecida a posição do efetuador de modo a se obter as posições correspondentes das articulações. Com isso pode ser criado uma Interface Homen-Máquina (IHM) a qual possa obter uma posição para o manipulador mediante as posições das articulações ou calcular a posição das articulações mediante as posições do manipulador, podendo ainda indicar graficamente como essas posições se apresentam. 2.1 - TRANFORMAÇÕES HOMOGÊNEAS Da álgebra linear usa-se a ideia de transformação homogênea a fim de correlacionar os movimentos efetuados pelos manipuladores, sejam esses movimentos de rotação pura, translação pura e uma combinação de ambas. Transformação homogênea trata-se de uma representação matricial para movimentações de corpos rígidos. 2.1.1 - MATRIZ DE TRANSFORMAÇÃO PARA ROTAÇÃO E TRANSLAÇÃO O sistema qual representa uma rotação, juntamente com uma translação é dada a seguir, para um espaço bidimensional: 5 x1 a b x px y = c d ⋅ y + p y 2 (2.1) Para integrar em numa única matriz os efeitos da rotação e da translação, adiciona-se uma igualdade (1 = 1), que é verdadeira, e não altera em nada o conhecimento do sistema. Com isso obtêm-se a equação 2.2. x1 a b y = c d 1 1 0 0 px x p y ⋅ y 1 1 (2.2) As coordenadas resultantes são designadas coordenadas homogêneas. A matriz de transformação homogênea é assim constituída por secções com significados específicos, mostrados na Figura 2. Figura 2 – Componentes da matriz de transformação a duas dimensões. Logo, uma matriz que retrata somente uma rotação no plano (Ox-y, com revolução no eixo z) é obtida pela equação 2.3. cos θ Rot (θ , z ) = sin θ 0 − sin θ cosθ 0 0 0 1 (2.3) Note, seja um dado ponto no plano com coordenadas cartesianas (x, y) e coordenadas polares (l, θ). É aplicada, posteriormente, a esse ponto uma rotação de valor ϕ em torno da origem, resultante no ponto de coordenadas (x1, y1). Figura 3 – Rotação genérica de um ponto no plano. 6 A partir da Figura 3 é possível extrair as seguintes igualdades: x1 = l cos(θ + φ ) = l cos θ cos φ − sin θ sin φ ) y1 = l sin(θ + φ ) = l cos θ sin φ − sin θ cos φ ) (2.4) x = l cos φ y = l sin φ (2.5) x1 = x cos θ − y sin θ y1 = x sin θ + y cos θ (2.6) Ainda, tem-se que: Logo, E, finalmente, em notação matricial: x1 cos θ y = sin θ 1 − sin θ x c1 − s1 x = cos θ y s1 c1 y (2.7) Onde c1 = cosθ1e s1 = sin θ1. Adicionando-se a igualdade unitária da mesma forma que fora explicado acima, encontra-se a equação 2.3. Com o mesmo procedimento obtêm-se as seguintes matrizes de rotação no plano para os demais eixos coordenados, eixo x e eixo y, respectivamente: 0 1 Rot (θ , x) = 0 cos θ 0 sin θ cos θ Rot (θ , y ) = 0 − sin θ 0 − sin θ cos θ (2.8) 0 sin θ 1 0 0 cos θ (2.9) Analogamente, com conceitos de geometria, extrai-se da equação 2.4 a matriz que representa somente uma translação pura do sistema de coordenadas, vista na equação 2.8. 1 0 Trans( px , p y ) = 0 1 0 0 px p y 1 (2.10) 2.1.2 - MATRIZ DE TRANSFORMAÇÃO EM 3 DIMENSÕES Adicionando mais um grau de liberdade para a matriz de rotação e ao vetor de translação, obtêm-se a representação no espaço em três dimensões. 7 x y p= z 1 a R = d g b e (2.11) c f i h (2.12) A matriz de transformação para o espaço tridimensional assume a seguinte forma: a d T = g 0 b e h 0 c f i 0 px p y pz 1 (2.13) A matriz de transformação geométrica, homogênea, tem além das rotações e da translação mais quatro termos formando a última linha. Para esse trabalho essa linha terá cofatores representado por [0 0 0 1], todavia em outras aplicações essa linha representa as condições de tratamento de imagens, indicando por exemplo a perspectiva e o fator de escala global, como mostra a Figura 4. Figura 4 – Componentes da matriz de transformação3D. As matrizes homogêneas de rotação pura para cada eixo ortogonal são apresentadas nas equações a seguir, bem como as matrizes homogêneas de translação pura. cos θ sin θ Rot ( z, θ ) = 0 0 − sin θ cos θ 0 0 0 1 0 cos θ Rot ( x, θ ) = 0 sin θ 0 0 0 0 1 0 0 0 0 1 (2.14) 0 − sin θ cos θ 0 0 0 0 1 (2.15) 8 cos θ 0 Rot ( y, θ ) = − sin θ 0 0 sin θ 1 0 0 cos θ 0 0 0 0 0 1 (2.16) 1 0 Trans( x, px ) = 0 0 0 1 0 0 0 0 1 0 px 0 0 1 (2.17) 1 0 Trans ( y, p y ) = 0 0 0 1 0 0 0 0 1 0 0 p y 0 1 (2.18) 1 0 Trans ( z , pz ) = 0 0 0 1 0 0 0 0 1 0 0 0 pz 1 (2.19) 2.2 - CINEMÁTICA DIRETA Um manipulador consiste basicamente de uma série de corpos rígidos unidos entre si por articulações. Cada ligamento do manipulador pode ser enumerado de zero a n, como mostra a Figura 5. O ligamento da base é numerado por conveniência como zero e o efetuador, que é o último ligamento, é numerado como n. O objetivo é analisar a posição e a orientação do efetuador em função da posição de cada uma das articulações. Para representar a posição e a orientação do efetuador, é posicionado o sistema de coordenadas On – xnynzn no efetuador. A posição e orientação deste sistema de coordenadas são descritas em relação ao sistema O0 – x0y0z0 fixo na base, isto é, no primeiro ligamento. Define-se, também, para cada um das demais articulações um sistema de coordenadas Oi – xiyizi. É possível determinar a posição e a orientação do sistema i em relação ao sistema anterior, i-1, pelo uso de matrizes homogêneas relacionando a transformação entre estes sistemas. Dessa forma, a posição e a orientação do efetuador em relação à base são obtidas por uma composição de transformações homogêneas consecutivas, partindo-se do sistema da base para o último sistema (efetuador). 9 Para posicionar os sistemas de coordenadas nos ligamentos do manipulador de forma sistemática, é utilizada a notação de Denavit-Hartenberg. Esta notação é um método sistemático de descrever a posição e a orientação entre dois ligamentos consecutivos, baseado na transformação homogênea. Figura 5 – Estrutura de um Manipulador 2.2.1 NOTAÇÃO DE DENAVIT-HARTENBERG A notação de Denavit-Hartenberg[7] conduz uma representação baseada em transformações homogêneas, que exprimem cada referencial (associado a cada elo) em relação ao referencial anterior. Assim, através de uma sequência de transformações, a posição generalizada do órgão terminal do robô manipulador (ou melhor, o respectivo referencial) pode ser expressa em relação ao sistema de eixos da base, o qual pode construir o referencial inercial do sistema. Baseando-se no fato de que para determinar a posição relativa de duas retas no espaço são necessários somente dois parâmetros, sendo o primeiro parâmetro a distância medida ao longo da normal comum entre as duas retas e o segundo o ângulo de rotação em torno da normal comum, que uma das retas deve girar, de forma que fique paralela à outra, observa-se que a normal comum entre duas retas no espaço é definida por uma terceira reta que intercepta as duas primeiras retas, com ângulos de 90°, como mostra a Figura 6. Além disso, a distância medida entre as duas retas, ao longo da normal comum, é a menor distância entre as mesmas. 10 Figura 6 – Posição relativa de duas retas no espaço Se para definir a posição relativa de duas retas no espaço são necessários dois parâmetros, então, para definir a posição relativa de dois sistemas de coordenadas serão necessários quatro parâmetros. Isto decorre do fato de que um sistema de coordenadas é definidor por três retas (os três eixos do sistema), sendo que se conhecendo dois eixos do sistema, o terceiro está automaticamente definido, pelas condições de ortogonalidade e pela regra da mão direita. Portanto, a partir da definição da posição relativa entre dois eixos de dois sistemas de coordenadas, pode-se descrever a posição relativa entre os dois sistemas de coordenadas. A Figura 7 representa um par de ligamentos adjacentes de um robô manipulador (ligamentos i e i-1) e suas respectivas articulações (articulações i-1, i e i+1). A posição e orientação relativa entre os dois ligamentos são descritas pelas transformações de translação e de rotação entre os dois sistemas de coordenadas fixos a estes ligamentos. Figura 7 – Parâmetros Denavit-Hartenberg[5] 11 O primeiro passo para definir os sistemas de coordenadas de um robô é localizar os eixos z ao longo dos eixos das articulações, de forma que o eixo zi-1 é o eixo da articulação i. Seja a reta HiOi a normal comum aos eixos das articulações i e i+1 (eixos zi-1 e zi). A origem do sistema Oi é localizada na intercessão do eixo da articulação i+1 (eixo zi) e a normal comum entre os eixos zi-1 e zi. Finalmente, o eixo yi é escolhido de forma que o sistema resultante Oi - xiyizi seja um sistema de coordenadas que segue a regra da mão direita. A posição relativa entre dois sistemas de coordenadas consecutivos, sendo os sistemas Oi-1 - xi-1yi-1zi-1 e Oi - xiyizi, é completamente determinada pelas posições relativas entre os eixos xi-1 e xi e entre os eixos zi e zi-1, que são definidas pelos quatro parâmetros seguintes: • ai: é a distância (em módulo) entre zi-1 e zi medida ao longo do eixo xi, que é a normal comum entre zi-1 e zi, ou seja, é a distância HiOi; • αi: é o ângulo (com sinal) entre o eixo zi-1 e o eixo zi medido em torno do eixo xi, segundo a regra da mão direita, ou seja, é o ângulo de rotação em torno do eixo xi, que o eixo zi-1 deve girar para que fique paralelo ao eixo zi; • di: é a distância (com sinal) entre os eixos xi-1 e xi, medida sobre o eixo zi-1 (que é a normal comum entre xi-1 e xi), partindo-se de Oi-1 e indo em direção à Hi. O sinal de di é positivo se para ir de Oi-1 até Hi caminha-se no sentido positivo de zi-1 e negativo se caminha no sentido oposto de zi-1; • θi: é o ângulo (com sinal) entre o eixo xi-1 e o eixo xi, medido em torno do eixo zi-1, segundo a regra da mão direita, ou seja, é o ângulo de rotação em torno do eixo zi-1 que o eixo xi-1 deve girar para que fique paralelo ao eixo xi. Com estes quatro parâmetros, a posição e orientação do sistema de coordenadas i em relação ao sistema i-1 podem ser definidas como uma sequencia de quatro transformações: • Rotação em torno de zi-1 de um ângulo de θi, medido segundo a regra da mão direita, de forma a alinhar o eixo xi-1 com xi; • Translação ao longo do eixo zi-1 de uma distância di medida a partir do ponto Oi-1 até encontrar a intercessão da normal comum entre zi-1 e zi (ponto Hi); • Translação ao longo do eixo xi-1 de uma distancia ai partindo-se do ponto Hi até encontrar o eixo zi (ponto Oi); 12 • Rotação em torno do eixo xi de um ângulo αi medido segundo a regra da mão direita de forma a alinhar o eixo zi-1 com o eixo zi. Assim, em resumo, são as seguintes transformações: Ti −i 1 = Rot ( z ,θi ) Trans( z, di )Trans( x, ai ) Rot ( x, α i ) (2.20) Em termos de matrizes de transformação homogênea, tem-se: Cθi Sθ i Ti −1 = i 0 0 − Sθ i Cθi 0 0 0 0 1 0 0 0 1 0 0 ai 1 0 0 0 0 1 0 0 0 1 0 0 0 Cα i 1 0 0 0 1 di 0 0 1 0 0 Sα i 0 1 0 0 0 1 0 0 0 1 0 0 Cθ i − Sθi Cα i Sθi Sα i ai Cθi Sθ i Cθ i Cα i −Cθ i Sα i ai Sθ i 0 Sα i Cα i di 0 0 1 0 0 − Sα i Cα i 0 0 0 = 0 1 (2.21) Os parâmetros ai e αi são constantes e são determinados pela geometria do ligamento i. Um dos outros dois parâmetros di ou θi varia à medida que a articulação se move. Se a articulação for de revolução o parâmetro θi é variável e representa a sua posição angular, enquanto o parâmetro di é constante. Se a articulação for prismática, o parâmetro di é a variável que representa a sua posição linear e o parâmetro θi é constante. Ou seja, a cinemática direta do manipulador é obtida através do produto das matrizes de cada uma das juntas, conforme a equação abaixo: T06 = T01 . T12 . T23 . T34 . T45 . T56 (2.22) O resultado deste produto é representado pela matriz de transformação homogênea cujos elementos são doze equações não lineares. Rn H = T06 = 0 0 p0n 1 (2.23) Onde ܴ descreve a orientação do efetuador final, expressa as coordenas do vetor posição final do efetuador. 2.3 - CINEMÁTICA INVERSA O problema da cinemática inversa não é tarefa facilmente aplicada na maioria dos manipuladores. Com isso não pode ser obtida através de alguma fórmula pronta ou de simples multiplicações matriciais. No entanto, nos manipuladores com seis graus de liberdade com 13 pulso esférico, onde os três últimos eixos consecutivos se interceptam em um ponto, é possível desacoplar o sistema, ou seja, separar o problema da cinemática inversa em dois problemas mais simples conhecidos, respectivamente, como cinemática da posição inversa e cinemática da orientação inversa. Os três últimos eixos consecutivos interceptados em um ponto constituem o chamado punho esférico. Com a cinemática direta é possível determinar a posição e orientação do efetuador final, já a forma inversa permite calcular os ângulos das juntas a partir da posição e orientação do mesmo efetuador final. Desta forma, a solução da cinemática inversa segue três passos: (i) A decomposição da cinemática inversa da posição para encontrar o centro do pulso; (ii) A determinação dos ângulos das três primeiras junções a partir das coordenadas do centro do pulso; (iii) A determinação dos três ângulos da posição final do efetuador. 2.3.1 SOLUÇÃO DO MANIPULADOR ANTROPOMÓRFICO A 3 GRAUS DE LIBERDADE O manipulador antropomórfico a 3 graus de liberdade, do inglês degree of freedom (DOF), é constituído de três juntas de rotação, como visto na Figura 8, onde Pw é o ponto extremo do manipulador. Os ângulos de junta são θ1 para a base, θ2 para segundo grau e θ3 para o terceiro grau, respectivamente de acordo, novamente, com a Figura 8. Figura 8 – Braço antropomórfico de 3 DOF 14 A matriz de transformação homogênea para o manipulador da figura 8 é dada a seguir. Onde ci é equivalente a cos(θi), cij é equivalente a cos(θi+θj), si é equivalente a sin(θi) e sij é equivalente a sin(θi+θj). T30 = T01 ⋅ T12 ⋅ T23 c1 s T30 = 1 0 0 0 − s1 0 −c1 1 0 0 0 c1c2c3 − c1s2 s3 sc c −ss s T30 = 1 2 3 1 2 3 s2 c3 + c2 s3 0 0 c2 0 s2 LA 0 1 0 − s2 c2 0 0 0 LB ⋅ c2 c3 0 LB ⋅ s2 s3 1 0 0 0 1 0 −c1c2 c3 − c1s2c3 s1 − s1c2 s3 − s1s2c3 −c1 − s2 s3 − c2c3 0 0 0 c1c23 sc = 1 23 s23 0 −c1s23 − s1s23 s1 −c1 c23 0 0 0 (2.24) − s3 c3 0 0 0 LC ⋅ c3 0 LC ⋅ s3 1 LA 0 1 LC ⋅ ( c1c2 c3 − c1s2 s3 ) + LB c1c2 LC ⋅ ( s1c2 c3 − s1s2 s3 ) + LB s1c2 = LC ⋅ ( s2 c3 + c2 s3 ) + LB c1c2 + LA 1 c1 ( LC ⋅ c23 + LB ⋅ c2 ) s1 ( LC ⋅ c23 + LB ⋅ c2 ) LC ⋅ s23 + LB ⋅ s2 + LA 1 (2.25) (2.26) As coordenadas de Pw são precisamente as componentes de posição na matriz anterior, ou seja: PW x c1 ( LC ⋅ c23 + LB ⋅ c2 ) PW = PW y = s1 ( LC ⋅ c23 + LB ⋅ c2 ) PW z LC ⋅ s23 + LB ⋅ s2 + LA (2.27) Extraí-se, da equação 2.27, uma lei de formação para θ1, bastando para tanto dividir os termos pWx e pWy : pWx pWy = pW pW ∴θ 1 = arctan x ou θ 1 = atan 2 x pW pW s1 ( LC ⋅ c23 + LB ⋅ c2 ) y y c1 ( LC ⋅ c23 + LB ⋅ c2 ) (2.28) A última equação da sentença 2.28 se justifica, pois normalmente utiliza-se programas matemáticos para se obter os resultados dos ângulos. A função atan2() é muito utilizada como função inversa da tangente levando em consideração os quadrantes dos argumentos que são passados a ela na sua utilização. Como fora supracitado, deve-se levar em consideração o quadrante dos argumentos que compõem θ1. Os termos ( LC ⋅ c23 + LB ⋅ c2 ) podem ser positivos ou negativos, o que resulta no segundo caso que é (a tangente no terceiro quadrante): 15 − pW pW x = arctan x + π − pW pW y y θ 1 = arctan (2.29) A equação 2.29 implica que o valor de θ2 passa a ser π - θ2 e que θ3 a ter valor -θ3. Notase que não ocorrem alterações para as componentes do vetor Pw. Primeiro como pW indepenz de de funções trigonométricas, trata-se de uma constante. De acordo com as equações 2.30 até 2.33 não nota-se mudança no valor de pW e pW . x y sin(π − θ 2 ) = s2 (2.30) sin(π − θ 2 − θ3 ) = sin(π − (θ 2 + θ3 )) = sin(θ 2 + θ3 ) = s23 (2.31) cos(π − θ 2 ) = −c2 (2.32) cos(π − θ 2 − θ3 ) = cos(π − (θ 2 + θ3 )) = −c23 (2.33) Da equação 2.27 tem-se que: pwx = c1 ( LC ⋅ c23 + LB ⋅ c2 ) (2.34) pwy = s1 ( LC ⋅ c23 + LB ⋅ c2 ) (2.35) pwz − LA = LC ⋅ s23 + LB ⋅ s2 (2.36) Logo, 2 ( ) pw2 x + pw2 y + ( pwz − LA )2 = ( LC ⋅ c23 + LB ⋅ c2 ) ⋅ c12 + s12 + ( LB ⋅ s2 + LC ⋅ s23 ) 2 2 2 + 2 LB LC ⋅ c2 c23 + L2B ⋅ s22 + L2C ⋅ s23 + 2 LB LC ⋅ s2 s23 pw2 x + pw2 y + ( pwz − LA )2 = L2B ⋅ c22 + L2C ⋅ c23 pw2 x + pw2 y + ( pwz − LA ) 2 = L2B + L2C + 2 LB LC (c2c23 + s2 s23 ) pw2 x + pw2 y + ( pwz − LA )2 = L2B + L2C + 2 LB LC [ c2 (c2c3 − s2 s3 ) + s2 ( s2 c3 − s3c2 )] pw2 x + pw2 y + ( pwz − LA ) 2 = L2B + L2C + 2 LB LC (c22 c3 + s22c3 ) c3 = pw2 x + pw2 y + ( pwz − LA )2 − ( L2B + L2C ) 2 LB LC pw2 x + pw2 y + ( pwz − LA )2 − L2B − L2C 2 L L B C θ3 = ± arccos (2.37) Assim, obtêm-se a lei de formação para θ3. Partindo novamente da equação 2.27, tem-se: pw2 x + pw2 y = ( LC ⋅ c23 + LB ⋅ c2 ) = LB ⋅ c2 + LC ⋅ c2 c3 − LC ⋅ s2 s3 (2.38) 16 δ pw δ c23 δc = LC ⋅ + LB ⋅ 2 δθ 2 δ (θ 2 + θ3 ) δθ 2 x pwz − LA = pwx ' = δ pw = LB ⋅ s2 + LC ⋅ c2 s3 + LC ⋅ c3 s2 δθ 2 (2.39) x Pôde-se substituir o referencial da derivada, pois: (2.40) θ 23 = θ2 + θ3 Derivando a equação 2.40 em relação à θ2 , tem-se: δθ 23 δθ 2 δθ3 δθ 23 = + ∴ =1 δθ 2 δθ 2 δθ 2 δθ 2 δθ 23 = δθ 2 ∴δ (θ 2 + θ3 ) = δθ 2 (2.41) Da equação 2.38, tem-se: pw2 x + pw2 y + LC ⋅ s2 s3 = c2 ( LB + LC ⋅ c3 ) pw2 x + pw2 y + LC ⋅ s2 s3 c2 = (2.42) LB + LC ⋅ c3 Das equações 2.39 e 2.42, tem-se: pw2 x + pw2 y + LC ⋅ s2 s3 ' pwx = LB ⋅ s2 + LC ⋅ c3 s2 + LC ⋅ s3 LB + LC ⋅ c3 2 pwx ' ⋅ ( LB + LC ⋅ c3 ) = s2 ⋅ ( LB + LC ⋅ c3 ) + LC ⋅ s3 ⋅ ( pw2 x + pw2 y + LC ⋅ s2 s3 ) (2.43) Chamando r = pw2 x + pw2 y , aplicando em 2.43, tem-se: ( LB + LC ⋅ c3 ) ⋅ pw ' − r ⋅ LC ⋅ s3 = s2 L2C ⋅ s32 + ( LB + LC ⋅ c3 ) x ( LB + LC ⋅ c3 ) ⋅ pw ' − r ⋅ LC ⋅ s3 s2 = 2 L2C ⋅ s32 + ( LB + LC ⋅ c3 ) 2 (2.44) x Substituindo a variável r na equação em 2.44 e a equação 2.44 na equação 2.42, tem-se: s2 = c2 = Daqui obtêm-se: ( LB + LC ⋅ c3 ) ⋅ ( pw z ) − LA + LC ⋅ s3 ⋅ pw2 x + pw2 y ( pw2 x + pw2 y + pwz − LA ( LB + LC ⋅ c3 ) ) 2 ( pw2 x + pw2 y + LC ⋅ s3 ⋅ pwz − LA ( pw2 x + pw2 y + pwz − LA ) 2 ) (2.45) (2.46) 17 s2 s2 ou θ 2 = atan 2 c2 c2 θ 2 = arctan (2.47) Foram realizados dois dos três passos do procedimento para a obtenção da cinemática inversa, estabelecendo-se a posição do centro do punho e os três ângulos do antebraço do manipulador. A partir deste ponto será o terceiro passo, que é a determinação dos ângulos do punho do manipulador. 2.3.2 SOLUÇÃO DO PUNHO ESFÉRICO O punho esférico é constituído de três eixos os quais se intersectam num mesmo ponto, podendo ser encarado como um subsistema de um manipulador a 6 DOF em que a matriz de transformação resulta do produto das matrizes associadas aos últimos três ligamentos. Figura 9 – os três elos e juntas do punho esférico[6] A Figura 9 mostra os três eixos do punho esférico[6]. A origem é considerada no ponto Pw ilustrado. Isso se faz necessário devido ao fato de querer-se aglutinar o manipulador antropomórfico a 3 DOF com o punho esférico a fim d obter-se o manipulador a 6 DOF, como dito anteriormente. Utilizando os parâmetros cinemáticos de Denavit-Hartenberg pôde-se montar a seguinte tabela: Tabela 1–Parâmetros de Denavit-Hartenberg para o punho esférico[6] Ligamento θi αi ai di 4 θ4+90 +90 0 0 5 θ5+90 +90 0 0 6 θ6 0 0 LD Em seguida obtêm-se as matizes de transformação de cada junta. 18 T63 = T34 ⋅T45 ⋅T56 (2.48) − s4 c 4 T3 = 4 0 0 0 c4 0 s4 1 0 0 0 0 0 0 1 (2.49) − s5 c T45 = 5 0 0 0 c5 0 s5 1 0 0 0 0 0 0 1 (2.50) c6 s 6 T5 = 6 0 0 0 0 0 0 1 LD 0 1 − s6 c6 0 0 (2.51) Assim, substituindo 2.49 a 2.50 em 2.48, tem-se: − s4 c T63 = 4 0 0 0 c4 0 s4 1 0 0 − s5 0 c5 ⋅ 0 0 1 0 0 0 s4 s5 c = 5 −c5 0 c4 − s4 c5 0 1 0 c4c5 s5 0 s4 s5c6 + c4 s6 −c s c + s s = 4 5 6 4 6 −c5c6 0 0 c5 0 s5 1 0 0 0 0 c6 0 s6 ⋅ 0 0 1 0 − s4 s5c6 + c4 s6 s6c4 s5 + s4 c6 c5 s6 0 0 c6 0 s6 ⋅ 0 0 1 0 − s6 c6 0 0 0 0 0 0 = 1 LD 0 1 0 0 0 0 = 1 LD 0 1 − s6 c6 0 0 − s4c5 c4 c5 s5 0 − s4 c5 ⋅ LD c4c5 ⋅ LD s5 ⋅ LD 1 (2.52) Comparando a equação 2.52 com a matriz de transformação geral para a orientação (equação 2.53): n3 x R = n3 y n3 z 3 6 s3 x s3 y s3 z a3 x a3 y = n3 a3 z s3 a3 (2.53) Evidencia-se que: −a − s4 c5 = a3 x ∴θ 4 = arctan 3 x a3 y c4 c5 = a3 y (2.54) 19 s5 = a3 z s5 = a3 z a3 z arctan ∴ ∴ θ = 2 2 2 5 2 2 ± a32x + a32y c5 = a3 x + a3 y c5 = a3 x + a3 y s −c5c6 = n3 z ∴θ6 = arctan 3 z c5 s6 = s3 z −n3 z (2.55) (2.56) Finalmente, obteve-se os ângulos do punho esféricos. 2.3.3 SOLUÇÃO DO MANIPULADOR COM UM PUNHO ESFÉRICO Foi dito que a cinemática inversa de um manipulador pode tornar-se complexa e até mesmo impossível de resolver analiticamente. Contudo, para esse trabalho será realizada uma união de dois casos particulares de modelagem de cinemática como solução de modelagem. Figura 10 – Manipulador antropomórfico com 6 DOF e um punho esférico[6] Para o manipulador com punho esférico, a escolha natural recai sobre o ponto de intersecção dos três eixos das juntas terminais, ou seja, o ponto Pw na Figura 10. Para se efetuar a junção dos sistemas deve-se notar que o sistema de eixos número 3 é diferente no manipulador antropomórfico a 3 DOF (onde é sistema de eixos terminal) e no punho esférico (onde é sistema de eixos inicial). A Figura 11 [6] ilustra essa diferença, todavia a origem do sistema é a mesma. 20 Figura 11 – Diferença entre os eixos marginais dos dois sistemas Com isso é necessário corrigir essa divergência. Pós-multiplicando A3 por uma matriz com duas rotações: uma em 90o em torno de y3 e outra em 180o em torno de x3, consegui-se essa correção. Tem-se, então: 1 0 0 0 −1 0 Rot ( x,180) ⋅ Rot ( y,90) = 0 0 −1 0 0 0 0 0 0 0 0 −1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 −1 = 0 1 0 1 0 0 1 0 0 0 0 0 0 1 (2.57) Nota-se que o sistema de três eixos deveria ter sua origem na intersecção de z2 com z3 e não com z4 como acontece. Isso acontece devido ao processo de modelagem usado, todavia a única consequência é apenas a de uma correção para ajustar o alinhamento como feito acima. 2.4 ÁRVORE DE SOLUÇÕES Como foi visto na solução dos ângulos θ1, θ3 e θ5, há duas soluções. Isto significa que o manipulador pode alcançar oito diferentes localizações especificadas pela matriz homogênea. Porém algumas destas oito diferentes posições são impraticáveis devido às restrições de movimento da estrutura de paralelogramo do manipulador [4]. Na Figura 12 é apresentado o gráfico das oito soluções possíveis para a obtenção da cinemática inversa. 21 Figura 12 – Árvore de soluções para a cinemática inversa 22 CAPÍTULO 3 METODOLOGIA Com o avanço do projeto de título "Desenvolvimento de um manipulador articulado com 5 graus de liberdade acionados por motores de indução” desenvolvido no Grupo de Pesquisa em Automação e Robótica (GPAR), pertencente ao Departamento de Engenharia Elétrica (DEE) da Universidade Federal do Ceará (UFC) surgiu a carência de ter-se um método eficiente de manuseio do Braço Robótico. Deu-se início, então, a pesquisas de controle e supervisão de manipuladores robóticos controlados por um computador pessoal (PC). O ambiente escolhido de desenvolvimento do software foi o MatLab®, pois trata-se de uma plataforma versátil e completa. Desta forma, foi empregado algumas etapas para a resolução do problema: Inicialmente, utilizando os conhecimentos adquiridos ao longo da pesquisa, foi configurada um protocolo de comunicação serial, entre o dispositivo de controle do motor e o computador, com o intuito de se realizar testes de implementação e entender o comportamento da planta de aplicação, bem como os fatores decisivos para esse projeto, tais como: prototipagem de placa, disposição espacial das mesmas, análise da velocidade de comunicação. Em seguida elaborou-se um protocolo de comunicação entre o software e o controlador. Optou-se pela não utilização de protocolos patenteados, ou disponibilizados em sites de fabricantes, pois ambas as alternativas eram desnecessárias, além de a primeira onerar o projeto. Após a etapa de estudo do protocolo, foi implementada a rede multiponto usando RS485 half-duplex, sendo convertida para RS232, com o intuito do computador enviar e receber comandos via protocolo para todos, simultaneamente ou não. Nessa etapa montou-se condicionadores de sinais e os adaptadores dos protocolos de comunicação Com a etapa de comunicação concluída, com base na teoria citada no Capítulo 2, foi implementado um algoritmo para o cálculo da cinemática direta do manipulador. A fim de conhecer os pontos, inicial e final, que se encontra o efetuador. As coordenadas destes pontos foram utilizadas para o cálculo da cinemática inversa. Na implementação do cálculo da cinemática inversa, foi necessário a implementação de um algoritmo de controle manual de cada motor para que o usuário posicione o manipulador na posição desejada. Este controle, através de técnicas de programação, foi desenvolvido com o objetivo de que cada motor funcione independente. Foi projetado, também, rotinas de 23 monitoramento para evitar que o braço execute algum movimento fora do seu espaço de trabalho. Com o algoritmo da cinemática direta completo, foi desenvolvido um algoritmo, com base na teoria de robótica, para o controle da cinemática inversa, onde o posicionamento do manipulador é feita de forma automática, com base nos pontos previamente calculados pela cinemática direta. O dispositivo utilizado para efetuar o controle dos atuadores do manipulador foi Digital Sign Processor (DSP). Utilizou-se o kit de DSP ezdsp2812, possuindo 12 canais PWM, além de 14 canais A/D. Assim, para o controle de dois motores, os 12 canais são utilizados, sendo 6 para cada inversor. Somente há a necessidade de 4 canais A/D, para 2 sensores de corrente de cada motor. A terceira corrente é calculada a partir das outras 2, evitando um custo adicional de se empregar outro sensor de corrente e evitando erros de medição. O ezdsp2812 ainda possui a vantagem de se poder implementar a banda morta(“deadband”) ao se chavear dois interruptores do mesmo braço, evitando assim a adição de um potenciômetro ou outro equipamento para o controle de cada braço do inversor. Como dito anteriormente, o ambiente de desenvolvimento do supervisório foi o Matlab®. Usou-se a Graphical User Interface (GUI) para implementar o frame do supervisório, bem como suas rotinas de funcionamento. Uma GUI é uma interface pitoresca de um programa. Uma boa GUI tem a capacidade de tornar programas mais fácies de serem usados, dando-lhes aparências consistentes, e controles intuitivos. Esses controles podem ser: botões, caixas de listagens, controles deslizantes, menus e assim por diante. A Interface Homem Máquina (IHM) deve comporta-se de forma compreensível e previsível, para que o usuário possa esperar quando o aplicativo executar uma ação. Por exemplo, quando o clique do mouse ocorre em um botão, a IHM de iniciar a ação descrita no rótulo do botão. Mesmo com a simplicidade de manipulação das GUIs, sua implementação não é fácil, pois um programa baseado em interface gráfica deve estar preparado para receber os cliques do mouse (ou possivelmente a entrada do teclado) para qualquer elemento gráfico a qualquer instante. Essas interrupções são chamadas de eventos e logo um programa que responde esses a eventos é denominado de programa guiado por eventos Os três elementos principais para criar uma GUI no Matlab® são: 1. Componentes: Cada item em uma interface gráfica é uma componente gráfica, podendo ser controles gráficos, elementos estáticos, menus e eixos. 24 2. Figuras: Os componentes da GUI devem ser organizados dentro de uma figura, que é uma janela na tela do computador. 3. Callbacks: Deverá existir alguma forma de executar uma ação se o usuário clicar com o mouse sobre um botão ou alguma entrada de informações pelo teclado. Um clique ou uma tecla pressionada, como fora dito antes, trata-se de um evento e o programa da GUI deve responder a cada caso, se assim for desejado pelo programador. Por exemplo, se um usuário clicar em um botão, este deve fazer com que o código do Matlab em que a função do botão é implementada deva ser executado. Logo deve haver um retorno de chamada (callback) para cada componente da GUi para garantir essa execução mediante e solicitação do usuário. Foi utilizado para fazer a coversão da serial do PC para RS-232 o Circuito Integrado (CI) Max232, da manufaturadora MAXIN®. O MAX232 é um CI convesor de nível, que converte sinais TTL em rs232 e vice-versa. Ele fornece uma ótima rejeição de ruído e é mais robusto a descargas e curtos. Com apenas uma configuração de quatros capacitores, com capacitâncias de mesma magnitude, o circuito integrado fica apto a executar conversão de tensão para comunicações serial. Uma aplicação clássica do CI pode ser vista na Figura 13. Figura 13 – Aplicação do MAX232 Foi utilizado, também, o CI MAX485, um transceptor half-duplex. Isso significa que apenas um transmissor pode estar ativo no barramento de comunicação ao mesmo tempo, todavia todos os receptores podem estar ativos. Designa-se um mestre, a fim de evitar conflito entre dois ou mais dispositivos do barramento. O mestre solicita ou envia dados dos escravos. 25 Os escravos são identificados por um endereço, eles devem transmitir seus dados de respostas se o endereço foi especificado pelo mestre e só depois que o mesmo encerrar sua mensagem. Nota-se que é necessário a implementação de um protocolo específico para garantir todas as condições de funcionamento dos barramentos de comunicação serial. 26 CAPÍTULO 4 DESENVOLVIMENTO Estabelecido os métodos para solucionar o problema de implementação de um software de supervisão do manipulador. Os desenvolvimentos de cada método estarão abordados nos tópicos a seguir. 4.1 PROTOCOLO ELÉTRICO DE COMUNICAÇÃO SERIAL RS-232 Com o intuito de testes sobre o correto funcionamento do protocolo e para observar o comportamento do motor, foi implementada uma comunicação simples, ponto a ponto, ou seja, somente dois dispositivos se comunicando, a fim de enviar seguidas mensagens serialmente e observar a resposta do motor. Após alguns envios de mensagens, observou-se que é necessário um intervalo de envio entre cada mensagem para um mesmo motor. Os testes mostraram um valor próximo de 500 (quinhentos) milissegundos de intervalo. Caso não se respeite este intervalo, ao mandar duas mensagens seguidas, a segunda mensagem será descartada pelo atuador, ou mal interpretada. Para o uso do software em notebooks necessitou-se de um conversor USB – Serial, pois as portas seriais com o clássico conector DB-9 estão fora de padrão. Caso contrário a comunicação não poderia ser implementada. Um exemplo desse conversor é mostrado na Figura 14. Figura 14 – Conversor USB-Serial (Cortesia Leader Ship) 4.2 PROTOCOLO ELÉTRICO DE COMUNICAÇÃO SERIAL RS-485 Com o objetivo de fazer a rede definitiva do projeto, foi desenvolvida uma rede RS485 half-duplex, onde todos os Controladores estão interligados através de um barramento de 27 dados onde o mestre tem o direito de acesso.. Assim, o mestre pode enviar uma mensagem para qualquer escravo, somente selecionando o endereço de destino no próprio protocolo de comunicação, como será discutido. Conforme dito, a rede implementada é half-duplex, ou seja, o tráfego de informações acontece em um único sentido por vez. Por exemplo, quando o mestre enviar uma mensagem para os escravos, nenhum escravo pode enviar mensagem para o mestre, pois o sentido de tráfego de informações está do mestre para os escravos. Somente ao término da mensagem é que o sentido fica livre para ser alterado. Da mesma forma, se algum controlador estiver enviado mensagens para o computador, este não poderá enviar informações, devido ao sentido do tráfego no barramento de dados. Vale ressaltar que somente o mestre tem acesso ao barramento de dados. Nunca haverá troca de informações entre escravos. O mestre sempre deve participar da comunicação, já que ele que coordena o acesso ao barramento. Para o projeto do supervisório foram projetadas placas de circuito impresso a fim de obter um sistema de comunicação como é mostrado na Figura 15. Figura 15 – Esquema de ligação para comunicação Supervisório-Manipulador 28 O PC envia um telegrama, que é convertido para protocolo serial RS-232 padrão. Após passar pelo primeiro conversor (Figura 16) o sinal é convertido em protocolo RS-485, gerando um barramento universal o qual é conectado todos os DSPs (Figura 17). De acordo com as rotinas de comunicação implementadas no código do controlador (DSP), somadas as informações do telegrama pode-se escolher qual controlador deverá processar tal informação e acionar seu respectivo grau de liberdade em concordância com a Figura 18. Para cada DSP produziu-se um conversor RS-485 para níveis TTL e após esse conversor adicionou-se zeners para ceifar o sinal em 3,3V, compatível com a lógica do DSP. Esses circuitos foram colocados em uma única placa denominada de concentrador, que tem a função de receber e enviar os dados vindos das realimentações dos processos de controle do acionamento e os dados do canal de comunicação PC-DSP, Figura 19. Assim obtêm-se por completo um canal de comunicação entre o supervisório, embargado no PC e o robô. Figura 16 – Conversor RS-232 para RS-485 29 Figura 17 – Kit de desenvolvimento DSP da TEXAS INSTRUMENTS® ezdsp2812® Gatilhos para o inversor Fonte de +15, -15,+5 e +18 volts Gatinhos do DSP Valores das correntes e da posição do eixo Valores da correntes limitadas E Posição do eixo Alimentação trifásico do motor Barramento CC Figura 18 – Fluxograma de funcionamento da planta Correntes do motor e posição do eixo 30 Figura 19 – Concentrador 4.3 DESENVOLVIMENTO DO PROTOCOLO DE COMUNICAÇÃO Para a construção do algoritmo de supervisão do manipulador, inicialmente foi necessário a instalação de redes de comunicação entre os atuadores e o computador a fim de que possa haver a troca de informações entre o mestre e o escravo da rede. Para que as mensagens enviadas pelo computador (mestre) fossem entendidas corretamente pelos controladoes (escravos) foi elaborado um protocolo de comunicação próprio para essa aplicação, onde existem padrões que devem ser seguidos para a troca de informações pela rede. O pacote de envio, Figura 20, é compreendido por (esquerda para a direita): (i) Dado de escolha do controlador; A rede completa conta com seis controladores “conectados” no mesmo barramento de comunicação RS485. Logo esse byte de escolha faz-se necessário para garantir o correto envio para o controlador escravo requerido. Os valores desse byte correspondem ao caractere a (97 em ASCII) até o f (102 em ASCII). (ii) Dado a ser utilizado no controlador; Esses bytes são resevados para os dados a serem enviados, os quais compreendem a posição de referencia do DOF que o escravo está comandando. 31 (iii) Dado de atualização de variáveis; Para o correto funcionamento e robustez da aplicação, deve-se atualizar variáveis a cada rotina de comunicação, optou-se por comandar essa atualização via supervisório. (iv) Dado simbolizando o fim da transmissão. Para sinalizar que a comunicação chegou ao fim, manda-se um byte para indicar o fim dela. Foram selecionados os valores compreendidos na faixa dos caracteres ñ (241 em ASCII) e ö (246 em ASCII). A escolha desses valores se justifica, pois eles correspondentes (em ASCII) em uma faixa que não interfere nos valores usados nos demais bytes de sinalização e bytes de dados. Figura 20 – Telegrama de envio da comunicação. 4.4 MODELAGEM DAS CINEMÁTICAS Será apresentada a modelagem das cinemáticas direta e inversa as quais foram aplicadas ao manipulador real. 4.4.1 CINEMÁTICA DIRETA Utilizando os fundamentos da convenção de Denavit-Hartenberg apresentados na fundamentação teórica sobre cinemática direta, foi desenvolvido um algoritmo para calcular o ponto dado os valores dos ângulos. Como visto, para obter a matriz de rotação da base ao efetuador final é preciso multiplicar as matrizes de rotação de cada grau de liberdade, de acordo com a Equação 2.16. Então, utilizando a Equação 2.15, monta-se uma tabela relacionando os parâmetros de Denavit-Hartenberg e as articulações do manipulador: 32 Tabela 2 – Parâmetros de Denavit-Hartenberg Ligamento θi αi ai di 1 θ1 +90° 0 50 2 θ2 0 530 0 3 θ3 +90° 375 0 4 θ4 -90° 0 0 5 θ5 +90° 0 0 6 θ6 0 0 0 Como visto na fundamentação sobre cinemática inversa, o desacoplamento do manipulador para o auxílio da solução do problema nos mostra que as últimas três articulações se interceptam no mesmo ponto, ou seja, o parâmetro ai da dedução de Denavit-Hartenberg é zero para as três últimas articulações. Com os dados da tabela 2 têm-se os valores substituídos na Equação 2.21, realizando por fim a multiplicação na Equação 2.22. Obtêm-se então os valores da quarta coluna da matriz resultante da Equação 2.16 encontrando por fim o ponto no espaço onde está o centro do efetuador (Xc, Yc, Zc). X C 375 ⋅ ( c1c2 c3 − c1s2 s3 ) + 530 ⋅ c1c2 Pw = YC = 375 ⋅ ( s1c2c3 − s1s2 s3 ) + 530 ⋅ s1c2 Z C 375 ⋅ ( s2c3 − c2 s3 ) + 50 + 530 ⋅ s2 (4.1) Estes pontos serão utilizados para o cálculo da cinemática inversa, como será visto no próximo tópico. 4.4.2 CINEMÁTICA INVERSA Utilizando os conceitos abordados na fundamentação teórica sobre cinemática inversa, substituem-se as coordenadas do ponto encontradas pela cinemática direta em cada fórmula deduzida para, enfim, obter o valor final de cada ângulo. 33 Como o problema da cinemática inversa foi dividido em dois problemas menores, os valores calculados para os três primeiros ângulos correspondem aos valores dos atuadores nos graus de liberdade que vão desde a base até o centro do pulso. Já os três últimos valores dizem respeito à cinemática de orientação, que define os valores dos atuadores que controlam o efetuador. 4.5 SOFTWARE DE SUPERVISÃO Desenvolvido em MatLAB®, o aplicativo foi gerado com uma interface com o intuito de se tornar o mais amigável possível para o usuário, como fora dito no capítulo 3. Disponibilizando configurações independentes para cada controlador e controle manual para posicionamento do manipulador. Há, também, um gráfico que o usuário poderá observar o movimento real do manipulador, através de vetores no espaço, conforme a Figura 21. Figura 21 – Interface do software No painel de “Controle Manual”, são encontradas as abas: • Grau de Liberdade; Através dos radio button (Base, Cotovelo, Punho), Figura 22, é possível escolher em qual grau o usuário irá acionar. Figura 22 – Aba grau de liberdade 34 • Passo; Com esse painel é possível alterar o passo de incremento ou decremento dos ângulos colocados pelo supervisório no atuador do manipulador, respeitando os limites operacionais do robô. Os valores de default são esses mostrados na Figura 23. Figura 23 – Aba passo • Posição. Para fins de visualização foi programado um painel que mostra a posição atual de cada grau, como mostra a Figura 24. Figura 24 – Aba posição Além das abas mostradas acima, encontra-se ainda no painel de Controle Manual botões para alterar o passo e para habilitar o envio dos dados via serial, como pode ser visto na Figura 21. O usuário deve selecionar o grau de liberdade que deseja movimentar, escolhendo em girar no sentido horário (botão “+”) ou no sentido anti-horário (botão “-”). O valor do ângulo de cada movimento depende do valor configurado no Painel de “Configuração”, na opção “Passo”. Através do Painel “Visualização” o usuário observa o quanto cada grau de liberdade já foi movimentado. Este painel é bastante útil para se evitar que o usuário seja alertado da ultrapassagem da limitação mecânica de cada junção. Pelo painel é possível monitorar o valor do ângulo de cada articulação, de acordo com a Figura 24. Durante o posicionamento manual dos motores para definição dos pontos extremos do ciclo automático de posicionamento, tem-se o controle independente de cada articulação do manipulador, com configurações específicas para cada motor. Um ponto a se observar no controle manual é a limitação de movimentação devido às limitações mecânicas do braço, de forma que nem todos os motores podem girar de forma li- 35 vre sem um controle do valor do ângulo que estão posicionados, pois, desta forma, pode acontecer que um motor gire mais que o projetado mecanicamente e ocasione alguma anormalidade mecânica no manipulador. Assim, foi feito um algoritmo para controlar o valor dos ângulos de cada motor, de forma a não ultrapassar o limite estabelecido no projeto mecânico. A atuação desse controle através do software pode ser visto na Figura 25. Figura 25 – Controle de posicionamento através do software Também foi implementado algo semelhante para controle do acesso da porta serial, como é visto na Figura 26. Figura 26 – Cotrole de acesso à porta serial No painel de “Controle Automático”: • Posição 1; Aba onde se pode guardar e visualizar o ponto onde o robô se encontra. • Posição 2; Idem a posição 1. 36 Figura 27 – Painel de controle automático Após posicionar o manipulador no ponto inicial do ciclo automático de movimentação, o usuário deve informar que este é o ponto inicial do ciclo, pressionando, no painel Posição 1, o botão “Gravar”. Depois de configurado o primeiro ponto, o manipulador deverá ser movimentado, através do controle manual, até o ponto de destino e ser gravado através do botão “Gravar” do painel Posição 2. Figura 28 – Gravação dos Pontos do Ciclo de Movimentação Com os dois pontos já gravados, conforme a Figura 28, através do botão “Iniciar”, Figura 29 e Figura 21, se dá o começo da movimentação automática do manipulador. Ou seja, o robô se posiciona no ponto inicial do ciclo e depois vai até o ponto final. Este movimento é feito repetidas vezes, até que o usuário acione o mesmo botão, que durante o ciclo de movimentação estará com o nome “Parar”. Figura 29 – Botão Iniciar/Parar do ciclo de Movimentação Automática No painel de “Controle Principal”: • Porta Serial. Faz o controle de acesso à porta serial do PC. 37 Figura 30 – Aba do controle principal Foi programado um texto estático para mostrar o estado atual da porta, evitando fechamentos ou solicitações de acesso indesejadas, Figura 30. Também, encontra-se um botão para atualizar as variáveis do controlador (botão “Atualizar”). E por fim foi programado um botão de saída de aplicativo (botão “Sair”). Nesse botão foi adicionada a função de fechar a porta serial no momento que o software for encerrado, a fim de evitar deixar a porta serial aberta após a utilização do supervisório, caso o usuário tenha se esquecido de fechar lá. Foi implementado também um gráfico em tempo real, que mostra a posição do manipulador com base nos ângulos que foram colocados pelo usuário. Figura 31 – Gráfico com os movimentos do manipulador Pelo gráfico gerado em tempo real se tem o posicionamento dos vetores, correspondentes a cada articulação do vetor, de acordo com o posicionamento real do manipulador. O gráfico vetorial gerado de acordo com o movimento do manipulador pode ser observado na Figura 31. 38 Vale ressaltar que o movimento destes vetores são relacionados, no software software, com uma variável de tempo, para que seja produzido o efeito de movimentação do gráfico, gerando uma imagem próxima à real produzida pelo manipulador. Ao acionar o ciclo automático de posicionamento, através do botão “Iniciar Iniciar”, os vetores do gráfico irão movimentar movimentar-se se para os pontos extremos do ciclo, calculados pela cinemática inversa, representando o movimento real do manipulador. 4.6 FLUXOGRAMA O código foi desenvolvido tendo por base o algoritmo da Figura 32.. Fundamentado ne nestes passos o software foi implementado. Figura 32 – Fluxograma de Supervisão 39 Ao iniciar o programa, o algoritmo espera por um comando manual do usuário para posicionar o manipulador no ponto desejado. O controle nesta etapa é feita de forma independente, cabendo ao usuário do sistema especificar qual grau deseja girar. Ao gravar a posição do manipulador, o algoritmo verifica se este é o segundo ponto, para dar início ao cálculo da cinemática direta. Feito todos os cálculos, de forma transparente para o usuário, o sistema está pronto para iniciar o ciclo de movimentação automática, indo do ponto inicial ao final de forma contínua e repetida, até que o usuário pressione o botão Parar. 40 CAÍTULO 5 RESULTADOS E DISCURSSÕES DISCURS 5.1 APLICAÇÃO DO SUPERV SUPERVISÓRIO EM UM MANIPIULADOR REAL R O supervisório foi aplicado a uma planta de um manipulador antropomórfico de 6 DOF situada na Universidade de Fortaleza (UNIFOR), como mostra a Figura 33 e Figura 34 34. Foi apresentada a modelagem para um manipulador de seis graus de liberdade liberdade, todavia o projeto do manipulador da UNIFOR encontra-se encontra se em andamento e até então estava disponível somente dois graus de liberdade. Devido a esse fato o supervisório foi implementado para 3 graus tendo resultados experimentais de apenas dois graus. Figura Fig 33 – Foto da planta situada na UNIFOR A Figura 34 apresenta o circuito de acionamentos dos atuadores, é composta por um DSP para controle dos dispositivos, uma fonte alimentação, dois inversores para acioname acionamentos dos atuadores e duas placas de aquisição de corrente, as quais são usadas no controle de acionamento pelos DSPs. Existe também uma placa que concentra o sinal como foa dito ant anteriormente. 41 Figura 34 – Planta de acionamento dos motores O manipulador ador utilizado é um braço robótico SCORBOT com três graus de liberdade, desenvolvido na UNIFOR pelos alunos do curso de Engenharia de Controle e Automação. A planta dee acionamento desse robô foi desenvolvida na UFC pelos alunos do GPAR (Figura 34), de formaa que a união dos projetos resulta-se resulta se em um manipulador acionado por motores de indução (Figuras 35 e 36). Figura 35 – Desenho do manipulador 42 Figura 36 – Manipulador robótico Realizou-se ensaios do aplicativo acionando o punho e o cotovelo, somente um grau por vez e, por conseguinte, os dois simultaneamente. Os resultados para o acionamento de ambos os graus experimentais podem ser vistos nas Figuras 37, Figuras 38. Figura 37 – Posição angular do cotovelo 43 Figura 38 – Posição angular do punho A variação do gráfico que representa o movimento do cotovelo é justificável, pois esse grau tem um motor de indução que aciona uma redução e ainda possui o cotovelo e a sua própria estrutura mecânica como carga. Como o punho é o grau com carga menor, sua variação é bem inferior se comparado ao cotovelo, em torno de 0,2 radianos. Para se efetuar os ensaios foram feitos os seguintes passos. Testaram-se, inicialmente, os sinais de gatilho dos interruptores. Estando esses em situação normal de funcionamento, averiguam-se os sinais de realimentação das posições dos rotores dos atuadores bem como as posições dos respectivos graus de liberdade. Em seguida, configura as características iniciais do supervisório, carrega-se o código de cada DSP de acordo com o seu respectivo atuador. E, finalmente, aumenta-se o barramento dos inversores para os atuadores começarem a executar as ações oriundas do supervisório. 44 CONCLUSÃO O principal objetivo desse trabalho foi o estudo e implementação de um software de controle aplicado a um manipulador robótico. Após todos os estudos realizados, foi atingido o objetivo da resolução do problema da cinemática direta e inversa para o posicionamento de um manipulador robótico, viabilizando o termino do aplicativo. O manipulador desenvolvido pode ser implementado em qualquer indústria onde se tenha trabalho repetitivo, mão de obra humana exposta a ambientes insalubres ou onde se deseja reduzir custos com funcionários e obter uma maior confiabilidade na linha de produção. A utilização da rede de comunicação RS-485, mostrou-se bastante vantajosa, pois com ela pôde-se alocar todos os controladores em um mesmo canal de comunicação. Com isso aperfeiçoou-se o protocolo de comunicação, bem como os tempos de acionamento das máquinas do manipulador. Os resultados colhidos foram satisfatórios, notando-se uma variação nos gráficos de posição angular dos graus, todavia justificados. Espera-se melhoria nesse aspecto, pois o projeto do manipulador está em fase de atualização do hardware responsável pelo acionamento dos motores. Para trabalhos futuros propõe-se, a implementação da rotina de recepção do supervisório. Propõe-se, também, a implementação de um controle por análise de imagem através de uma câmera no manipulador, onde este irá decidir qual objeto, dentre vários, deve manipular e desviar de obstáculos que estiverem pelo caminho durante o posicionamento. 45 REFERÊNCIAS BIBLIOGRÁFICAS [1] ABADIA, G. F., Modelagem dos movimentos funcionais robóticos assistidos para a reabilitação dos membros superiores: redução dos graus de liberdade de um manipulador antropomórfico, Dissertação de Mestrado. 2010, 104f. : Il., figs, tabs. – Universidade Federal de Goiás, Goiânia. [2] AXELON, J., Serial Port Complete: Programming and Circuits for RS-232 and RS-485 Links and Networks, Lakeview Researsh, Madison, WI, 1998. [3] CABRAL, Eduardo. Cinemática da posição de robôs Manipuladores. 2003. 25 f. Monografia – Universidade de São Paulo, São Paulo. [4] CABRAL, Eduardo. Robôs Industriais. 2010. Livro em Elaboração – Universidade de São Paulo, São Paulo. [5] LOPES, M. A. Modelagem cinemática e dinâmica de manipuladores de estrutura em série. FEUP – DEMEGI, 2002 [6] SANTOS, V. M. F., Robótica Industrial: Apontamentos teóricos, exercícios para aulas práticas e problemas de exames resolvidos, Universidade de Aveiro, 2003-2004 [7] SPONG, M. W., HUTCHINSON, S., VIDYASAGAR, M. Robot Modelling and Control. Wiley Student Edition, New Delhi, 2006. [8] CHAPMAN, Stephen J. Programação em Matlab para Engenheiros. 1. ed. São Paulo: THOMSON, 2003. [9] MATSUMOTO, Élia Yathie. Matlab 7 – Fundamentos. 1. ed. São Paulo: ÉRICA, 2004. [10] TABOSA, M.E.A.(2008).Modelagem e Construção de um Braço Robótico Didático, Trabalho de Conclusão de Curso (TCC) do curso de Engenharia de Controle e Automação, UNIFOR.