manipulador industrial aplicações auto...

68
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO António Manuel Lopes de Azevedo Manipulador Industrial Aplicações Auto Ajustáveis Projecto realizado para a obtenção do grau de Licenciado em Engenharia Electrotécnica e de Computadores Ramo de Automação, Produção e Electrónica Industrial pela Faculdade de Engenharia da Universidade do Porto Projecto realizado sob orientação do Professor Doutor António Paulo Gomes Mendes Moreira Professor Doutor Paulo José Cerqueira Gomes da Costa Universidade do Porto Faculdade de Engenharia Departamento de Engenharia Electrotécnica e de Computadores Julho de 2007

Upload: hoangdung

Post on 26-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

António Manuel Lopes de Azevedo

Manipulador Industrial Aplicações Auto Ajustáveis

Projecto realizado para a obtenção do grau de Licenciado em Engenharia Electrotécnica e de Computadores Ramo de Automação, Produção e Electrónica Industrial pela

Faculdade de Engenharia da Universidade do Porto

Projecto realizado sob orientação do Professor Doutor António Paulo Gomes Mendes Moreira Professor Doutor Paulo José Cerqueira Gomes da Costa

Universidade do Porto

Faculdade de Engenharia Departamento de Engenharia Electrotécnica e de Computadores

Julho de 2007

Page 2: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 2 de 68

Gostaria de agradecer à minha família que sempre me apoiou mesmo nos momen-

tos menos bons e deu confiança durante este importante ciclo da minha vida que está agora a terminar.

Agora vai ser a doer… Um agradecimento especial ao Prof. Dr. António Paulo Moreira, meu orientador,

pelo apoio dado e pelos sábios conselhos fornecidos ao longo do desenvolvimento deste projecto.

Ao Bruno, Diogo, Pedro e Tópê, companheiros de longa data, com os quais parti-

lhei muitas horas de trabalho nos laboratórios para os diversos projectos que tivemos ao longo da nossa carreira académica e também um convívio e camaradagem sem igual. Um espectáculo!

À equipa 5DPO, pela oportunidade de me juntar a um projecto grandioso, com o

qual muito aprendi ao longo destes últimos três anos e comigo partilhado. Um agradecimento especial ao André Scolari e Hélder Oliveira por terem parti-

lhado comigo muitos quilómetros de estrada nas viagens para as competições robóticas. Aos meus colegas de curso, por terem conseguido suportar as agruras da vida

estudantil. Pessoal, a boa vida acabou…

Page 3: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 3 de 68

RESUMO Com o advento dos computadores, surgiram novas tecnologias que permitem uma

melhoria dos processos de fabrico. Os sistemas de CAD e CAM juntamente com a gran-de utilização de robôs industriais permitiram melhorar os processos com o objectivo de torná-los economicamente mais viáveis e menos penosos para os humanos.

A automatização das fábricas é uma realidade bem presente no nosso quotidiano.

Existem vários processos fabris operados por pessoas onde a sua presença não é necessá-ria e que sendo automatizados sofreriam uma melhoria de eficiência e qualidade.

No entanto, dado o largo espectro de processos, é necessário analisar cada caso

individualmente em busca da melhor solução. É neste contexto que se insere este projecto que consiste em encontrar uma solu-

ção para um processo de carda de sapatos, operação que até agora era executada manual-mente e onde se podia prescindir do operário. Assim, pretende-se utilizar um manipula-dor robótico industrial para automatizar o processo que consiste em fazer o desbaste da sola lateral do sapato, quando esta fica mal colocada. O uso deste robô possibilitará um processo mais rápido e com melhor qualidade.

Page 4: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 4 de 68

ABSTRACT With the dawn of the computer age, new technologies have risen that allow im-

provements on the industrial process. CAD and CAM systems together with great use of industrial robots have allowed improvements on such processes with the purpose of mak-ing them more economically viable and less painful for humans.

Factory automatization is a reality present in our days. Several manufacture proc-

ess exist that are operated by people where such presence is not necessary. The automati-zation of such processes would drastically improve its quality and efficiency.

Nonetheless, given the large spectrum of processes, it is necessary to analyze each

case individually in search for the proper automation solution. It is in this context that this project is inserted that consists in finding a solution

for a shoe carding process, which until now was executed manually and where the worker could be replaced by a machine. Thus, it is intended to utilize an industrial ma-nipulator robot to automatize the process that consists in rough-hewing the lateral side of the shoe sole, when it’s badly placed. The use of this robot will enable a faster and better quality process.

Page 5: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 5 de 68

Índice 1. Introdução..................................................................................................... 11

1.1. Descrição do problema ......................................................................... 12 1.2. Estado da arte........................................................................................ 14 1.3. Estruturação do relatório ...................................................................... 15

2. Estudo da cinemática do manipulador.......................................................... 16 2.1. Cinemática Directa ............................................................................... 17 2.2. Cinemática Inversa ............................................................................... 22 2.3. Simulador ............................................................................................. 28

3. Manipulador Industrial ................................................................................. 30 3.1. Sistemas de coordenadas ...................................................................... 31

4. Comunicação ................................................................................................ 34 4.1. Modos de comunicação ........................................................................ 34 4.2. Configuração dos dispositivos.............................................................. 36 4.3. Comunicação Ethernet.......................................................................... 37 4.4. Serviço de pacotes BSC........................................................................ 40 4.5. Implementação do software de comunicação....................................... 43

5. Operação Auto Ajustável ............................................................................. 48 5.1. Aplicação DXF..................................................................................... 48 5.2. Linguagem INFORM III ...................................................................... 50 5.3. Desenvolvimento do programa............................................................. 51

5.3.1. Fase inicial ....................................................................................... 51 5.3.2. Interface ferramenta-controlador ..................................................... 52 5.3.3. Cálculo da correcção........................................................................ 55 5.3.4. Necessidade de interpolação............................................................ 56 5.3.5. Generalização para diferentes números ........................................... 59

5.4. Resultados experimentais ..................................................................... 60 5.4.1. Geração de pontos............................................................................ 61

5.5. Comparação com manipulador ABB.................................................... 63 6. Conclusões.................................................................................................... 64

Page 6: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 6 de 68

Índice de figuras

Figura 2.1 – Relação entre frames ............................................................................. 17 Figura 2.2 – Esquemático do manipulador e localização de frames e parâmetros .... 19 Figura 2.3 – Localização da origem do pulso ............................................................ 23 Figura 2.4 – Esquemático das juntas do manipulador que determinam wristo .......... 24 Figura 2.5 – Projecção em 0 0X Y− para determinar 1θ .............................................. 25 Figura 2.6 – Projecção em 1 1X Y− para determinar 2θ e 3θ ...................................... 25

Figura 2.7 – Interface do simulador desenvolvido..................................................... 29 Figura 3.1 – Ligações do controlador ........................................................................ 30 Figura 3.2 – Esquema de interfaces do controlador................................................... 30 Figura 3.3 – Definição do sistema de coordenadas da ferramenta ............................ 31 Figura 3.4 – Calibração do TCP ................................................................................ 32 Figura 3.5 – Definição das coordenadas do utilizador............................................... 33 Figura 4.1 – Modo de comunicação Host Control..................................................... 35 Figura 4.2 – Configuração dos dispositivos............................................................... 36 Figura 4.3 – Serviços para comunicação ethernet ..................................................... 37 Figura 4.4 – Detalhe da utilização dos serviços......................................................... 38 Figura 4.5 – Formato das tramas................................................................................ 39 Figura 4.6 – Pacote de início e fim ............................................................................ 40 Figura 4.7 – Pacotes de resposta ................................................................................ 40 Figura 4.8 – Pacotes de transmissão com cabeçalho ................................................. 40 Figura 4.9 – Pacotes de transmissão .......................................................................... 40 Figura 4.10 – Esquema do pacote .............................................................................. 41 Figura 4.11 – Cálculo do BCC................................................................................... 42 Figura 4.12 – Temporizadores do controlador........................................................... 42 Figura 4.13 – Implementação do serviço de supervisão ............................................ 43 Figura 4.14 – Serviço de pacotes para envio de ficheiro ........................................... 44 Figura 4.15 - Serviço de pacotes para recepção de ficheiro ...................................... 45 Figura 4.16 – Interface da aplicação para transferência de ficheiros......................... 46 Figura 4.17 – Interface da aplicação de controlo do manipulador............................. 47 Figura 5.1 – Interface da aplicação DXF................................................................... 49 Figura 5.2 – Movimentação com interpolação circular ............................................. 51 Figura 5.3 – Ferramenta utilizada .............................................................................. 53 Figura 5.4 – Comparação do encaixe no sapato ........................................................ 54 Figura 5.5 – Ligação das entradas digitais................................................................. 54 Figura 5.6 – Cálculo do vector perpendicular normalizado....................................... 55 Figura 5.7 – Determinação de t1 e t2 .......................................................................... 56

Page 7: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 7 de 68

Figura 5.8 – Resultado da simulação MATLAB ....................................................... 57 Figura 5.9 – Aproximação à forma do sapato............................................................ 59 Figura 5.10 – Pontos gerados..................................................................................... 61

Índice de tabelas

Tabela 2.1 – Parâmetros DH do manipulador............................................................ 19 Tabela 4.1 – Constituição das tramas de supervisão.................................................. 39 Tabela 4.2 – Propósito do número de cabeçalho ....................................................... 41 Tabela 5.1 – Comparação dos tempos de execução da interpolação ......................... 60 Tabela 5.2 – Resultados do teste de comparação....................................................... 63

Page 8: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 8 de 68

Nomenclatura utilizada Visto recorrer bastante ao uso de funções trigonométricas, irá ser necessária utili-

zar uma notação que simplifique a escrita. Assim, a notação a utilizar para descrever o co-seno do ângulo 1θ será

( )11 1cos c cθθ = = .

De forma idêntica, a notação para descrever o seno do ângulo 1θ será

( )11 1sin s sθθ = = .

O seno e o co-seno para a soma e diferença dos ângulos 1θ e 2θ será descrita pela

notação seguinte. ( )( )

1 2 12 1 2 1 2

1 2 12 1 2 1 2

cos

sin

c c c s s

s c s s c

θ θ

θ θ

+ = = −

+ = = +

A função ( )Atan2 ,y x calcula 1tan yx

− ⎛ ⎞⎜ ⎟⎝ ⎠

mas usa os sinais de x e y para deter-

minar o quadrante onde se encontra o ângulo resultante. O intervalo de valores da função

é ( 180 ,180 ⎤− ⎦ .

Assim ( )Atan2 2, 2 135− − = − e ( )Atan2 2, 2 45= .

O subscrito e o sobrescrito atrás de uma letra identificam em que sistema de coor-

denadas a quantidade está escrita. Por exemplo, ABT representa a matriz de transformação

homogénea que especifica a relação entre os sistemas de coordenadas { }A e { }B .

Page 9: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 9 de 68

A cinemática é o ramo da física que procura descrever os movimentos sem se preocupar com as forças que originam estes movimentos. A análise destas forças é dei-xada para a dinâmica. Para isso, organiza informação sobre a posição, o deslocamento, o espaço percorrido, a velocidade, a rapidez e a aceleração dos corpos.

O UDP, User Datagram Protocol, é um dos protocolos do conjunto de protocolos

da Internet (habitualmente designado por TCP/IP). Corresponde ao nível 4 do modelo OSI, visto ser um protocolo de transporte, sem ligação. Visto ser um protocolo orientado à transacção, é utilizado quando a entrega fiável de pacotes não é necessária, por exem-plo em streams de áudio e vídeo. Os pacotes UDP têm pouco processamento, definindo apenas o número das portas e um protocolo de verificação de erros. Está definido no RFC 768.

O TCP, Transmission Control Protocol, é um protocolo de transporte orientado à

conexão diferente do UDP, que não o é, porque verifica se os dados são enviados de for-ma correcta, na sequência apropriada e sem erros, pela rede. Está definido no RFC 793.

Um pacote é um conjunto de dados a serem transmitidos encapsulados numa

mensagem maior. O RFC, Request for Comments, são documentos que definem normas e protocolos

para a Internet e onde se fazem as discussões de nível técnico para a definição de novos protocolos.

O RS-232 é um standard para a interligação série de dados binários entre um DTE

(Data terminal equipment) e um DCE (Data circuit-terminating equipment). O BSC, também conhecido como Binary Synchronous Communications, é um

protocolo de comunicação introduzido pela IBM muito utilizado não só em computado-res como em máquinas de levantamento automático de dinheiro e sistema de radar.

O paradigma cliente-servidor é usado em processos em que a aplicação servidora

aguarda conexões, executa serviços e retorna resultados. Já a aplicação cliente é quem estabelece a conexão com o servidor, envia mensagens para o mesmo e aguarda pelas mensagens de resposta.

O código ASCII, American Standard Code for Information Interchange, é um

código binário para representar caracteres em computadores. Os primeiros trinta e dois caracteres são caracteres de controlo para comunicação.

Page 10: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 10 de 68

O BCC, Block check character, designa caracter(es) de controlo para verificar se houve erro de transmissão.

Um Job, tarefa, é o programa que o controlador executa para dar as instruções de

movimentações ao manipulador. O espaço de trabalho de um manipulador é a região do mundo que o robô pode

alcançar através dos seus movimentos, onde pode levar a cabo as tarefas programadas. A junta é a interligação entre dois segmentos de um manipulador que permite o

movimento relativo entre os mesmos numa única dimensão ou grau de liberdade. O TCP, ponto central da ferramenta, corresponde à origem do sistema de coorde-

nadas da ferramenta. CAD – Computer-aided Design – Desenho Auxiliado por Computador O DXF, Drawing eXchange Format, é um arquivo de intercâmbio para modelos

de CAD. CAM – Computer-Aided Manufacturing – Manufactura Auxiliada por Computa-

dor

Page 11: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 11 de 68

Introdução A história da automação industrial é caracterizada por períodos de rápidas

mudanças nos seus métodos. Como causa ou efeito, estes períodos parecem estar inti-mamente ligados à economia global. A utilização de robôs industriais, que emergiram no mercado nos anos 60, juntamente com os sistemas CAD e CAM caracterizam as últimas tendências na automatização dos processos de fabrico. Estas tecnologias estão a levar a automação industrial para uma nova era.

Embora a venda dos manipuladores robóticos tenha diminuído, as previsões indi-

cam que o uso de manipuladores robóticos está ainda em franco desenvolvimento. Inde-pendentemente das previsões, é certo que estes manipuladores irão desempenhar um papel cada vez maior nos processos industriais.

O uso dos manipuladores industriais nos processos de fabrico actuais está limita-

do a tarefas simples e repetitivas. No entanto, estas tarefas estão a tornar-se limitativas para o investimento que é feito. Deste modo, é necessário valorizar o investimento, adap-tando-os a tarefas mais complexas. Para que tal seja possível, será necessário dotar os manipuladores de ferramentas que melhorem a sua performance. Estas ferramentas são utilizadas para melhorar a percepção do manipulador e incluem câmaras para visão artifi-cial, sensores laser, microswitches e sensores de força e pressão.

O aumento da gama de aplicações destes robôs está a ser acompanhada por um

alargamento nas indústrias que os utilizam. As indústrias automóvel e cerâmica conti-nuam a liderar a sua utilização, mas outras indústrias como a metalúrgica, electrónica, plástica e calçado começam a surgir como novos utilizadores desta tecnologia.

Page 12: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 12 de 68

1.1. Descrição do problema Actualmente, os manipuladores robóticos são utilizados para fazer entre muitas

outras, operações de pintura, manipulação de objectos, paletagem e soldas industriais. No entanto, os métodos actuais de produção estão a mudar. As novas exigências do mercado e a variedade de produtos fabricados levam a que as ordens de fabrico sejam cada vez mais pequenas e diversificadas, o que leva a que os manipuladores robóticos que traba-lham os produtos em fabrico e necessitam de ser reprogramados no fim de cada ordem de fabrico sejam facilmente adaptáveis para uma nova ordem de fabrico.

Hoje em dia, a maioria das programações feitas aos manipuladores leva várias horas a ser feitas, visto ser feita através de um método do tipo aprender fazendo, ou seja, o programador leva o manipulador a passar pelo trajecto que é necessário este fazer, registando estas posições de maneira a que este posteriormente repita na produção da ordem de fabrico. Este tempo de paragem para reprogramação é inadmissível em várias indústrias onde as ordens de fabrico são relativamente pequenas e nalguns casos chega-se mesmo a ter diversos tamanhos do mesmo tipo de peça na mesma ordem de fabrico.

Tais circunstâncias originam a que certas fases de produção onde estes manipula-

dores são utilizados sejam feitas à mão, originando a paragem destes manipuladores, não permitindo a qualidade e retorno financeiro esperados para o investimento feito.

Assim, o aumento da gama de aplicações dos manipuladores robóticos é um passo necessário para maximizar o mesmo. A introdução de sensores nos manipuladores e nas tarefas que eles efectuam é um passo neste sentido. No entanto, este facto tem de ser acompanhado pela aquisição e manipulação computacional dos resultados dos sensores de maneira a utilizá-los no processo industrial de fabrico.

Page 13: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 13 de 68

O problema em causa refere-se à indústria do calçado, nomeadamente ao processo de carda do sapato. Este processo surge devido ao facto da colocação da sola no sapato não ser feita de um modo preciso, isto porque existem imprecisões na manufactura quer do sapato quer da sola. Assim, este processo consiste em aparar a sola do sapato para uniformizar o sapato e a sola.

Actualmente, este processo é executado manualmente por inspecção visual e pos-terior uso de uma lixa automática para fazer a apara, um método que não garante uma grande precisão e qualidade. Além desse facto, tem também de ser considerado o desgas-te do operário. Resolvendo este problema permite à fábrica alocar os recursos humanos a tarefas onde a sua intervenção é obrigatória.

Assim, pretende-se resolver o problema através do uso de uma ferramenta insta-

lada no manipulador robótico que junte a capacidade de aparar a sola com a um método de inspecção adequado e preciso, algo que será difícil de atingir visualmente, mas tendo uma instrumento em contacto com o sapato e que consiga efectuar pequenas correcções pode ser conseguido mais facilmente.

Além disso, o sistema adapta-se automaticamente a diferentes tamanhos de sapa-tos do mesmo modelo e quando for mudado o modelo do sapato, o sistema necessita ape-nas de uma reprogramação rápida.

Assim, além da melhoria da qualidade do processo, consegue-se também maior rapidez no processo e diminui-se o tempo de setup do processo.

Page 14: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 14 de 68

1.2. Estado da arte Actualmente, existe grande interesse em expandir a utilização dos manipuladores

robóticos industriais de maneira a serem capazes de desempenhar tarefas mais complexas e exigentes. Neste contexto, existem alguns trabalhos já realizados neste domínio de apli-cação.

Uma das principais dificuldades que se encontram é o facto de não haver um algoritmo ou método sistemático que possibilite o desenvolvimento rápido deste tipo de aplicações. Assim, tem de se analisar cada caso individualmente.

A grande maioria dos trabalhos já implementados utiliza câmaras como elemento

de percepção do mundo que rodeia o manipulador e interage com ele, já que este tipo de sensores permite retirar muita informação sobre o mundo. No entanto, quando é necessá-ria grande precisão, têm de ser conjugados outro tipo de sensores como sensores de posi-ção e acelerómetros, sensores de pressão e força e sensores laser.

A universidade de Dublin desenvolveu um sistema que permite a identificação,

localização e manipulação de objectos colocados no espaço de trabalho do manipulador utilizando várias câmaras.

A universidade de Stanford está a desenvolver um projecto que consiste na mani-

pulação de objectos baseado na percepção táctil destes utilizando o manipulador. O traba-lho consiste em percorrer o espaço de trabalho do manipulador à procura do objecto, sen-do este explorado através de sensores que simulem o tacto, por exemplo, microswitches, utilizando uma estimação bayesiana de maneira a obter uma localização exacta do mes-mo, tendo depois a possibilidade de este ser manipulado.

Por fim, a Ford desenvolveu uma aplicação genérica para programação de mani-

puladores baseada em trajectórias geradas a partir de um computador, podendo utilizar o CAD do objecto para as gerar ou sendo o próprio operador a criar estas trajectórias. Esta aplicação facilita a criação da tarefa que o manipulador terá de executar.

Page 15: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 15 de 68

1.3. Estruturação do relatório Este relatório foi estruturado em capítulos mediante a área abordada, estando

estes organizados segundo a ordem pela ordem que foram analisados e trabalhados. Deste modo, no capítulo seguinte será elaborado um estudo detalhado da geome-

tria mecânica dos manipuladores, introduzindo um conceito importante, o da cinemática do manipulador que será utilizado ao longo deste trabalho. Este estudo é importante na medida em que permite uma familiarização com alguns aspectos importantes que serão utilizados nos capítulos subsequentes, tais como a movimentação do manipulador e a descrição e utilização de frames.

No terceiro capítulo será feita uma introdução ao manipulador a utilizar, abordan-

do os aspectos mais importantes que permitem a sua manipulação e movimentação. O quarto capítulo será dedicado ao software desenvolvido para efectuar a comu-

nicação com o manipulador. Será ainda brevemente discutido a implementação de um software de controlo de trajectória do manipulador.

No quinto capítulo será focada a metodologia utilizada para o desenvolvimento da

solução para o problema em questão e a sua implementação. No capítulo final será feita a conclusão, onde serão abordados os resultados obti-

dos, as dificuldades encontradas durante o desenvolvimento deste projecto.

Page 16: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 16 de 68

2. Estudo da cinemática do manipulador No estudo da robótica, há grande interesse em saber a localização dos objectos no

espaço. Num nível simples mas importante, estes objectos são descritos por dois atribu-tos, a sua posição e orientação.

Um manipulador robótico pode ser visto como um conjunto de corpos articulados

por juntas. Estes corpos são chamados links ou segmentos. Cada junta forma a ligação entre um par de segmentos vizinhos. Na extremidade útil do manipulador estará colocada uma ferramenta, por exemplo, uma garra.

De maneira a facilitar a descrição da posição e orientação de um objecto no espa-ço, coloca-se um sistema de coordenadas na origem deste, uma frame.

Uma configuração do manipulador é um conjunto de valores, vector, que repre-

senta os ângulos das juntas entre pares de segmentos consecutivos. A cinemática directa possibilita a resolução do problema de calcular a posição e

orientação da extremidade útil do manipulador. Ou seja, dado um vector de ângulos de juntas, a cinemática directa calcula a posição e orientação da frame dessa extremidade relativamente à da base.

De forma análoga, a cinemática inversa possibilita a determinação de todas as

possíveis combinações de ângulos de juntas que podem ser usados para atingir uma dada posição e orientação. Este é um ponto muito importante na implementação prática dos manipuladores robóticos.

Ao contrário da cinemática directa, a cinemática inversa não tem sempre uma

solução única. Devido ao facto das equações da cinemática serem não lineares, pode sur-gir o facto de ou não existir solução, ou ter uma solução, várias ou até infinitas soluções.

A existência ou inexistência de soluções para a cinemática define o conceito de espaço de trabalho do manipulador. A inexistência de solução significa que o manipula-dor não consegue atingir a posição e orientação desejada porque esta se encontra fora do espaço de trabalho do manipulador.

Assim, neste capítulo, pretendo apresentar o estudo que efectuei no que diz res-

peito à cinemática directa e inversa do manipulador que irei utilizar.

Page 17: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 17 de 68

2.1. Cinemática Directa De modo a poder resolver a cinemática directa, é necessário relacionar as diferen-

tes frames. Para relacionar quaisquer duas frames, posso decompor essa relação em duas partes, uma rotação pura e uma translação pura. Assim, a matriz que relaciona duas fra-mes, chamada matriz de transformação homogénea, é também ela composta por duas partes:

0 0 0 1R o

T⎡ ⎤

= ⎢ ⎥⎣ ⎦

, onde R é a matriz de rotação e o o o vector de translação.

Figura 2.1 – Relação entre frames

Por exemplo, para descrever a frame { }B relativamente a { }A , a matriz homogé-

nea de transformação ficaria do seguinte modo: ˆ ˆ ˆ

0 0 0 1

A A A AA B B B BORGB

X Y Z PT⎡ ⎤

= ⎢ ⎥⎢ ⎥⎣ ⎦

, onde ˆABX , ˆA

BY e ˆABZ são os vectores

que fazem a rotação de { }A para { }B e ABORGP é o vector de translação.

Para poder utilizar a matriz de transformação homogénea, é necessário com-

preender duas importantes operações. Quando se pretende descrever a frame { }C relativamente a { }A , sendo conheci-

das as relações entre { }B e { }A e { }C e { }B , podemos calculá-la usando essas relações.

Assim, A A BC B CT T T= .

É também importante saber como relacionar a frame { }A relativamente a { }B ,

sendo conhecida a sua relação inversa. Assim, 1B AA BT T −= .

Page 18: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 18 de 68

De um modo geral, para calcular uma matriz de transformação, são necessários seis parâmetros, três para a rotação e três para a translação. Com o intuito de reduzir o número de parâmetros, o que facilita os cálculos, utiliza-se a convenção de Denavit-Hartenberg (DH). Com esta convenção, utilizam-se apenas quatro parâmetros.

Para o correcto uso da convenção DH, é necessário definir correctamente as fra-

mes do manipulador. Assim, deve-se escolher: 1. ˆ

iZ como eixo de actuação da junta i ;

2. ˆiX como sendo a perpendicular comum entre ˆ

iZ e 1ˆ

iZ − , ou, se os eixos se

intersectarem, como normal ao plano que contém os dois eixos; 3. Escolher iY de modo a completar a regra da mão direita.

Os quatros parâmetros utilizados nesta convenção são, para cada junta:

• ia - comprimento do segmento;

• iα - ângulo de torção do segmento;

• id - deslocamento do segmento;

• iθ - ângulo da junta.

Na convenção DH, cada transformada homogénea resulta das seguintes transfor-

mações: 1

, , , ,

0

0 0 0 1

i i i i

i i i i i i

i i i i i i

i i

ii z x d x a x

i

i

i

T Rot Trans Trans Rot

c s c s s a c

s c c c s a s

s c d

θ α

θ θ α θ α θ

θ θ α θ α θ

α α

− =

−⎡ ⎤⎢ ⎥

−⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

Page 19: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 19 de 68

De seguida, apresento um esquemático do manipulador industrial a estudar e a respectiva tabela com os parâmetros DH.

Figura 2.2 – Esquemático do manipulador e localização de frames e parâmetros

Tabela 2.1 – Parâmetros DH do manipulador

i iα ia id iθ

1 90 0 1d 1θ

2 0 2a 0 2θ

3 90 0 0 3θ

4 90− 0 4d 4θ

5 90 0 0 5θ

6 0 0 6d 6θ

Note-se que 2 31 a cm= , 1 45 d cm= , 4 54 d cm= e 6 9 d cm= .

Page 20: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 20 de 68

Observando com mais atenção, conclui-se que é possível descrever o manipulador em duas partes, o braço, correspondente às primeiras três juntas e o pulso, corresponde às últimas três.

Recorrendo à equação da matriz de transformação, tenho:

1 1

1 101

1

0 0

0 0

0 1 00 0 0 1

c s

s cT

d

θ θ

θ θ

⎡ ⎤⎢ ⎥

−⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

2 2 2

2 2 2

2

212

0

0

0 0 1 00 0 0 1

c s a c

s c a sT

θ θ θ

θ θ θ

−⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

3 3

3 323

0 0

0 0

0 1 0 00 0 0 1

c s

s cT

θ θ

θ θ

⎡ ⎤⎢ ⎥

−⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

4 4

4 434

4

0 0

0 0

0 1 00 0 0 1

c s

s cT

d

θ θ

θ θ

−⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥−⎢ ⎥⎢ ⎥⎣ ⎦

5 5

5 545

0 0

0 0

0 1 0 00 0 0 1

c s

s cT

θ θ

θ θ

⎡ ⎤⎢ ⎥

−⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

6 6

6 656

6

0 0

0 0

0 0 10 0 0 1

c s

s cT

d

θ θ

θ θ

−⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

Page 21: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 21 de 68

É agora possível formar a matriz de transformação homogénea 06T a partir da

multiplicação das seis matrizes de transformação individuais. Assim:

11 12 13

21 22 230 0 1 2 3 4 56 1 2 3 4 5 6

31 32 33

0 0 0 1

x

y

z

r r r pr r r p

T T T T T T Tr r r p

⎡ ⎤⎢ ⎥⎢ ⎥= =⎢ ⎥⎢ ⎥⎣ ⎦

( ) ( )( ) ( )

( )( ) ( )

( )

11 1 5 6 4 4 6 1 6 23 5 23 4 5 6 4 6

12 6 4 1 1 23 4 6 5 1 4 1 23 4 5 23 5

13 1 4 5 1 5 23 23 4 5

21 6 1 23 5 1 5 6 4 4 6 23 1 4 5 6 4 6

22 1 4 6 5 4 6 1 23 5 6 23 6

r s c c s c s c c s s c c c c s s

r c c s c c s s c s s c c c c s s

r s s s c c s c c s

r c s s s c c c s c s c s c c c s s

r c c c c s s s s s s c c

⎡ ⎤= + + − + −⎣ ⎦⎡ ⎤= − − + −⎣ ⎦

= + +

= − − + + −

= − + − − + ( )( )

( )

( )( ) ( )

4 4 5 6

23 5 1 23 5 23 4 1 1 4

31 4 5 6 23 23 6 5 23 4 6

32 6 23 4 6 4 5 23 23 5

33 23 5 4 23 5

6 1 4 5 1 2 2 4 6 5 23 6 23 4 5

2 2 1 4 6 5 1 23 6 5 23 4 1 1 4

x

y

z

s c c s

r c s s s c c s c sr c c c s c c s s s sr c s s s c c s c sr c c c s s

p d s s s c a c d d c s d c c s

p a c s d d c s s d s c c s c s

p

⎡ ⎤+⎣ ⎦= + −

= + −

= − − +

= − +

⎡ ⎤= + + + +⎣ ⎦= + + + −

= − ( )23 4 6 5 2 2 6 4 23 5 1c d d c a s d c s s d+ + + +

Estas equações constituem a cinemática do manipulador em estudo. Elas especifi-

cam como calcular a posição e orientação da frame { }6 relativamente à frame { }0 do

manipulador.

Page 22: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 22 de 68

2.2. Cinemática Inversa O problema da cinemática inversa do manipulador é mais complexo que o da

cinemática directa. Esta complexidade de resolver esta cinemática surge pelo facto de as equações da cinemática do manipulador serem não lineares.

Note-se que se pretende saber todas as possíveis combinações de ângulos de junta

que permitem atingir uma determinada posição e orientação. Para solucionar esta cinemática, temos doze equações para seis graus de liberda-

de, correspondentes aos seis ângulos de junta. Mas, das noves equações que nos dão a rotação só três são independentes. Juntando estas com as três equações que dão a posi-ção, temos seis equações para seis incógnitas.

No entanto, estas equações são não lineares e transcendentais, o que pode colocar dificuldade na sua resolução.

Tendo em conta a não linearidade das equações, tem de ser considerada a possibi-

lidade da inexistência de solução e de múltiplas soluções. Assim, se não existir nenhuma combinação de ângulos para atingir o destino, significa que este está fora do espaço de trabalho do manipulador.

Em termos de espaço de trabalho de um manipulador, é importante distinguir dois aspectos. O espaço de trabalho hábil é a porção de espaço que a extremidade útil do manipulador consegue atingir em todas as orientações possíveis. O espaço de trabalho atingível é a porção de espaço que o manipulador consegue atingir em, pelo menos uma orientação. Como rapidamente se conclui, o espaço de trabalho hábil é um subconjunto do espaço de trabalho atingível.

A possibilidade de existência de múltiplas soluções pode levar a problemas, visto

que o sistema tem de escolher uma. Os métodos para escolher uma solução são variados. O critério escolhido foi o que minimiza o deslocamento, que é um critério que além da sua simplicidade, é razoável em termos de critério de escolha.

Visto que o manipulador tem seis eixos, sendo que três são maiores e os outros três são menores, para a minimização do deslocamento foi implementada uma função cujo mínimo será considerada a melhor solução.

É também de referir que caso existissem obstáculos, estes iriam necessariamente interferir na escolha da solução.

Page 23: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 23 de 68

Não existe nenhum algoritmo genérico que permita a resolução da cinemática inversa. No entanto, podem ser seguidas dois tipos de estratégias: a analítica e a numéri-ca. Visto serem iterativas, as soluções numéricas são mais lentas do que as analíticas. Além disso, em caso de existirem múltiplas soluções, as soluções numéricas encontram apenas uma solução que nem sempre será a melhor.

Existem dois métodos de usar a estratégia analítica para a resolução da cinemáti-

ca: o algébrico, que consiste na resolução das equações trigonométricas, não lineares e o geométrico, que consiste em reduzir o problema geral em vários problemas de interpreta-ção geométrica.

Para poder resolver a cinemática inversa através da estratégia analítica, é necessá-rio que os manipuladores com seis juntas rotacionais tenham três eixos vizinhos que se intersectem num ponto.

Tendo em conta que o manipulador em estudo satisfaz a condição necessária para a resolução analítica e tendo em conta que os métodos numéricos têm as desvantagens especificadas, vou resolver a cinemática inversa através de uma estratégia analítica, mais especificamente usando métodos geométricos.

Figura 2.3 – Localização da origem do pulso

Page 24: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 24 de 68

Visto que os eixos 4, 5 e 6 do manipulador se intersectam no ponto wristo , centro

do pulso deste, é possível desacoplar a resolução da cinemática inversa ou seja, em vez de resolver um problema de cinemática inversa de seis juntas resolvem-se dois problemas de três juntas: a cinemática inversa de posição e a cinemática inversa de orientação.

Sabendo que [ ], , Tw w w wo x y z= , define-se

13 6 130 0 06 6 6 6 6 6 6 23 6 23

33 6 33

0ˆ 0

1

x x

w y y

z z

p r p d ro o d z o d R p d r p d r

rp p d r

⎡ ⎤⎡ ⎤ −⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥= − = − = − = −⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ −⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦

( )( )

2 1 2 4 1 23 1 2 2 4 23

2 1 2 4 1 23 1 2 2 4 23

1 2 2 4 23

w

w

w

x a c c d c s c a c d s

y a s c d s s s a c d sz d a s d c

= + = +

= + = +

= + −

Como se observa, a posição wristo só depende das três primeiras juntas. Assim,

recorrendo a projecções do manipulador no plano perpendicular ao eixo da junta, é pos-sível determinar as expressões que determinam os três primeiros ângulos de junta.

Figura 2.4 – Esquemático das juntas do manipulador que determinam wristo

Page 25: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 25 de 68

Fazendo a projecção em 0 0X Y− , é determinada facilmente a solução para 1θ .

Figura 2.5 – Projecção em 0 0X Y− para determinar 1θ

( )( )

1 w w

1 w w

Atan2 y ,x

' Atan2 y ,x 180

θ

θ

=

= +

Note-se que há duas soluções distintas, devido a facto de podermos rodar esta jun-

ta de 180 graus. Fazendo agora a projecção em 1 1X Y− , determino 2θ e 3θ .

Figura 2.6 – Projecção em 1 1X Y− para determinar 2θ e 3θ

2 2 2p wrist wristx x y= + e 1p wristy z d= −

Aplicando a lei dos co-senos ao triângulo ABC, tenho que

( )( )2 2 2 2

1 43

1 4cos

2p px y a d

Da d

θ+ − +

= =

Logo, ( )23 Atan2 1 ,D Dθ = ± − .

Page 26: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 26 de 68

Na figura anterior, observa-se que 2θ β ψ= − .

( )pAtan2 y , pxβ = e ( )2 2 2 2

1 42 2

1

cos2

p p

p p

x y a dA

a x yψ

+ + −= =

+

Logo, ( ) ( )22 pAtan2 y , Atan2 1-A ,Apxθ = − .

Neste momento, 1θ , 2θ e 3θ são conhecidos, faltando determinar as equações

para as últimas três juntas.

Como 0 0 36 3 6R R R= , preciso agora de resolver ( ) ( ) 13 0 0

6 4 5 6 3 6, ,R R Rθ θ θ−

= .

Deste modo, tenho que

1 23 1 23 103 1 23 1 23 1

23 23 0

c c c s sR s c s s c

s c

−⎡ ⎤⎢ ⎥= − −⎢ ⎥⎢ ⎥⎣ ⎦

e 4 5 6 4 6 4 5 6 4 6 4 5

36 4 5 6 4 6 4 5 6 4 6 4 5

5 6 5 6 5

c c c s s c c s s c c sR s c c c s s c s c c s s

s c s s c

− −⎡ ⎤⎢ ⎥= + − +⎢ ⎥⎢ ⎥−⎣ ⎦

.

Igualando a terceira coluna das matrizes:

4 5 1 23 13 1 23 23 23 33

4 5 1 23 13 1 23 23 23 33

5 1 13 1 23

c s c c r s c r s rs s c s r s s r c rc s r c r

= + +⎧⎪ = − − +⎨⎪ = −⎩

5θ fica imediatamente determinado como

( )25 1 13 1 23 1 13 1 23Atan2 1 ,s r c r s r c rθ ⎛ ⎞= − − −⎜ ⎟⎝ ⎠

.

Se 5 0s ≠ , posso resolver 4θ como

( )4 1 23 13 1 23 23 23 33 1 23 13 1 23 23 23 33Atan2 ,c s r s s r c r c c r s c r s rθ = − − + + + .

Finalmente, para 6θ vem

5 6 1 11 1 21

5 6 1 12 1 22

s c s r c rs s s r c r− = −⎧⎨ = −⎩

( )6 1 12 1 22 1 11 1 21Atan2 ,s r c r s r c rθ = − − +

Page 27: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 27 de 68

Se 5 0θ = ou 180 , a solução para 4θ , 5θ e 6θ altera-se. Nesse caso, só é possí-

vel determinar a diferença entre 4θ e 6θ . Assim, vou assumir que nestes casos 4 0θ = , o

que origina as seguintes soluções

( )

4

5

6 12 11

0

0Atan2 ,r r

θ

θ

θ

=

=

= −

( )

4

5

6 12 11

180

0Atan2 ,r r

θ

θ

θ

=

=

= − −

Visto existirem duas soluções para 1θ e para 3θ , estas equações calculam quatro

soluções. Adicionalmente, devido ao formato do pulso, pulso esférico, existem mais qua-tro soluções determinadas virando o pulso. Para cada uma das quatro soluções calculadas acima, é ainda calculada a solução virada, através de

4 4

5 5

6 6

' 180'

' 180

θ θθ θ

θ θ

= += −

= +

Depois de todas as soluções serem calculadas, algumas delas poderão ser descar-

tadas devido a restrições dos ângulos de junta. Das restantes, utilizarei o método atrás descritos para calcular a melhor solução.

Page 28: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 28 de 68

2.3. Simulador Após ter concluído a dedução da cinemática directa e inversa do manipulador,

passei à sua implementação computacional, utilizando para esse efeito o ambiente de desenvolvimento Delphi 5, que incorpora a linguagem de programação Pascal, orientada ao objecto, o que permite efectuar de forma simples o desenvolvimento de interfaces.

O software desenvolvido permite simular as duas cinemáticas deduzidas. Assim,

o simulador pode ser dividido em três partes. Na primeira parte, é apresentada a parametrização necessária para o manipulador,

ou seja, são definidos os parâmetros DH a utilizar nos cálculos subsequentes. São ainda definidas as restrições impostas devido aos limites dos ângulos de junta.

Na segunda parte do simulador é implementada a cinemática directa do manipu-

lador, onde são calculados o posicionamento e orientação do manipulador a partir de uma combinação de ângulos de junta, no caso de esta ser válida.

Na terceira parte do programa, é implementada a cinemática inversa do manipu-

lador, onde dado o posicionamento e orientação deste, são calculadas todas as combina-ções possíveis de ângulos de junta, verificando de seguida se os deslocamentos pretendi-dos são válidos, isto é, não violam os limites das juntas, e nesse caso, determinando qual a melhor combinação de ângulos de junta a utilizar para atingir a posição e orientação pretendidas.

Como tinha sido referido, esse cálculo é feito utilizando uma função que consiste em calcular o deslocamento total a efectuar, dando “pesos” diferentes às juntas. Como este manipulador é constituído por três juntas maiores seguidas de três juntas mais pequenas, esta forma de minimizar o deslocamento a efectuar permite o favorecimento do deslocamento das juntas mais pequenas visto que geralmente esta solução será menos dispendiosa em tempo e energia.

Page 29: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 29 de 68

Figura 2.7 – Interface do simulador desenvolvido

Como se observa na figura anterior, a aplicação permite simular as duas cinemáti-

cas. A cinemática directa necessita de todos os ângulos de junta válidos como parâme-

tros de entrada. A cinemática inversa precisa de saber a posição para onde se pretende movimen-

tar o manipulador, bem como a posição actual deste, em termos de ângulos de junta. A melhor solução é então calculada, actualizando depois o valor actual dos ângulos de jun-ta.

A aplicação desenvolvida é importante pois permite testar movimentações a exe-

cutar pelo manipulador offline. Esta aplicação pode ainda ser usada para fazer o controlo do manipulador através do computador.

Page 30: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 30 de 68

3. Manipulador Industrial O manipulador robótico industrial utilizado para a realização deste trabalho foi o

Motoman YR-HP6-B10, que é controlado através da consola. O controlador utilizado para fazer a interface entre o manipulador e a consola é o Motoman NX100.

Figura 3.1 – Ligações do controlador

A consola é a interface homem-máquina ligada ao controlador do manipulador e

através desta é possível controlar os seis eixos do manipulador manualmente, permitindo a gravação das posições onde o manipulador se encontra de modo a permitir a repetição da sequência de movimentos guardada. É ainda possível escrever programas usando a linguagem da marca, INFORM III, escolher o programa a executar, definir sistema de coordenadas, fazer a definição do TCP. Como é normalmente a partir da consola que é controlado o manipulador, possui dois botões de paragem de emergência.

O controlador é um computador dedicado que interpreta as instruções, executando

as tarefas programadas através de algoritmos de controlo das juntas do manipulador. O controlador disponibiliza também um conjunto de funcionalidades extras, tais como aquisição de entradas e escrita de saídas e comunicação com interface RS-232 e Ethernet.

Figura 3.2 – Esquema de interfaces do controlador

Neste capítulo apresentarei funcionalidades implementadas pelo controlador

NX100 que facilitam a implementação do trabalho a desenvolver.

Page 31: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 31 de 68

3.1. Sistemas de coordenadas Uma funcionalidade de grande utilidade implementada pelo controlador é o facto

de disponibilizar vários sistemas de coordenadas ou frames. Existem vários tipos de fra-mes, dividindo-se em dois grupos, frames externas e frames do manipulador.

As frames externas são constituídas pela frame da base que move o manipulador

como um todo, ou seja, controla o caminho de um manipulador em movimento e pela frame da estação de trabalho, que corresponde a qualquer frame que não esteja incluída nas frames do manipulador nem seja a frame da base.

O segundo grupo divide-se em cinco tipos. Nestes sistemas coordenados, excluin-

do o sistema coordenado das juntas, o movimento do pulso, ou seja, dos três eixos mais pequenos é efectuado sobre o TCP, isto é, estando o TCP fixo, o pulso movimenta-se sobre esse ponto.

O sistema de coordenadas das juntas permite que cada eixo do manipulador se movimente independentemente.

Existe também o sistema de coordenadas cartesiano que faz com que o manipula-dor, qualquer que seja a sua posição, se movimente paralelamente aos eixos X, Y e Z padrão que tem a origem localizado no centro da base do manipulador e o eixo Z perpen-dicular à mesma.

É ainda possível movimentar através de coordenadas cilíndricas, movimentando-se o eixo θ à volta do eixo S do manipulador e o eixo Z coincidente com o eixo Z carte-siano.

Incluem-se ainda neste grupo os dois sistemas coordenados mais utilizados, o da ferramenta e o do utilizador.

O sistema de coordenadas da ferramenta permite ao manipulador movimentar-se

paralelamente aos eixos X, Y e Z definidos na extremidade da ferramenta, assumindo que a direcção efectiva da ferramenta é o eixo Z.

Figura 3.3 – Definição do sistema de coordenadas da ferramenta

Page 32: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 32 de 68

Como é fácil perceber, para se utilizar este sistema de coordenadas, será necessá-rio primeiro definir a ferramenta a utilizar. Esta definição pode ser feita manualmente, definindo os parâmetros X, Y, Z e respectivas rotações da ferramenta em relação ao pul-so.

No entanto, a melhor maneira de definir a ferramenta a utilizar é fazer a sua cali-bração utilizando a funcionalidade disponibilizada para esse efeito. A calibração da fer-ramenta é uma função que permite que estas informações sejam inseridas fácil e correc-tamente.

Assim, para assegurar que o manipulador possa executar movimentações lineares e circulares correctamente, é preciso inserir informação precisa sobre as dimensões da ferramenta e é necessário definir a posição do TCP. Quando esta função é utilizada, o TCP é automaticamente calculado e inserido no ficheiro da ferramenta. O que é registado na calibração da ferramenta são as coordenadas do TCP em várias posições em coorde-nadas de ângulos de junta.

Para uma correcta calibração do TCP, as posições escolhidas para a fazer devem ser o mais ortogonais possíveis e devem ser tais que o TCP esteja de todas as posições esteja no mesmo sítio.

Figura 3.4 – Calibração do TCP

Page 33: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 33 de 68

No sistema de coordenadas do utilizador, o manipulador movimenta-se paralela-

mente aos eixos X, Y e Z definidos pelo utilizador. O sistema de coordenadas do utilizador é usado quando pretendemos actuar sobre

um plano. Nesse caso, as posições de actuação são memorizadas neste sistema de coor-denadas. Ao utilizar este sistema, quando for preciso mover ou reorientar o plano, basta fazer o mesmo com o sistema de coordenadas, não sendo necessário fazer este procedi-mento para todas as posições de actuação.

Outras operações onde este sistema simplifica a utilização do manipulador são por exemplo, a utilização de várias estações de trabalho pelo manipulador sendo nesse caso definido um sistema de coordenadas para cada estação de trabalho ou ao fazer ope-rações de arranjos ou empilhamentos de paletes, podendo ser programado previamente o valor do incremento do desvio definindo o sistema de coordenadas na palete.

As coordenadas do utilizador são definidas por três pontos que precisam de ser

previamente ensinados ao manipulador através de outras operações de movimentação e de seguida guardados no ficheiro de coordenadas de utilizador. Os três pontos que defi-nem este sistema de coordenadas são ORG, XX e XY.

Figura 3.5 – Definição das coordenadas do utilizador

Como é possível observar, ORG é a origem do referencial, sendo XX definido no

eixo do X. O ponto XY é definido no lado do eixo do Y do sistema de coordenadas do utilizador. A direcção dos eixos Y e Z são determinadas por este ponto.

Page 34: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 34 de 68

4. Comunicação A necessidade de comunicação com o manipulador é evidente, visto que utiliza-

ção d consola para funções como a programação do manipulador pode tornar-se monóto-na e muito demorada, enquanto que a programação num computador evolui a um ritmo mais acelerado. Assim, neste capítulo será apresentada os modos de comunicação com o manipulador. Será ainda explicada a implementação efectuada.

4.1. Modos de comunicação O controlador do manipulador disponibiliza transmissão de dados com um com-

putador por dois meios físicos diferentes, porta série e ethernet, num protocolo do tipo BSC. A comunicação serve não só para transmissão de jobs, mas também para fazer o controlo do manipulador através de um computador através do envio de comandos. Toda as transmissões são efectuadas no modo ASCII.

A transmissão de dados está dividida em três modos. O modo DCI, Data Communication by Instruction, funciona quando, durante a

execução de um job, são executadas instruções para efectuar transmissão de dados, sejam variáveis ou mesmo jobs.

O modo Stand-alone serve para comunicação com o computador através da utili-zação da consola de programação do controlador. Com esta função, é possível transmitir jobs e dados de condicionamento do manipulador (descrição de ferramentas, frames de utilizador, etc.).

O modo Host Control serve para transmissão de jobs, pedir informações sobre o controlador e manipulador e controlar o sistema através de envio de comandos de um computador.

Para ser possível comunicar com o controlador, este tem de estar no modo remo-

to. Para o fazer, é necessário rodar o interruptor da consola para [REMOTE].

Page 35: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 35 de 68

Para implementação da comunicação com o controlador, utilizei para meio físico a ethernet, comunicando com o controlador no modo Host Control.

A grande vantagem da comunicação ethernet sobre a porta série é a rapidez de transmissão, visto que o controlador do manipulador permite apenas um velocidade máxima de transmissão de 9600 b/s enquanto que a comunicação por ethernet é possível a 10Mb/s.

Quanto à escolha do modo de comunicação, a escolha é clara, pois o modo Host Control permite a transmissão de jobs para o controlador e o controlo por um computa-dor externo do manipulador.

Figura 4.1 – Modo de comunicação Host Control

Page 36: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 36 de 68

4.2. Configuração dos dispositivos Antes de implementar a comunicação ethernet, é necessário configurar o compu-

tador e o controlador. Visto não haver necessidade de maior expansão, foi instalada uma rede ponto a ponto.

O computador é configurado recorrendo às propriedades TCP/IP da ligação de

área local. Para configurar o controlador, é necessário aceder ao modo de manutenção deste.

Para o fazer, é necessário estar a pressionar o botão [MAIN MENU] quando se liga o manipulador. Em seguida, acede-se ao menu de configuração da ethernet.

As configurações efectuadas estão ilustradas na imagem seguinte.

Figura 4.2 – Configuração dos dispositivos

Page 37: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 37 de 68

4.3. Comunicação Ethernet Para efectuar a comunicação ethernet, irei utilizar o protocolo UDP. Este protoco-

lo é facilmente implementado, visto a estrutura do pacote de comunicação ser simples de criar e necessitar de menos tramas para efectuar a comunicação, por exemplo relativa-mente ao TCP, embora tenha a desvantagem de não garantir o sucesso da transmissão. No entanto, visto a sua implementação ser numa rede pequena não se considera funda-mental esta desvantagem face às vantagens que apresenta.

A arquitectura de ligação utilizada para a comunicação é a cliente-servidor, sendo

que tanto o controlador como o computador podem actuar como cliente e servidor. A comunicação ethernet disponibiliza dois serviços, que são necessários para a

transmissão ser efectuada com sucesso. Assim, a transmissão de dados deve iniciar-se com o serviço de supervisão para iniciar a conexão, sendo de seguida efectuado o serviço de transferência de pacotes BSC, onde se incluirá a mensagem a transmitir, terminando com a utilização do serviço de supervisão para efectuar a desconexão.

Figura 4.3 – Serviços para comunicação ethernet

Os serviços disponibilizados estão localizados em porta diferentes. Assim, o ser-

viço de supervisão está disponível na porta 10000 e o serviço de transferência BSC está localizado na porta 10006.

Page 38: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 38 de 68

O serviço de supervisão é usado para iniciar e fechar a ligação. Através dele, o cliente faz o pedido de ligação e de início de transmissão de pacotes BSC sendo que o servidor lhe dará as respostas a esses pedidos. Se as respostas a ambas as perguntas forem positivas, é iniciada a transmissão BSC.

Após a transmissão de pacotes BSC, é efectuado um processo semelhante para fechar a ligação, com o cliente a fazer o pedido de fim de serviço e de fim de ligação, sendo a resposta dada pelo servidor.

Figura 4.4 – Detalhe da utilização dos serviços

Na figura anterior, é possível observar em maior detalhe o modo como as tramas

são enviadas. Todas as tramas, independentemente do serviço têm o mesmo formato, começan-

do com um cabeçalho onde está incluído o tipo de serviço, 0x0000 para supervisão e 0x0006 para transmissão de pacotes BSC, e o comprimento da trama. A figura seguinte ilustra o formato geral das tramas.

Page 39: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 39 de 68

Figura 4.5 – Formato das tramas

O bloco Data Part é a parte da trama que vai ser diferente dependendo do serviço

e do objectivo da trama, por exemplo, os pacotes BSC a ser transmitidos são encapsula-dos nesta trama nesse bloco.

Na transmissão de tramas do serviço de supervisão, a constituição deste bloco varia dependendo da trama a enviar. De seguida, vou exemplificar a constituição do blo-co para as diferentes tramas.

Tabela 4.1 – Constituição das tramas de supervisão

Tipo de trama Bloco Data Part Pedido de conexão Comando (0x0001)

Resposta a pedido de conexão Comando (0x0001), Estado da ligação

(0x0000/0xFFFF) Pedido de início de serviço Comando (0x0003), Serviço a iniciar (0x0006)

Resposta a pedido de início de serviço Comando (0x8003), Serviço a iniciar (0x0006), Estado do serviço a iniciar (0x0000/0xFFFF)

Pedido de fim de serviço Comando (0x0005), Serviço a parar (0x0006)

Resposta a pedido de fim de serviço Comando (0x8005), Serviço a parar (0x0006), Estado do serviço a parar (0x0000/0xFFFF)

Pedido de desconexão Comando (0x0002)

Resposta a pedido de desconexão Comando (0x8002), Estado da ligação

(0x0000/0xFFFF)

Page 40: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 40 de 68

4.4. Serviço de pacotes BSC Para transmitir a informação propriamente dita, é utilizado o serviço de pacotes

BSC. Este dispõe de vários tipos de tramas dependendo da sua função. Para se iniciar a comunicação de pacotes, o cliente tem de enviar o pacote ENQ e

esperar pela resposta do servidor. No fim da transmissão, o cliente envia o pacote EOT para indicar o fim da transmissão BSC. A resposta aos pacotes será sempre ACKx, onde x será 0 ou 1 alternando continuamente. No caso de erro ou falha de transmissão, é enviado o pacote NAK para pedir a retransmissão do pacote.

Figura 4.6 – Pacote de início e fim

Figura 4.7 – Pacotes de resposta

Para fazer a transmissão da mensagem, são usadas as tramas seguintes. Na pri-

meira figura, observa-se que o pacote contém um o sinal SOH e um cabeçalho. Esta parte é sempre usada no primeiro pacote da mensagem a transmitir.

Se a mensagem se for mais comprida do que o bloco de texto, é enviado o sinal ETB em vez de ETX para indicar que a mensagem ainda irá continuar.

A segunda figura mostra o pacote de transmissão de continuação, ou seja, quando não foi possível enviar toda a mensagem no primeiro pacote.

Figura 4.8 – Pacotes de transmissão com cabeçalho

Figura 4.9 – Pacotes de transmissão

Page 41: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 41 de 68

O pacote da mensagem é composto por, além dos sinais SOH, STX, ETB/ETX e BCC, um cabeçalho e por um bloco de texto.

O bloco de texto tem uma restrição imposta pelo protocolo de limite máximo de 256 caracteres.

O cabeçalho serve para indicar o que se pretende transmitir. Para isso, este está divido em duas partes, um número de cabeçalho e um número de código, que estão sepa-rados por uma vírgula.

Figura 4.10 – Esquema do pacote

O número de cabeçalho indica o que se pretende com a transmissão.

Tabela 4.2 – Propósito do número de cabeçalho

Número de cabeçalho Objectivo 01 Comando por computador

02 Transferência de ficheiro (Job, dados de

condicionamento, informação do sistema)

03 Manipulação de variável (p. ex.: string,

real, posição do manipulador) 04 Manipulação de sinais de entrada/saída 90 Resposta

Como se depreende, para cada cabeçalho, podem ser pedidas vários tipos de

informação. Por exemplo, podemos querer transferir um Job para o manipulador ou rece-bê-lo do mesmo, podemos querer ler ou escrever numa variável. Para fazer essa distin-ção, é então utilizado o número de código.

Page 42: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 42 de 68

Para fazer o controlo de erros de transmissão, é calculado o BCC, que são caracte-res que permitem a verificar se a transmissão foi efectuada sem erros.

Este cálculo é feito através da soma dos caracteres da trama. No caso de termos uma trama com cabeçalho, o cálculo efectua-se desde STX até ETX/ETB. Se a trama não tiver cabeçalho, STX não se inclui no cálculo.

Os caracteres BCC são compostos colocando primeiro da metade baixa do byte BCC seguido da metade alta do byte BCC.

Figura 4.11 – Cálculo do BCC

Para fazer o controlo da transmissão, existem dois temporizadores para proteger

contra falhas na resposta. O primeiro monitoriza o tempo que demora a resposta enquanto que o segundo

monitoriza o tempo que entre decorre entre a comunicação do controlador até à recepção da trama seguinte.

Figura 4.12 – Temporizadores do controlador

São ainda implementados dois parâmetros para controlar o número máximo de

reenvios dos pacotes se ocorrerem falhas na transmissão, sendo que um controla o núme-ro de reenvios de NAK quando ocorre erro no cálculo do BCC e outro controla o número de reenvios de ACKx quando não se obtém resposta ou esta é inválida.

Page 43: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 43 de 68

4.5. Implementação do software de comunicação As aplicações para comunicação com o controlador foram desenvolvidas utilizan-

do o ambiente de programação Delphi 5, que incorpora a linguagem de programação orientada ao objecto Pascal, possibilitando um fácil desenvolvimento de interface com o operador e com as camadas demais baixo nível, neste caso, os componentes utilizados para comunicação.

O módulo desenvolvido para comunicação foi dividido em duas partes, de acordo

com os serviços de transmissão. Assim, foi criado um módulo para fazer a comunicação do serviço de supervisão e outro com o serviço de pacotes BSC.

O serviço de supervisão é implementado de acordo com o modelo apresentado na

figura seguinte.

Figura 4.13 – Implementação do serviço de supervisão

Page 44: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 44 de 68

Para fazer a transferência de pacotes, foram implementados dois gestores de paco-tes, conforme se deseje enviar um comando ou um ficheiro ou então receber um ficheiro.

Observa-se na figura seguinte, o modelo seguido para implementação do gestor

de envio de ficheiros. Como se observa, o computador envia o código ENQ para estabe-lecer a ligação de dados. Após a confirmação, envia o pacote com código e o nome ficheiro a enviar, seguido dos restantes pacotes que constituem o ficheiro. As respostas do controlador são sempre ACK0/1 alternadamente, embora se ocorrer um erro no envio do pacote, o controlador retornará o código NAK para pedir o reenvio do último pacote. Após o envio do último pacote, o computador envia o código EOT e espera a comunica-ção do controlador para averiguar o sucesso da transmissão. Esta averiguação é feita através do envio de um pacote do controlador com um código de resposta. Se a transmis-são tiver sucesso, o código a retornar será 0000. Qualquer outro código significará que a transferência falhou. Nesse caso, é necessário averiguar qual o motivo da falha de trans-missão e resolvê-la.

Quando se envia um comando em vez de um ficheiro, a implementação é pareci-

da. As diferenças surgem no envio do primeiro pacote que em vez do nome do ficheiro terá o comando a enviar, sendo que o seu cabeçalho será também diferente, como visto anteriormente. Outra diferença será que o pacote deverá terminar com ETX, visto que o comando é constituído por um pacote apenas. A resposta do controlador será diferente consoante o comando enviado, ou seja, se o comando não necessitar de dados na respos-ta, esta será idêntica à obtida na transferência de ficheiros. Se a resposta necessitar de dados, estes serão enviados em vez do código de resposta e o cabeçalho será diferente.

Figura 4.14 – Serviço de pacotes para envio de ficheiro

Page 45: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 45 de 68

Para fazer a recepção de ficheiros, é enviado o código ENQ para estabelecer liga-ção. Após o seu estabelecimento, é enviado o pacote com o nome do ficheiro que se pre-tende receber terminado com o código ETB, visto que não se chegou ao fim da ligação. Após ser feito o pedido, envia-se o código EOT e espera que o controlador transmita os pacotes que compõem o ficheiro. A cada pacote recebido, o computador envia o código ACK0/1 alternadamente se o tiver recebido ou então o código NAK para pedir o reenvio do pacote. Se o nome do ficheiro pedido não for encontrado, o controlador envia um pacote com essa informação.

Figura 4.15 - Serviço de pacotes para recepção de ficheiro

Page 46: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 46 de 68

Foi desenvolvida uma aplicação que permite o envio de jobs e outro tipo de ficheiros de condicionamento do controlador e outra aplicação que possibilita o envio de instruções para controlo do manipulador pelo computador e que permite também monito-rização deste em tempo real.

Na figura seguinte, é possível observar a interface da aplicação desenvolvida para

transferir ficheiros. Para fazer o envio de ficheiro, é necessário abrir o ficheiro através do menu Win-

dow, Open. O ficheiro é mostrado no caixa de texto para serem feitas alterações caso o utilizador assim o entenda. Para enviar o ficheiro, basta pressionar no botão Send. Como já expliquei, existem diversos tipos de ficheiros a transmitir, facto que é detectável pelo programa, que envia o cabeçalho correcto consoante o ficheiro.

Para receber ficheiros, é necessário escolher de que tipo é. Se for pretendido um Job, é necessário também indicar o seu nome. De seguida, pressiona o botão Receive e guarda-se o ficheiro através do menu Window, Save. O programa está preparado para receber ficheiros do tipo Job, ferramenta, coordenadas de utilizador e variáveis.

Figura 4.16 – Interface da aplicação para transferência de ficheiros

Page 47: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 47 de 68

A aplicação para o controlo do manipulador dispõe de uma série de instruções predefinas, visto serem mais comuns e necessárias, para enviar que estão disponíveis numa caixa de escolha à esquerda. Após a selecção da instrução, pressiona-se o botão Send Command. Assim, torna-se fácil e intuitivo enviar estas instruções.

Está também disponível uma caixa de texto onde é possível enviar outras instru-ções e uma outra que permite saber se a instrução foi executada correctamente.

Activando o temporizador, a aplicação fará a leitura das posições do manipulador, sendo possível escolher se pretendemos saber a posição das juntas ou uma posição abso-luta XYZ do sistema de coordenadas em uso. As leituras serão depois apresentadas no gráfico para análise. Neste momento, podem ser examinados os diferentes ângulos de junta e a posição XY desenhada.

A aplicação dispõe de um modo de controlo de posição do manipulador através da modificação dos ângulos de junta. Assim, é possível fazer um programa no computa-dor e só mandar as instruções de movimentação para o manipulador. Esta é uma opção que pode ser apetecível se o programa a desenvolver for mais complexo, visto o contro-lador ter algumas limitações na linguagem disponibilizada.

Figura 4.17 – Interface da aplicação de controlo do manipulador

Page 48: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 48 de 68

5. Operação Auto Ajustável Neste capítulo, vou detalhar os passos seguidos para resolver o problema em

questão, utilizar o manipulador para criar uma operação de carda de sapatos automática capaz de corrigir erros e de ajustar automaticamente ao sapato.

5.1. Aplicação DXF O desenho dos sapatos é feito utilizando uma ferramenta de CAD. Por esse moti-

vo e para generalizar a situação de ter sapatos com diferentes formas, foi necessário criar uma aplicação que fizesse a transição dos pontos em CAD para um formato mais utilizá-vel para a resolução do problema.

O formato DXF, criado pela AutoDesk, é um formato de dados de CAD que per-mite a interoperabilidade entre o AutoCAD e outros programas. Sendo um formato aber-to, pode ser feita a sua leitura e interpretação dos dados.

Um ficheiro DXF é composto por pares de códigos e valores associados. Esses

códigos, denominados códigos de grupo, indicam o tipo de valor que se segue. Usando estes pares associados, um ficheiro DXF está organizado em secções compostas por registos, que por sua vez são composto por um código de grupo e um tipo de dados.

Cada secção inicia-se com o código de grupo 0 seguido pela frase SECTION. Segue-se o código de grupo 2 e uma frase que indicada o nome da secção, por exemplo ENTITIES. Cada secção inicia-se com o código de grupo e valores que definem os seus elementos. A secção termina com um 0 seguido da frase ENDSEC.

A organização de um ficheiro DXF é a seguinte:

• Secção HEADER – Contém informações genéricas sobre o desenho; • Secção CLASSES – Contém informação sobre classes definidas na aplica-

ção e são usadas noutras secções; • Secção TABLES – Contém definições de certos elementos; • Secção BLOCKS – Contém definição de entidades que compõem cada

bloco no desenho; • Secção ENTITIES – Contém informação sobre as entidades gráficas do

desenho; • Secção OBJECTS – Contém informação sobre objectos não gráficos do

desenho; • Secção THUMBNAILIMAGE – Contém uma imagem de resumo do

ficheiro; • END OF FILE.

Page 49: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 49 de 68

Tipicamente, a informação que interessa guardar encontra-se apenas na secção ENTITIES. Desse modo, para a implementação computacional só considerei essa secção.

A aplicação para fazer esta importação DXF foi desenvolvida utilizando o

ambiente de programação Delphi 5, que utiliza a linguagem orientada ao objecto Pascal, permitindo uma interface agradável para o utilizador.

Para desenvolver esta aplicação, utilizei uma biblioteca de desenho 3D que se pode instalar facilmente no Delphi 5 denominada GLScene. O uso deste componente permite ao utilizador visualizar o que está incluído no ficheiro.

Para fazer a conversão, basta abrir o ficheiro DXF e carregar no botão de proces-samento. Após este ser feito, os pontos utilizados são apresentados na caixa de texto à direita em baixo. Com os pontos neste formato, a sua exportação e utilização noutros programas é imediata.

Figura 5.1 – Interface da aplicação DXF

Page 50: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 50 de 68

5.2. Linguagem INFORM III A linguagem disponibilizada para programação no controlador chama-se

INFORM III. Esta linguagem é de fácil compreensão e simples programação. No entan-to, apresenta algumas limitações. A execução de um programa em INFORM III é feita sequencialmente, linha a linha.

O INFORM III é composto por uma instrução por uma instrução e um item adi-

cional. A instrução é usada para executar uma operação ou processamento. O item adi-cional corresponde aos parâmetros da instrução e dependem do tipo desta.

Por exemplo, na instrução MOVJ VJ=50.00, tem-se a instrução MOVJ e o item adicional da instrução VJ=50.00.

Existem diferentes tipos de instruções conforme interajam com as variáveis de entrada e saída, façam controlo do programa, façam operações, executem movimentação do manipulador ou sejam instruções condicionais.

Existem diferentes tipos de variáveis para utilizar. As variáveis podem ser intei-

ras, reais, bytes, frases (strings), doubles (inteiros de dupla precisão) e podem ser uma estrutura que guarda a posição do manipulador no sistema de coordenadas que se preten-der. Além destas, existe ainda a possibilidade de utilizar variáveis locais, do programa, que são do mesmo tipo das anteriores. O uso deste tipo de variáveis óptima o desempe-nho do programa e enquanto que as variáveis anteriores têm número máximo fixo, a úni-ca limitação destas é a memória interna do controlador.

Uma desvantagem da programação nesta linguagem é o facto de ser interpretada e

quando é programada no computador não possuir mecanismo de detecção de erros na programação, sendo apenas detectáveis quando se envia o programa para o controlador.

Para minimizar este defeito e visto não possuir ambiente de desenvolvimento próprio, todos os programas foram desenvolvidos utilizando a ferramenta Notepad++, que possibilita a definição de uma linguagem do utilizador. Assim, defini a linguagem INFORM III para poder ter um certo controlo no desenvolvimento do programa.

Page 51: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 51 de 68

5.3. Desenvolvimento do programa Para o desenvolvimento do programa e testes iniciais, os programas foram testa-

dos utilizando uma ferramenta composta por um lápis com um sistema de mola atrás para conferir uma elasticidade à ferramenta ao desenhar. Esta ferramenta foi calibrada utili-zando o método descrito anteriormente.

5.3.1. Fase inicial Após estar ter obtido todos pontos que compõem a forma do sapato, foi definido

um plano de desenho para teste e o sistema de coordenadas equivalente. Foi desenvolvido um Job para percorrer todos estes pontos através de uma inter-

polação circular, instrução de movimentação MOVC. Assim, é possível confirmar que os pontos estão bem definidos.

A instrução MOVC necessita de três pontos, ou seja, três instruções para ser execu-tada. Na figura seguinte, exemplifica-se o uso desta instrução. Para obter esta forma, temos de ter as seguintes instruções: MOVC P0, MOVC P1, MOVC P2.

Figura 5.2 – Movimentação com interpolação circular

O passo seguinte consistiu em percorrer os pontos através de um ciclo. Visto a

linguagem não contemplar um ciclo for ou while directamente, foi implementado utilizando uma instrução de JUMP IF var < n_max.

Como foi dito, para poder utilizar a movimentação através da interpolação circu-lar, MOVC, é necessário utilizar no mínimo três pontos, ou seja, para poder percorrer o ciclo é necessário que o número de pontos seja múltiplo de três.

Page 52: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 52 de 68

Há outro pormenor sobre este tipo de movimentação que é necessária ter em con-ta para ela não dar erro. Quando se pretende fazer uma movimentação com MOVC e os três pontos estão alinhados como uma linha recta, a instrução dá erro. Para evitar esta situação, é necessário antes de executar a movimentação, verificar se de facto os pontos estão em linha recta e nesse caso, executar movimentação linear com MOVL. Esse teste é feito através do cálculo do ângulo entre os vectores que ligam os pontos. Para P0, P1 e P2 estarem alinhados, o ângulo entre os vectores P0P1 e P2P1 tem de ser 180º, ou seja, utili-zando o produto interno, tenho que:

( )

( ) ( )( ) ( )( )( ) ( ) ( ) ( )

0 1 2 1 0 1 2 1 0 1 2 1

1 0 1 2 1 0 1 20 1 2 1 2 2 2 2

1 0 1 0 1 2 1 2

cos ,

cos ,

P P P P P P P P P P P P

x x x x y y y yP P P P

x x y y x x y y

⋅ =

− − + − −⇔ =

− + − − + −

Como ( )cos 180 1= − , só tenho de testar a expressão à direita e ver se dá -1. Nes-

se caso, terei de fazer as três movimentações com instruções lineares.

5.3.2. Interface ferramenta-controlador Tendo o programa a percorrer a forma do sapato, é necessário que o sistema con-

siga saber se a operação precisa de ser ajustada. Para isso acontecer, é necessário possuir uma ferramenta que se aperceba dessa necessidade de ajuste e depois o comunique ao controlador.

Assim, foi criada uma ferramenta, apalpador, que é montada no punho do mani-pulador e que permite através de quatro microswitches colocados dar informação sobre a necessidade de correcção. Assim, o apalpador possui dois microswitches que indicam a necessidade de correcção no plano XY e outros dois que indicam a necessidade de cor-recção em Z.

Page 53: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 53 de 68

Figura 5.3 – Ferramenta utilizada

Como se pode observar a ferramenta possui uma ponta que estará em contacto

permanente com o sapato durante todo o processo de carda. A ponta está montada num sistema que tem uma mola para permitir o avanço e recuo desta consoante haja necessi-dade. Se a ponta avançar de mais ou recuar de mais, o microswitch respectivo será acti-vado gerando um sinal digital que indicará que o programa terá de fazer uma correcção em XY para dentro ou para fora.

A ferramenta também poderá rodar em torno do eixo de rotação indicado na figu-ra. Quando rodar demasiado para dos lados, o mircroswitch respectivo será activado gerando um sinal digital que indicará a necessidade de correcção em Z.

A posição ideal da ferramenta, ou seja, a que não gera nenhuma necessidade de correcção, será quando esta está encostada ao sapato apenas o suficiente para não despo-letar os microswitches de correcção em XY e o mais horizontal possível. De referir ainda que estas zonas que não necessitam de correcção podem ser ajustadas mexendo na posi-ção dos microswitches, no entanto não devem ser muito pequenas, porque isso leva à instabilidade do processo, nem muito grandes, pois faz com que o programa seja menos sensível a correcções.

A fresa, instrumento que fará o desbaste da sola extra terá de ter uma peça em

forma de cunha que esteja solidária com ela, de forma a obter melhores resultados. A cunha é responsável por manter a fresa sempre à mesma distância do sapato. O conjunto cunha e fresa possuem uma mola que permite absorver pequenos desvios. O apalpador será responsável por detectar o nº do sapato no início da operação, corrigir a posição em Z e para corrigir grandes desvios no plano XY.

Page 54: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 54 de 68

Figura 5.4 – Encaixe no sapato

Depois de ter resolvido a forma de obter a informação sobre as eventuais correc-

ções a fazer, é necessário conseguir que o controlador leia estas entradas digitais. O con-trolador disponibiliza uma série de entradas e saídas digitais em placas de aquisição, como se fosse um autómato. Assim, os sinais gerados foram ligados às entradas digitais do controlador.

Figura 5.5 – Ligação das entradas digitais

As entradas digitais terão influência directa no programa já que o seu estado será

lido no fim de cada ciclo de instruções de movimentação.

Page 55: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 55 de 68

5.3.3. Cálculo da correcção A correcção em XY será calculada usando o primeiro e do último ponto de cada

ciclo de instruções MOVC. A correcção será dada pela normalização do vector perpendi-cular a esses pontos. Os microswitches darão a quantidade de correcção necessária, ou seja, através do número de vezes que ele estiver pressionado obtenho um factor que mul-tiplico pelo vector perpendicular normalizado. A correcção em Z será um valor constan-te, dependendo apenas do número de vezes que o microswitches forem pressionados. Devido às limitações da linguagem, os cálculos têm de ser feitos coordenada a coordena-da.

Figura 5.6 – Cálculo do vector perpendicular normalizado

O método usado para fazer o cálculo da correcção foi o seguinte: v(x,y) = P0(x,y)-P2(x,y) v_perpendicular(x,y) = (v(y),-v(x)) n = norma(v_prependicular) v_perp_norm(x) = v_perpendicular(x)/n v_perp_norm(y) = v_perpendicular(y)/n P0 = P0 + v_perp_norm(x,y) * K P1 = P1 + v_perp_norm(x,y) * K P2 = P2 + v_perp_norm(x,y) * K

K é um factor que é incrementado ou decrementado conforme é activado o mi-

croswitch de aumento ou diminuição.

Page 56: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 56 de 68

5.3.4. Necessidade de interpolação O método utilizado para fazer a correcção tem um problema. Visto que os pontos

estão espaçados e a leitura das entradas digitais é efectuada só entre cada ciclo de movi-mentações, verifica-se que o manipulador tem uma resposta lenta à correcção.

Para tentar resolver este problema, decidi gerar pontos intermédios para que o

espaço entre ciclo de movimentação diminuísse, o que faria com que a correcção se manifestasse mais rapidamente.

Uma vez decidido que iria utilizar este método, era necessário escolher o tipo de

interpolação a utilizar. Desde logo, surgiram duas possibilidades, a interpolação circular e a interpolação polinomial de segunda ordem.

A primeira alternativa parecia ser melhor para implementar, uma vez que não teria quaisquer problemas em gerar qualquer trajectória no plano XY. No entanto, ao fazer os cálculos para determinar as equações que determinam o centro e o raio da trajec-tória, cheguei à conclusão que a sua implementação não era viável devido ao cálculo computacional necessário.

Assim, restava a implementação da interpolação polinomial de segunda ordem.

No entanto se a resolve-se como ( )y f x= , iria ter pouca definição na parte da frente e de trás do sapato, visto que nessas zonas, a variação de x é pequena e a de y é grande. Por-tanto, a solução seria utilizar uma interpolação polinomial de segunda ordem paramétri-ca. Assim, teria

( )( )

( )( )

21

22

y f t y t at bt c

x f t x t dt et f

⎧⎧ = = + +⎪ ⎪⇔⎨ ⎨= = + +⎪ ⎪⎩ ⎩

Assim, tenho um parâmetro t segundo o qual x e y variam e já não há problema

em fazer qualquer tipo de trajectória. O método de calcular os parâmetros das equações tem agora uma implementação computacional mais simples.

Figura 5.7 – Determinação de t1 e t2

Page 57: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 57 de 68

Para resolver as equações, é necessário achar três parâmetros, t0, t1 e t2 de forma a poder resolver as equações e determinar os parâmetros das equações.

Assim, defini 0 0t = , 1 1 0t P P= − e 2 1 0 2 1t P P P P= − + − . A escolha de t2 como a

soma da norma dos vectores P0P1 e P1P2 deveu-se a que este método acarreta menos erro do que usando apenas a norma de P0P2.

Resolvendo as equações com respeito aos três pontos, tenho que:

( ) ( )

1 0 12

12 2

1 2 0 2 1 02 2

1 2 1 2

0

y y btat

t y y t y yb

t t t tc y

− −⎧ =⎪⎪⎪ − − −⎪ =⎨

−⎪⎪ =⎪⎪⎩

( ) ( )

1 0 12

12 2

1 2 0 2 1 02 2

1 2 1 2

0

x x etdt

t x x t x xe

t t t tf x

− −⎧ =⎪⎪⎪ − − −⎪ =⎨

−⎪⎪ =⎪⎪⎩

Utilizando estes parâmetros, posso agora gerar mais ou menos pontos variando o

valor de t. Para melhor adaptar a trajectória calculada à curva, esta foi recalculada sempre

que chegava ao ponto seguinte. No exemplo da figura anterior, a trajectória será utilizada desde P0 a P1. Uma vez passado o ponto, recalcula-se a trajectória, desprezando o P0 e adicionando o ponto seguinte, P3.

Para testar o funcionamento da interpolação e da geração dos pontos, foi feita

uma simulação do processo em MATLAB, tendo obtido o seguinte resultado.

Figura 5.8 – Resultado da simulação MATLAB

Como se pode observar, a interpolação funciona bem, mesmo nas zonas mais

difíceis, ou seja, a parte da frente e de trás do sapato.

Page 58: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 58 de 68

Na implementação da interpolação no controlador, pode ser feita uma simplifica-ção. Visto conseguir gerar os pontos intermédios, deixa de ser necessária a utilização da instrução MOVC, passando então a utilizar a instrução MOVL. A vantagem desta é que é apenas necessária uma instrução por cada ciclo.

O método seguido para implementar o programa está abaixo descrito: a,b,c,d,e,f = calcula_parametros(P0,P1,P2) n=0 t=0 enquanto n < n_pontos { t=t+passo verifica_entradas P=calcula_ponto(P0,P1,P2,a,b,c,d,e,f,t) faz_correccao(P) MOVL P PS=calcula_ponto(P0,P1,P2,a,b,c,d,e,f,t+passo) se PS a_frente_de P1 { n=n+1 t=0 P0=P1 P1=P2 P2=ponto(n) a,b,c,d,e,f = calcula_parametros(P0,P1,P2) } }

A função calcula_parametros faz o cálculo dos parâmetros da interpolação

usando método acima descrito. A função verifica_entradas faz a leitura das entradas e acciona a incrementa ou decrementa os parâmetros de correcção. A função faz_correccao é baseada no método descrito no ponto anterior. A função calcu-la_ponto faz a aplicação directa das equações para determinar o ponto seguinte.

A razão pela qual se faz a comparação de P1 com o ponto seguinte e não com o próprio ponto é para não se correr o risco do ponto gerado estar à frente de P1.

A comparação PS a_frente_de P1 através do calculo do produto interno entre os vectores PSP1 e P1P2. Se o resultado desse produto interno for positiva, então PS está à frente de P1.

Assim, a condição será ( )( )

( )( ) ( )( )1 2 1

1 2 1 1 2 1

0

0s

s s

P P P P

x x x x y y y y

− − >

⇔ − − + − − >

Page 59: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 59 de 68

5.3.5. Generalização para diferentes números Após conseguir a correcção para um determinado número, é necessário generali-

zar para que utilizando o mesmo modelo, ele seja capaz de se adaptar a diferentes núme-ros.

Para efectuar esse passo, é necessário iniciar o programa afastado do sapato e ir aproximando até termos um sinal de correcção para o exterior do sapato. Nessa altura, saberemos automaticamente o número e a correcção apropriada para este, necessitando apenas de fazer ligeiras correcções.

Figura 5.9 – Aproximação à forma do sapato

Como se pode verificar na figura, o programa inicia-se longe do sapato aproxi-

mando-se do ponto inicial linearmente. Quando detectar a correcção, inicia o processo de carda com o parâmetro de correcção actualizado.

Page 60: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 60 de 68

5.4. Resultados experimentais Utilizando a versão do programa que faz a interpolação polinomial de segunda

ordem paramétrica, efectuei alguns testes, comparando a velocidade de execução com a perfeição, isto é, pretendia saber qual era a melhor relação entre a velocidade de execu-ção e o passo da interpolação, visto que o passo da interpolação está directamente rela-cionado com o número de pontos da trajectória.

Estes testes foram feitos não prevendo a generalização para vários números. Além

disso, foi colocado o manipulador na sua velocidade máxima, ou seja, 1500 mm/s.

Tabela 5.1 – Comparação dos tempos de execução da interpolação

Passo Tempo de ciclo (s) Número de pontos 1 64 604 2 36 298

2,5 31 233 3 25 183 4 18 126

Estes resultados foram comparados com os obtidos usando os programas anterio-

res, sem efectuar interpolação. Utilizando a versão anterior com 62 pontos, obteve-se um tempo de ciclo de 7 segundos, enquanto que a versão com 123 pontos, isto é, cerca do dobro dos pontos, já demorava cerca de 14 segundos.

Quando o problema foi discutido com os responsáveis pela produção, foi-me

comunicado que a intenção seria conseguir um tempo de ciclo na ordem dos 10 segun-dos. Tal facto levou-me a ponderar outro tipo de solução, visto que utilizando a interpo-lação paramétrica, demorava na melhor das hipóteses quase o dobro desse tempo.

Os únicos resultados que me poderiam interessar são os das versões sem interpo-lação. No entanto, têm o defeito de ter pouca sensibilidade a erros, como foi atrás expli-cado.

Page 61: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 61 de 68

5.4.1. Geração de pontos A solução encontrada passou por não utilizar os pontos do CAD directamente no

programa, mas utilizá-los num gerador automático de pontos. O gerador de pontos foi implementado em MATLAB e permite gerar pontos igualmente espaçados em módulo, ou seja, consegue-se ter pontos distribuídos de tal forma que o módulo do vector que une cada ponto ao seguinte seria o mesmo.

Após esta primeira versão, o gerador de pontos foi refinado de maneira a conse-

guir espalhar os pontos de tal forma que sejam mais nas zonas mais críticas, ou seja, naquelas que têm uma curvatura maior, deixando menos pontos em zonas onde o movi-mento é mais linear.

A restrição a aplicar é que o limite máximo de pontos será de 128, visto que o é o

máximo disponibilizado pela memória do controlador.

Figura 5.10 – Pontos gerados

Na figura anterior, é possível observar o resultado dos pontos gerados utilizando o

gerador de pontos. Note-se que nas zonas de curvatura maior, o número de pontos aumenta, sendo que nas zonas mais lineares, o número de pontos é menor. O número de pontos gerados foi de 117, o que está dentro da capacidade da memória do controlador.

Utilizando este método, foi possível fazer dois testes. Utilizando estes pontos, foi

possível atingir 12 segundos utilizando a movimentação com MOVC, algo já mais próxi-mo do pretendido. Assim, esta foi a solução adoptada.

Utilizando esta trajectória, foi possível verificar que na sua execução, o manipu-lador acelera bastante nas regiões com menor curvatura, chegando em algumas alturas a dar um espécie de soluço, facto que não põe em causa a operação, visto que a fresa com-pensa esse factor.

Page 62: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 62 de 68

O primeiro teste realizado teve a ver com a comparação de resultados usando três versões do programa. Assim, na figura seguinte a azul está a versão inicial do programa com 60 pontos, a preto está a versão do programa utilizando os 117 pontos devidamente espalhados consoante as curvaturas e a vermelho, praticamente coincidente com o preto, está o desenho feito com a interpolação utilizando o passo 4, o que dá aproximadamente 126 pontos.

Figura 5.11 – Comparação de desenhos obtidos

Como se pode observar, nota-se que utilizando mais pontos se obtém uma solução

melhor. No entanto, a rapidez de execução não interfere com o nível de precisão do dese-nho, já que utilizando as versões a vermelho e a preto são praticamente coincidentes.

Page 63: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 63 de 68

5.5. Comparação com manipulador ABB Prevendo a implementação desta operação em manipuladores de outra marca, foi

efectuado um teste para comparação de tempos de execução de ciclo utilizando o mani-pulador ABB IRB140 M2000.

O teste consistiu em desenhar círculos com raio de 3,5 cm, o equivalente à maior

curvatura do sapato. Foram definidos 33 pontos por círculo e foram desenhados 4 círcu-los. Desta forma, teremos 132 pontos, que é bastante similar ao que teríamos no progra-ma do sapato.

Este teste foi efectuado à velocidade de 1000 mm/s.

Tabela 5.2 – Resultados do teste de comparação

Manipulador Tempo de execução (s) Motoman 31

ABB 28 Os tempos de execução obtidos foram similares, sendo até ligeiramente menor no

manipulador ABB, donde posso concluir que o programa do sapato também funcionaria num manipulador ABB.

Page 64: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 64 de 68

6. Conclusões O problema colocado era arranjar uma solução para o problema da carda dos

sapatos de uma fábrica. Tendo em conta que as ordens de fabrico são em função do modelo, a solução teria de ser capaz de se adaptar aos vários números da ordem de fabri-co, além de fazer as pequenas correcções para cada sapato.

Comecei por estudar a cinemática dos manipuladores de 6 eixos, como o que iria

ser utilizado, de forma a ganhar sensibilidade e experiência para o desenvolvimento do programa.

O passo seguinte consistiu em implementar o software de comunicação com o controlador de forma a ser capaz de enviar e receber jobs e instruções.

Finalmente, o último passo consistiu no desenvolvimento do programa que permi-ta resolver o problema da carda dos sapatos.

Foram exploradas várias soluções, incluindo uma onde é feita uma interpolação polinomial paramétrica. Esta opção garante melhor fiabilidade na correcção de erros, mas tem o defeito de ter uma execução mais lenta.

A solução final encontrada passou por gerar uma série de pontos devidamente espaçados de maneira a que a correcção seja a melhor possível sem comprometer o tem-po de execução do ciclo pretendido pelo cliente.

Na execução deste projecto foram encontradas algumas dificuldades. A primeira foi no estudo da cinemática do manipulador, visto ser uma temática

importante neste problema e que nunca tinha sido abordada. Houve também alguma dificuldade no desenvolvimento do programa para o

manipulador, visto que a linguagem disponibilizada apresenta várias limitações, não permitindo estruturar o código da mesma maneira que se utiliza em linguagens de alto nível como o Pascal e o C.

Houve ainda uma dificuldade mecânica para tentar encontrar e definir a ferramen-ta, apalpador e cunha com mola, que permita atingir o sucesso da operação.

Page 65: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 65 de 68

Referências bibliográficas [1] John J. Craig, Addison Wesley, “Introduction to Robotics – Mechanics and

Control” [2] Kanat Çamlibel, Introduction to Robotics [3] Jizhong Xiao, Robot Kinematics [4] Manuais Motoman, especialmente o NX100, System Setup, Data Transmis-

sion, Ethernet e INFORM III [5] Autodesk, DXF Reference

Page 66: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 66 de 68

Anexo A – Cabeçalho dos pacotes BSC

Page 67: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 67 de 68

Page 68: Manipulador Industrial Aplicações Auto Ajustáveispaginas.fe.up.pt/~ee02057/projecto/Relatorio_Manipulador... · Manipuladores Industriais Faculdade de Engenharia da Universidade

Manipuladores Industriais Faculdade de Engenharia da Universidade do Porto Operações Auto Ajustáveis LEEC APEL 2006/2007 Página 68 de 68