Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AGRADECIMENTOS
RESUMO
Este trabalho considera robs manipuladores que empregam motores de passo como fora
motriz em cada junta. Tendo como dado uma trajetria ideal, o primeiro problema
aproximar esta trajetria por uma outra que seja capaz de ser executada pelo rob. Assim,
uma mtrica deve ser definida para que a trajetria escolhida seja tima. O segundo problema
associado programao do rob. Neste sentido, tendo em vista a trajetria aproximada a
ser percorrida, uma estratgia de movimento escolhida e o programa gerado. O terceiro
problema associado simulao do rob de tal forma que todos os componentes eletrnicos
ou no, envolvidos no movimento do rob devem ser considerados. Com tal complexidade
possvel obter um nvel de realismo bastante acentuado, que vai desde a trajetria exata at o
movimento do rob. A sada desta simulao pode ser visual, de tal forma que se possa
observar o nvel de concordncia entre a trajetria desejada (aproximada) e a trajetria
simulada (considerada como a executada pelo rob). Exemplos tericos so analisados e um
exemplo prtico de um brao com trs barras e trs motores apresentado.
vi
ABSTRACT
This work considers manipulator robots that use step motor as driving device in each joint.
The first problem comprises in approximating a given ideal trajectory by another one, which
could be executed by the robot. Therefore a metric has to be defined in order to define an
optimality criteria for trajectories. The second problem is associated to the robot
programming. In this sense and having in mind the chosen approximated trajectory, a
movement strategy is chosen and the program is automaticaly generated. The third problem is
related to the robot simulation in such a way that all its components, either eletronic or not,
which are involved in the robot movement, should be considered. By considering such a
complex system it becomes possible to obtain a high level of realism in the simulation, which
goes from the exact trajectory up to the robot movement itself. The simulation output can be
presented in a graphic form in such a way that the level of agreement between the ideal and
the approximate trajectories could be observed. Theoretical examples are analised and a
practical one consisting of a robot with three bars and three motors is presented.
vii
SUMRIO
1. Introduo ................. 01
2. Robtica ............................................................................... 03
Anexos ...................................................................................... 55
1
1. INTRODUO
H cerca de dois anos e meio atrs o SENAI-PE descidiu adquirir alguns Controladores
Lgicos Programveis (CLP) que so uma espcie de microcomputadores prprios para serem
utilizados em linhas de produo industrial. A partir disso firmou-se um convnio com o
Departamento de Engenharia Mecnica (DEMEC) da Universidade Federal de Pernambuco
(UFPE) para que fosse desenvolvido projeto de pesquisa que envolvesse a rea de automao
industrial. A tarefa logo de incio apresentou-se bastante promissora em termos cientficos,
pois at ento ainda no existiam projetos dessa natureza no DEMEC.
A idia apresentada ao SENAI e que foi aceita foi construir e controlar via
microcomputador um prottipo de manipulador industrial. A tarefa seguinte ento foi planejar
as etapas necessrias para atingir este objetivo. Primeiro teve-se que aprender como o
computador poderia se comunicar com o exterior, ou seja, como se poderia controlar
equipamentos atravs do computador, esta etapa foi vencida graas a colaborao de alguns
colegas do Departamento de Eletrnica e Sistemas (DES) da UFPE.
As prximas etapas eram construir o manipulador e adquirir um circuito eletrnico (placa)
para fazer a interao entre computador e rob. Estas etapas foram vencidas quase que
simultaneamente, aps algumas idas e vindas.
Finalmente restava o programa de controle e simulao do movimento, que foi a parte
principal do trabalho, e este programa desenvolvido em linguagem C++ que ser
apresentado neste trabalho de dissertao.
Na elaborao do programa a nossa primeira preocupao foi com a representao
computacional do rob, em outras palavras, como poderamos fazer para o computador se
relacionar com cada componente de um rob. Entre os componentes temos: juntas, eixos,
motores, entre outros componentes. Para a representao j existe uma metodologia
tradicional que utilizar transformao homognea e calcular deterrminados parmetros.
Aplicando os conceitos citados e criando-se em C++ os objetos adequados, se pode
representar quaisquer configuraes.
Aps conseguir representar de forma adequada a configurao do manipulador tnhamos
que incrementar o programa para que se pudesse simular o comportamento de um
manipulador real, assim foram criadas outras classes que faziam parte do sistema, tais como
placa e porta paralela.
Finalmente vinha a etapa de otimizar a trajetria, pois robs industriais so utilizados para
executar tarefas e na execuo destas tarefas ele necessita realizar certas trajetrias, porm
existe o problema da resoluo, o posicionamento no continuo, mas discreto. Alm disso,
para determinadas trajetrias requerido que os movimentos das diversas articulaes seja
sincronizado. Isso requer um planejamento adequado tanto do posicionamento de cada
articulao do manipulador para que este possa atingir determinado ponto, como tambm da
trajetria que o manipulador ter de executar para mover-se de sua atual posio at alcanar
o referido ponto.
A dissertao contm doze captulos, sendo o primeiro esta introduo. O captulo dois
trata da robtica como cincia e suas principais aplicaes, bem como alguns dos principais
conceitos; esse captulo tem como finalidade familiarizar o leitor com estes conceitos e com
os termos utilizados em robtica. O captulo trs dedicado reviso bibliogrfica de
mtodos existentes para o planejamento da trajetria e o controle da velocidade de
manipuladores. O quarto captulo apresenta a modelagem matemtica utilizada na simulao
cinemtica. O captulo cinco mostra e discute as primeiras classes do programa desenvolvido.
O captulo seis apresenta os principais componentes mecnicos e eletrnicos que compem
um manipulador como o desenvolvido neste trabalho. O captulo seguinte apresenta as classes
criadas para simular o comportamento destes componentes.
2
2. ROBTICA
O filme O dia em que a terra parou, de 1951, mostrava uma misso oriunda de um
planeta distante, enviada a Terra num disco voador para estabelecer o alicerce para
a paz entre as naes do mundo (figura 2.1).
Alm dessas gigantes, existem tambm as pequenas empresas que ficam com certa fatia
do mercado, sobretudo na rea de robs especializados, robs perifricos (auxiliares) e projeto
de sistemas robticos.
Outras grandes empresas de robtica no mundo so (Engelberger, 1999):
ABB Robotics
Yashawa Eletric Corporation
Kawasaki Heavy Industries
Fanuc
A robtica uma cincia da engenharia aplicada que tida como uma combinao da
tecnologia de mquinas ferramentas e cincia da computao, inclui campos aparentemente
to distintos quanto projeto de mquinas, teoria de controle, microeletrnica, programao de
computadores, inteligncia artificial, fatores humanos e teoria da produo. Pesquisa e
desenvolvimento esto prosseguindo em todas essas reas para aperfeioar o modo pelo qual
os robs trabalham e pensam. provvel que os esforos de pesquisa resultem em futuros
robs, que faro com que as mquinas de hoje paream bem primitivas. Avanos na
tecnologia ampliaro o mbito das aplicaes industriais de robs.
Para descrever a tecnologia de um rob, devemos definir uma variedade de caractersticas
tcnicas sobre a maneira pela qual o rob construdo e o modo como opera.
A maioria dos robs comercialmente disponveis na atualidade possui uma das seguintes
configuraes bsicas (figura 2.5):
1. Configurao cartesiana
2. Configurao cilndrica
3. Configurao esfrica
4. Configurao tipo SCARA
5. Configurao antropomrfica
a)
b)
c)
e)
d)
Figura 2.6 Rob com configurao Figura 2.7 - Rob de configurao antropomrfica
cilndrica. (Warnecke, 1999) (Warnecke, 1999).
8
Os robs industriais so projetados para realizar trabalho produtivo, sendo esse trabalho
desenvolvido atravs de movimentos.
Os movimentos dos robs podem ser divididos em duas categorias gerais: movimentos do
brao e do corpo e movimentos de punho. A descrio dos movimentos das articulaes
associada a essas duas categorias denominada pelo termo graus de liberdade, e um rob
industrial tpico est equipado com 4 a 6 graus de liberdade. Porm existem os casos
especiais. Observando as figuras 2.9 e 2.10, percebe-se que o primeiro rob um manipulador
antropomrfico com punho de trs graus de liberdade colocado sobre trilhos, o que lhe
confere ter 7 (sete) graus de liberdade. Na figura 2.10 ver-se um rob usado para lavar
aeronaves que possui 11 (onze) graus de liberdade (Sciavicco, 2001).
Figura 2.9 - Rob com 7 graus de liberdade Figura 2.10 - Rob com 11 graus de liberdade
(Warnecke, 1999) (Warnecke, 1999)
Trs juntas esto normalmente associadas com a ao do brao e corpo, e uma, duas ou at
trs juntas so normalmente usadas para acionar o punho. Conectando as diversas juntas do
manipulador encontram-se membros rgidos, que so chamados eixos. Em qualquer cadeia
eixo-junta-eixo, chamaremos o eixo que est mais prximo da base na cadeia de eixo suporte.
O eixo movido (ou de sada) o eixo que se move em relao ao eixo suporte.
As juntas usadas no projeto de robs industriais envolvem tipicamente um movimento
relativo dos eixos adjacentes, que linear ou rotacional. As juntas lineares envolvem um
movimento deslizante ou translacional dos eixos de conexo. Esse movimento pode ser
alcanado de diversos modos (por exemplo, por um pisto hidrulico ou um sistema sem-fim-
coroa). O termo junta prismtica (figura 2.11) comumente usado na literatura em lugar de
9
As juntas de brao e corpo so projetadas para permitir que o rob mova seu rgo terminal
para uma posio desejada dentro dos limites do tamanho e movimentos das juntas.
O movimento do punho projetado para permitir que o rob oriente o rgo terminal
adequadamente em relao tarefa a ser realizada. Por exemplo, a mo tem de estar orientada
no ngulo adequado em relao pea de trabalho, a fim de agarr-la. Para solucionar esse
problema de orientao, o punho normalmente dotado de at trs graus de liberdade. Uma
configurao tpica o punho esfrico, como mostrado na figura 2.13.
O volume de trabalho o termo que se refere ao espao dentro do qual o rob pode
manipular a extremidade de seu punho. A conveno de usar a extremidade do punho para
definir o volume de trabalho do rob adotada para evitar a complicao de diferentes
tamanhos de rgos terminais que possam ser fixados ao punho do rob.
O volume de trabalho determinado pelas seguintes caractersticas fsicas do rob: a
configurao fsica do rob; o tamanho dos componentes de corpo, brao e punho; os limites
dos movimentos das juntas do rob.
A influncia da configurao fsica sobre a forma do volume de trabalho ilustrada na
figura 2.14.
10
A capacidade do rob de mover seu corpo, brao e punho propiciada pelo sistema usado
para acionar o rob. O sistema de acionamento determina a velocidade e preciso dos
movimentos do brao, a fora do rob e seu desempenho dinmico.
Robs industriais so acionados por um dos trs tipos de sistemas de acionamento, que so:
Acionamento eltrico; Acionamento hidrulico; e Acionamento pneumtico.
Os robs de acionamento eltrico so acionados por motores DC (motores de passo ou
servomotores) e motores AC. Esses motores so adequados para o acionamento de juntas
rotacionais atravs de sistemas de eixos e engrenagens, mas podem tambm ser utilizados
para acionar juntas lineares por sistemas de polia ou outros meios translacionais (Groover,
1988).
Os sistemas de acionamento hidrulico podem ser projetados para acionar juntas
rotacionais ou lineares. Acionadores de ps podem ser utilizados para suprir movimento
rotacional, e os pistes hidrulicos podem ser usados para realizar movimento linear.
O acionamento pneumtico geralmente reservado para robs de menor porte que possuem
um menor nmero de graus de liberdade. Esses robs so comumente utilizados em simples
operaes, do tipo pega-e-pe com ciclos rpidos.
Segue quadro com as principais vantagens e desvantagens de cada um dos sistemas de
acionamento (quadro 2.1).
Quadro 2.1: Principais vantagens / desvantagens dos sistemas para acionamento de robs.
SISTEMA DE VANTAGENS DESVANTAGENS
ACIOAMENTO
Eltrico Boa preciso e repetibilidade. Baixa relao potncia/peso.
Requer pouco espao til no cho Incapaz de manter um alto torque por
Manuteno simples e fcil. muito tempo.
Hidrulico Altas velocidades. Requer grandes espaos.
Grandes foras Tendncia para vazar leo.
Pneumtico Altas velocidades Baixa preciso.
Custo relativamente baixo Podem surgir vibraes momentneas
Manuteno fcil quando o sistema for acionado
2.4.6 Especificaes de Desempenho
1. Resoluo espacial
2. Preciso
3. Repetibilidade
4. Carga til
2.4.6.2 Preciso
2.4.6.3 Repetibilidade
Repetibilidade diz respeito capacidade do rob posicionar, por diversas vezes, seu punho
ou um rgo terminal num ponto no espao previamente indicado.
A repetibilidade e a preciso referem-se a dois diferentes aspectos de desempenho do rob.
Supondo que queremos atingir um determinado ponto, o ponto programado provavelmente
ser diferente do ponto-meta, devido a limitaes da resoluo de controle. A repetibilidade
refere-se capacidade do rob de retornar ao ponto programado quando comandado.
A figura 2.15 representa os pontos alcanados por um manipulador que tem como ponto
meta o alvo no centro da figura, ser utilizada para representar a diferena entre preciso e
repetibilidade. Da esquerda para a direita tm-se: baixa preciso e baixa repetibilidade, em
seguida baixa preciso e alta repetibilidade e finalmente, alta preciso e alta repetibilidade.
12
A carga til a mxima carga que um rob pode manipular, e deve ser medida em sua
posio de mxima solicitao e com a mxima velocidade, por exemplo, na configurao
cilndrica ou esfrica, a medida feita com o brao completamente alongado.
Essa carga mxima refere-se ao peso total da ferramenta ou garra adicionado carga
propriamente dita.
Em robtica o termo rgo terminal usado para descrever a mo ou ferramenta que est
conectada ao punho. O rgo terminal representa o ferramental especial que permite ao rob
de finalidades gerais realizar uma aplicao particular (Warnecke, 1999).
rgos terminais podem ser divididos em duas categorias: garras e ferramentas. Garras
seriam utilizadas para capturar um objeto, usualmente uma pea de trabalho, e ret-la durante
o ciclo de trabalho do rob. Existe uma variedade de mtodos de reteno que podem ser
usados, alm dos meios mecnicos bvios de sujeitar a pea entre dois ou mais dedos, tm-se
o uso de ventosas de suco, ims, ganchos e conchas. Ferramentas so usadas como rgo
terminal nas aplicaes em que seja requerido que o rob realize algum tipo de trabalho na
pea em produo. Essas aplicaes incluem soldagem a arco, pintura a pistola, furao e
outros. Em cada caso, a ferramenta particular ligada ao punho do rob.
Os sistemas que possuem sensores so chamados de sistema de malha fechada, pois o sinal
que sai do controlador passa para o acionador que repassa junta, e esta aps se mover, ou
quando em movimento, interage com o sensor que manda os dados recolhidos com a junta de
volta ao controlador (figura 2.16). No sistema de malha aberta, sem sensores, o deslocamento
das juntas no acompanhado ou conferido assim o sistema supe que o movimento ocorreu
sem problemas e parte para o comando seguinte (figura 2.17).
sensor
Para operar um rob deve se ter meios de controlar seu sistema de acionamento a fim de
regular adequadamente seus movimentos. De acordo com seus sistemas de controle, robs
industriais podem ser classificados em quatro categorias (Groover, 1988):
1. Robs de seqncia fixa
2. Robs de repetio com controle ponto a ponto
3. Robs de repetio com controle de trajetria contnua
4. Robs inteligentes
Das quatro categorias, os robs de seqncia fixa representam o mais baixo nvel de
controle, e os robs inteligentes so os mais sofisticados.
Robs de seqncia fixa so controlados mediante instalao de chaves-limite e/ou batentes
mecnicos para estabelecer os pontos extremos de deslocamento para cada uma de suas
juntas. Com esse mtodo de controle, as juntas somente podem ser movidas para seus limites
extremos de deslocamento, o que restringe seriamente o nmero de pontos distintos que
podem ser especificados para esses robs. Qualquer um dos trs sistemas de acionamento
pode ser usado com esse tipo de sistema de controle, porm o sistema pneumtico o mais
comumente empregado. Aplicaes para esse tipo de rob geralmente envolvem movimentos
simples, tais como operaes pega-e-pe (Groover, 1988).
Os robs de repetio usam uma unidade de controle mais sofisticada, em que uma srie de
posies ou movimentos instruda ao rob, gravada na memria e, em seguida, repetida
14
pelo rob sob seu prprio controle. O procedimento de instruir e gravar na memria
denominado programao do rob. Os robs de repetio geralmente tm alguma forma de
servocontrole (isto , sistema de realimentao em malha fechada) para garantir que as
posies que foram alcanadas pelo rob sejam as que foram instrudas.
Os robs de repetio podem ser classificados em duas categorias: robs ponto a ponto
(PTP) e robs de trajetria contnua (CP). Os robs ponto a ponto podem executar ciclos de
movimento que consistem em uma srie de localizaes de ponto desejadas. O rob
instrudo sobre cada ponto, e esses pontos so registrados na unidade de controle do rob
(figura 2.18). Durante a repetio, o rob controlado para mover-se de um ponto para outro
na seqncia adequada. Robs ponto a ponto no controlam a trajetria para irem de um
ponto at o prximo. Se o programador quiser exercer uma quantidade de controle limitada
sobre a trajetria seguida, isto ter de ser feito mediante programao de uma srie de pontos
ao longo da trajetria desejada. O controle da seqncia das posies bastante adequado
para muitos tipos de aplicaes, incluindo mquinas de carregar e descarregar e soldagem a
ponto (Pazos, 2002; Freitas, 2002).
Em sua forma mais bsica um programa de rob pode ser definido como uma trajetria no
espao atravs da qual o manipulador comandado a mover-se. Essa trajetria tambm inclui
outras aes, tais como controle do rgo terminal e recebimento de sinais dos sensores. A
finalidade da programao dos robs instruir-lhe essas aes.
Existem vrios mtodos usados para programar robs. As duas categorias bsicas de maior
importncia comercial atualmente so a programao por aprendizagem e a programao por
linguagem textual.
A programao por aprendizagem consiste em levar o brao do rob a mover-se na
seqncia de movimentos requeridos e registrar os movimentos na memria do controlador.
Os mtodos por aprendizagem so utilizados para programar robs de repetio. Utiliza-se
uma caixa de controle (chamada teach-in-box, figura 2.19) para acionar as juntas dos robs
a cada um dos pontos desejados no espao de trabalho e registrar os pontos na memria para
subseqente repetio.
Em caso de robs com trajetria continua, ou se registra dois pontos e o controlador calcula
os demais para seguir uma linha reta entre os pontos (figura 2.20), ou se a trajetria for mais
complexa (pintura, por exemplo), movimenta-se fisicamente o brao do rob atravs da
trajetria que vai sendo memorizada pelo controlador (figura 2.21). Devido facilidade,
convenincia e ampla gama de aplicaes adequadas ao mesmo, o mtodo de aprendizagem
o mtodo de programao mais comum para robs de repetio.
Os mtodos de programao textual empregam uma linguagem de programao para
estabelecer a lgica e a seqncia do ciclo de trabalho. Um terminal de computador usado
para dar entrada nas instrues de programa ao controlador e s vezes um teach-in-box,
devido a dificuldade em definir localizaes espaciais das posies a serem usadas no ciclo de
trabalho, necessrio para definir os locais dos diversos pontos no espao de trabalho. As
linguagens de rob permitem o uso de clculos, fluxo lgico mais detalhado, sub-rotinas, e
um maior uso de sensores e comunicaes. Conseqentemente o uso das linguagens textuais
freqente nos robs inteligentes.
16
3. REVISO BIBLIOGRFICA
q (t ) = a 3 * t 3 + a 2 * t 2 + a1 * t + a 0 (3.1)
q (t ) = a 5 * t 5 + a 4 * t 4 + a3 * t 3 + a 2 * t 2 + a1 * t + a 0 (3.2)
P1 P2
P4
P0
P3
4. FORMULAO MATEMTICA
A simulao das diversas configuraes que um manipulador pode ter exige uma adequada
representao matemtica. O principal objetivo da formulao matemtica conseguir
relacionar os movimentos das juntas que compem o rob, sejam elas rotacionais ou
prismticas, com a posio final do punho do mesmo.
Utilizou-se no trabalho a representao de Denavit-Hartemberg para a modelagem. Esta
representao consiste em, aps ser alocado adequadamente sistemas de coordenadas nas
juntas, se fazer, atravs da lgebra Linear, algumas transformaes homogneas (rotaes e
translaes), relacionando-se os sistemas de coordenadas contguos. Segue no tpico 4.1 uma
descrio detalhada de todos os passos para a devida utilizao da representao de Denavit-
Hartemberg e no tpico 4.2 sero vistos alguns exemplos de sua aplicao (Alves, 1985;
Sciavicco, 2001).
1 0 0 0
0 1 0 0
A01 = (4.1)
0 0 1 0
0 0 0 1
Admitamos que o sistema X0Y0Z0 a base, isto , o sistema fixo. Fazendo agora uma
rotao em torno de Z0 (figura 4.2), fica-se com a matriz (equao 4.2):
20
cos sen 0 0
sen cos 0 0
A01 = (4.2)
0 0 1 0
0 0 0 1
cos sen 0 0
sen cos 0 0
A01 = (4.3)
0 0 1 d
0 0 0 1
cos sen 0 a
sen cos 0 0
A01 = (4.4)
0 0 1 d
0 0 0 1
Aps o devido posicionamento dos diversos sistemas de referncias nas juntas, avalia-se
dos valores dos parmetros (Figuras 4.1 a 4.5) (Reis, 1994):
1. di a distncia da origem do sistema de referncia i-1 interseco dos eixos Zi-1 e Xi ao
longo de Zi-1. Varivel da junta prismtica.
2. i o ngulo de rotao do eixo Xi-1 ao eixo Xi em torno de Zi-1. Varivel da junta
rotacional.
3. ai a distncia da interseco dos eixos Zi-1 e Xi origem do sistema de coordenadas i, ao
longo de Xi.
4. i o ngulo de rotao do eixo Zi-1 ao eixo Zi, em torno do eixo Xi.
22
Para utilizar a matriz de Denavit-Hartemberg multiplica-se essa matriz pelo vetor posio [
x ,y ,z ,1 ] que representam as coordenadas x, y e z de um ponto em relao ao sistema de
coordenadas X1, Y1 e Z1. Desta forma encontram-se as coordenadas deste ponto em relao ao
sistema de coordenadas fixas X0, Y0 e Z0.
4.2.1 Cilndrico
d2
Y3 X
Z2 Z1 d1
d a
1
0 1 e1 0 0
Z3 X3
Z0 Y1
A12 90 d1 0 90
X1 e1 A23 0 d2 0 0
X0 Y0
4.2.2 Antropomrfico
X2
e3
Y2
Y3
Z2
e2
Y1
Z3
X3 d a
01 1 e1 0 90
X1 A12 2 0 e2 0
Z1
e1 A23 3 0 e3 0
Z0
Y0
X0
5. PROGRAMA (1 PARTE)
class Junta
{ private:
Ponto *InitialPos;
Ponto *Initial_e1;
Ponto *Initial_e2;
Ponto *Initial_e3;
Ponto *position;
Ponto *e1;
25
Ponto *e2;
Ponto *e3;
Barra *suporte;
Barra *movida;
double d_min;
double d_max;
public:
Junta( );
virtual ~Junta();
virtual void setInitialPos(Ponto *);
virtual void setInitial_e1(Ponto *);
virtual void setInitial_e2(Ponto *);
virtual void setInitial_e3(Ponto *);
virtual void setPosition(Ponto *);
virtual void set_e1(Ponto *);
virtual void set_e2(Ponto *);
virtual void set_e3(Ponto *);
virtual void setLimites(double,double);
virtual void setSuporte(Barra *);
virtual void setMovida(Barra *);
virtual Barra* getMovida();
virtual Ponto *g_Position();
virtual Ponto *g_e1();
virtual Ponto *g_e2();
virtual Ponto *g_e3();
virtual Ponto *g_InitPos();
virtual Ponto *g_Inite1();
virtual Ponto *g_Inite2();
virtual Ponto *g_Inite3();
virtual void GerarSistemLocal(Junta*);
virtual Barra* getSuporte();
virtual void move(double);
};
Inicialmente vale ressaltar que na classe acima apresentada os atributos so todos privados
(private) e os mtodos pblicos (public), isso quer dizer que os atributos no podem ser
acessados diretamente por outras classes, mas somente por meio dos mtodos.
Os primeiros atributos de Junta so ponteiros para o tipo Point, que a classe mais bsica do
programa, ela representa uma coordenada no espao tridimensional. Os primeiros quatro
atributos representam a posio inicial da junta, InitialPos, e as direes iniciais do sistema de
coordenadas alocado nesta, direes X, Y e Z, respectivamente Initial_e1, Initial__e2 e
Initial_e3. Os quatro atributos seguintes so similares aos atributos que os antecedem, a
diferena entre os dois grupos que o primeiro refere-se posio inicial e o segundo refere-
se posio atual da junta.
Os demais atributos so: suporte e movida que so ponteiros que indicam quais as barras
(eixos) esto conectadas junta; e dmin e dmax so os limites de deslocamento das juntas,
limites estes definidos pela construo mecnica do rob e de suas juntas.
Nos mtodos tm-se inicialmente o Construtor e o Destrutor da classe, em seguida os
mtodos set so usados para atribuir valores aos atributos da classe e os mtodos get e g_ tem
como valor de sada valores dos atributos.
O procedimento move faz com que a junta desloque a barra apontada como Movida de um
ngulo passado como parmetro, assim toda a estrutura conectada em sua sada se mover.
GerarSistemLocal gera os eixos de coordenada X e Y do sistema local.
Existem no programa duas classes que herdam Junta, ou seja, ficam com as mesmas
caractersticas, atributos e mtodos da classe base, estas classes so: J_Revoluo e
26
Como descrito no primeiro captulo, um rob formado em sua forma mais bsica por
juntas e eixos. Na representao computacional aqui apresentada os eixos esto representados
pela classe barra.
class Barra
{
private:
Junta *orig;
Junta *dest;
Dena_Hart *DH;
public:
Barra(Junta *, Junta *);
virtual ~Barra();
virtual Junta *getOrig();
virtual Junta *getDest();
virtual Dena_Hart *getDH();
};
Lembrando a definio de eixo: elemento de ligao entre duas juntas. A classe criada
para representar este elemento de forma mais realista possvel tem como atributos dois
ponteiros para Junta (orig e dest), assim a barra conhece a junta anterior e a junta posterior a
s. Existe ainda um ponteiro (DH) para a classe Dena-Hart que a classe responsvel pela
criao e manuteno dos parmetros e matrizes da representao de Denavit-Hartemberg.
Entre os mtodos o nico diferencial entre a classe barra e a classe junta o Construtor de
barra que, ainda segundo a definio, para ser criada precisa que duas juntas sejam passadas
como parmetro.
A classe Dena-Hart utilizada sempre para relacionar dois sistemas de coordenadas
diferentes, j que estes sistemas esto acoplados s juntas e as barras conectam as juntas,
assim fica bvio que cada barra tem uma matriz DH (Denavit-Hartemberg) relacionada ela.
Vamos classe Dena-Hart:
class Dena_Hart
{
private:
double d;
double teta;
double a;
double alfa;
public:
Dena_Hart(Junta*,Junta*);
~Dena_Hart();
void setteta(double);
void setd (double);
Matriz MatrizDH();
void print();
double getd();
double getteta();
double geta();
double getalfa();
};
27
6.1 Mecnica
6.2 Eletrnica
Motor de Passo
Porta Paralela
Circuito Eletrnico
Os motores de passo foram componentes de muita importncia neste trabalho, sendo assim
o seu funcionamento ser descrito abaixo. Os demais componentes, por serem usuais em
eletrnica so apresentados parte nos anexos.
Plo 1
Plo 2
Plo 4
Plo 3
7. PROGRAMA (PARTE 2)
A classe Motor representa o elemento que movimenta a junta, como a junta pode ser
movida de diferentes formas a classe Motor foi criada de forma tal que sirva como classe base
para outras classes.
A simulao utiliza Motor_ Passo como elementos que movimentam as articulaes:
class Acionador
{
public:
Junta *joint;
Motor_Passo *mot;
double reducao;
public:
Acionador(double,Junta*,Motor_Passo*);
~Acionador();
void setReducao(double);
Motor_Passo* getMot();
void MoveJunta (double);
double getReducao();
Junta* getJunta();
};
31
class Porta_Paralela
{
private:
int *pinos;
public:
Porta_Paralela ( );
~Porta_Paralela ( );
void Setnum (int,int);
void Sinal_1 (int*);
void Sinal_2 (int*);
int Oposto (int);
int* GetPinos();
};
Como ocorre em um controle real, no mundo virtual criado existe um circuito eletrnico
montado sobre uma placa que faz a conexo entre computador e os motores de passo.
A classe Placa_IOrobot tem um comportamento semelhante placa fsica real. Ela recebe
sinais em sua entrada e os distribui entre suas sadas (trs sadas ao todo), sadas s quais so
conectados os motores.
class Placa_IOrobot
{
private:
int *entrada[12];
int *saida_1[4],*saida_2[4],*saida_3[4];
public:
Placa_IOrobot();
~Placa_IOrobot();
void SetEntrada(int*);
int* GetSaida(int);
};
7.6 Resumo
8.1 Trajetria
Para a execuo de um ciclo de trabalho requerido do manipulador que ele descreva uma
determinada trajetria para se deslocar de um ponto outro dentro do volume de trabalho.
Esta trajetria pode ser um percurso qualquer que computacionalmente representado por
uma srie de pontos. Porm devido questo da resoluo nos movimentos das juntas, o
punho do manipulador no possui a capacidade de atingir qualquer ponto no espao, mas sim
pontos discretos.
Surge o primeiro obstculo na questo de otimizar a realizao do movimento. Se for
fornecido ao manipulador, como dado de entrada, alguns pontos a serem atingidos e caso
alguns deles, ou todos, no puderem ser alcanados com exatido, alguma deciso deve ser
tomada, o que deve ser feito? No presente trabalho aplicam-se duas metodologias, uma delas
bem simples e rpida e a outra mais elaborada e com maior tempo de processamento, mas que
para determinadas aplicaes apresenta um resultado mais prximo do movimento real.
Como estamos trabalhando com movimentos discretos, utilizamos ao invs do espao real
um espao parametrizado cujas escalas nos eixos dos sistemas de coordenadas variam de zero
a 2 e onde todos os pontos alcanveis so vrtices de paraleleppedos, desta forma fica mais
fcil visualizar o movimento. No espao real devido resoluo dos motores, existe uma
grande concentrao de pontos alcanveis em determinadas partes do volume de trabalho e
poucos pontos em outras partes, enquanto no espao parametrizado os pontos se distanciam
de forma menos diferenciada.
A figura 8.1 apresenta dois exemplos que deixam claro como o espao parametrizado
facilita o entendimento e a visualizao: a)pontos alcanveis por um rob antropomrfico,
onde cada um dos motores que o movimenta possui resoluo de 30; b) o mesmo rob no
espao parametrizado; c) pontos alcanveis por um rob antropomrfico com resoluo de
15 no espao real; e d)o mesmo rob no espao parametrizado.
Os eixos de coordenadas no espao parametrizado, ao invs de XYZ so as posies
alcanadas por cada um dos motores entre 0 e 2.. Vale destacar que motores de passo podem
ter resolues bem menores (3,8, 1,6, etc).
34
a) b)
c) d)
O nmero de pontos alcanveis pelo manipulador que rodeiam um ponto qualquer que se
deseja atingir pode ser at de 2N, onde N o nmero total de articulaes do manipulador. No
caso especfico que mais foi abordado neste trabalho, o manipulador com trs graus de
liberdade, o ponto que se deseja atingir pode estar contido em um hexaedro (figura 8.2).
1 7
3 8
2
6
4
Figura 8.2: Hexaedro contendo o ponto
5 que se deseja alcanar,
no caso de manipulador com trs graus de liberdade.
Quando se deseja ir de um ponto outro (A-B) e no possvel se fazer este percurso, mas
somente um aproximado (C-D) comete-se um erro (figura 8.3), e decidiu-se mensurar esse
erro, como sendo a rea entre os segmentos de reta, ou seja, quanto menor for a rea, menor
ser o erro, e mais prxima a trajetria realizada estar da trajetria requerida.
A rea calculada ser a rea do quadriltero formado pelos seguimentos AB, BD, DC e CA.
Para o clculo da rea divide-se o quadriltero em dois tringulos (ABC e BCD), calcula-se
a rea de cada um deles e soma-se para ser obtida a rea do quadriltero (figura 8.4).
Para a aplicao desta tcnica monta-se uma estrutura de dados da seguinte forma:
1- Cria-se uma matriz de ponteiros do tipo Ponto onde cada linha
desta matriz formada pelos pontos vizinhos ao ponto que se
deseja alcanar.
2- Percorre-se a matriz selecionando-se um elemento por linha,
criando um caminho.
3- Compara-se este caminho com a trajetria requerida e calcula-
se o erro entre as duas curvas.
36
Vale a ressalva de uma aparente falha neste mtodo, isto ocorre quando os quatro pontos,
dois da trajetria ideal e dois da trajetria possvel forem colineares (figura 8.6), neste caso o
erro encontrado ser zero, pois no haver rea entre os dois segmentos de reta. O erro zero
pode dar a impresso de que as trajetrias so idnticas, ou seja, que o rob realizar
efetivamente a trajetria requerida, e isto pode no ser verdadeiro.
Na figura 8.7 apresenta-se uma srie de figuras que mostram a minimizao da rea entre
as curvas, e conseqentemente uma melhor forma de aproximar as curvas.
2
1
Figura 8.8 Comparao dos mtodos aplicados. Os crculos ligados pela linha
tracejada so encontrados pelo mtodo das mnimas distncias e os crculos ligados pela
linha pontilhada pelo mtodo das mnimas reas.
A linha cheia representa a trajetria desejada, a linha tracejada representa a trajetria pela
Mnima Distncia e a trajetria pontilhada representa a trajetria selecionada pelas Mnimas
reas. Percebe-se que os primeiros e ltimos pontos em ambos os mtodos so os mesmos,
mas os pontos intermedirios so diferentes, isto acontece porque as reas formadas quando
se escolhe 2 so menores que as reas formadas pelo ponto 1, por esta razo existe a
diferena.
8.2 Velocidade
Deslocamento no motor y
Deslocamento no motor y
Deslocamento no motor y
10 10 10
8 8 8
6 6 6
4 4 4
2 2 2
0 0 0
0 5 10 15 0 5 10 15 0 5 10 15
Deslocamento no motor X Deslocamento no motor X Deslocamento no motor X
Estes pulsos podem tambm ser simultneos como mostra a figura 8.10:
10 10
Deslocamento no motor y
Deslocamento no motor y
8 8
6 6
4 4
2 2
0 0
0 5 10 15 0 5 10 15
Deslocamento no motor X Deslocamento no motor X
N 1
t = [(int* ( N + 1 i )) * L * 2] + int* N F (8.1)
i =1
Onde: t = tempo de durao do movimento.
N = nmero total de degraus no perfil de velocidade.
int = tempo do menor intervalo entre pulsos.
L = largura do degrau.
NF = quantidade de pulsos na velocidade de cruzeiro.
9. PROGRAMA (PARTE 3)
class Computador
{
private:
Matriz *P_V;
Porta_Paralela **porta;
public:
Computador(Robo*,Placa_IOrobot**,char*);
~Computador();
Ponto** ArquivoMove(Robo*,char*,int);
void Planeja_Trajec(Robo*,Ponto**,int);
void Planeja_Trajec_Dist(Robo*,Ponto**,int);
void EnviaSinalPorta_IOrobot(Robo*,Placa_IOrobot**,int*,double*,char*,int);
void EnviaSinalPorta_IOrobot_2(Robo*,Placa_IOrobot**,char*,int,Matriz*,double,
double);
void plotar(Robo*,char*);
};
10 50 30 80 27 90
12 (9.1)
40 30 80 70 120
A primeira linha em (9.1) tem as ordens necessrias para se atingir o primeiro ponto. O
motor 1 deve girar de 10 pulsos ou 10 passos a uma velocidade mxima de 50 pulsos/seg, o
motor 2 gira 30 pulsos uma frequncia mxima de 80 pulsos/seg e o motor 3 gira 27 pulsos
90 pulsos/seg. A linha seguinte possui as ordens para se atingir o segundo ponto da
trajetria, e assim sucessivamente. O sinal negativo no motor 1 significa que a rotao
ocorrer no sentido oposto.
O mtodo ArquivoMove l um arquivo de entrada de dados com extenso txt, este
arquivo possui dois comandos:
desloca: a) O valor angular, em graus, do deslocamento da junta para uma
configurao qualquer de manipulador; ou b) As coordenadas X, Y e Z do ponto que se quer
alcanar.
velocidade: Frequncia mxima a ser atingida pelo motor de passo. Essa frequncia
tem como unidade dimensional pulsos/segundo.
42
1 = a tan 2( p y , p x )
3 = a tan 2( s3 , c3 )
p x2 + p y2 + p z2 a 22 a32
c3 =
2 * a 2 * a3
s3 = 1 c32 (9.2)
2 = a tan 2( s 2 , c 2 )
(a 2 + a3 *c 3 ) * p z a3 * s3 * p x2 + p 2y
s2 =
p x2 + p y2 + p z2
(a 2 + a 3 *c 3 ) * p x2 + p 2y a3 * s 3 * p z
c2 =
p x2 + p 2y + p z2
A Estrutura_Dados foi criada para ser usada no momento em que se aplicar o mtodo das
mnimas reas, porque neste mtodo se precisa de alguma forma organizar pontos em uma
determinada ordem e que estes mesmos pontos sejam acessados segundo algum tipo de
critrio. Utiliza-se uma estrutura de grafo com pesos. Desta forma a classe aqui explanada foi
adotada como uma primeira alternativa.
class Estrutura_Dados
{
private:
Ponto ***pt_possiv;
int *caminho;
int *better;
int nelem;
public:
Estrutura_Dados(int);
~Estrutura_Dados();
void SetNivel(Ponto**);
Ponto** PercorreRepete(Ponto**);
double Erro_TriangEspace(Ponto**);
};
pt_possiv um ponteiro para uma estrutura semelhante a uma matriz, formada por
apontadores para elementos do tipo Ponto, caminho contm o endereo dos pontos que esto
em anlise naquele momento e better guarda o melhor caminho entre todos analisados at
aquele momento.
44
1 2 3 1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6 4 5 6
...
7 8 9 7 8 9 7 8 9 7 8 9
10 11 12 10 11 12 10 11 12 10 11 12
Figura 9.1 Representao do funcionamento da estrutura de dados montada para ser
utilizada com o mtodo das mnimas reas. Os caminhos possveis vo sendo
percorridos e ao final se classifica o melhor.
Quando se trabalha com freqncia de envio de uma srie de pulsos, se utiliza um lao de
repetio para faze-lo. As linhas da programao apresentadas a seguir so uma demonstrao
dessa idia.
for(int i=1;i<=20;i++)
_outp(0x378,2);
onde: _outp comando da biblioteca DOS.h que serve para enviar sinais porta paralela.
0x378 endereo da porta paralela.
2 - nmero decimal que representa, em binrio, qual pino da porta paralela endereada
deve ser acionado. Maiores detalhes sobre endereamento e acionamento de pinos foram
tratados no tpico relativo porta paralela.
O comando acima acionar o pino D1 vinte vezes, todavia no ter efeito algum, pois no
adianta tentar ativar um pino que j est ativo, o mesmo que tentar acender uma lmpada
por vinte vezes sem apag-la uma nica vez. Desta maneira para funcionar de forma correta o
comando deve ser:
for(int i=1;i<=20;i++)
{ _outp(0x378,2);
_outp(0x378,0); }
45
Agora ao executar os comandos o pino passar a ser ativado e desativado por vinte vezes,
assim espera-se que ele funcione, porm existe ainda um empecilho. A freqncia do
computador altssima, algo em torno de algumas centenas de megahertz. Assim suponha que
houvesse um led conectado ao pino com o qual se est trabalhando. Quando se ativa o pino o
led acende e ao se desativar o pino o led apaga. Com a freqncia agindo livremente, o led
piscar to rpido que nem seremos capazes de observar o piscar da luz. Ento, para
completar:
for(int i=1;i<=20;i++)
{ _outp(0x378,2);
_sleep(200);
_outp(0x378,0);
_sleep(200); }
class Velocidade
{
private:
double intmin;
public:
Matriz *Planeja_Veloc(double*,int);
double tempo(int,int,int,double,int);
Matriz *Matriz_Pulsos(int[],int[],int[],int,int,int[]);
};
perfil e tempo de durao do movimento. Isto feito para cada articulao do manipulador e
para o percurso de um ponto ao ponto seguinte. Com os dados calculados v-se qual
movimento tem maior tempo de durao. Em seguida faz-se uma comparao entre os tempos
de durao de cada movimento e, no caso de algum deles estar acima de um percentual
considerado razovel, o mtodo parte para a segunda parte que a tarefa de retardar um pouco
o movimento dos demais motores, de forma a tentar igualarem-se os tempos de durao do
movimento em todas as articulaes, assim se ter um sincronismo de movimentos. O
retardamento dos movimentos se faz aumentando a largura dos degraus no perfil de
velocidade.
Nem sempre possvel sincronizar o movimento de todos os motores. Isto acontece porque
as vezes o movimento mais baixa velocidade ocorre em um tempo inferior ao deslocamento
de um outro motor em uma velocidade mais alta. Estes casos surgem quando as quantidades
de pulsos para o deslocamento dos motores so muito diferentes.
tempo responsvel pelo clculo do tempo de durao do movimento (equao 8.1).
O mtodo Matriz_Pulsos serve para montar a matriz dos pulsos que vo para os motores.
Para a compreenso da maneira como este mtodo funciona dois pontos devem ser levados
em considerao.
1 A existncia de um tempo de intervalo mnimo entre os pulsos.
2 Os demais intervalos, que referem-se a outras freqncias menores que a anterior,
devem ser mltiplos do intervalo mnimo.
Comeando com um exemplo de um motor de passo que possui 3 (trs) valores de
velocidade e vai receber cinco pulsos. Supondo que os pulsos sero dados na freqncia
mnima, que o mximo intervalo de tempo entre as trs velocidades, a matriz montada
representa onde aparece 0 no tem pulsos e onde aparece 1 enviar pulso.Cada coluna
desta matriz lida e em seguida o programa fica em pausa por um tempo igual ao tempo de
intervalo mnimo, sendo assim cada pulso ser enviado a um intervalo igual a trs vezes o
intervalo mnimo, neste caso cinco pulsos.
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
Vamos supor agora enviar 5 (cinco) passos, sendo um destes passos em um intervalo
menor. A matriz para este motor fica:
0 0 1 0 0 1 0 1 0 0 1 0 0 1
A diferena de tempo entre o segundo e o terceiro passo de duas vezes o intervalo mnimo
entre pulsos. Sabendo que cada coluna lida em um certo tempo o movimento 1 dura quinze
vezes esse intervalo, enquanto o movimento 2 tem durao de quatorze vezes o intervalo
mnimo.
Agora vamos ao caso de termos dois motores de passo tendo de realizar cinco passos cada e
ambos na velocidade mnima. A diferena deste para os exemplos anteriores que agora a
matriz passa a ter duas linhas.
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
Cada uma das colunas continuar sendo lida em um determinado perodo de tempo, a
diferena que agora quando existe pulso na linha 1 ser o motor 1 quem se mover, e o
motor 2 se mover quando houver pulso na segunda linha. No caso acima os motores sempre
se movero ao mesmo tempo.
O ltimo caso a ser mostrado quando os motores tm intervalos diferentes, caso mais
geral.
47
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
0 0 1 0 0 1 0 1 0 0 1 0 0 1 0
Para este tipo de matriz o procedimento o mesmo do caso anterior, alguns ocorrero em
intervalos diferentes, porm o movimento parecer continuo, pois a diferena de tempo entre
pulsos da ordem do intervalo mnimo que j um valor bem baixo.
A matriz de pulsos mais geral, quando se tem um maior nmero de freqncias possveis de
se trabalhar ou quando o nmero de pulsos for maior, ter um tamanho bem maior do que as
apresentadas nestes exemplos. Devido a acelerao que acontece no motor, o espaamento
entre os pulsos vai diminuindo, at se alcanar a velocidade mxima de movimento ou
velocidade de cruzeiro. Em seguida, devido desacelerao, os pulsos voltam a ficar cada vez
mais espaados.
48
10. APLICAO
junta 1 0 0 0
z 0 1 0
motor 3.6
acionador 4
junta 1 0 10 0
z 0 0 1
motor 7.5
acionador 6
junta 2 0 10 0
z 1 0 0
motor 1.8
acionador 4
junta 1 10 10 0
Onde:
junta: Os dados que seguem referem-se a Junta. O primeiro nmero indica o tipo de
junta: 1 junta rotacional e 2 junta prismtica. Os ltimos trs nmeros so as coordenadas
X,Y e Z da junta antes de iniciar o movimento.
z: Direo do eixo z da junta.
acionador: O nmero representa o valor da reduo que o acionador aplica ao
movimento do motor.
motor: Nmero representa a resoluo em graus do motor de passo.
Este arquivo passado como parmetro para a classe Robot que cria o rob
computacionalmente, fazendo todas as conexes entre junta motor acionador barra
necessrias para constru-lo. Tambm so calculados todos os parmetros (Denavit-
Hartemberg) para a montagem das matrizes de transformao homognea.
Em seguida dependendo do nmero de articulaes so criadas Placa_Iorobot suficiente
para ligar-se todas. Neste exemplo o rob possui trs articulaes, ento, s necessria
uma placa.
Depois a classe Computador l um arquivo (10.1) que contm a angulao que cada junta
deve deslocar-se para realizar o movimento.
Arquivo de movimento
Arredondamento do ngulo
para um valor vlido
junta 1 0 0 0
z 0 1 0
motor 10
acionador 1
junta 1 0 0 10
z 0 0 1
motor 10 (10.2)
acionador 1
junta 1 5 0 10
z 0 0 1
motor 10
acionador 1
junta 1 10 0 10
Computador tendo as coordenadas dos pontos utiliza-se das equaes inversas para chegar
aos valores ideais das variveis das juntas. Em seguida utiliza-se um mtodo para planejar a
trajetria, tem-se dois: mnima distncia ou mnima rea. Para finalizar depois de ter chegado
trajetria tima se faz o planejamento da velocidade e se monta a matriz de pulsos.
Tendo a matriz de pulsos montada se passa a percorr-la coluna coluna e mandar os
respectivos pulsos Porta_Paralela.
A figura 10.2 apresenta o fluxograma do programa:
Arquivo de configurao
Montagem do rob
Arquivo de movimento
Perfil de velocidade
Matriz de pulsos
Figura 11.1 Junta que possui uma barra de entrada e duas de sada
(Sciavicco; 2001)
12. CONCLUSO
REFERNCIAS BIBLIOGRFICAS
Adorocinema, http://adorocinema.cidadeinternet.com.br/filmes/homem-bicentenario/homem-
bicentenario.htm, nov/2003.
Freitas, Jlio Csar de Almeida. Ensinando o Rob. Em: Mecatrnica Atual, Editora Saber
Ltda, Setembro/2002.
Gong, Chunhe. Nongeometric Error Indentification and Compensantion for Robotic System
by Inverse Calibration. In: International Journal of Machine Tools & Manufacture. 2000,
pp 2119-2137.
Juttler, B. and Wagner, M. G. Computer - Aided Design with Spatial Rational B spline
Motions. In: Journal of Mechanical Design, June/1996, pp 193-201.
Kao, Imin & Gong, Chunhe; Robot Based Computer Integrated Manufacturing as Applied
in Manufacturing Automation; Robotic & Computer Integrated Manufacturing; 1997; p.
159.
54
Lucas, Stuart R. Real-Time Solution of the Inverse Kinematic-Rate Problem. In: The
International Journal of Robotics Research. Vol 19, Sage Publications, 2000, pp 1236-
1244.
Pazos, Fernando A. Robs Manipuladores 2 Parte. Em: Mecatrnica Atual, Editora Saber
Ltda, Abril/2002.
Ramos Filho, F.B. Motor de Passo, Caractersticas, Aplicaes e Controle para Motor de
Passo. Recife, 2001. (trabalho avulso).
Sciavicco, L. Modeling and Control of Robot Manipulators. 2nd printing, Great Britain,
Springer Limited, 2001, chapter 1.
Stevens, Al. Aprenda Voc Mesmo... C++. Rio de Janeiro, LTC Livros Tcnicos e
Cientficos, 1991.
Wagner, Michael G. Planar Rational B-spline Motion. In: Computer Aided Desing, Vol
27, February/1995, pp 129-137.
ANEXO A
1. Porta Paralela
2. Circuito Eletrnico
ANEXO B
Erwin Rommel
Universidade Federal de Pernambuco (UFPE), Centro de Tecnologia e Geocincias,
Departamento de Engenharia Mecnica, Rua Acad. Hlio Ramos s/n, CEP: 50740-530
Resumo.
Este projeto visa o desenvolvimento de uma garra mecnica para um manipulador
industrial que tem a finalidade de posicionar peas brutas a serem usinadas em um torno
CNC. Este trabalho repetitivo, em geral, ainda executado manualmente, exigindo do
operador esforo fsico, expondo-o a riscos de acidentes, alm de ser executado num tempo
relativamente alto. A execuo do projeto passa pela construo de um prottipo de um
manipulador industrial para melhor estudo dos movimentos a serem executados e para
posterior construo do manipulador de maior porte com uma garra mecnica para
posicionar peas em um torno CNC. As garras mecnicas tm vrias configuraes, que
esto diretamente relacionadas com o grau de complexidade da tarefa a ser executada. A
desenvolvida no trabalho pode manipular peas no s cilndricas, mas tambm de formas
variadas (cnicas, cilndricas de dimetros diferentes). Para a operao de pega de peas
de formatos variados, a pesquisa realizada mostrou que as garras de trs dedos so mais
adequadas, pois elas podem apresentar independncia entre os movimentos dos dedos.
Utilizando um deles como apoio inferior (polegar), este dedo passa pela linha de ao do
baricentro da pea, ento os outros dois dedos superiores, equilibram a pea impedindo sua
rotao. As seguintes caractersticas tambm foram analisadas nesse trabalho: preciso de
posicionamento; tipo de acionamento; e tipos de mecanismo. O prottipo construdo est
sendo utilizado no estudo do controle e da preciso dos movimentos.
Palavras-chave: Clula de Manufatura, Usinagem, Automao, Rob Industrial, Garra
Mecnica
58
1. INTRODUO
2. ESTADO DA ARTE
linguagem Pascal. Em seguida foi fixado ao eixo do motor um suporte onde eram colocados
pesos padres. De acordo com o tempo analisado, foram sendo colocados pesos at que o
motor no conseguisse mais girar, ou seja, a carga mxima para o intervalo de tempo
analisado, foi determinada como sendo a carga anterior quela em que o motor no suporta
carregar. Nessa anlise notou-se que a medida que aumenta-se o tempo em que cada uma das
bobinas permanecem energizadas, a carga que o motor suporta tambm aumenta. Esta
primeira anlise foi feita levando-se em considerao que apenas uma bobina por vez
acionada em cada energizao. Numa segunda anlise este teste foi repetido, s que com duas
bobinas acionadas simultaneamente em cada energizao. Notou-se que o torque do motor
aumentou consideravelmente nesta situao. Verificou-se tambm que a carga mxima com o
motor travado foi de 1833,6g. Na tabela so apresentadas as relaes entre a carga mxima e
o intervalo de tempo entre os pulsos.
Tabela 1: Relao entre carga mxima e o tempo
em que as bobinas permanecem energizadas
T(ms) Carga mxima (g) com uma Carga mxima (g) com
bobina energizada por vez duas bobinas energizadas
por vez
5 105,5 184,3
7 203,5
10 313,5
15 459,5 619,1
22 481,5
33 492,5
49 501,5
73 518,5 738,0
108 457.5
160 502.5
237 477.5 738,1
Devido ao fato destes motores de passo terem baixo torque, a estrutura do rob tem de ser
leve e com articulaes onde no h perdas considerveis por atrito. De acordo com estas
exigncias, foi utilizado como matria prima, em sua maioria, o alumnio, por ser leve e de
fcil usinabilidade. O eixo principal do rob, que suporta a maior carga, foi apoiado em
rolamentos para diminuir o atrito nos apoios. Para as articulaes onde os esforos so
menores foram utilizadas buchas de nylon. A figura2 apresenta fotos do prottipo em duas
posies.
Os componentes do rob foram usinados a partir de uma chapa de 154mm de largura e
9.5mm de espessura; de uma barra quadrada de uma polegada; de um tubo de meia polegada;
e de um eixo de 16mm de dimetro, todos de alumnio, de onde foram fabricados eixos,
placas e articulaes (junta e garfo). Eixos e pinos foram feitos a partir de outros eixos
retirados de impressora. As engrenagens e polias dentadas foram construdas em nylon,
celeron ou alumnio. Um dos suportes dos motores foi feito em uma chapa de lato e o outro
foi retirado de uma impressora, tendo sofrido pequenas alteraes.
O rob todo apoiado em uma placa maior, a qual foi furada no centro e posteriormente
rebaixada a extremidade do furo no torno, para que possa desta forma, acomodar um
rolamento (35x15x11mm). Para fixao das hastes foram feitos quatro furos escareados. Na
placa maior foram fixadas quatro hastes que foram aplainadas, limadas, furadas e roscadas nas
extremidades. Estas hastes suportam uma placa menor, a qual passou pelos mesmos processos
de usinagem da placa maior. No centro da placa menor tambm foi fixado um rolamento. O
eixo principal apoiado pelos rolamentos das placas, nele foi fixada uma engrenagem de
celeron usinada na fresadora universal. Uma base para os motores tambm foi fixada neste
62
eixo. Esta base foi aplainada, furada no centro e nos quatro cantos. Nela foi fresado um rasgo,
o qual suporta um pino de 5mm que passa dentro do eixo principal fazendo a fixao dele
com a placa que suporta os motores. Nesta terceira placa so fixados os suportes para os
outros dois motores. Um desses motores tem uma polia dentada (menor) presa no seu eixo e o
outro motor tem uma engrenagem de alumnio presa em seu eixo.
(Vista geral)
motorA2
motorA3
(Vista frontal)
Na extremidade do eixo principal tem uma articulao, formada por um garfo e uma junta,
os quais foram inicialmente serrados, aplainados, limados e furados. No garfo ainda foram
colocadas duas pequenas buchas de nylon, que foram torneadas. Esta articulao unida por
um eixo (retirado de sucata de impressora), no qual ainda se tem uma engrenagem que
trabalha com a engrenagem do motor A3. O garfo preso ao eixo principal, enquanto que na
junta fixado um tubo vazado, que foi serrado, limado e furado. Na outra extremidade deste
tubo fixado outro garfo idntico ao primeiro. Uma junta ligada ao garfo por um eixo, no
qual ainda fixada uma polia dentada que movida por uma correia, ligada a polia dentada
do motor A2. Nesta segunda junta preso um outro tubo, semelhante ao primeiro.
63
Como j foi dito anteriormente, o prottipo que foi desenvolvido neste trabalho movido
por motores de passo. Estes motores podem ser controlados por CLP (necessitando da
utilizao de mais entradas e sadas do equipamento), porm, o uso do computador para
control-lo mais simples e mais vivel financeiramente e com recursos de programao mais
flexveis (Petruzela, F.D., 1996).
O programa para controle dos movimentos pode ser feito em diversas linguagens, no
entanto o programa para testes com um motor de passo foi feito em Pascal. O programa
completo, para o controle simultneo de trs motores, est sendo desenvolvido em C++
(Jamsa, K, 1999). O sistema de controle do rob industrial utiliza: um computador, que
contm o programa de controle (em C++ ou Pascal) e a porta de comunicao paralela; placas
de controle dos motores de passo; e fonte de energia.
Quando estes motores so aplicados em uma estrutura, como um brao mecnico, suas
articulaes podem ser movidas atravs do programa, porm, o movimento executado pelas
articulaes pode no ser exatamente o que desejado no programa, devido a diversos
fatores, tais como resoluo do motor, perdas por atrito ou defasagem do tempo de
energizao.
O prottipo constitudo por trs motores de passo (trs graus de liberdade). O circuito
eltrico que controla os trs motores dividido em trs partes, uma para cada motor, os quais
tem diferentes tenses de alimentao e valores de corrente eltrica, fazendo com que cada
parte do circuito tenha pequenas alteraes nos seus componentes, porm, a lgica das trs
partes a mesma. A lgica de controle de um motor aplica-se para os demais controles.
Cada parte do circuito que controla um motor tem entrada para dois fios (fio A e fio B),
onde cada um ligado a um pino da porta paralela do computador. Esta placa trabalha com
cdigo binrio.
A lgica do circuito funciona de modo que quando a entrada A est desernergizada a
leitura da entrada B ignorada. E quando a entrada A est energizada, realizada a leitura da
entrada B. Esta leitura da entrada B indica o sentido de rotao do eixo do motor (bit0 em um
sentido, bit1 no sentido oposto), quando a entrada A energizada quer dizer que o motor deve
ser girado, e a placa quem controla a distribuio de pulsos entre as bobinas.
A velocidade de rotao do motor controlada pelo programa do computador, atravs do
intervalo entre pulsos de energia. A velocidade de rotao do eixo do motor inversamente
proporcional ao intervalo entre pulsos. Atravs de testes experimentais verificou-se que o
torque dos motores inversamente proporcional a velocidade, porm, existem limites. Se o
intervalo entre pulsos for maior que um certo valor, este tempo no causar diferena no
torque, pois, funcionar como se o motor estivesse parado. Para intervalos menores que certos
valores, o movimento se tornar intermitente, pois o motor no acompanhar a distribuio de
pulsos.
Para que o brao seja movimentado a uma velocidade considervel sem que ocorram
oscilaes no movimento (principalmente na partida e na parada), necessrio que o
programa controle uma acelerao e uma desacelerao do movimento. Este controle feito
atravs da variao do intervalo entre pulsos.
ocorre de forma simultnea, mas pode haver tambm a movimentao de apenas um dos
dedos, com o outro permanecendo fixo. Esta opo tira um pouco da versatilidade da garra,
mas tem como vantagem a diminuio do peso devido a existncia de menos dispositivos
mecnicos para a movimentao da garra (engrenagens, parafusos sem-fim, cremalheiras,
hastes, cabos de ao) e menos motores. Utilizando o tipo de garra descrito acima,
desenvolvemos um projeto de uma garra experimental de dois dedos, em que um deles
apresenta-se fixo (dedo esquerdo), e no dedo direito fixada uma cremalheira que realiza um
movimento de abrir e fechar. Esta cremalheira movida por um pinho que se encontra num
eixo, onde na outra extremidade existe uma polia que transmite o movimento do motor, que se
encontra no cotovelo do brao mecnico, atravs de correia para o eixo.
do sistema. Ento optou-se pelo acionamento eltrico devido a melhor preciso e menor custo
dos dispositivos necessrios.
Em termos do tipo de mecanismo esta varivel analisada apresenta as seguintes opes:
sistema de braos articulados (hastes), atuao por engrenagem e cremalheira, atuao por
cames, atuao por parafuso, atuao por correia e polia, alm da atuao por cabos de ao
(tendes). De acordo com estudos feitos selecionou-se o sistema de braos articulados, pois
este, assegura um movimento das duas falanges que os dedos apresentam, de forma
simultnea.
Com relao preciso necessria para colocao da pea na placa do torno, a garra
tambm ter que contar com motores que faro uma rotao em relao ao sentido
longitudinal do brao, e outra no sentido transversal, como num pulso humano. Alm da
preciso, estes movimentos so necessrios para que se a pea precisar ser virada, para
continuao da operao de usinagem, esta etapa possa ser executada.
7. CONCLUSO
De acordo com anlise feita na regio sobre o nvel, de automao das indstrias,
integrado de robs e mquinas de usinagens, a implantao deste trabalho que foi
desenvolvido pode proporcionar um aumento da automao, aumentando assim a produo. A
partir deste trabalho possvel desenvolver outras clulas de manufatura (aplicao do rob
em outras mquinas).
Neste trabalho foi projetado e construdo um prottipo de um manipulador mecnico para
alimentar mquinas CNC. Este prottipo est sendo utilizado para testes de preciso dos
movimentos. Os testes preliminares mostram que alguns ajustes devem ser realizados, tanto
no mecanismo quanto no programa de controle, para um melhor desempenho do
posicionamento e da velocidade dos movimentos desenvolvidos.
8. AGRADECIMENTOS
9. REFERNCIAS
DasGupta, A., Hatwal, H., 1998, Dynamics and Nonlinear Coordination Control of
Multinfingered Mechanical Hands, Journal of Dynamics System, Measurement, and
Control, ASME, Vol. 120, pp 275-281.
Groover, M.P., Weiss, M., Nagel, R.N., Odrey, N.G., 1988, Robtica Tecnologia e
Programao, McGraw-Hill, So Paulo.
Jamsa, K., 1999, Aprendendo C++. MAKRON books
Jeon, J.W., Ha, Y.Y., 2000, A generalized Approach for the Acceleration and Deceleration
of Industrial Robots and CNC Machine Tools, IEEE TRANSACTIONS ON
INDUSTRIAL ELECTRONICS, Vol. 47, Iss 1, pp 133-139.
Kief, H.B., Waters, T.F., 1992, Computer Numerical Control pp 337-338, Glencoe
Macmillan, McGraw Hill, New York.
Matsuoka, Y., 1997, The Mechanisms in a Humanoid Robot Hand, KLUWER
ACADEMIC PUBLISHERS, Autonomous Robot 4, pp 199-209.
Michelman, P., 1998, Precision Object Manipulation with a Multifingered Robot Hand,
IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, Vol. 14, pp 105-113.
Park, Y.C., Starr, G.P., 1992, Grasp Synthesis of Polygonal Objects Using a Three-Fingered
Robot Hand, The International Journal of Robotics Research, Vol. 11, n 3, pp 163-184.
Petruzela, F.D., 1996, Programmable Logic Controllers, Ed.McGraw-Hill, Columbus,
cap.6.
Manual do programa Solidworks, 2000, Getting start, 272 pp, Massachusetts
Sun, S. , 2002, Assessing computer numerical control machines using data envelopment
analysis, INTERNATIONAL JOURNAL OF PRODUCTION RESEARCH, Vol 40, Iss
9, pp 2011-2039, 4 OXON, ENGLAND.
Townsend, W.T., MCB-Industrial Robot Feature Article, The BarrettHand grasper-
programmably flexible part handling and assembly, INDUSTRIAL ROBOT: AN
INTERNATIONAL JOURNAL, Vol. 27, n 3 , pp 181-188.
http//www.iorobotics.com
67