Sei sulla pagina 1di 74

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CURSO DE PS-GRADUAO EM ENGENHARIA MECNICA

Simulao de Movimento e Planejamento


de Trajetria para Robs Manipuladores

Dissertao submetida Universidade Federal de Pernambuco para a obteno


do grau de mestre em Engenharia Mecnica

Erwin Rommel Ferreira Costa

Orientador: Flix Christian Guimares Santos


Co-orientadora: Noemia Gomes de Mattos de Mesquita

Recife, Dezembro de 2003


ii
iii

Esta dissertao de mestrado dedicada minha


famlia. Famlia esta que eu sei que sempre poderei
contar com ela e que sempre estiveram e estaro ao
meu lado. Por estas razes no poderia deixar de
cita-los: meus tios Rita, Leca, Tonho, Maza e Nana;
a prima Flvia; os meus irmozinhos Pammela e
Phillip; o sobrinho Thales; a minha irm Michelli;
meu pai Joo e minha me Beta.
iv

AGRADECIMENTOS

Inicialmente agradeo ao Departamento de Engenharia Mecnica da Universidade Federal


de Pernambuco por todos esses anos de convivncia e ao SENAI PE por ter aceito financiar
uma bolsa de pesquisa par o desenvolvimento deste trabalho, em segundo lugar, mas to
importantes quanto o primeiro, agradeo ao meu paciente orientador prof. Flix Christian e a
minha co-orientadora prof Noemia Mesquita. Outros que deram tambm uma colaborao
importantssima neste trabalho foram os alunos Hugo Nunes e Jarbas Jos, graduandos do
curso de Engenharia Mecnica, companheiros neste trabalho por dois anos.
Parte dos resultados finais obtidos deve-se ao fato de termos construdo um pequeno rob
manipulador chamado Goblin, projetado e construdo por ns nas dependncias do Centro de
Formao Profissional Manoel de Brito com a assistncia de alguns dos seus instrutores. Faz-
se aqui tambm, o reconhecimento ajuda recebida dos amigos Paulo Xax e Leonardo
Resende do Departamento de Eletrnica e Sistemas (DES) da UFPE.
Aps terem sido feitos os agradecimentos s pessoas e instituies que tiveram algum
envolvimento direto na realizao desta dissertao, agradecerei agora aos que indiretamente
influenciaram na mesma. Cronologicamente falando, em primeiro lugar agradeo aos
professores Ramiro Brito e Paulo Lyra pelo incentivo e apoio dados para que eu tomasse a
deciso em fazer o mestrado. Agradeo prof Rita Lima, coordenadora da ps graduao
do DEMEC nos anos de 2002 e 2003, por sua contagiante disposio em solucionar os
problemas extradissertao; e tambm nossa secretria do mestrado, D Eliane Alves, que
nos proporciona um suporte fantstico.
Finalizando os agradecimentos, no poderia deixar de agradecer aos companheiros e
companheiras de mestrado, hoje alguns j mestres e outros futuros mestres, pelos inmeros
momentos bons e inesquecveis que passamos juntos.
v

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

3. Reviso bibliogrfica ........................................................... 17

4. Modelagem matemtica ....................................................... 19

5. Programa (1 parte) .............................................................. 24

6. Componentes mecnicos e eletrnicos ................................ 28

7. Programa (2 parte) .............................................................. 30

8. Planejamento de trajetria e controle de velocidade ........... 33

9. Programa (3 parte) ............................................................. 41

10. Aplicao ............................................................................ 48

11. Trabalhos futuros ................................................................ 51

12. Concluso ........................................................................... 52

Referncias bibliogrficas ........................................................ 53

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

Os mtodos utilizados para o planejamento da melhor trajetria e o algoritmo para


sincronizar o movimento das articulaes so descritos no captulo oito e as implementaes
dos mtodos mostram-se no captulo nove.
O captulo dez faz um resumo de como o programa funciona como um todo, um
fluxograma de funcionamento mostrado e discutido.
Os captulos 11 e 12 so dedicados respectivamente a sugestes para trabalhos futuros que
podem vir a serem desenvolvidos tendo este trabalho como fonte inicial de consulta e, as
concluses finais que resumem os resultados obtidos e aqui apresentadas.
Foram acrescidos dissertao dois anexos: o primeiro apresenta dois elementos
eletrnicos utilizados neste trabalho, este anexo, assim como foi o segundo captulo, voltado
principalmente aqueles que esto dando os primeiros passos em termos de robtica e
automao; e o segundo anexo contm um artigo apresentado em congresso e publicado em
revista. Este artigo foi escrito um ano antes da submisso desta dissertao avaliao.
3

2. ROBTICA

2.1 Automao e Robtica

Automao e robtica so duas tecnologias intimamente relacionadas. Num contexto


industrial podemos definir a automao como uma tecnologia que se ocupa do uso de
sistemas e processos mecnicos, sistemas eletrnicos e computadores na operao e controle
de alguma atividade. Exemplos dessa tecnologia incluem mquinas de montagem
mecanizadas, sistemas de controle de realimentao (aplicados a processos industriais),
mquinas ferramentas dotadas de comandos numricos e robs. Conseqentemente, a robtica
uma forma de automao industrial (Groover, 1988).
A definio oficial de um rob dada pela Associao das Indstrias de Robtica (RIA):
Um rob industrial um manipulador reprogramvel e multifuncional, projetado para
mover materiais, peas, ferramentas ou dispositivos especiais em movimentos variveis
programados para a realizao de uma variedade de tarefas.

2.2 Robtica na Fico Cientfica

Desconsiderando as limitaes das mquinas robticas atuais, o conceito popular de um


rob o de que ele se parece e age como um ser humano. Esse conceito humanide foi
inspirado e encorajado por inmeras histrias de fico cientfica.
Uma pea tcheca do incio dos anos 20 do sculo passado, de autoria de Karel Capek, deu
origem ao termo rob. A palavra tcheca robota significa servido ou trabalhador forado e,
quando traduzido para o ingls, transformou-se em robot. A histria diz respeito a um
cientista brilhante que fabrica robs. O plano dele que os robs serviro humanidade
obedientemente e faro todo o trabalho fsico. O plano tem um rumo amargo quando os robs
comeam a no gostar de seu papel subserviente e rebelam-se contra seus senhores.
Entre os escritores de fico cientfica, Isaac Asimov contribuiu com inmeras histrias
sobre robs, a partir de 1939 (Groover, 1988).
O cinema contribuiu, e ainda contribui, fortemente para a disseminao destas idias sobre
robtica. Alguns filmes descrevem os robs como servos e companheiros amigveis, e outros
os mostrando de modos diversos.

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).

Figura 2.1 - Cena do filme O dia em que a terra parou


(Classics movies, 2003)
4

A srie Guerra nas Estrelas mostrava robs amistosos e inofensivos. Os robs


so capazes de andar, so inteligentes e podem comunicar-se com seus
senhores humanos. Eles mostram as oportunidades oferecidas pela robtica e
outras tecnologias avanadas de serem teis e no ameaadoras para o homem
(figura 2.2).

Figura 2.2 - Cena do filme Guerra nas estrelas (Edson


Jedi, 2003)

Recentemente, em 1999, O Homem Bicentenrio trouxe de volta as histrias de


Asimov. O filme apresenta um rob que trabalha para uma famlia durante
geraes, sempre de forma leal e ordeira, mas o maior desejo da mquina
um dia se tornar humano (figura 2.3).

Figura 2.3 - Cena do filme O homem bicentenrio


(Adorocinema, 2003)

2.3 Robtica Industrial

A robtica industrial com grandes investimentos e tambm com equipes de tcnicos


trabalhando nesta rea, teve incio em 1956 com Devol e Joseph Engelberger que se
associaram e fundaram a Unimation Inc. Os estudos em robtica coordenados pela empresa
iniciaram em quinze empresas automotivas e em mais outras vinte indstrias de diversas
categorias. A princpio se props projetar e construir robs que executassem tarefas simples,
porm pesadas e desagradveis, realizadas no ambiente das fbricas.
Em 1961 o primeiro prottipo, que havia sido apresentado ao pblico em 1959,f oi
instalado em uma fbrica da General Motors (figura 2.4).
O desenvolvimento da robtica, iniciado ainda na dcada de 1950, deve-se em muito ao
surgimento de trs tecnologias durante a Segunda Guerra Mundial e aos seus aprimoramentos
posteriores:
Teoria de Servo Mecanismo
Computao Digital
Eletrnica de Estado Slido
5

Figura 2.4 Primeiro rob industrial instalado. (Engelberger,


1999)
O Japo, principal fabricante e consumidor de robs no mundo, teve sua primeira empresa
no setor de robtica criada em 1968. J em 1971 foi criada no Japo a primeira associao de
empresas de robtica do mundo, a JIRA (Japan Industrial Robot Association), que possua 46
companhias membros.
As grandes empresas de robtica no mundo so (Engelberger, 1999):
Nos Estados Unidos:
General Motors.
General Eletric
Westinghouse
IBM
United Technologics
Na Europa:
G.E.C Inglaterra
Siemens Alemanha
Renault Frana
Fiat Itlia

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

2.3.1 Aplicaes Industriais

Os robs possuem inmeras aplicaes na indstria, realizando tarefas que a princpio


apresentam grande dificuldade, falta de segurana ou rotineira repetibilidade. Principais
aplicaes:
Abastecimento de mquinas
Solda ponto ponto
Pintura
Montagem
Acabamento (lixar, polir, retificar, etc.)
6

2.4 Fundamentos da Tecnologia de Robs

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.

2.4.2. Anatomia do Rob

A anatomia do rob refere-se construo fsica do corpo, do brao e punho da mquina. A


maioria dos robs usados em fbricas montada sobre uma base fixada ao piso. O corpo est
ligado base e o brao ao corpo. Na extremidade do brao est o punho, ligado ao punho do
rob est uma mo. O termo tcnico para a mo rgo terminal, que no considerado
como parte da anatomia do rob. O conjunto formado pela base, brao e punho por vezes
chamado de manipulador (Groover, 1988).
Movimentos relativos entre os diversos componentes do corpo, brao e punho so
proporcionados por uma srie de juntas. As juntas do brao e corpo do manipulador so
usadas para posicionar o rgo terminal, e as juntas do punho so usadas para orientar o rgo
terminal.

2.4.2 Configuraes comuns de Robs

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

H vantagens e desvantagens relativas s anatomias bsicas dos robs, simplesmente


devido a suas geometrias. Em termos de repetibilidade de movimento, que a capacidade de
mover-se para um mesmo ponto no espao por diversas vezes com erro mnimo, o rob
cartesiano tem a vantagem devido sua estrutura inerentemente rgida. Em termos de alcance
(a capacidade do rob de estender seu brao significativamente alm de sua base), as
configuraes esfrica e antropomrfica levam vantagem. A capacidade de levantamento de
carga do rob importante em muitas aplicaes. O rob de configurao cilndrica e o rob
xyz de prtico (cartesiano) podem ser projetados para alta rigidez e capacidade de carga. Para
aplicaes de carregamento de mquina, a capacidade do rob de penetrar numa pequena
abertura, sem interferncia com os lados da abertura, importante.A configurao esfrica e a
configurao cilndrica possuem uma vantagem geomtrica natural em termos dessa
capacidade.
7

a)
b)

c)

e)
d)

Figura 2.5 Tpicas configuraes de manipuladores: a) cartesiana, b) cilndrica, c)


esfrica, d) SCARA e e) antropomrfica. (Ferreira, 1998)
Seguem imagens de algumas configuraes, figuras 2.6, 2.7 e 2.8.

Figura 2.6 Rob com configurao Figura 2.7 - Rob de configurao antropomrfica
cilndrica. (Warnecke, 1999) (Warnecke, 1999).
8

Figura 2.8 - Configurao SCARA


(Warnecke, 1999)

2.4.3 Movimentos do Rob

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

junta linear. As juntas rotativas (figura 2.12) geram, evidentemente, um movimento de


rotao entre os eixos do manipulador.

Figura 2.11 - Junta prismtica


Figura 2.12 - Juntas rotacionais

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.

Figura 1.13 Punho esfrico. (Sciavicco; 2001)

2.4.4 Volume de Trabalho

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

Figura 2.14 - Volume de trabalho das configuraes: a)Esfrica. b)Cilndrica. c) Cartesiana.


(Groover, 1988)

2.4.5 Sistemas de Acionamento do Rob

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

Sero apresentadas agora algumas definies importantes, utilizadas para se mensurar o


desempenho de robs ao realizar movimentos (Groover, 1988; Ferreira, 1998; Gong, 2000).
11

1. Resoluo espacial
2. Preciso
3. Repetibilidade
4. Carga til

2.4.6.1 Resoluo Espacial

A resoluo espacial de um rob o menor incremento de movimento em que o rob pode


dividir seu volume de trabalho. A resoluo espacial depende de dois fatores: a resoluo de
controle do sistema e as resolues mecnicas/eletrnicas do rob.
A resoluo do sistema de controle determina o valor mnimo que pode ter o incremento,
ou seja, determina o nmero mximo de pontos alcanveis (ou pontos endereveis). A
capacidade de dividir o deslocamento total da junta em incrementos depende da capacidade de
armazenamento na memria de controle. Quando se utilizam microcomputadores esra
capacidade de armazenamento no problema, pois as memrias so bem grandes; mas ao se
utilizar microcontroladores deve-se levar essa resoluo em considerao.
A resoluo mecnica/eletrnica refere-se aos elementos que compem a estrutura fsica do
rob. A resoluo mecnica refere-se ao grau de preciso mxima de cada componente
mecnico, por exemplo, a resoluo dos motores de passo; e a resoluo eltrica (eletrnica)
refere-se mxima preciso dos elementos puramente eletrnicos, por exemplo, a freqncia
de funcionamento dos sensores.

2.4.6.2 Preciso

A preciso refere-se capacidade de um rob de posicionar a extremidade de seu punho


num ponto-meta desejado dentro do volume de trabalho e pode ser definida em termos de
resoluo espacial, porque a capacidade de atingir um dado ponto-meta depende de quo
proximamente o rob pode definir os incrementos de controle para cada um dos movimentos
de suas juntas. No pior caso, o ponto desejado se situaria entre dois incrementos de controle
adjacentes, ento poderamos inicialmente definir preciso, nessa hiptese do pior caso, como
metade da resoluo de controle.
Um outro fator que interfere na preciso so as imperfeies mecnicas nos eixos e
componentes de junta do rob. Estas imperfeies resultam de flexo elstica nos elementos
estruturais, folga nas engrenagens, estiramento de polia, vazamentos de fluidos hidrulicos e
outras falhas no sistema mecnico. As imperfeies so tambm influenciadas por fatores tais
como a carga que est sendo manipulada, a velocidade com a qual o brao est se movendo, a
condio de manuteno do rob, dentre outros.

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

Figura 2.15 - Comparando preciso X repetibilidade (Kao; 1997)


No espao tridimensional os erros de repetibilidade circundaro o ponto programado,
formando uma distribuio cujo limite externo pode ser conceituado como uma esfera. Um
fabricante de rob cita tipicamente a repetibilidade de seu manipulador como o raio da esfera
idealizada, geralmente exprimindo a especificao como mais ou menos um valor particular
(Sciavicco, 2001).

2.4.6.4 Carga til

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.

2.5. rgos Terminais e Sensores

2.5.1 rgos Terminais

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.

2.5.2 Sensores Robticos

Os robs tm a capacidade de localizar-se no espao de trabalho, identificar sua direo e


intensidade dos movimentos, atravs dos sensores, que funcionam exatamente como os
sentidos do rob (Warnecke, 1999).
Os sensores usados como dispositivos perifricos na robtica incluem tanto tipos simples,
tais como chaves-limite, quanto tipos sofisticados, tais como sistemas de viso de mquina.
Evidentemente os sensores so usados como componentes integrais do sistema de controle de
realimentao do rob. Sua funo como dispositivos perifricos numa clula de trabalho
robtica a de permitir que as atividades do rob sejam coordenadas com outras atividades na
clula. Os sensores usados na robtica incluem as seguintes categorias gerais:

1. Sensores de distncia. Um sensor de distncia um dispositivo que indica quando


um objeto est prximo.
2. Sensores de tato. So sensores que respondem a fora de contato com outro objeto.
Alguns desses dispositivos so capazes de medir o nvel de fora envolvido.
13

3. Viso de mquina. Um sistema de viso de mquina capaz de visualizar o espao


de trabalho e interpretar o que v. Esses sistemas so usados na robtica para
realizar inspeo, reconhecimento de peas e outras tarefas similares.
4. Tipos diversos. A categoria diversos inclui os tipos restantes de sensores usados na
robtica. Incluem sensores de temperatura, presso e outras variveis.

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).

controlador acionador junta

sensor

Figura 2.16 - Sistema em malha fechada

controlador acionador junta

Figura 2.17 - Sistema em malha aberta

2.6 Controle e Programao

2.6.1 Sistemas de Controle e Desempenho Dinmico

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).

Figura 2.18 - Unidade de controle (Freitas,


2002)

Os robs de trajetria contnua podem realizar ciclos de movimento em que a trajetria


seguida pelo rob controlada. Isto geralmente realizado fazendo-se com que o rob se
desloque atravs de uma srie de pontos intimamente espaados que descrevem a trajetria
desejada. Os pontos individuais so definidos pela unidade de controle e no pelo
programador. O movimento linear uma forma comum de controle por trajetrias contnuas
para robs industriais. O programador especifica o ponto de partida e o ponto final da
trajetria, e a unidade de controle calcula a seqncia de pontos individuais que permitem ao
rob seguir uma trajetria retilnea. Alguns robs tm a capacidade de seguir um caminho
suave, curvo, que foi definido por um programador que movimenta manualmente o brao
atravs do ciclo de movimento desejado.Atingir um controle por trajetria contnua requer
que a unidade controladora seja capaz de armazenar um grande nmero de localizaes de
pontos individuais que definem a trajetria curva. O controle por trajetrias contnuas
requerido para certos tipos de aplicaes industriais, tais como pintura e soldagem a arco.
Robs inteligentes constituem uma classe crescente de robs industriais que possuem
capacidade no apenas de repetir um ciclo de movimento programado, mas tambm interagir
com seu ambiente. Invariavelmente a unidade controladora consiste em um computador
digital ou dispositivo similar (por exemplo, controlador programvel). Os robs inteligentes
podem alterar seu ciclo programado em resposta a condies que ocorrem no local de
trabalho. Podem tomar decises lgicas com base nos dados sensoriais recebidos do local de
trabalho. Os tipos de aplicaes que so realizadas por robs inteligentes baseiam-se no uso
de uma linguagem de alto nvel para realizar as atividades complexas e sofisticadas que
podem ser realizadas por esses robs. Aplicaes tpicas para robs inteligentes so operaes
de montagem e operaes de soldagem a arco.
15

2.7 Programao do Rob

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.

Figura 2.19 - Exemplos de Teach-in-Box (Freitas, 2002)

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

Figura 2.20 - Ensinamento via Teach- Figura 2.21 - Ensinamento manual


in-box (Freitas, 2002) (Freitas, 2002)
17

3. REVISO BIBLIOGRFICA

Para a determinao e controle do movimento ao se percorrer uma trajetria existem


inmeras formas, todas elas se baseiam em gerar funes de interpolao que representaro o
deslocamento do punho do manipulador ao longo do tempo. A seguir sero resumidamente
apresentados algumas destas formas com suas respectivas vantagens e desvantagens, e em
seguida sero feitos comentrios sobre estas implementaes.

a) Deslocamento ponto a ponto


Este tipo de deslocamento se caracteriza pelo fato de que no controle da trajetria apenas
se levam em considerao os pontos inicial e final da trajetria. Conhecendo-se as
velocidades nestes pontos, a funo de interpolao poder ser um polinmio de terceira
ordem (equao 3.1), ou no caso de se fixar tambm as aceleraes inicial e final, utiliza-se
um polinmio de ordem cinco (equao 3.2) (Sciavicco, 2001).

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)

b) Deslocamento com velocidades fixadas


Este item, assim como os seguintes, considera a trajetria como sendo uma curva qualquer
representada por mais que dois pontos.
Quando se tem um certo nmero de pontos N em uma trajetria, estes pontos podem ser
interpolados atravs de um polinmio de ordem N-1, porm utilizar este tipo de polinmio
acarreta determinadas desvantagens (Sciavicco, 2001):
No possvel fixar a velocidade inicial e a velocidade final.
Quanto maior a ordem do polinmio, maior ser a oscilao da trajetria a
percorrer.
A preciso numrica computacional dos coeficientes polinomiais diminui com
aumento da ordem.
O nmero de equaes poder ser muito grande, conseqentemente, exigir
maior tempo para a soluo.
Os coeficientes do polinmio dependem de todos os pontos fixados; assim,
caso se queira mudar um ponto, todo o sistema ter de ser recalculado.
Para se evitar as desvantagens citadas, uma idia aplicar polinmios de terceira ordem
entre dois pontos, ou seja, a trajetria completa ser formada de N-1 polinmios cbicos.

c) Deslocamento com aceleraes fixadas


Metodologia semelhante anterior, porm aqui so usados polinmios cbicos especiais,
chamados splines. Splines so funes suaves que interpolam uma seqncia de pontos
assegurando continuidade da funo e de suas derivadas (Sciavicco, 2001).

d)Movimento com B-spline


A curva chamada de B-spline um polinmio com as mesmas caractersticas da spline j
apresentada (garantia da continuidade), porm com algumas caractersticas prprias. Quando
se tm os pontos da trajetria como dados de entrada, ser acrescido a cada ponto um fator
numrico chamado peso. Este ltimo representa a importncia que este ponto ter na
construo da trajetria que, ao contrrio da spline comum, no contm necessariamente
todos os pontos, exceto o primeiro e o ltimo ponto que sempre faro parte da curva (Wagner,
1995; Juttler & Wagner, 1996). A figura 3.1 representa uma B-spline onde p0, p1, p2, p3 e p4
so pontos da trajetria e cada um possui seu respectivo peso.
18

P1 P2

P4
P0
P3

Figura 3.1 Exemplo de curva B-spline.

Os mtodos de gerao de trajetria apresentados so largamente utilizados em simulao e


controle de robs manipuladores, porm essas metodologias baseiam-se no fato de que os
pontos fixados sero exatamente alcanados, ou seja, o manipulador tem a capacidade de
atingi-los, mas isso no est completamente certo. No caso que foi utilizado neste trabalho,
por exemplo, as juntas utilizaro motores de passo (Captulo seis) que possuem uma
resoluo, assim o ponto que se deseja alcanar poder estar entre pontos realmente
alcanveis. No captulo oito uma metodologia por ns desenvolvida que ao mesmo tempo
em que seleciona dentre os pontos alcanveis os que mais se aproxima da trajetria desejada,
j cria a trajetria atravs de retas que ligam os pontos escolhidos.
No tocante velocidade ela depende da acelerao que pode ser:
- linear
- no linear
Em termos de minimizar o tempo de realizao do percurso o melhor perfil de velocidade
se ter acelerao e desacelerao no lineares e diferentes (Jeon, 2000).
No presente trabalho opta-se pelo perfil de velocidade trapezoidal, pois se tem maior
interesse por preciso de movimento do que por menor tempo de execuo de tarefas.
O manipulador desenvolvido que tem como principal aplicao transferir peas de esteiras
para mquinas operatrizes e de mquinas operatrizes para estiras ou para bases fixas, ou seja
ser um manipulador do tipo pega-pe Desta forma considera-se que a velocidade em cada
ponto a ser alcanado ser nula.
O programa desenvolvido, considerando-se tudo o que foi explanado neste e no captulo
anterior, pode ser dividido em trs mdulos:
1) Configurao do manipulador: Mdulo responsvel por armazenar os dados referentes a
construo do manipulador, por exemplo, tipos de juntas e suas posies iniciais,
comprimento de eixos, caractersticas dos motores de passo utilizados, etc.
2) Seleo de pontos a serem alcanados: Neste mdulo, faz-se a seleo, utilizando
metodologia prpria, dentre os pontos alcanveis quais devem ser escolhidos como ponto
metas na trajetria a ser desenvolvida.
3) Perfil de velocidade: Desenvolvimento do perfil de velocidade trapezoidal entre cada par
de pontos meta, onde a velocidade nula sobre estes pontos, mas existindo acelerao e
desacelerao entre eles.
19

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).

4.1 Representao de Denavit-Hartemberg

Para a utilizao adequada da representao de Denavit-Hartemberg sempre so seguidos


trs passos: 1) Alocao de sistemas de coordenadas nas juntas. 2) Clculo dos parmetros de
Denavit-Hartemberg. 3) Substituio dos valores dos parmetros na matriz homognea de
transformao.
Por uma questo didtica comecemos demonstrando a construo da matriz de
transformao homognea. Que relacionar as coordenadas de um ponto dados em funo do
sistema desta com o sistema de coordenadas da junta anterior.
Suponha dois sistemas de coordenadas coincidentes X0Y0Z0 e X1Y1Z1. A transformao
homognea que representa esse sistema (figura 4.1 e equao 4.1):

1 0 0 0
0 1 0 0
A01 = (4.1)
0 0 1 0

0 0 0 1

Figura 4.1 Eixos coincidentes

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

Figura 4.2 Rotao em torno de Z0

O passo seguinte se fazer um deslocamento ao longo do eixo Z0 de d unidades (figura


4.3).
A nova matriz (equao 4.3):

cos sen 0 0
sen cos 0 0
A01 = (4.3)
0 0 1 d

0 0 0 1

Figura 4.3 Deslocamento em Z0

Agora transladando X1Y1Z1 ao longo de X1 de a unidades (figura 4.4 e equao 4.4):

cos sen 0 a
sen cos 0 0
A01 = (4.4)
0 0 1 d

0 0 0 1

Figura 4.4 Deslocamento na direo X1


21

Para finalizar, rotacionar X1Y1Z1 de graus ao redor de X1 (figura 4.5):

Figura 4.5 Rotao em torno de X1

Chega-se assim a matriz de transformao homognea de Denavit-Hartemberg (equao


4.5):

cos cos sen sen * sen a * cos


sen cos * cos sen * cos a * sin (4.5)
A0 =
1
0 sen cos d

0 0 0 1
Para utilizar a transformada apresentada acima precisam-se de quatro parmetros (, d, a e
) onde a e so constantes e e d so as variveis das juntas rotacional e prismtica,
respectivamente.
Na obteno desses parmetros pressupe-se que os sistemas de coordenadas estejam
apropriadamente alocados nas juntas. A alocao se d segundo os seguintes passos:
1. Estabelecer sistema de coordenadas da base (X0Y0Z0), sendo os trs eixos perpendiculares
entre si e normalizados, e Z0 na direo do movimento da junta base.
2. Alinhar Zi com o eixo do movimento da junta i.
3. Fazer Xi igual ao produto vetorial normalizado entre Zi-1 e Zi. No caso destes eixos serem
paralelos fazer Xi dirigir-se de Zi-1 para Zi, ou ainda se forem coincidentes, fazer Xi ser
paralelo a Xi-1.
4. Fazer Yi igual ao produto vetorial normalizado entre Zi e Xi.

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 Exemplos de aplicao

Nos prximos tpicos sero apresentados dois exemplos de alocao do sistema de


coordenadas e da avaliao dos valores dos parmetros.
Os sistemas de coordenadas so alocados, em ambos os exemplos, segundo as regras
descritas no item 4.1; um sistema em cada junta com o eixo Z na direo do movimento e
mais um sistema na extremidade do brao. Os eixos X e Y seguem as referidas regras.

4.2.1 Cilndrico

A figura 4.6 mostra um manipulador de configurao cilndrica com os sistemas de


coordenadas devidamente alocados.
Z0: alocado na base e aponta na direo de rotao da junta (varivel 1 em relao a
Z1).
Z1: alocado a uma distncia e1 do sistema X0Y0Z0 e aponta na direo do
deslocamento linear (varivel d1 em relao a Z2).
Z2: situado sobre a segunda junta prismtica e apontando na direo da extremidade do
brao (varivel d2 em relao a Z3).
Z3: extremidade do brao.

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

Figura 4.6 Sistema de coordenadas no rob cilndrico


23

4.2.2 Antropomrfico

A figura 4.7 mostra um manipulador de configurao antropomrfica com os sistemas de


coordenadas devidamente alocados.
Z0: alocado na base e aponta na direo de rotao da junta (varivel 1 em relao a
Z1).
Z1: alocado a uma distncia e1 do sistema X0Y0Z0 e aponta na direo de rotao da
segunda junta (varivel 2 em relao a Z2).
Z2: situado sobre a terceira junta rotacional, aponta na direo de rotao desta, e a
uma distncia e2 (varivel 3 em relao a Z3).
Z3: extremidade do brao.

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

Figura 4.7 Sistema de coordenadas no rob antropomrfico


24

5. PROGRAMA (1 PARTE)

O principal objetivo desse trabalho de dissertao foi desenvolver um programa


computacional que pudesse simular os movimentos de diferentes configuraes de braos
robticos, ou de forma mais generalizada, simular as mais diferentes configuraes de robs
de base fixa. Para chegar a esse objetivo necessrio em primeiro lugar representar
computacionalmente a configurao do rob. Em outras palavras, fazer com que o
computador possa trabalhar sabendo a localizao do rob no espao, bem como a localizao
de suas articulaes, a quantidade e o tipo das mesmas. Para esta representao aplicou-se a
metodologia de Denavit-Hartemberg, e a partir desta representao foi possvel
computacionalmente (numericamente) atribuir valores e controlarem-se os movimentos da
maneira esperada pelo usurio/operador.
Apresenta-se em seguida uma descrio do comportamento do programa desenvolvido em
termos da representao geomtrica de robs. As questes de controle de posicionamento e
controle de velocidade sero apresentadas em captulo mais adiante pelo fato de que os
algoritmos para estes procedimentos necessitam de informaes acerca do comportamento
dos elementos de acionamento das juntas robticas, informaes estas que sero explicados
no captulo seguinte.

5.1 Linguagem C++

O programa foi desenvolvido utilizando-se a linguagem de programao C++. Esta


linguagem tem vantagens em relao a outras linguagens de programao pelo fato dela ser
orientada ao objeto.
A programao orientada ao objeto se baseia em trs conceitos: (Curso de Linguagem Java,
2003)
Encapsulamento: Mecanismo que permite agrupar em uma nica entidade o cdigo e
os dados que esse cdigo manipula. Tais elementos ficam assim protegidos contra
interferncias externas e utilizao inadequada.
Herana: Processo pelo qual um objeto adquire as propriedades de outro objeto.
Polimorfismo: Trata-se de uma caracterstica que permite que uma interface seja usada
para uma classe genrica de aes, sendo que a ao especfica em cada caso determinada
pela exata natureza da situao.
Fez-se proveito, na elaborao do programa, de toda a versatilidade do C++. Caractersticas
tais como: a) Classes, cria elementos compostos por atributos e mtodos; b) Ponteiros,
referenciao dos objetos atravs do endereo que eles ocupam na memria do computador,
torna o programa mais gil (Laszlo, 1996; Stevens, 1991; Jamsa, 1999).

5.2 Classe Junta

A classe Junta o principal elemento do programa aqui apresentado. A partir de Junta


que so desenvolvidos todos os procedimentos e decises so tomadas baseando-se nela.
Levando-se em considerao a importncia desta, abaixo se apresenta a Classe Junta com
seus atributos e mtodos, sobre os quais sero tecidos comentrios.

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

J_Prismtica. Estas representam as juntas de revoluo que tm como varivel e as juntas


prismticas que tm d como varivel.
5.3 Classes Barra e Dena-Hart

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

Os atributos so os parmetros da representao DH: d, teta, a e alfa. Os mtodos so


similares aos mtodos de outras classes, exceto MatrizDH que retorna um elemento do tipo
Matriz (outra classe bsica do programa, alm de Point) que vem a ser utilizada pelo
programa, e print reproduz a matriz DH na tela do computador.
O Construtor de Dena-Hart recebe como parmetro dois ponteiros para Junta, onde cada
uma das juntas tem o seu sistema de coordenadas adequadamente posicionado, e calcula os
parmetros de DH:
d: 1- Encontra o ponto de interseco entre o plano perpendicular ao eixo Zi que
contem a origem do sistema de coordenadas da junta i+1 e o prprio eixo Zi.
2- Levando-se em considerao o sentido de Zi, atribui-se a d a distncia da
origem do sistema i ao ponto encontrado no passo um, levando-se em considerao o sentido,
assim este valor poder ser positivo ou negativo.
teta: 1- Valor do ngulo entre os eixos Xi e Xi+1 atribudo teta, levando-se em
considerao o sentido de rotao.
a: 1- Encontra o ponto de interseco entre o plano perpendicular ao eixo Xi+1
que contm a origem do sistema de coordenadas da junta i e o prprio eixo Xi+1.
2- Levando-se em considerao o sentido de Xi+1, atribui-se a a a distncia da
origem do sistema i+1 ao ponto encontrado no passo um, levando-se em considerao o
sentido.
alfa: 1- Valor do ngulo entre os eixos Zi e Zi+1 atribudo alfa, levando-se em
considerao o sentido de rotao.
A representao dos eixos se d pelas coordenadas do vetor unitrio paralelo eles e a
coordenada da origem do sistema local. requerido sempre que a representao seja unitria
(normalizada) para fins de comparaes necessrias ao funcionamento do programa.
28

6. COMPONENTES MECNICOS E ELETRNICOS

A finalidade do programa desenvolvido e aqui apresentado representar de forma to


realstica quanto possvel os movimentos de um manipulador industrial, sendo assim, tm de
ser inseridos no contexto da simulao, os elementos mecnicos e eletrnicos que constituem
a estrutura de um rob.

6.1 Mecnica

Um rob composto de inmeros componentes mecnicos, parafusos de aperto, molas,


rolamentos e a prpria estrutura do rob so alguns dos componentes, mas na simulao
computacional os componentes mecnicos que so imprescindveis de estarem presentes, ou
ao menos algumas de suas caractersticas, so os elementos de transmisso, tais como
engrenagens, correias, sem-fins-coroa, entre outros.
Os elementos de transmisso interferem no desempenho cinemtico (deslocamento e
velocidade) e no desempenho dinmico (esforos) da estrutura, desta forma para uma boa
representao estes elementos devem ser levados em considerao. (Hall, 1990)

6.2 Eletrnica

Para movimentar um rob, utilizando o computador como central para processamento de


dados, so empregados diversos componentes ou equipamentos eletro-eletrnicos. Como
motores de passo, placas de interfaceamento (drivers) e o prprio microcomputador. Atravzs
destes se consegue um controle preciso com relativa facilidade.
Os principais equipamentos/componentes eletro-eletrnicos que compem diferentes
mecanismos.

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.

6.2.1 Motor de Passo

Tipo particular de motor eltrico, comumente encontrado em perifricos de computador, a


principal caracterstica do motor de passo sempre girar em incrementos angulares discretos.
Observando o esquema na figura 6.1, tem-se um rotor central e um estator composto por
quatro plos. Energizando-se o plo 1, o rotor fica na posio mostrada, em seguida energiza-
se o plo 2, o rotor girar no sentido horrio para ficar alinhado com o plo ativado, e assim
sucessivamente de forma fazer com que o rotor gire. Conseguindo realizar uma seqncia de
energizao em um tempo relativamente curto, o movimento do rotor parecer contnuo.
(Ramos Filho, 2001)
29

Plo 1

Plo 2
Plo 4

Plo 3

Figura 6.1 - Esquema de bobinas em um motor


de passo.

A resoluo, nmero de passos por volta, de um motor de passo determinada pela


quantidade de plos no estator e rotor. O ngulo de passo de um motor normalmente varia
entre 1,8 e 12, sempre um valor inteiro para 360ngulo de passo.
Os motores de passo so utilizados em funes que no requerem grandes velocidades nem
tampouco grandes esforos, mas em compensao uma preciso de posicionamento muito
boa, mesmo sendo um equipamento que normalmente trabalha em malha aberta.
30

7. PROGRAMA (PARTE 2)

Neste captulo volta-se a descrio do programa computacional desenvolvido. A


apresentao do referido foi dividido em partes com vista facilitar a compreenso de sua
estrutura e passar a idia ao leitor de como foram sendo desenvolvidos os procedimentos do
programa.

7.1 Classe Motor e Motor_Passo

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 Motor_Passo: public Motor


{
public:
double resoluc;
int bobina;
public:
Motor_Passo (double);
~Motor_Passo();
void EnergeMotor(int*);
void MoveMotor(int);
double getResoluc();
};

A primeira linha de comandos mostra que Motor_Passo herda a classe Motor.


Motor_Passo possui apenas dois atributos resoluc e bobina, o primeiro refere-se a quantidade
em graus que o eixo do motor se desloca a cada pulso e bobina um nmero inteiro que
representa qual a bobina que est energizada.
O mtodo EnergeMotor recebe um vetor de inteiros como parmetros e os utiliza para
saber qual a prxima bobina que deve ser energizada, em seguida envia uma informao para
MoveMotor que efetiva a energizao e ativa o deslocamento da junta.

7.2 Classe Acionador

Os elementos mecnicos de transmisso (engrenagens, polias, etc) so representados na


simulao pela classe Acionador:

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

Entre os atributos da classe incluem-se joint e mot que so apontadores, respectivamente,


para a junta e para o motor que se conectam ao acionador. O atributo reducao armazena o
valor da reduo na transmisso entre os elementos mecnicos que o constituem.
O mtodo MoveJunta recebe como parmetro o valor em graus do deslocamento do motor
e o repassa em radianos para a classe Junta, levando em considerao reducao, e esta ltima
efetivamente movimenta a junta.

7.3 Classe Porta_Paralela

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();
};

O Construtor de Porta_Paralela inicializa os valores do vetor pinos. Vetor este que


representa o estado lgico dos pinos (captulo 6.2.2) da porta paralela do computador. Setnum
transforma um inteiro em nmero binrio.
Sinal_1 atribui valores aos 8 (oito) primeiros pinos de Porta_Paralela e Sinal_2 atribui
valores aos 4 (quatro) pinos seguintes. A existncia de duas funes justificada pelo fato de
que quatro dos doze pinos controlados so tratados de maneira diferenciada dos demais.
O mtodo GetPinos retorna o valor pinos com seus atuais valores.

7.4 Classe Placa_IOrobot

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);
};

Placa_IOrobot possui os atributos entrada, saida_1, saida_2 e saida_3 que, inicialmente


atravs do Construtor, recebem o valor NULL, pois inicialmente a placa est desativada e no
possui sinais em sua entrada e em nenhuma de suas sadas.
32

O mtodo SetEntrada o procedimento que l os pinos de Porta_Paralela e os


retransmite aos motores atravs de GetSaida.

7.6 Resumo

Aps ter-se apresentado as principais classes referentes configurao, exceto a classe


Computador que ser apresentada mais adiante, pode ser observado o quanto um problema
complexo, referindo-se simulao computacional de um sistema real composto por diversos
componentes pode tornar-se relativamente simples a partir do momento em que se utiliza a
filosofia da programao orientada ao objeto.
O sistema que no mundo real composto por um microcomputador, porta paralela, drive
(placa) de comunicao, motores de passo, redutores, juntas rotacionais e/ou prismticas e
eixos, no programa computacional desenvolvido tambm existem.
A figura 7.1 mostra como os componentes descritos nas sees anteriores esto ligados uns
aos outros O programa desenvolvido, em seu simulador, segue exatamente a mesma
seqncia; o computador se comunica com a porta paralela enviando pulsos que so
repassados a um circuito eletrnico, este est ligado a um motor de passo acoplado em um
acionador que movimenta a junta e conseqentemente os eixos que compem o manipulador.

Figura 7.1 - Sistema simulado: computador, placa


eletrnica, motor de passo, acionador (redutor), junta e
barra.
33

8. PLANEJAMENTO DE TRAJETRIA E CONTROLE DE VELOCIDADE

Ser descrito um algoritmo generalizado para o planejamento de trajetrias, mas sua


implementao computacional foi feita exclusivamente para a configurao de GOBLIN
(antropomrfica) pelo fato de que as variveis envolvidas no equacionamento da posio do
punho do rob dependem da configurao deste, ento foi implementado para a configurao
do manipulador que se tinha em mos.
O controle de velocidade utilizado generalizado, assim o procedimento programado
independente da configurao do rob.

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)

Figura 8.1: Pontos alcanveis por um rob antropomrfico: a) resoluo de 30 no espao


real; b) resoluo de 30 no espao parametrizado; c) resoluo de 15 no espao real; e d)
resoluo de 15no espao parametrizado.

8.1.1 Mnima Distncia entre Pontos

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.

A aplicao da tcnica da Mnima Distncia consiste em se mensurar a distncia do ponto


que se quer alcanar aos pontos que compem o elemento que o contm e seleciona-se de
imediato o que estiver mais prximo. Chama-se de elemento figura geomtrica que tem por
vrtices os pontos da vizinhana do ponto desejado.
Esta tcnica bem simples de ser compreendida, implementada e de rpida resoluo
computacional. Mais adiante ser feita uma comparao com outra metodologia.
35

8.1.2 Mnima rea entre Curvas

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.

Figura 8.3 Trajetria desejada AB e trajetria possvel CD.

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).

Figura 8.4 Diviso do quadriltero em dois tringulos.

Em vrias situaes as retas se cruzam. Nestes casos o procedimento o mesmo, pois se


clculo da rea do tringulo ABC e do tringulo BCD, que a mesma rea do quadriltero
ABCD que se obtm ao rebater a linha CD ao redor de CB (figura 8.5).

Figura 8.5 Trajetrias cruzadas.

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

4- O passo 3 repetido para todos os possveis caminhos e aquele


que apresentar o menor erro ser utilizado como trajetria
tima.

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.

Figura 8.6 Pontos coincidentes.

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.

Figura 8.7 Aplicao do mtodo das mnimas reas.


37

8.1.3 Mnima Distncia X Mnima rea

Fazendo-se uma comparao entre os dois mtodos chegam-se a algumas concluses.


1) O mtodo da Mnima Distncia muito mais rpido do que o Mtodo da Mnima rea,
sobretudo quando se considera utilizado na implementao do mtodo (este sistema ser
detalhado mais adiante).
2) A Mnima rea tende a escolher caminhos que sejam os mais paralelos possveis com
a trajetria desejada, enquanto no mtodo das Mnimas Distncias podem haver vrios
cruzamentos de linhas.
A princpio pode-se imaginar que os resultados em ambos os mtodos so os mesmos,
porm essa idia no verdadeira, para demonstrar isso utilizaremos a figura 8.8 que destaca
um trecho de uma dada trajetria.

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

As articulaes de um manipulador para realizar seus movimentos com preciso e boa


flexibilidade em ser reprogramado para novas tarefas, necessitam de um controle de
velocidade. Uma questo que no pode ser desconsiderada neste controle o sincronismo
entre as juntas de forma tal que se possa realizar o movimento como planejado.
Estamos trabalhando com motores de passo, e estes funcionam via pulsos eltricos. Assim,
por exemplo, se em um determinado rob contendo dois graus de liberdade lineares (X e Y)
para alcanar determinado ponto so necessrios 10 (dez) pulsos em X e 8 (oito) pulsos em Y,
estes pulsos podem ser dados em qualquer combinao (figura 8.9).
38

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

Figura 8.9 Aplicao de pulsos aos motores. Da esquerda para a direita: 10


pulsos em X e 8 em Y; 8 pulsos em Y e 10 em X; 2 pulsos em X, 8 pulsos em
Y e 8 pulsos em 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

Figura 8.10 Sincronismo de movimentos. A figura da esquerda mostra 2 pulsos em


X e em seguida 8 pulsos em X e Y simultneos. Na figura da direita s tem os 10
pulsos em X e os 8 pulsos em Y realizados ao mesmo tempo.

A ultima trajetria da figura 8.10 que verdadeiramente representa a trajetria planejada,


desta forma chega-se a concluso de que alm da seleo dos pontos que melhor representam
o percurso requerido, deve-se tambm ter pleno controle da velocidade do manipulador
durante o movimento para que possa haver um sincronismo de movimentos.

8.2.1 Perfil de Velocidade

Baseando-se em livros, artigos e em experincia prpria, concluiu-se que os motores para


serem utilizados com uma boa confiabilidade, teriam de ter um perfil de velocidade com
acelerao e desacelerao definidas (Jeon, 2000). Para acelerar um motor de passo vai se
aumentando a freqncia com que os pulsos so enviados ao motor, para desacelerar basta
diminuir a freqncia dos pulsos. No presente caso o que o programa faz enviar
Porta_Paralela um conjunto de pulsos com tamanho pr-definido a uma determinada
freqncia. Em seguida envia-se outro conjunto a uma freqncia maior e segue desta forma
at atingir a velocidade de cruzeiro, e depois faz-se o mesmo processo em ordem inversa. Para
desacelerar, envia-se um conjunto de pulsos uma determinada freqncia, em seguida outro
conjunto em uma freqncia mais baixa e segue-se desta maneira at cessar o movimento.
Obtem-se para os motores de passo que sigam essa metodologia de variao de velocidade
um perfil tempo X velocidade, como apresentado:
39

Figura 8.11 Perfil de velocidade.

Nas aplicaes prticas se tem mais de um motor, considerando que os valores de


acelerao e desacelerao so os mesmos obtm-se, por exemplo, para trs motores, o
grfico da figura 8.12.

Figura 8.12 Perfis de velocidade dos motores envolvidos no movimento.


Observando os grficos que representam a variao da velocidade em cada um dos trs
motores que se movimentam conjuntamente para atingir um determinado ponto, percebe-se
que cada um dos motores tem um tempo de durao do movimento diferente dos demais, mas
para termos a trajetria planejada percorrida de forma adequada necessrio um sincronismo
de movimentos, ou seja, que ao menos os motores realizem seus deslocamentos em um
mesmo perodo de tempo.
Para conseguir fazer com que os motores se desloquem de forma contnua e em um mesmo
intervalo de tempo decidiu-se por escolher como tempo padro o tempo de deslocamento do
motor que necessitar de um maior tempo para mover-se, e diminuir a acelerao e
40

desacelerao dos demais motores, de forma a retardar seus movimentos, conseqentemente


aumentando o tempo para a realizao da trajetria do motor.
A equao 8.1 utilizada no clculo do tempo de durao do movimento de cada motor.

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.

A mudana na acelerao/desacelerao feita aumentando-se a largura do degrau do perfil


de velocidade, especificamente falando, o que se faz aumentar o tamanho do conjunto de
pulsos que se envia ao motor em cada faixa de freqncia, assim se diminui a velocidade
mxima alcanada e conseqentemente retarda-se o movimento.
41

9. PROGRAMA (PARTE 3)

9.1 Classe Computador

A classe Computador responsvel pela movimentao do rob. Ela contm os mtodos


que manipulam os dados de movimento, como tambm ponteiros para outras classes que
servem como apoio para a minimizao de ocorrncia de falhas.

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*);
};

O atributo porta um ponteiro para diversos elementos do tipo Porta_Paralela, isso


necessrio quando tivermos mais que trs articulaes, porque considerando o tipo de placa
que possumos, cada placa, conseqentemente cada porta paralela, controla at trs motores,
ento quando tivermos, por exemplo, sete articulaes, sero necessrias trs portas, duas
portas para que cada uma controle trs motores de passo e uma terceira porta paralela conecte-
se ao stimo motor.
O atributo P_V que um ponteiro para a classe Matriz, armazena o nmero de pulsos e a
velocidade mxima em cada motor para realizar a trajetria planejada. Em (9.1) as colunas
impares representam o nmero de pulsos e as colunas pares a frequncia mxima, e cada linha
da matriz um ponto a ser atingido.

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

Planeja_Trajec faz o planejamento da trajetria a ser percorrida pelo manipulador


utilizando o mtodo da mnima rea (mtodo apresentado anteriormente) utilizando como
trajetria ideal os pontos lidos em ArquivoMove. Planeja_Trajec_Dist aplica o mtodo da
mnima distncia para planejar a trajetria. Para no ficarem dvidas, ambos os mtodos
descritos fazem apenas o planejamento da trajetria, encontram os deslocamentos timos
para as juntas atingirem determinadas posies, mas no tm participao na questo de
sincronismo entre os motores e o controle das frequncias.
Os mtodos EnviaSinalPorta_Iorobot e EnviaSinalPorta_Iorobot_2 so responsveis por
enviar os pulsos necessrios classe Porta_Paralela. O primeiro deles envia os pulsos aos
motores de forma seqencial, o motor 1 recebe seus pulsos, em seguida o motor 2 e assim
sucessivamente sem sincronismo entre os motores. Enquanto EnviaSinalPorta_Iorobot_2
envia Porta_Paralela e aos motores o sinal de forma sincronizada, baseando-se para isso na
matriz montada pela classe Velocidade que ser discutida mais adiante.
plotar um mtodo responsvel por gerar um arquivo de sada de extenso txt com as
posies atingidas pelas juntas ao longo do percurso, e este arquivo lido e apresentado em
movimentos no software Matlab (Hanselman, 1999). Esta visualizao necessria para
poder-se conferir como o manipulador se desloca.
Ainda referindo-se a trajetria, j foi dito que para o caso do manipulador com
configurao antropomrfica o arquivo de entrada pode conter as coordenadas dos pontos que
idealmente devem ser alcanados, mas por qu este tipo de dado s aceito para esta
configurao? O fato que os motores trabalham exclusivamente com ngulos, ento se
conhecssemos os valores destes ngulos, facilmente encontram-se os valores das
coordenadas X, Y e Z. A este processo dado o nome de problema cinemtico direto, que
pela modelagem matemtica aplicada, Denavit-Hartemberg, o procedimento e as matrizes
sero as mesmas para qualquer configurao. Porm para os casos mais gerais quando o dado
de entrada a coordenada do ponto a ser alcanado e tem-se que descobrir qual a combinao
de ngulos que posiciona a extremidade do manipulador no ponto desejado, temos o problema
cinemtico inverso. (Sciavicco, 2001) (Lucas, 2000)
O problema cinemtico inverso se caracteriza pelo fato de que conhecidos os valores para
X, Y e Z, se quer descobrir os valores das variveis das juntas, i e/ou di. Normalmente este
tipo de problema recai em se resolver um sistema de equaes no-lineares, para isso
utilizam-se mtodos numricos que podem trazer problemas, como tambm devido
redundncia (mais de uma combinao de ngulos de junta resolvem o problema) pode
apresentar resultados incoerentes. Por estes problemas a forma mais tradicional de se resolver
problemas cinemticos inversos , caso seja possvel, utilizando a soluo analtica, isto
significa encontrar equaes do tipo =f(X,Y,Z), onde de forma direta conhecendo os valores
de X,Y e Z encomtram-se os valores dos vrios .
Voltando ao programa tema deste trabalho, para podermos ter coordenadas de pontos
utilizadas como dados de entrada para todos os tipos de configurao necessitaria-se ter as
equaes inversas de todas as configuraes. Como isto praticamente impossvel, pois no
possvel se imaginar todas as configuraes possveis adotadas na construo de um
manipulador, embora muitas das equaes sejam facilmente encontradas na literatura, no
programa desenvolvido foram introduzidas apenas as equaes para o problema inverso da
configurao antropomrfica (equaes 9.2). Porm caso seja de interesse do usurio, existe a
liberdade de serem substitudas estas equaes referentes configurao antropomrfica por
outras equaes cinemticas inversas de diferentes configuraes.
43

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

1, 2, 3 ngulos a serem calculados.


px, py, pz coordenadas do ponto que se quer alcanar.
atan2 funo (Matlab ou C++) que retorna o valor do arco cuja tangente seja igual
ao valor do parmetro, levando em considerao o quadrante do ngulo no crculo
trigonomtrico.
si, ci valores do seno e cosseno do ngulo i.
a1, a2, a3 comprimento dos eixos.

9.2 Classe Estrutura_Dados

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

O construtor de Estrutura_Dados recebe um nmero inteiro como parmetro, este nmero


indica o nmero mximo de pontos que rodeiam o ponto que se deseja alcanar. No caso da
configurao antropomrfica este nmero ser oito.
SetNivel acrescenta uma linha a estrutura de dados criada. Cada uma destas linhas contm
ponteiros para os pontos vizinhos ao ponto que se quer alcanar.
O mtodo PercorreRepete responsvel por percorrer todos os caminhos possveis (figura
9.1), e ao final apresentar qual teve a melhor performance, em nosso caso o menor erro. J
Erro_TriangEspace o mtodo que calcula o erro, ele divide o quadriltero passado como
parmetro em dois tringulos e calcula a rea de cada um destes tringulos utilizando produto
vetorial e em seguida os soma para obter a rea total do quadriltero.

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.

9.3 Classe Velocidade

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); }

O comando _sleep adicionado ao lao tem por fim parar o processador, e


conseqentemente o andamento do programa por um determinado tempo. Este comando
recebe como parmetro um valor numrico que acarreta uma pausa no trabalho do
processador por uma quantidade de milsimos de segundo ou milissegundos. Com essa
explicao fica bem inteligvel o que esse trecho de programa faz:
1 acende o led.
2 pausa o programa por 200 milissegundos, enquanto isso o led continua aceso.
3 apaga o led.
4 espera 200 milissegundos e recomea o ciclo.
Os passos descritos sero repetidos 20 (vinte) vezes. Ento, agora pode-se observar
claramente o led piscando. Mudando-se o valor passado como parmetro em _sleep muda-se a
freqncia com que o led pisca. No caso de ser aumentado o tempo de espera, o led pisca
mais lentamente e caso se diminua o tempo o pisca-pisca aumenta de freqncia.
Toda esta explanao tem como principal finalidade fazer com que o leitor entenda como se
faz a mudana da velocidade nos motores de passo. A mudana de velocidade funciona para
os motores assim como o piscar funciona para o led, assim quando se quer incrementar a
velocidade de rotao do motor basta aumentar a freqncia com a qual os pulsos so
enviados porta paralela e para diminuir a velocidade diminui-se a freqncia, em outras
palavras, aumenta-se o intervalo entre os pulsos.
Para deixar claro, da mesma maneira como o pisca-pisca do led falha quando temos altas
freqncias no envio dos pulsos, os motores de passo tambm tm problemas quando o
intervalo entre pulsos muito pequeno, o motor acaba perdendo passo.
Apresenta-se agora a classe Velocidade:

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[]);
};

O atributo intmin representa o tempo mnimo, em milissegundos, que durar o intervalo


entre pulsos, este o menor intervalo de tempo em que no existe perda de pulso,
conseqentemente o inverso deste valor a freqncia mnima com a qual o motor trabalha de
maneira confivel.
O mtodo Planeja_Veloc se divide em duas partes,. Na primeira parte ele calcula os
principais parmetros do perfil de velocidade (tpico 8.2.1), tais como nmero de degraus do
46

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

Neste captulo sero apresentados dois exemplos do funcionamento do programa passo a


passo. No primeiro exemplo os dados de entrada so de um rob de configurao esfrica, o
qual no se faz o planejamento da trajetria e o segundo exemplo, um rob de configurao
antropomrfica com o planejamento da trajetria.

10.1 Manipulador de Configurao Esfrica

Arquivo de entrada de dados:

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.

desloca 45.9 0 71.4


desloca 5.2 30 -14 (10.1)
desloca 24 -30.2 52.4

Em Computador o valor do ngulo de deslocamento enviado direto para a Porta_Paralela


um motor a cada vez e se faz um arredondamento para o movimento ser exato, por exemplo, o
usurio pode solicitar que determinada junta rotacione 42 e esta junta, j considerando a
49

resoluo do motor e a reduo aplicada pelo acionador, s se desloque de 5, assim a junta


ou vai para 40 ou vai para 45, como feito apenas um arredondamento direto, neste caso, a
junta se desloca para 40 que est mais prximo de 42. Este procedimento repetido para
todos os motores e para todas as linhas de comando at o fim do arquivo.
Fluxograma do programa na figura 10.1.

Arquivo de configurao do manipulador

Montagem computacional do rob

Criao das placas

Arquivo de movimento

Arredondamento do ngulo
para um valor vlido

Envio dos pulsos


para a porta paralela

Figura 10.1 Fluxograma de funcionamento do programa para os casos no qual


no se precisa, ou no se quer, o planejamento da trajetria.

10.2 Manipulador de Configurao Antropomrfica

Os primeiros procedimentos so os mesmos do exemplo anterior. Leitura de um arquivo de


configurao (10.2), montagem do rob, criao das placas, que neste caso ser uma nica
tambm, pois temos apenas trs articulaes.

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

O arquivo de movimento diferenciado, pois aqui os dados de entrada no comando desloca


so as coordenadas do ponto que se quer alcanar, alm dos valores das velocidades mximas
para cada motor com as quais se deseja que ele se movimente.
50

desloca 4.59 0 7.14


desloca 5.64 0 8.95
velocidade 50 60 50
desloca 5.8 0 12.55
desloca 4.24 0 15.24

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

Criao das placas

Arquivo de movimento

Mnima distncia / Mnima rea

Perfil de velocidade

Matriz de pulsos

Envio dos pulsos


para a porta paralela

Figura 10.2 Fluxograma do movimento com planejamento de trajetria.


51

11. TRABALHOS FUTUROS

Qualquer bom trabalho de pesquisa no se completa nele mesmo. Na verdade acredita-se


que nunca esteja completo, pois pode sempre ser aperfeioado ou adaptado a novas situaes.
Cr-se que o trabalho apresentado se enquadra nesta modalidade, sobretudo lembrando que
este foi um primeiro trabalho entre muitos que viro pela frente, e tambm porque, desde o
incio, o trabalho foi visto como um trabalho de base.
Entre diversas idias acredita-se que as mais promissoras sejam desenvolver a simulao
dinmica, onde seriam estudados os esforos envolvidos nos movimentos de diferentes
manipuladores. A outra boa idia acoplar sensores no sistema de forma que se conseguisse
interagir com o ambiente em tempo real.
Estas so as idias de expanso do programa ou da tecnologia que o envolve, mas existem
outras sugestes que visam melhorar o programa sem altera-lo substancialmente. Adaptar
programa para trabalhar em cadeia fechada, do tipo mecanismos de barras. Construir uma
interface grfica para o programa daria a ele um novo charme, ou melhor, uma forma de atrair
a ateno das pessoas mais facilmente, inclusive facilitando tambm a obteno de resultados
para verificao do desempenho do mesmo.
Para corrigir determinadas falhas do programa faz-se duas recomendaes: 1) Utilizar um
sistema de busca no mtodo das mnimas reas mais eficiente que o aplicado. 2) Otimizar
algoritmo de sincronizao de movimentos, para melhorar os resultados obtidos com a idia
aqui adotada de variar a acelerao/desacelerao.
Uma ltima modificao que trar grande versatilidade ao programa est na mudana da
classe Junta, fazendo-se com que um elemento deste tipo possa apontar para mais de uma
Junta para formar a cadeia (figura 11.1). Poderia-se simular o controle, por exemplo, de uma
mo, onde uma junta est conectada em uma de suas extremidades a vrias outras. Uma
estrutura que poderia ser usada para este fim a estrutura de grafos orientados, onde cada
articulao representaria um n no grafo (figura 11.2).

Figura 11.1 Junta que possui uma barra de entrada e duas de sada
(Sciavicco; 2001)

Figura 11.2 Grafo utilizado para representar uma mo.


52

12. CONCLUSO

O trabalho desenvolvido alcanou muitas das metas idealizadas no incio e certamente


servir como uma boa base para futuros trabalhos.
O programa desenvolvido consegue, hoje, simular o movimento de qualquer configurao
de manipulador de cadeia aberta usando a cinemtica direta ou a cinemtica inversa, alm de
terem sido desenvolvidas idias de otimizao de trajetria, que mostraram-se vlidas e bem
teis.
Alm do mais a robtica e a automao so reas que cresceram bastante nas ltimas
dcadas e sempre vlido expandir conhecimentos e transpor obstculos rumo ao
desenvolvimento de novas tecnologias, desde que estas tecnologias tragam algo de positivo
para o mundo. Baseado nesta idia de desenvolvimento tecnolgico e olhando para o nosso
pas e, sobretudo para a nossa regio Nordeste, percebe-se o quanto podemos ganhar
desenvolvendo pesquisa nestas reas.
Evidentemente que robtica e automao como qualquer campo de pesquisa tem suas
divises que se desenvolvem em paralelo. Neste trabalho falamos essencialmente de
modelagem matemtica de manipuladores, mas existem muitas outras reas to interessantes
quanto, e conseqentemente promissoras. Entre elas tem-se inteligncia artificial, robs
mveis, robs especiais, e em automao as clulas automatizadas de fabricao.
53

REFERNCIAS BIBLIOGRFICAS

Adorocinema, http://adorocinema.cidadeinternet.com.br/filmes/homem-bicentenario/homem-
bicentenario.htm, nov/2003.

Alves, Joo Bosco M., Controle de Rob, Cartografia TDA, 1985.

Classics Movies, http://classics.www5.50megs.com, nov/2003.

Curso de Linguagem Java Verso Gratuita. www.tarcisiolopes.com, dez/2003.

Edson Jedi, http://www.geocities.com/edsonstarwars ,nov/2003.

Engelberger, Joseph F. Historical Perspective and role in automation. In: Handbook of


Industrial Robotics. Second Edition, United State of Amrica, John Wiley & Sons, Inc.,
1999.

Ferreira, Marco T. Robtica. Florianpolis, SENAI / CTAI , 1998.

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.

Groover, Mikell P. Robtica Tecnologia e Programao. So Paulo, McGraw Hill,


1988.

Hall, Allen S. Elementos Orgnicos de Mquinas. Mc Graw Hill do Brasil, 1990.

Hanselman, Duane. MATLAB 5 Verso do usurio. So Paulo, MAKRON Books, 1999.

Idoeta, Ivan V. Elementos de Eletrnica Digital. rica Editora, 1988.

IORobotics, http://www.iorobotics.com, jul/2002.

Jamsa, Kris. Aprendendo C++. So Paulo, MAKRON Books, 1999.

Jeon, J. W. A Generalized Approach for the Accceleration and Deceleration of Industrial


Robots and CNC Machine Tools. In: IEEE Transactions on Industrial Electronics. Vol
47, 2000.

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.

Laszlo, Michael J. Computational Geometry and Computer graphics in C++. Prentice


Hall. Inc, 1996.

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.

Mecatrnica Fcil; So Paulo, Editora Saber, nov/2001, p 13.

Pazos, Fernando A. Robs Manipuladores 2 Parte. Em: Mecatrnica Atual, Editora Saber
Ltda, Abril/2002.

Porta Paralela. www.rogercom.com.br, 2002.

Ramalho Jnior, Francisco. Os fundamentos da Fsica 3 Eletricidade. Editora Moderna,


1983.

Ramos Filho, F.B. Motor de Passo, Caractersticas, Aplicaes e Controle para Motor de
Passo. Recife, 2001. (trabalho avulso).

Reis, Gensio Lima. Geomtria Analtica. Editora LTC, 1994.

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.

Warnecke, H. J. Manipulator Design. In: Handbook of Industrial Robotics. Second Edition,


United State of Amrica, John Wiley & Sons, Inc., 1999.
55

ANEXO A

1. Porta Paralela

O microcomputador pode se comunicar ou interagir com o exterior, de diversas formas,


uma delas atravs da porta paralela, conhecida tambm como sada da impressora por servir
para conectar este tipo de perifrico.
A porta paralela tem esse nome porque pode enviar e receber diversos dados
simultaneamente (de forma paralela). Ela composta basicamente por 25 pinos (figura A.1),
sendo alguns destes de entrada de sinal, alguns de sada de sinal, alguns so terra e outros
programveis (entrada ou sada), e todos eles funcionam de forma binria, ou seja, ou esto
ligados ou esto desligados (1 ou 0).

Figura A.1 Pinagem da porta paralela. (Porta Paralela, jan/2002)

Toda linguagem de programao possui funes pr-definidas ou bibliotecas especficas


para se trabalhar com a porta paralela, e atravs dessas funes consegue-se comunicao
com equipamentos externos.
Neste trabalho se fez uso dos pinos D0 D7, que se faz referncia atravs do endereo 378,
conectando quatro desses pinos ao primeiro motor de passo e os outros quatro pinos a um
segundo motor de passo. Os pinos Strobe, Auto Feed. Init e Select In (o primeiro e os dois
ltimos trabalham de maneira inversa, quando se envia sinal a sada desligada e quando se
corta o sinal a sada ativada), cujo endereo de referncia 37A, so ligados ao terceiro
motor. (Porta Paralela, 2002)

2. Circuito Eletrnico

Para se fazer a conexo entre a porta paralela de um microcomputador e um equipamento


externo (impressora, monitor, led, etc) necessrio um circuito eletrnico para
controlar/codificar o sinal vindo do computador.Por questes de segurana e at de melhora
no funcionamento um componente essencial, o transistor.(Ramalho Junior, 1983; Idoeta,
1988)
Transistor um componente eletrnico que funciona da seguinte forma (figura A.2): Ao
receber uma determinada intensidade de corrente em sua base, ele fecha e permite a
circulao de corrente entre o coletor e o emissor, assim o transistor funciona como uma
chave a qual deixa passar corrente se for acionada e tambm pode fazer a ampliao do sinal,
pois a corrente na sada (emissor ou coletor) pode ser bem maior que a corrente na entrada.
56

Figura A.2 Transistores (Mecatrnica Fcil, 2001)


Fazendo uso de transistores pode-se controlar vrios elementos que funcionam atravs de
correntes eltricas, por exemplo, motores de passo. Ligando-se um transistor em cada uma das
sadas do motor e enviando sinais alternadamente para os quatro transistores, faz-se o
movimento do motor, mesmo daqueles que necessitam de altas correntes.
Na figura A.3 mostrado um exemplo de circuito eletrnico para movimentar motores de
passo.

Figura A.3 Placa para controle de motores de passo.


(IORobotics, 2002)
57

ANEXO B

Segue o artigo apresentado no 2 Congresso Brasileiro de Engenharia de Fabricao


(COBEF) realizado em maio/2003 na cidade de Uberlndia MG, promovido pela
Associao Brasileira de Cincias Mecnicas (ABCM); e publicado na revista Mquinas e
Metais, Aranda Editora, n 452 em setembro/2003.

PROJETO DE UMA GARRA MECNICA


PARA UM MANIPULADOR INDUSTRIAL

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

Hugo Leonardo Nunes dos Santos


Universidade Federal de Pernambuco (UFPE), Centro de Tecnologia e Geocincias,
Departamento de Engenharia Mecnica, Rua Acad. Hlio Ramos s/n, CEP: 50740-530,
hugonuness@bol.com.br

Jarbas Jos Carneiro Bezerra de Jesus


Universidade Federal de Pernambuco (UFPE), Centro de Tecnologia e Geocincias,
Departamento de Engenharia Mecnica, Rua Acad. Hlio Ramos s/n, CEP: 50740-530,
jarbas.jose@bol.com.br

Prof Dr Noemia Gomes de Mattos de Mesquita


Universidade Federal de Pernambuco (UFPE), Centro de Tecnologia e Geocincias,
Departamento de Engenharia Mecnica, Rua Acad. Hlio Ramos s/n, CEP: 50740-530,
ngmm@npd.ufpe.br

Prof. PhD. Flix Christian Guimares Santos


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

Robs industriais e mquinas CNC tm caractersticas semelhantes, pois ambos operam


atravs da tecnologia de comando numrico. Suas aplicaes e modo de operaes so
freqentemente planejados pelas mesmas pessoas. Um rob, no entanto, jamais substituir a
mquina ferramenta CNC. Ele atua, na verdade, como um suporte para aumentar o grau de
automao.
Quando se fala em robs, a primeira imagem que se tem em mente geralmente a de um
humanide com duas pernas, dois braos, mos, um corpo e, mais importante de tudo, com
uma cabea que possui olhos e ouvidos reproduzidos por fotoclulas e antenas. Esta imagem
foi formada muito antes da aplicao destes homens mquinas e tem sido muito utilizada
em fico cientfica. As impresses iniciais de uma criatura superior aos seus rivais e
subserviente apenas ao seu inventor persistem at hoje e esta viso dos robs em parte
responsvel pelas reaes defensivas mostradas por muitos trabalhadores e sindicatos (Kief,
H.B., 1992).
O fato que, os setores industriais que no se automatizarem no vo conseguir
acompanhar o desenvolvimento industrial. No nosso estado a necessidade desta automao foi
mostrada em pesquisa conduzida pelo SENAI/PE alguns anos atrs.
Em contraste com essas impresses iniciais, o rob industrial de hoje tem um novo papel
interativo apresentando as seguintes caractersticas: ajudante (no rival); mquina (no
pessoa); programvel (no inteligente); flexvel (no inovador).
A noo de que algum dia todas as operaes personalizadas de uma produo industrial
ser substituda por robs ainda no realidade. O ser humano faz uso de todas as suas
funes sensoriais e ainda no totalmente copiada pelos robs que no tm nem conscincia,
nem criatividade, o que no os habilita a lidar com problemas no estruturados.
Um rob industrial pode ser definido como um manipulador multifuncional programvel,
designado a mover material, pea, ferramentas ou dispositivos especiais atravs de
movimentos programveis variados para realizar uma variedade de tarefas.
Robs so cada vez mais utilizados na produo onde exigido repetibilidade e preciso.
A maioria deles, so simplesmente dispositivos de operao, chamados de unidades de
pegar e colocar em outro lugar, para, por exemplo, carregar e descarregar mquinas.
Dispositivos de aplicao universal totalmente programveis representam apenas 20% da
populao dos robs. Pesquisas continuam sendo desenvolvidas para aperfeioar as funes
de ver, sentir, falar e ouvir dos robs.
Este trabalho tem como objetivo dar uma contribuio para um maior nvel de automao
do setor industrial nordestino, atravs da aplicao de um rob industrial na usinagem.Este
trabalho visa tambm diminuir a interferncia do operador com o torno CNC na usinagem de
peas. Desta forma possvel diminuir os tempos mortos de usinagem e o esforo empregado
pelo operador, aumentando assim a produo e, conseqentemente, obtendo mais lucro.
O rob projetado, controlado por equipamentos programveis, deve trabalhar junto a uma
mquina CNC alimentando-a com a pea bruta a ser usinada, virando a pea, quando for
necessrio usina-la em diferentes posies, e retirando a pea usinada da mquina.
Para um bom rendimento necessrio analisar o movimento, incluindo suas aceleraes e
desaceleraes, de modo a se ter um movimento contnuo. As caractersticas da acelerao
so independentes da desacelerao, fazendo com que ai se tenha estudos diferentes, ao
contrrio do que se imagina (Jeon, J.W., Ha, Y.Y., 2000).

2. ESTADO DA ARTE

O estudo da robtica foi impulsionado pela fico cientfica e pelas necessidades de


conforto e lazer que o homem busca. Alguns dos desenvolvimentos iniciais de dispositivos
automticos auxiliaram esse estudo, embora, nem todos tratem diretamente da robtica.
59

Em pocas mais recentes, o comando numrico e o telecomando so duas tecnologias no


desenvolvimento da robtica. O comando numrico apareceu em meados do sculo XX, mais
especificamente nas dcadas de 40 e 50. Os trabalhos iniciais de comando numrico baseiam-
se nos estudos de John Parsons, atravs de cartes perfurados. J no ano de 1946 o inventor
americano G.C. Devol desenvolveu um dispositivo controlador que podia registrar sinais
eltricos magneticamente e reproduzi-los para operar uma mquina mecnica. Em 1951, foi
desenvolvido por Goertz e Bergsland um trabalho em teleoperadores (manipuladores por
controle remoto) para manusear materiais radioativos. O inventor britnico C.W.Kenward
desenvolveu em 1954 a patente para o projeto de rob. No ano de 1959 foi desenvolvido o
primeiro rob comercial produzido pela Planet Corporation. A Stanford University em 1971
desenvolveu um pequeno brao de rob acionado eletricamente. Em 1975, o rob Sigma, da
Olivetti, usado na operao de montagem, uma das primeiras aplicaes de montagem
efetivas da robtica. Em 1979 ocorreu o desenvolvimento do rob SCARA (Selective
Compliance Arm for Robotic Assembly Brao de Deslocamento Seletivo para Montagem
Robotizada) na Universidade de Yamanashi, no Japo. No ano de 1981, foi criado o Rob de
Acionamento Direto pela Universidade Carnegie-Melon. Este usava motores eltricos
localizados nas juntas manipuladores, sem a transmisso mecnica usual (Groover, M.P. e
Weiss, M., 1988).
Com relao aos estudos de garras mecnicas e manipuladores industriais, vale destacar os
estudos dos aspectos da cinemtica de garras mecnicas de mltiplos dedos feitos por Mason
e Salisbury em 1985, (DasGupta, A., Hatwal, H., 1998).
O MIT (Massashusets Institute of Tecnologie) desenvolveu uma garra mecnica
(Utah/MIT) que foi construda com dedos acionados por tendes e com sensores de toque.
Este estudo foi iniciado por Jacobson em 1984. Em 1990, foi desenvolvida uma garra
antropomrfica de cinco dedos, a Belgrade/USC hand, num estudo desenvolvido por Bekey,
(Matsuoka, Y., 1997).
Em 1992 destaca-se o estudo de Young Park e Starr na Sntese de pega de objetos
poligonais usando uma garra de trs dedos, pela Universidade do Novo Mxico, (Park, Y;
Starr, G., 1992)
Em 1997, Yoky Matsuoka apresenta um estudo de um mecanismo para uma garra
mecnica antropomrfica, pelo MIT, (Matsuoka, Y., 1997).
Os robs industriais, geralmente, apresentam um custo elevado para a implementao
numa linha de fabricao. Isso faz com que empresas de menor porte no tenham a
possibilidade de fazer esta melhoria em suas linhas de produo. Este trabalho tem como
objetivo de projetar e construir um rob que tenha um custo de produo menor que os robs
industriais existentes no mercado, assim dando uma contribuio ao ramo da automao
industrial na regio.

3. PROJETO DE UMA CLULA DE MANUFATURA

Na figura 1 mostrada a seqncia do funcionamento do rob de mdio porte, numa


clula de manufatura. O processo comea a partir do estoque, que fica em uma parte mais
elevada, contendo vrias peas brutas a serem usinadas. Quando a tampa do estoque aberta
apenas uma pea desce a rampa, parando na posio1. A partir da o rob sai da posio
neutra e vai pegar a pea nesta posio. Depois de fechada a garra, a pea levada para a
posio 2, no torno. Quando a pea est fixa nas castanhas, o rob volta para a posio neutra,
a porta do torno fechada e se inicia a usinagem. Ao trmino da usinagem a porta do torno se
abre, o rob vai pegar a pea na posio 2 e a leva at a posio 3, onde so armazenadas as
peas usinadas. Para que a tampa e a porta possam ser abertas e fechados so necessrios
atuadores, que so ativados e desativados pelo CLP. O computador movimentar o rob de
acordo com os sinais recebidos do CLP, e para o CLP enviar estes sinais ele necessita de
informaes que so recebidas atravs dos sensores e chaves. Os sensores, chaves e atuadores
60

so (ver figura 1): um sensor fotoeltrico de interrupo de feixe (sensor1); um sensor de


sobrecarga (sensor 2) na garra; uma chave limite na porta do torno; uma chave seletora (pea
fixa/solta); um boto de incio de usinagem (start); um motor de corrente contnua para a
tampa do estoque e um para a porta do torno.
Os movimentos do rob so controlados pelo computador, atravs de sinais eltricos
enviados, em determinados momentos, pelo CLP. Estes sinais esto sendo gerados pelo
LADSIM v2.6.2 (simulador de CLP) da Bytronic International Ltda., adquirido no site
www.bytronic.co.uk .

Figura 1: Desenho esquemtico da automao da usinagem

4. PROJETO E CONSTRUO DO PROTTIPO

De acordo com a necessidade de testes e estudos, foi elaborado o projeto de um prottipo


do rob com trs graus de liberdade. Os motores de passo utilizados neste prottipo foram
obtidos em sucatas de impressoras e tem pequeno torque. A tabela 1 mostra a relao entre a
carga mxima e o tempo em que cada bobina fica energizada do motor de passo que apresenta
as seguintes caractersticas:
Voltagem = 5 V;
Corrente = 1 ampre / fase;
Resoluo = 7,5 graus / passo;
Nmero de bobinas do motor = 4 bobinas;
Dimetro do eixo do motor = 10,7 mm;
Para o clculo da carga mxima que o rob pode suportar, foi feito um teste com os
motores que fazem parte do prottipo. O teste foi feito da seguinte maneira: primeiro foi
verificado o tempos em que as bobinas permanecem energizadas, dentro do qual o motor
responde para funcionar normalmente.Para isto foi desenvolvido um programa de controle na
61

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)

Figura 2: Fotos do prottipo.

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

5. CONTROLE DOS MOVIMENTOS

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.

6. PROJETO DE UMA GARRA MECNICA

Em paralelo com o projeto do prottipo, desenvolveu-se tambm um estudo sobre garras


mecnicas. Neste estudo foram analisadas variveis como: nmero de dedos da garra, tipo de
empunhadura, tipo de acionamento, tipo de mecanismo (dispositivo cinemtico).
Para operaes em que a garra tem como meta pegar objetos que apresentam uma certa
simetria, observa-se que a existncia de apenas dois dedos satisfatria para execuo da
operao de pega. Geralmente em garras que apresentam dois dedos a movimentao destes
64

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.

Figura 3: Garra de dois dedos

Para a operao de pega de peas de formatos variados (cnicos, cilindros de dimetros


diferentes), alm das variveis analisadas no projeto levamos em considerao a preciso de
posicionamento e a independncia entre os dedos. A preciso de posicionamento necessria
para que a colocao da pea na placa do torno CNC ocorra de forma que ela fique centrada, e
na posio correta a ser fixada, evitando-se colises. A interdependncia entre os dedos da
garra se faz necessria, pois para uma pea de diferentes dimetros ou de forma cnica, os
dedos se adaptam de acordo com o formato da pea.
Com relao ao nmero de dedos necessrios para operao de pega, o uso de trs dedos
satisfatrio, pois usando um deles como polegar (base), este seria o dedo que passaria pela
linha de ao do centro de massa da pea e os outros dois dedos, lado-a-lado equilibrariam a
pea impedindo sua rotao em torno do polegar. Estes dedos apresentam duas falanges cada
um. Esta subdiviso necessria para uma melhor pega e uma melhor adequao da garra
com o formato da pea.
O tipo de empunhadura a maneira de segurar a pea, que so duas: por constrio fsica,
onde os dedos envolvem a pea at um certo ponto, impedindo o movimento desta (essa
maneira de segurar conseguida geralmente projetando as superfcies de contato dos dedos
numa forma aproximada da geometria da pea); e por atrito, os dedos devem aplicar uma
fora que suficiente para reter a pea por atrito contra a gravidade, acelerao e qualquer
outra forma de ao de movimento enquanto a pea estiver sendo segura. Entre os dois tipos
de empunhadura, notamos que por constrio fsica seria uma boa opo de empunhadura,
utilizando tambm pequenas almofadas ou material elstico, tipo borracha, nas pontas dos
dedos para estes melhor se adequarem a forma da pea.
Para as garras mecnicas temos tambm trs tipos de acionamento (ou fonte de energia
para o movimento) analisados: pneumtico, hidrulico e eltrico. O acionamento pneumtico
apresenta uma desvantagem que a pouca preciso que disponibiliza ao sistema devido a
compressibilidade do ar. J o mesmo no ocorre com o acionamento hidrulico, pois temos o
leo, que muito menos compressvel que o ar. Mas temos o problema de vazamento que no
bom para o sistema, causando assim problemas de sujeira e problemas tambm de preciso
65

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.

Figura 4: Garra de trs dedos

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

Ao SENAI, FACEPE e ao CNPq, pelas bolsas de estudo.

9. REFERNCIAS

Cunha, L.S., Manual prtico do mecnico, ed. Hemus.


66

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

Potrebbero piacerti anche