Você está na página 1de 66

UNIVERSIDADE DO ESTADO DE SANTA CATARINA

BACHARELADO EM CINCIA COMPUTAO







Rudimar Anor Zwirtes




CINEMTICA INVERSA PARA CONTROLE DA
ABORDAGEM DE RGOS TERMINAIS DE
ROBS MANIPULADORES




Trabalho de Concluso de Curso submetido Universidade Estadual de Santa Catarina
como parte dos requisitos para a obteno do grau de Bacharel em Cincia da
Computao




Orientador :
Marcelo da Silva Hounsell




Joinville, Novembro de 2004
ii
CINEMTICA INVERSA PARA CONTROLE DA
ABORDAGEM DE RGOS TERMINAIS DE ROBS
MANIPULADORES



Rudimar Anor Zwirtes




Este Trabalho de Concluso de Curso foi julgado adequado para a obteno do ttulo de
Bacharel em Cincia da Computao rea de Concentrao (Sistemas de
Conhecimento) e aprovada em sua forma final pelo Curso de Cincia da Computao
Noturno do CCT/UDESC.



__________________________________
Cinara T. Menegazzo


Banca Examinadora


________________________________
Marcelo da Silva Hounsell


________________________________
Alexandre Gonalves


________________________________
Rogrio Eduardo da Silva
iii

































Os pequenos atos que se executam so
melhores que todos aqueles grandes
que se planejam.
George C. Marshall (1880-1959)
iv


































Agradeo Deus, pelo flego de vida,
minha famlia pelos princpios
e minha esposa pelo amor incondicional.
v
SUMRIO


1. INTRODUO................................................................................................... 10
2. ROBTICA.......................................................................................................... 13
2.1 MOVIMENTAO DOS ROBS...................................................................... 14
2.2 TIPOS DE ROBS .............................................................................................. 16
2.3 ESPAO DE TRABALHO.................................................................................. 18
3.CINEMTICA...................................................................................................... 20
3.1 O PROBLEMA DA CINEMTICA DIRETA.................................................... 20
3.1.1 Representao de Denavit-Hartenberg (DH)................................................ 22
3.2 O PROBLEMA DA CINEMTICA INVERSA ................................................. 25
3.2.2 Propriedades gerais das solues ................................................................. 28
3.2.2 Unicidade de solues ................................................................................... 31
4. ROB SCORBOT ER-4PC........................................................................... 33
4.1 CINEMTICA DIRETA DO SCORBOT ER4PC .............................................. 35
4.2 CINEMTICA INVERSA DO SCORBOT ER4PC........................................... 38
4.2.1. Junta da base................................................................................................ 38
4.2.2 Junta do Cotovelo.......................................................................................... 39
4.2.3 Junta do Ombro............................................................................................. 41
4.2.4 Junta do Punho.............................................................................................. 42
4.2.5 Junta de Rotao ........................................................................................... 42
5. REALIDADE VIRTUAL................................................................................. 43
5.1 O QUE REALIDADE VIRTUAL?................................................................... 43
5.2 ALGUNS CONCEITOS E TERMOS DE RV..................................................... 45
5.2.1 Navegao e Interao.................................................................................. 45
5.2.2 Imerso e Presena....................................................................................... 46
5.2.3 Realidade Virtual Imersiva e No Imersiva .................................................. 46
5.3 VRML................................................................................................................... 47
6. IMPLEMENTAO......................................................................................... 49
6.1 IMPLEMENTAO DO CONTROLE DE ABORDAGEM............................. 50
6.1.1 Implementao da cinemtica inversa .......................................................... 50
6.1.2 Implementao das possveis solues.......................................................... 53
6.1.3 Implementao do controle da abordagem................................................... 55
6.1.4 Implementao da Interface .......................................................................... 57
7. CONCLUSES ................................................................................................... 61
7.1 TRABALHOS FUTUROS................................................................................... 61
REFERNCIAS BIBLIOGRFICAS............................................................. 63
ANEXOS..................................................................................................................... 64
vi
LISTA DE FIGURAS


FIGURA 1 Tipos de Juntas ......................................................................................... 15
FIGURA 2 Juntas do punho ........................................................................................ 16
FIGURA 3 Configuraes bsicas de robs................................................................ 17
FIGURA 4 Espao de trabalho das configuraes bsicas.......................................... 19
FIGURA 5 Parmetros Cinemticos ........................................................................... 21
FIGURA 6 Soluo grfica do problema da cinemtica direta ................................... 25
FIGURA 7 Relao dos problemas da cinemtica direta e inversa............................. 27
FIGURA 8 Exemplo de rob redundante .................................................................... 31
FIGURA 9 Mltiplas solues para robs no redundantes ....................................... 32
FIGURA 10 Rob manipulador SCORBOT-ER4PC.................................................. 33
FIGURA 11 Envelope de Trabalho Scorbot-ER4PC .................................................. 35
FIGURA 12 Esquema grfico do procedimento de DH.............................................. 36
FIGURA 13 Dispositivos Especiais para RV (Capacete)............................................ 44
FIGURA 14 Simulador do grupo LARVA.................................................................. 50
FIGURA 15 Cdigo da funo da cinemtica inversa em Java .................................. 52
FIGURA 16 Soluo Cotovelo acima do rob Scorbot-ER4PC................................. 54
FIGURA 17 Soluo Cotovelo abaixo do rob Scorbot-ER4PC................................ 54
FIGURA 18 Exemplo de relao entre coordenadas da base e ferramenta................. 55
FIGURA 19 Composio do sistema de coordenadas da ferramenta.......................... 56
FIGURA 20 - Posies da Ferramenta do Rob para Controle da Abordagem............. 58
FIGURA 21 Novo Simulador...................................................................................... 58
FIGURA 22 Parte do cdigo Java para determinar opo de mltipla escolha .......... 59
FIGURA 23 Parte do cdigo Java para escolha do tipo de abordagem e chamada da
funo calcularInversa. ........................................................................................... 60
FIGURA 24 Parte do cdigo Java para definio do objeto listaAbordagem............. 60





vii
LISTA DE ABREVIATURAS


DH Denavit - Hartenber
DOF Degrees Of Freedom
ER4PC Eshed Robotek for Personal Computer
FMS Flexible Manufacturing Systems
HMD Head Mounted Display
HTML HiperText Markup Language
LARVA Laboratrio de Realidade Virtual Aplicada
NC Numeric Control
RV Realidade Virtual
VRML Virtual Reality Modeling Language
WWW World Wide Web






















viii
RESUMO

O presente trabalho visa a implementao da cinemtica inversa para o modelo
virtual do rob manipulador SCORBOT-ER4PC que faz parte de um simulador que est
sendo desenvolvido pelo Laboratrio de Realidade Virtual Aplicada LARVA da
Universidade do Estado de Santa Catarina UDESC. A cinemtica o campo da
robtica que estuda o comportamento da posio e orientao do rob no espao em
relao a um sistema de coordenadas. A cinemtica divida em direta e inversa, onde a
direta responsvel em determinar, a partir, dos valores dos ngulos de cada elemento
do rob, a posio e a orientao da garra do rob, enquanto a inversa responsvel em
determinar, a partir de uma posio no espao um conjunto de valores de ngulos que os
elementos devem ter para o rob alcanar o ponto desejado. O clculo da cinemtica
inversa do modelo do rob se d a partir das caractersticas construtivas do rob e do
clculo da cinemtica direta. Dispondo da funo da cinemtica inversa uma interface
criada no simulador possibilita ao usurio interagir com o modelo virtual e analisar
algumas possveis solues para o problema da cinemtica inversa de robs
manipuladores. As possveis solues so levantadas de acordo com a configurao do
modelo em estudo e tambm, das singularidades existentes no sistema do modelo, como
volume do envelope de trabalho e limites construtivos de cada junta constituinte.















ix
ABSTRACT

The present work seeks implementation of the inverse kinematics for the
manipulator's robot virtual model SCORBOT-ER4PC that is part of a environment of
simulation that is being developed by the Laboratory of Virtual Reality Applied-
LARVA of the State University of Santa Catarina - UDESC. The kinematics is divided
in direct and inverse, where the direct kinematics is responsible to resolve, from de
values of the angles of each robots element, the position and orientation of robots end-
effector, while the inverse kinematics is responsible to resolve, from the position in the
space, one set of values of angles of each robots element that reach the desired
position. The resolution of the inverse kinematics of the model start, from the robots
features and of the direct kinematics resolution. Having the function of the inverse
kinematics, an interface created in the simulator makes possible the user to interact with
the virtual model and to analyze some possible solutions for the problem of the robots
manipulators' inverse kinematics. The possible solutions are lifted up in agreement with
the configuration of the model in study and also, of the existent singularities in the
system of the model, as volume of the work envelope and constructive limits of each
joint.















1. INTRODUO

Este trabalho visa realizar um estudo da cinemtica inversa de robs
manipuladores, utilizando o caso do rob SCORBOT-ER4PC e implementar uma
funo de cinemtica inversa juntamente com uma interface para o controle de
abordagem de rgos terminais que ser inserido no simulador do rob citado
pertencente ao grupo LARVA.
A cinemtica inversa a base para a movimentao dos robs manipuladores, ou
seja, todas tarefas realizadas pelo rob necessitam do clculo da cinemtica inversa,
sendo assim considerada a funo mais importante dentro do estudo da cinemtica de
robs manipuladores.
A principal importncia deste trabalho a disponibilizao de uma ferramenta
de ensino a estudantes de robtica. Com um ambiente de simulao os usurios podero
usufruir de recursos visuais e de interatividade que propiciaro o entendimento dos
conceitos fundamentais que so estudados em cursos de fundamentos de robtica.
Segundo Hounsell e Pimentel (HOUNSELL e PIMENTEL 2003) o uso de ambientes
virtuais para ensino de robtica propiciam vrios benefcios que auxiliam o usurio,
como a sensao de espao e proporo, a variao do cenrio, onde o usurio pode
estar em cenrios diferentes realizando tarefas diferentes, levantando situaes que no
mundo real dificilmente haveria possibilidade de se realizar um treinamento ou
aprendizado, a segurana do rob e do usurio, onde os equipamentos e todos os
investimentos realizados esto protegidos e principalmente garantida a integridade
fsica do usurio.
Tambm verificada a importncia da cinemtica inversa nos simuladores em
aplicaes industriais para o desenvolvimento da programao off-line, ou seja, no h
necessidade de se retirar um rob de sua estao de trabalho para realizar a programao
de alguma tarefa, como o caso da programao on-line onde, atravs de ferramentas
como teach-pendant, ensinado ao rob, as posies, orientaes e respectivos
movimentos (REDEL et al, 2003). Utilizando-se da programao off-line, no se possui
as ferramentas de ensino, sendo necessrio disponibilizar ao usurio uma certa
flexibilidade para implementar o programa, e este o objetivo do controle de
abordagem implementado neste trabalho pois com ele o usurio poder escolher qual a
11
melhor maneira, por exemplo, de agarrar um determinado objeto que possua alguma
restrio geomtrica.
Na rea da simulao tambm o uso da cinemtica inversa importante fator
para estudos cinemticos de projetos de novos robs, onde uma simulao pode ser
realizada durante o projeto do modelo real, antes da construo fsica do rob,
verificando o bom funcionamento do rob (FLCKIGER et al, 1996).
Diante disto a seguir so mostrados os objetivos deste projeto:

Objetivo Geral:
Desenvolver uma interface que facilite a definio e a experimentao do
posicionamento e orientao do rgo terminal de um rob manipulador a um
determinado objeto via cinemtica inversa.

Objetivos Especficos:

Implementar a cinemtica inversa para o simulador ER4PC do LARVA;
Modificar a interface grfica de forma a poder controlar e variar a abordagem
do rgo terminal;
Levantar e estudar tcnicas de resoluo da cinemtica inversa considerando
aspectos grficos somente (no levando em considerao restries e
otimizaes quanto a foras e energias).

O trabalho ser dividido em captulos de forma a organizar as informaes para
facilitar a compreenso. O captulo 2 traz alguns conceitos bsicos de robtica como os
movimentos dos robs, tipos de robs e espao de trabalho, que so importantes para
fundamentao de outros conceitos apresentados a seguir. No captulo 3 realizada uma
reviso bibliogrfica do estudo da cinemtica, onde sero abordados os procedimentos
da resoluo dos problemas das cinemticas direta e inversa. Com a reviso concluda,
no capitulo 4 realizado todos os procedimentos do capitulo 3 para o rob em estudo,
ou seja, o SCORBOT-ER4PC. No captulo 5 so mostrados alguns conceitos de
realidade virtual bem como a linguagem de programao de ambientes virtuais,
chamada VRML (Virtual Reality Modeling Language). No captulo 6 mostrada a
12
implementao realizada, ou seja, a interface do simulador com a funo da cinemtica
inversa, e por fim so realizadas consideraes finais com propostas para futuros
trabalhos.
































2. ROBTICA

Uma das primeiras menes feitas ao desenvolvimento de organismos artificiais
com o intuito de prover funes que auxiliassem os seres humanos foi descrita em uma
novela de fico cientfica muito conhecida escrita por Mary Shelley intitulada
Frankenstein, publicada em 1817. A histria trata dos esforos de um cientista Dr.
Frankenstein, para criar um monstro humanide, que aterroriza a comunidade local
(GROOVER, 1988).
A robtica possui vrias definies, segundo vrios pontos de vista. Porm o
termo ou a palavra rob no portugus derivada pela palavra Checa robota
fazendo meno a uma pea teatral do inicio de 1920, de autoria de Karel Capek,
intitulada Os Robs Universais de Rossum. No vocabulrio Checo a palavra robota
significa servido ou trabalhador forado. Desde ento o termo tem sido aplicado para
uma grande variedade de dispositivos mecnicos, ou seja, qualquer dispositivo que
opere com algum grau de autonomia, usualmente sobre um controle computacional, tem
sido chamada de Rob.
Uma definio de rob muito aceita no mundo do Instituto de Robtica da
Amrica (RIA) (SPONG, 1989):
Um rob um manipulador multifuncional reprogramvel projetado para
mover materiais, peas, ferramentas, ou dispositivos especiais atravs de variveis de
movimento programadas para a realizao de uma variedade de tarefas.
Outra definio pode ser encontrada em (SCHILLING, 1990):
Um rob um dispositivo mecnico controlado por software que usa sensores
para gui-lo ou usa ferramentas na sua garra, que atravs de movimentos programados
dentro de um espao de trabalho, manipula objetos fsicos.
Em virtude desta definio mais tcnica de rob pode-se afirmar que a robtica
nasceu atravs do casamento de duas outras tecnologias recentes na poca de 1940 e
1950 durante a segunda grande guerra mundial, a Teleoperao e o Comando
Numrico.
O comando numrico (NC) foi desenvolvido para mquinas operatrizes. Como
o nome sugere, o comando numrico envolve o controle das aes de uma mquina
operatriz por meio de nmeros, provendo grande preciso dos processos.
14
A teleoperao, ou sistemas mestre-escravo, foram desenvolvidos durante a
segunda guerra mundial para manipulao de materiais radioativos. Neste processo o
operador se mantm em um lugar seguro, e neste local, atravs de um circuito fechado
de televiso ou visualmente tambm, pode guiar os movimentos de dispositivo remoto.
Surgem, a partir, deste momento os primeiros robs manipuladores, sendo que
podemos destacar o dispositivo robtico patenteado pelo britnico Cyril Walter
Fenward em 1954 e o dispositivo de Transferncia Programada de Artigos de George
C. Devol, tambm em 1954.
Em 1962, Joseph Engelberger um fsico formando pela Universidade de
Columbia, juntamente com Geroge C. Devol fundaram a primeira companhia de
robtica a Unimation Company e iniciaram a comercializao dos robs manipuladores
com o nome de Unimate. Os primeiros exemplares foram utilizados na industria
automobilstica (GROOVER, 1988).
Muitos outros projetos se desenvolveram com xito tambm. Podemos citar o
brao manipulador Stanford, da Universidade de Stanford, o Cincinnati Milacron, o
rob PUMA, o SCARA, dentre outros.
Atualmente muitas companhias fabricam robs manipuladores como por
exemplo, Fanuc, ABB, Kuka, Kawasaki.
Dentro do ramo da robtica encontramos o estudo da cinemtica dos robs. O
estudo da cinemtica prov uma anlise dos movimentos do rob em relao ao espao
geomtrico. Para tanto, alguns conceitos, como os tipos de movimentos dos robs
manipuladores, os tipos de juntas que compem estes robs e em relao a sua
configurao ou forma construtiva, o espao geomtrico que o rob pode atuar ou
trabalhar, so necessrios para melhor compreenso dos assuntos que seguiro

2.1 MOVIMENTAO DOS ROBS

Robs industriais so projetados para realizarem trabalho produtivo. O trabalho
realizado pela habilidade do rob mover seu corpo, brao e punho atravs de uma
srie de movimentos e posies. Fixado no punho est o efetuador, garra ou ferramenta,
o qual usado pelo rob para realizar uma tarefa especfica. Os movimentos do rob
podem ser divididos em duas grandes categorias: movimento do brao e do corpo, e
15
movimento do punho. Os movimentos individuais das juntas associados com estas duas
categorias geralmente so referenciados em termos de graus de liberdade (DOF
Degrees Of Freedom), e um rob industrial tpico equipado com 4 a 6 DOF. Trs
juntas so normalmente associadas com a ao do brao e duas ou trs juntas so
geralmente usadas para atuar o punho. Os membros rgidos que conectam as vrias
juntas so chamados de elos ou links. Em qualquer cadeia elo-junta-elo chamamos o elo
mais perto da base de elo de entrada. O elo de sada o elo que se move em relao ao
elo de entrada.
As juntas usadas no projeto de robs so tipicamente as juntas linear ou
rotacional. Juntas lineares envolvem um movimento de deslizamento ou translacional
dos elos conectados. Este movimento pode ser conseguido de vrias maneiras (por um
pisto, um mecanismo telescpico e um movimento relativo ao longo de um trilho).
Podemos referir uma junta linear como uma junta do tipo L (Linear). O termo junta
prismtica algumas vezes encontrada na literatura no lugar de junta linear.
H, pelo menos, trs tipos de juntas rotacionais que podem ser distinguidas nos
manipuladores robticos: a junta R (Rotacional), onde o eixo de rotao perpendicular
ao eixo dos dois elos conectados; a junta T (Toro), onde o eixo de rotao da junta
paralelo a ambos os elos; e a junta V (reVoluo), no qual o elo de entrada paralelo ao
eixo de rotao e o elo de sada perpendicular ao eixo de rotao. As quatro juntas so
mostradas na fig. 1, com os seus respectivos movimentos relativos entre os elos.
FIGURA 1 Tipos de Juntas
Fonte: GROOVER, 1998

As juntas do brao e corpo so projetadas para habilitar o rob a mover sua
ferramenta para uma posio desejada dentro dos limites do tamanho do rob e dos
movimentos da junta.
O movimento do punho projetado para habilitar o rob a orientar a ferramenta
em relao tarefa a ser realizada. Por exemplo, a mo deve ser orientada num ngulo
16
apropriado em relao a um objeto, a fim de agarr-lo. Para resolver este problema de
orientao, o punho normalmente provido de 3 DOF. A fig. 2 mostra o punho e seus
respectivos movimentos.

1. Rolamento (Roll): a rotao do mecanismo do punho sobre o eixo do
brao;
2. Arfagem (Pitch): a rotao para cima ou para baixo do punho;
3. Guinada (Yaw): a rotao para direita ou para esquerda do punho.


FIGURA 2 Juntas do punho
Fonte: GROOVER, 1998

2.2 TIPOS DE ROBS

Robs industriais so disponibilizados em uma larga variedade de tamanhos,
formas e configuraes fsicas. A vasta maioria dos robs, disponveis comercialmente
hoje, possui uma das quatro configuraes bsicas:

1. Configurao Polar (Esfrico);
2. Configurao Cilndrica;
3. Configurao de Coordenadas Cartesianas;
4. Brao Articulado (Revoluto)
17
A configurao polar mostrada na fig. 3.a. Esta configurao usa um brao
telescpico que pode ser erguido ou abaixado sobre um piv horizontal. O piv
montado sobre uma base rotativa. Estas vrias juntas provem ao rob uma capacidade
de mover seu brao dentro de um espao esfrico, e por isto tambm recebe o nome de
rob de coordenadas esfricas.
A configurao cilndrica, fig. 3.b usa uma coluna vertical e um elemento
deslizante que pode ser movido ao longo da coluna, para cima e para baixo. O brao do
rob fixado no elemento deslizante que pode ser movido radialmente em relao
coluna. Pela rotao da coluna, o rob capaz de realizar um espao de trabalho que se
aproxima a um cilndrico.
O rob de coordenadas cartesianas, fig. 3.d usa trs elementos lineares para
construir os eixos x,y,z. Outros nomes so, algumas vezes, usados para esta
configurao, incluindo rob xyz e rob retilinear. Pelo movimento dos trs eixos um
em relao ao outro, o rob capaz de operar dentro de um espao de trabalho
retangular.


FIGURA 3 Configuraes bsicas de robs
Fonte: GROOVER, 1998
18
O rob brao articulado possui uma configurao similar ao brao humano,
fig. 3.c. Ele consiste de componentes lineares correspondentes ao brao e antebrao
humano, montados num pedestal vertical. Estes componentes so conectados por duas
juntas rotacionais correspondestes ao ombro e o cotovelo. Um punho fixado no final
do antebrao, com isto provendo vrias juntas adicionais.
H relativas vantagens e desvantagens nestas quatro anatomias bsicas do rob
simplesmente devido s suas geometrias. Em termos de repetio de movimento, o rob
cartesiano possui vantagens devido a sua estrutura rgida. Em termos de distncia de
alcance, a configurao polar e o brao articulado so superiores. As configuraes
cilndrica e cartesiana so projetados para suportar cargas maiores.

2.3 ESPAO DE TRABALHO

Espao de trabalho o termo que refere ao espao dentro do qual o rob pode
alcanar com seu punho. A conveno de usar o punho para definir o espao de trabalho
do rob adotada para evitar a complicao de diferentes tamanhos de
efetuadores/garras que podem ser aplicados no punho do rob. O efetuador uma
adio ao rob bsico e no deve ser contado como parte do espao de trabalho do rob.
Um efetuador longo montado no punho adicionar uma extenso significativa ao rob
comparado com um efetuador menor. Tambm o efetuador fixado no punho no poder
ser capaz de alcanar certos pontos dentro do espao de trabalho normal do rob devido
a particulares combinaes de limites de juntas do rob.
O espao de trabalho determinado pelas seguintes caractersticas bsicas:

A condio fsica do rob;
O tamanho do corpo, brao, e componentes do punho;
Os limites dos movimentos das juntas do rob.

A influncia da configurao fsica na geometria do espao de trabalho
mostrada na fig. 4. Um rob de coordenadas polares possui um espao de trabalho que
uma esfera parcial, fig. 4.d, um rob de coordenadas cilndricas possui um envelope de
trabalho cilndrico, fig. 4.a, um rob de coordenadas cartesianas possui um espao de
19
trabalho retangular, fig. 4.b, e um rob do tipo brao articulado possui um espao de
trabalho aproximadamente a uma esfera, fig. 4.c.


(a) (b)


(c) (d)
FIGURA 4 Espao de trabalho das configuraes bsicas
Fonte: GROOVER, 1998

O tamanho de cada espao de trabalho influenciado pelas dimenses dos
componentes do brao e pelos limites dos movimentos das suas juntas. Usando uma
configurao cilndrica, por exemplo, limites na rotao da coluna sobre a base,
determinaro qual poro de um cilindro completo o rob poder alcanar com seu
punho.




3.CINEMTICA

O estudo da cinemtica basicamente dividido em dois problemas, o problema
da cinemtica direta e o da cinemtica inversa.

3.1 O PROBLEMA DA CINEMTICA DIRETA

O objetivo da cinemtica direta controlar a posio e a orientao de
ferramenta num espao tridimensional. A ferramenta pode ser programada para seguir
uma trajetria planejada ou manipular objetos dentro de um espao de trabalho. Para
realizar a programao do movimento da ferramenta, deve-se primeiramente formular a
relao entre as variveis das juntas e a posio e orientao da ferramenta. Isto o que
se refere o problema da cinemtica direta, como pode ser formalmente definido:

Problema da Cinemtica Direta: Dado um vetor de variveis de juntas de um
manipulador robtico, determinar a posio e orientao da ferramenta em relao
base do rob.
O resultado da cinemtica direta provm da equao do brao, para cada tipo de
rob, conforme a configurao do mesmo. Para tanto necessrio conhecer os
parmetros cinemticos envolvidos em cada elemento do rob. Cada par de elos
conectado por juntas ou de revoluo ou prismticas. A posio relativa e a orientao,
destes dois elos sucessivos, podem ser representadas por dois parmetros de junta,
conforme mostrado na fig. 5.a .
Aqui a junta k conecta o elo k-1 ao elo k. Os parmetros associados com a junta k
so definidos em relao a z
k-1
, o qual alinhado como o eixo da junta k. O primeiro
parmetro de junta,
k
, chamado de ngulo da junta. Ele a rotao sobre z
k-1

necessria para fazer o eixo x
k-1
paralelo com o eixo x
k
. O segundo parmetro, d
k

chamado de distncia do ngulo. Ele a translao ao longo de z
k-1
necessria para
fazer o eixo x
k-1
intersecionar com o eixo x
k
. Ento
k
a rotao sobre o eixo da junta
k, enquanto d
k
a translao ao longo do eixo da junta k. Para cada junta, necessrio
que um desses parmetros seja fixo enquanto o outro seja varivel. O parmetro da junta
21
varivel depende do tipo de junta, para juntas de revoluo, o ngulo da junta
k

varivel e a distncia da junta d
k
fixa. Portanto dois elos rotacionam um em relao ao
outro sobre o eixo da junta k. Para juntas prismticas, a distncia da junta k varivel e
o ngulo da junta fixo. Neste caso, os dois elos translacionam um em relao ao outro
ao longo do eixo da junta k.


FIGURA 5 Parmetros Cinemticos
Fonte SCHILLING, 1990

Assim como h uma junta conectando elos adjacentes, h tambm um elo entre
juntas sucessivas. A posio e orientao relativa dos eixos de duas juntas sucessivas
podem ser especificadas por dois parmetros de elos, como mostrado na fig. 5.b. Aqui o
elo k conecta a junta k junta k+1. Os parmetros associados com o elo k so definidos
em relao a x
k
, o qual uma normal comum entre o eixo da junta k e o eixo da junta
k+1. O primeiro parmetro de elo, a
k
, chamado de comprimento do elo. Ele a
translao ao longo de x
k
necessria para fazer o eixo z
k-1
intersecionar com o eixo z
k
. O
segundo parmetro de elo,
k
, chamado de ngulo de revoluo do elo. Ele a rotao
sobre x
k
necessria para fazer o eixo z
k-1
paralelo com o eixo z
k
(SCHILLING,1990).
Diferente dos parmetros de junta, os dois parmetros de elos so sempre
constantes e so especificados como partes do projeto mecnico. Para um manipulador
robtico de n eixos, os quatro parmetros cinemticos constituem um conjunto mnimo
necessrio para especificar a configurao cinemtica do rob. Para cada eixo, trs
parmetros so fixos e dependem do projeto mecnico, enquanto o quarto parmetro
22
uma junta varivel.

3.1.1 Representao de Denavit-Hartenberg (DH)

Devanit e Hartenberg propuseram uma notao sistemtica para atribuir um
sistema de coordenadas ortonormal com a regra da mo direita, um para cada elo numa
cadeia cinemtica aberta de elos (SCHILLLING,1990). Uma vez que estes sistemas de
coordenadas fixados ao elo so atribudos, transformaes entre sistemas de
coordenadas adjacentes podem ser representadas por uma simples matriz de
transformao de coordenadas homogneas 4x4 padronizada. Para atribuir o sistema de
coordenadas para os elos do rob, considere L
k
ser o sistema associado com o elo k, ou
seja:

{ }
k k k
k
z y x L , , = 0 k n

O sistema de coordenadas L
k
ser fixado ao fim distal do elo k para 0 k n.
Isto coloca o ltimo sistema de coordenadas, L
n
, na ponta da ferramenta. Os conjuntos
de coordenadas so atribudos aos elos usando o seguinte procedimento
(SCHILLING,1990):

0. Enumere as juntas de 1 a n comeando com a base e terminando com ngulos
yaw, pitch e roll, nesta ordem.
1. Atribuir o conjunto de coordenadas ortonormal com a regra da mo direita L
0

base do rob, sendo que z
0
dever ser alinhado com o eixo da junta 1. Faa k=1.
2. Alinhe z
k
com o eixo da junta k+1.
3. Localize a origem de L
k
na interseo dos eixos z
k
e z
k-1
. Se eles no se
intersecionarem, use a interseo de z
k
com a normal comum entre z
k
e z
k-1
.
4. Estabelea x
k
sendo ortonormal a ambos z
k
e z
k-1
.
5. Estabelea y
k
para formar o conjunto de coordenadas L
k
utilizando a regra da
mo direita.
6. Faa k=k+1. Se k<n, v para o passo 2, seno, continue.
7. Selecione a origem de L
n
na ponta da ferramenta. Alinhe z
n
com o vetor
aproximao, y
n
com o vetor deslizamento e x
k
com o vetor normal da
23
ferramenta. Faa k=1.
8. Localize o ponto b
k
na interseo dos eixos x
k
e z
k-1
. Se eles no se
intersecionam use a interseo de x
k
com a comum normal entre x
k
e z
k-1
.
9. Faa
k
como o ngulo da rotao de x
k-1
e x
k
medido sobre z
k-1
.
10. Faa d
k
como a distncia da origem do conjunto L
k-1
ao ponto b
k
medido ao
longo de z
k-1
.
11. Faa a
k
como a distncia do ponto b
k
at a origem do conjunto L
k
medido ao
longo de x
k
.
12. Faa
k
como o ngulo de rotao entre z
k-1
e z
k
medido sobre x
k
.
13. Faa k=k+1. Se k n, v para o passo 8, seno pare.
Uma vez que um sistema de coordenadas de elos atribudo usando o algoritmo
DH, pode-se ento, transformar de um sistema de coordenadas k para o de coordenadas
k-1 usando uma matriz de transformao homognea de coordenadas. Pela
multiplicao de vrias destas matrizes de transformao juntas, chega-se na matriz de
transformao de coordenadas compostas na qual transforma ou mapeia as coordenadas
da ferramenta dentro da coordenada de base.
H quatro passos envolvidos na construo da matriz de transformao
homognea os quais mapeiam o sistema de coordenadas k dentro do de coordenadas k-
1. Cada um desses passos est associado com um dos quatro parmetros cinemticos.
Para determinar a matriz de transformao, deve-se sucessivamente rotacionar e
translacionar o sistema de coordenadas k-1 para coincidir com o conjunto de
coordenadas k. Usando os passos 8 a 12 do algoritmo DH, isto envolve as quatro
operaes fundamentais sumarizadas na tab. 1.

TABELA 1 Operaes de transformao de coordenadas
Fonte SCHILLING, 1990

OPERAO DESCRISO
1 Rotacionar L
k-1
sobre z
k-1
por
k
2 Translacionar L
k-1
ao longo de z
k-1
por d
k
3 Translacionar L
k-1
ao longo de x
k-1
por a
k
4 Rotacionar L
k-1
sobre x
k-1
por
k
24
Utilizando-se das transformaes homogneas compostas tem-se a seguinte matriz
para cada transformao do sistema de coordenadas k-1 para o de coordenadas k:




(3.1)

Portanto, para realizar a transformao do conjunto de coordenadas de k=0 at
k=n necessita-se realizar a multiplicao de todas as matrizes:


ferramenta
ferramenta base
ferramenta
base
T T T T
1
2
1
1
.... .

=
(3.2)


Como resultado s sucessivas multiplicaes das matrizes de transformaes
homogneas temos uma matriz resultante, que chamada de equao do brao
(SCHILLING, 1990):

(3.3)


Para cada valor do vetor de junta q, que composto pelas juntas variveis do
rob, com dimenso correspondente ao nmero de graus de liberdade, a equao do
brao T(q) pode ser resolvida. Na equao 3.3 a sub-matriz 3x3 R(q) na superior
esquerda especifica a orientao da ferramenta, enquanto a sub-matriz 3x1 p(q) na
superior direita especifica a posio da ponta da ferramenta. As trs colunas de R(q)
indicam a direo dos trs vetores unitrios do sistema de coordenadas da ferramenta
em relao base, como pode ser visto na fig.6 onde os vetores r
1
, r
2
e r
3
so os vetores
de R(q). Similarmente, p(q) especifica as coordenadas da ponta da ferramenta em
relao base. A soluo do problema da cinemtica direta na equao 3.2, mostrada
na fig. 6.

(
(
(
(

1 0 0 0
cos sen 0
sen . cos . sen cos . cos sen
cos . sen . sen sen . cos cos
1
k k k
k k k k k k k
k k k k k k k
k
k
d
a
a
T



25


FIGURA 6 Soluo grfica do problema da cinemtica direta
Fonte: SCHILLING, 1990


3.2 O PROBLEMA DA CINEMTICA INVERSA

A chave para a soluo do problema da Cinemtica Direta foi o algoritmo de
Denavit-Hartenberg, um procedimento sistemtico para determinar os elos de
coordenadas para um rob manipulador. Sucessivas transformaes entre conjuntos de
coordenadas adjacentes, comeando na ponta da ferramenta retornando at a base do
rob, ento levando para a equao do brao. A equao do brao representa a posio p
e a orientao R da ferramenta na base do rob como uma funo de variveis de juntas
q, conforme mostrado na fig. 6.
Por convenincia, iremos referenciar a posio e a orientao da ferramenta
coletivamente como a configurao da ferramenta. A soluo para o problema da
cinemtica direta pode ser expressa da seguinte forma: R representa a rotao e p
representa a translao da ferramenta em relao base, conforme a equao 3.3.
A soluo para o problema da cinemtica direta til pois mostra explicitamente
a dependncia da configurao da ferramenta nas variveis das juntas. Isto pode ser
utilizado, por exemplo, na determinao do tamanho e da forma do espao de trabalho.
Em particular, supondo que Q representa a faixa de valores no espao R
n
que as
variveis das juntas podem assumir. Referencia-se Q como junta-espao de trabalho do
rob. Tipicamente, o espao de trabalho um poliedro convexo em R
n
da seguinte
forma geral:
26

{ }
max min n
q Cq q : R q Q =

(3.4)


Aqui q
min
e q
max
so vetores constantes em R
m
os quais representam limites das
juntas e C uma matriz de par de juntas. Para o mais simples caso, a Matriz C =I, neste
caso q
k
min
e q
k
max
representam os limites inferiores e superiores, respectivamente, para a
junta k. Mais genericamente, se a matriz C possui alguns termos de fora da diagonal,
ento a equao 3.4 representa as restries de uma combinao linear das variveis das
juntas. Neste caso o nmero de restries m pode exceder o nmero de variveis n. O
conjunto de posies no espao Cartesiano R
3
que so alcanados pela ponta da
ferramenta pode ser investigado pela verificao dos valores p(q) com q varia sobre Q.
Similarmente, o conjunto de orientaes alcanveis pela ferramenta pode ser
determinado pela verificao dos valores de R(q) como q varia sobre a junta-espao de
trabalho Q.
Talvez o mais importante benefcio provido pela soluo do problema da
cinemtica direta que ela se situa como base para a soluo do problema da cinemtica
inversa. O vetor das variveis das juntas q restringido pelo sub-conjunto Q de R
n
.
Referenciamos o vetor espao R
n
neste caso com espao das juntas. Similarmente, os
parmetros da configurao da ferramenta {R, p} pode ser associado com um sub-
conjunto W de R
6
. Referenciamos o vetor espao R
6
neste caso como espao
configurao da ferramenta. O espao configurao da ferramenta de sexta dimenso
pois configuraes arbitrrias da ferramenta podem ser especificadas pelo uso de trs
coordenadas de posio (p
1
, p
2
, p
3
) junto com trs coordenadas de orientao (yaw,
pitch, roll). Solucionando o problema da cinemtica direta equivalente a encontrar
mapeamento do espao das juntas para o espao da configurao da ferramenta,
enquanto solucionando o problema da cinemtica inversa equivalente a encontrar o
mapeamento do espao da configurao da ferramenta de volta para o espao das juntas.
Uma sumarizao desta relao entre as duas formas do problema da cinemtica
mostrado na fig. 7.

27

FIGURA 7 Relao dos problemas da cinemtica direta e inversa
Fonte: SCHILLING, 1990


O problema da cinemtica inversa mais difcil que o problema da cinemtica
direta, pois no h um procedimento sistemtico explcito como o algoritmo DH
(SCHILLING, 1990). Um resultado disto que cada rob, ou classe de robs, tem que
ser tratados separadamente.
No entanto, a soluo para o problema da cinemtica inversa mais til do que da
cinemtica direta, pois no controle da trajetria do rob a cinemtica inversa se faz
necessria para escolha da melhor configurao das juntas para um movimento de um
ponto a outro com o mnimo de esforo, ou seja, com o movimento de menos juntas
possveis. Alm disso, a chave para fazer robs mais versteis implica em usar
feedbacks de sensores externos tais como o de viso. Sensores externos alimentam
informaes sobre a localizao e orientao de objetos em termos de variveis do
espao de configurao.
Estas informaes so necessrias na determinao dos valores apropriados das
juntas do rob, para que o rob possa realizar determinada tarefa em locais sujeitos a
interferncia de outros equipamentos no espao de trabalho do rob. Portanto devemos
encontrar o mapeamento da especificao de entrada do espao configurao da
ferramenta dentro de uma especificao de sada do espao de junta. Isto o problema
da cinemtica inversa. Caracterizamos este problema mais formalmente como o
seguinte (SCHILLING, 1990):

28
Problema da Cinemtica Inversa: Dado uma posio p e uma orientao R desejada
para a ferramenta, encontre as variveis das juntas q as quais satisfaam a equao do
brao 3.3.

A soluo para o problema da cinemtica inversa muito til mesmo quando
sensores externos no so empregados. Um caso, por exemplo, o problema de manter
o elemento final ou ferramenta seguindo um caminho em linha reta. Certos tipos de
operaes de montagem, pintura ou colagem requerem que caminhos em linha reta
sejam seguidos ou pelo menos obtenham-se uma aproximao destes. Uma trajetria em
linha reta naturalmente formulada no espao de configurao da ferramenta. Ento
necessrio encontrar uma trajetria correspondente no espao das juntas a qual ir
produzir um movimento linear da ponta da ferramenta. Este um especial caso do
problema da cinemtica inversa.

3.2.2 Propriedades gerais das solues


Embora uma soluo geral tem sido obtida para o problema da cinemtica direta,
os detalhes de uma soluo explcita para o problema da cinemtica inversa, dependem
do rob ou da classe de robs que esto sendo investigada. No entanto, h certas
caractersticas da soluo que so as mesmas no geral.
Primeiramente, examinaremos as condies sob as quais as solues para o
problema da cinemtica inversa existam. Claramente, se uma posio p da ponta da
ferramenta est fora do espao de trabalho, ento no pode haver soluo. Alm disto,
quando p est dentro do espao de trabalho, pode haver certas orientaes R da
ferramenta as quais no so realizveis sem violar um ou mais limites das variveis das
juntas. Se o rob possui menos que trs graus de liberdade para a orientao da
ferramenta, ento nem todas as classes de orientao no so realizveis. Para examinar
este assunto, consideremos a seguinte formulao, na equao 3.5, mais detalhada da
equao do brao.

29

( )
(
(
(
(

=
1 0 0 0
33 32 31
23 22 21
13 12 11
z
y
x
ferramenta
base
p R R R
p R R R
p R R R
q T
(3.5)


Sendo que a ltima linha da equao do brao sempre constante, a equao do
brao constitui um sistema de 12 simultneas equaes algbricas no lineares com n
componentes desconhecidos de q. No entanto, as 12 equaes so de forma alguma
independentes umas das outras. Sendo que R uma matriz de transformao de
coordenadas representando uma pura rotao de um elo ortonormal outro segundo
R
-1
= R
T
. Mas se R
T
.R=I, ento as trs colunas de R formam um conjunto ortonormal.
Esta mutua ortogonalidade coloca trs restries nas colunas de R, que so:


0 r . r
0 r . r
0 r . r
3 2
3 1
2 1
=
=
=
(3.6)


Estas restries vm dos termos diagonais de R
T
.R=I. Os termos diagonais ditam
que cada coluna de R deve tambm ser um vetor unitrio. Isto adiciona mais trs
restries para as colunas de R:

1 r
k
= 3 k 1 (3.7)

Ento as 12 restries implcitas na equao do brao atualmente representam
apenas 6 restries independentes em n componentes desconhecidos do vetor das
variveis das juntas q. Se quisermos uma soluo geral para o problema da equao do
brao, para qual um q possa ser encontrado o qual gera uma configurao da ferramenta,
ento o nmero de desconhecidos deve ser o nmero de restries independentes, que
(SCHILLING, 1990):
Manipulador Geral n 6

30
O limite mnimo no nmero de eixos n uma necessidade, mas no uma
condio suficiente para a existncia de uma soluo para o problema da cinemtica
inversa quando configuraes da ferramenta arbitrrias so especificadas. Claramente, a
posio da ferramenta deve ser dentro do espao de trabalho do rob, e a orientao da
ferramenta deve ser tal que nenhum dos limites nas variveis das juntas sejam violadas.
Quando estas restries adicionais nos valores de p e R so satisfeitas, no h garantias
que uma expresso de forma fechada para a soluo do problema da cinemtica inversa
pode ser obtida.
A estratgia geral para a soluo do problema da cinemtica inversa simplifica
quando o rob possui um punho esfrico. Para ver isto, considere o caso de um rob
com n eixos onde 4 n 6. Suponha que o ltimo eixo um eixo de rotao da
ferramenta, e supondo que o rob tenha um punho esfrico, o que significa que os n - 3
eixos no fim do brao se intersecionam no mesmo ponto. Para esta classe de robs, o
problema da cinemtica inversa pode ser decomposto em dois subproblemas menores
pelo particionamento do problema original no punho. Dado a posio da ponta da
ferramenta p e a orientao da ferramenta R, a posio do punho p
punho
pode ser inferido
de p retornando ao longo do vetor aproximao (SCHILLING, 1990).


3
.r d p p
n
punho
=
(3.8)

Aqui a distncia da junta d
n
representa o comprimento da ferramenta para um
rob de n eixos to longo quanto o ltimo eixo um eixo de rotao da ferramenta. O
vetor aproximao r
3
simplesmente a terceira coluna da matriz de rotao R. Uma vez
que a posio do punho p
punho
obtida de {p, R, d
n
}, as primeiras trs variveis de juntas
{q
1
, q
2
, q
3
} que so usadas para posicionar o punho podem ento ser obtidas da seguinte
equao do brao reduzida:
( )
(


=
1
.
, ,
3
4
3 2 1
r d p
i q q q T
n punho
base
(3.9)

A quarta coluna de T representa as coordenas homogneas da origem do elo do
punho L
3
relativo base L
0
. Sendo que as coordenadas do punho dependem apenas das
31
variveis das juntas {q
1
, q
2
, q
3
}, estas variveis das juntas dos eixos maiores podem ser
resolvidas por separao usando a equao 3.9. Uma vez que as variveis das juntas {q
1
,
q
2
, q
3
} so encontradas, seus valores podem ser substitudos dentro da equao geral do
brao na equao 3.5 e podem ser resolvidas as variveis das juntas remanescentes
{q
4
,....,q
n
}.

3.2.2 Unicidade de solues

A existncia de soluo para o problema da cinemtica inversa no a nica
resposta que precisa ser respondida. Quando a soluo existe, tipicamente ela no
nica. Isto , mltiplas solues podem ser levantadas em vrios mtodos. Por exemplo,
alguns robs so projetados com n eixos onde n > 6. Para estes robs, existem muitas
solues para o problema da cinemtica inversa. Os robs com mais de 6 eixos so
chamados de robs cinematicamente redundantes, pois eles possuem mais graus de
liberdade que os necessrios para estabelecer configuraes de ferramentas arbitrrios.
Estes graus de liberdade extras adicionam flexibilidade para os manipuladores. Por
exemplo, um rob redundante pode ser usado para alcanar algum objeto ao redor de
algum objeto e manipul-lo. Aqui alguns dos graus de liberdade podem ser usados para
evitar o obstculo enquanto os demais dos graus de liberdade so usados para configurar
a ferramenta. Considere, por exemplo, a viso de cima de um rob redundante SCARA
mostrado na fig. 8. Sendo que apenas duas juntas so necessrias para estabelecer uma
posio horizontal da ferramenta, a Segunda junta do cotovelo do rob SCARA
redundante (SCHILLING, 1990).
FIGURA 8 Exemplo de rob redundante
Fonte: SCHILLING, 1990

32
Quando o rob no cinematicamente redundante, h geralmente circunstncias
na qual a soluo do problema da cinemtica inversa no nica. Vrias solues
distintas podem ser encontradas quando o tamanho do espao de trabalho Q
suficientemente grande. Como um caso a ser visto, considere um rob de coordenadas
articulado mostrado na fig. 9. Se os limites da taxa de deslocamento para as juntas do
ombro, cotovelo e do pitch so suficientemente grandes, ento duas solues distintas
existem para uma simples tarefa de colocar a ponta da ferramenta em frente do rob.
FIGURA 9 Mltiplas solues para robs no redundantes
Fonte: SCHILLING, 1990

So chamadas as duas solues na fig. 9 de soluo cotovelo acima e soluo
cotovelo abaixo. No espao da configurao da ferramenta as duas solues so
idnticas, pois elas produzem o mesmo p e R, mas no espao das juntas so claramente
distintas. Tipicamente a soluo cotovelo acima preferida, pois reduz as chances de
uma coliso entre os elos do brao e obstculos em repouso no espao de trabalho
(SCHILLING, 1990).













4. ROB SCORBOT ER-4PC


O rob Scorbot ER-4PC um rob didtico fabricado pela empresa Intelitek de
Israel. Os robs didticos so fabricados com o uso restrito a ensino, portanto no
possuindo todas as caractersticas dos robs utilizados em aplicaes industriais, mas
reflete em muito a maioria das funcionalidades.
A sua configurao a do tipo brao antropomrfico, ou seja, similar a um
brao humano, onde todas as suas juntas so do tipo revoluo. Este rob possui 5 graus
de liberdade, e portanto no um rob cinematicamente redundante, diante disso no
realiza certas tarefas que os robs industriais com 6 graus de liberdade realizam, por
exemplo, o Scorbot no realiza o movimento yaw, ou seja, o movimento de guinada ou
de rotao lateral do punho da ferramenta.
A fig. 10 mostra um rob Scorbot ER-4PC juntamente com seu controlador e
seu teach pendant.


FIGURA 10 Rob manipulador SCORBOT-ER4PC
Fonte: Intelitek, 2004

34

Na tab. 2 encontram-se dados tcnicos construtivos do rob, onde podem ser
encontrados os limites mecnicos de cada junta e na fig. 11 observa-se o envelope de
trabalho do rob devido a sua configurao das juntas. Estes dados so importantes para
o tratamento das singularidades da soluo da cinemtica inversa, pois se o ponto
desejado estiver fora do envelope de trabalho o rob no conseguir alcana-lo, ou se
um ponto desejado estiver dentro do envelope de trabalho porm algum ngulo de junta
calculado estiver fora dos limites estipulados pelo projeto do rob este tambm no
conseguir alcana-lo.

TABELA 2 Dados Tcnicos construtivos Scorbot-ER4PC
Fonte: Intelitek, 2004

BRAO MECNICO
Estrutura mecanica Brao vertical articulado; estrutura aberta
Graus de liberdade 5 eixos rotacionais
Capacidade de carga 2,1 kg
MOVIMENTO DOS EIXOS
Eixo 1 - Base 310
Eixo 2 - Ombro +135f35
Eixo 3 - Cotovelo 130
Eixo + - Punho 130
Eixo 5 - Garra 570
CARACTERSTICAS GERAIS
Alcance 610 mm com pina
velocidade 700 mmfseg
Repetibilidade 0,18 mm
Realimentaao Encoders ticos incrementais
Home Nicro interruptor em cada eixo
Atuadores Servomotor 12 vDC em cada eixo
Pina Servomotor DC, 2 dedos paralelos
Abertura das pinas 65f75 mm
Transmissao Engrenagem correia dentada
Peso 10,8 kg

35

FIGURA 11 Envelope de Trabalho Scorbot-ER4PC
Fonte: Intelitk, 2004


4.1 CINEMTICA DIRETA DO SCORBOT ER4PC

Para a resoluo do problema da cinemtica direta foi realizado o procedimento
de Denavit-Hartenberg(DH) para a construo da equao do brao para o modelo
especfico de rob.
O rob possui 5 graus de liberdade, portanto 5 juntas variveis, sendo que todas
so juntas de revoluo, sendo assim, segundo a definio dos parmetros cinemticos
j discutidos anteriormente temos os ngulos das juntas
k
variveis e os demais
parmetros, d
k
, a
k
e
k
fixos.
Na fig. 12 mostrada a configurao do modelo do rob Scorbot com 5 graus de
liberdade, aps realizao do procedimento de DH com todos os parmetros
cinemticos envolvidos.
36

FIGURA 12 Esquema grfico do procedimento de DH
Fonte: SCHILLING, 1990


Na tab. 3 sumarizado os parmetros cinemticos do rob Scorbot.

TABELA 3 Parmetros cinemticos do rob Scorbot-ER4PC
Fonte: SCHILLING, 1990

Tendo em mos os parmetros cinemticos de todas as juntas, e utilizando a
matriz de transformao de coordenadas homogneas que transforma o sistema de
coordenadas k-1 para o sistema de coordenadas k da equao 3.1, substitui-se para todas
as transformaes os parmetros cinemticos de cada junta e tem-se:



(
(
(
(

=
1 0 0 0
0 1 0
sen . cos 0 sen
cos . sen 0 cos
1
1 1 1 1
1 1 1 1
1
0
d
a
a
T


(4.1)
JUNTA

i
a
i
d
i

i

Nome

1 - /2 45

360

1
Base

2 0 220

0
2
Ombro

3 0 220

0
3
Cotovelo

4 - /2 0 0
4
Punho

5 0 0 125

5
Rotao

37


(
(
(
(


=
1 0 0 0
0 1 0 0
sen . 0 cos sen
cos . 0 sen cos
2 2 2 2
2 2 2 2
2
1


a
a
T (4.2)


(
(
(
(


=
1 0 0 0
0 1 0 0
sen . 0 cos sen
cos . 0 sen cos
3 3 3 3
3 3 3 3
3
2


a
a
T (4.3)


(
(
(
(

=
1 0 0 0
0 0 1 0
0 cos 0 sen
0 sen 0 cos
4 4
4 4
4
3


T (4.4)


(
(
(
(


=
1 0 0 0
1 0 0
0 0 cos sen
0 0 sen cos
5
5 5
5 5
5
4
d
T


(4.5)


Com todas as matrizes montadas, realizada a multiplicao sucessiva das
matrizes desde a base at a ferramenta, conforme a equao 3.2.
Como resposta a essas multiplicaes de matrizes de quarta ordem obtm-se a
seguinte matriz resultante.


(

=
1
0 0 0
3 2 1
5
0
p
r r r
T
(4.6)

onde:

( ) ( ) [ ]
5 1 5 234 1
1
sen . sen cos . cos . cos + = x r
( ) ( ) [ ]
5 1 5 234 1
1
sen . cos cos . cos . sen = y r
( )
5 234
1
cos . sen = z r
( ) ( ) [ ]
5 1 5 234 1
2
cos . sen sen . cos . cos + = x r
( ) ( ) [ ]
5 1 5 234 1
2
cos . cos sen . cos . sen = y r
38
( )
5 234
2
sen . sen = z r
234 1
3
sen . cos = x r
234 1
3
sen . sen = y r
234
3
cos = z r
( )
234 5 23 3 2 2 1 1
sen . cos . cos . . cos d a a a p
x
+ + =
( )
234 5 23 3 2 2 1 1
sen . cos . cos . . sen d a a a p
y
+ + =
234 5 23 3 2 2 1
cos . sen . sen . d a a d p
z
=


Como soluo para o problema da cinemtica direta tem-se ento a sub-matriz
3x3 composta pelos vetores r
1
, r
2
e r
3
como a orientao da ferramenta e a sub-matriz
3x1 p como a posio no espao na ponta da ferramenta.


4.2 CINEMTICA INVERSA DO SCORBOT ER4PC

H dois mtodos que podem ser aplicados para resolver o problema da
cinemtica inversa. Um modelo seria pela abordagem numrica, utilizando funes de
otimizao com subseqentes iteraes.
Outro mtodo faz o uso da abordagem analtica/geomtrica, onde explorada a
equao do brao, que foi resultado do problema da cinemtica direta. Este mtodo
considerado mais rpido do que os mtodos numricos, e eles podem ser usados para
identificar mltiplas solues. O principal inconveniente do mtodo analtico est no
fato de que a soluo totalmente dependente da configurao do rob. Sendo assim,
uma anlise separada dever ser realizada para cada tipo de rob ou classe de robs.
A soluo analtica para o problema da cinemtica inversa comea com a
utilizao da equao 4.6 que a equao do brao para o rob manipulador.

4.2.1. Junta da base

Sendo que no existe o movimento rotao lateral, o conhecido movimento yaw,
a junta mais fcil de se encontrar o ngulo da base
1
. Inspees nas expresses de p
x
e
p
y
na equao 2.6 revelam que eles possuem um fator em comum.
39
Dividindo p
y
por p
x
temos como soluo.

( )
234 5 23 3 2 1 1
sen . cos . . sen d a a a p
y
+ + =
( )
234 5 23 3 2 2 1 1
sen . cos . cos . . cos d a a a p
x
+ + =


1
2
1
tan
cos
sen

=
|
|
.
|

\
|
=
|
|
.
|

\
|
x
y
p
p


|
|
.
|

\
|
=
x
y
p
p
arctan
1


( )
x y
p p , 2 arctan
1
= (4.7)


A funo arctan2(y,x) acima denota uma verso de quatro quadrantes da funo
arctan. Ela permite cobrir ngulos que esto dentro do intervalo [-, ]. Esta funo
usada repetidamente em derivaes sucessivas. Ela pode ser implementada utilizando a
funo de dois quadrantes comum arctan como mostra a tab. 4, onde a notao sgn
representa a funo signum, ou sign, sendo que sgn() retorna 1 ou 1 dependendo se o
valor de negativo ou positivo, respectivamente (SCHILING,1990).

TABELA 4 Sumarizao da Funo ArcTan2
Fonte: SCHILLING, 1990

Arctan para 4 quadrantes
Caso
Quadrante Arctan2(y,x)
X>0 1,4 Arctan(y/x)
X=0 1,4
[sgn(y)./2]
X>0 2,3
Arctan(y/x)+[sgn(y).]



4.2.2 Junta do Cotovelo

A junta do cotovelo
3
a junta mais difcil de se extrair das equaes, pois ela
fortemente acoplada com os ngulos do ombro e o pitch. Sendo assim, ser iniciada a
resoluo isolando uma varivel intermediria chamada,
234
, chamada de ngulo global
40
da ferramenta. O ngulo
234
ser igual a soma dos ngulos
2
,
3
e
4
o ngulo pitch
medido em relao a superfcie de trabalho ou o plano x
0
y
0
.
Para a resoluo do problema da cinemtica inversa necessrio ter pelo menos
6 equaes, sendo assim utilizado o vetor r
3
da equao 4.6 para auxilio na resoluo.
Ento inspecionando as trs equaes do vetor r
3
podemos encontrar uma relao com
os ngulos 2,3 e 4.

234 1
3
sen . cos = x r (4.8)

234 1
3
sen . sen = y r (4.9)

234
3
cos = z r (4.10)


Multiplicando a equao 4.8 por cos
1
e a equao 4.9 por sen
1,
e somando os
as duas igualdades, temos:
( ) y x r r
3
1
3
1 234
. sen . cos sen + = (4.11)

Dividindo a equao 4.11 por 4.10 temos:

( )
z
y x
w
w w

+
=
. sen . cos
cos
sen
1 1
234
234


( )
z
y x
w
w w

+
=
. sen . cos
tan
1 1
234



( ) [ ]
z y x
w w w + = , . sen . cos 2 arctan
1 1 234
(4.12)

Precisa-se definir duas outras variveis intermedirias para auxiliar na resoluo
dos ngulos 2, 3 e 4. A partir da matriz de posio da equao 4.6 isolam-se dois termos
conforme as equaes 4.13 e 4.14 (TSAI, 1999).


1 23 3 2 2
cos . cos . k a a = + (4.13)

2 23 3 2 2
sen . sen . k a a = + (4.14)

Com isto, a matriz de posio p ser:
( )
234 5 1 1 1
sen . . cos d k a p
x
+ = (4.15)
( )
234 5 1 1 1
sen . . sen d k a p
y
+ = (4.16)
41

234 5 2 1
cos . d k d p
z
= (4.17)
Multiplicando a equao 4.15 por cos
1
e a equao 4.16 por sen
1
e somando as
duas equaes obtemos k
1
e k
2
como sendo:
234 5 1 1 1 1
sen . sen . cos . d a p p k
y x
+ + = (4.18)

234 5 1 2
cos . d d p k
z
+ = (4.19)


Elevando ao quadrado ambos os lados das equaes 4.18 e 4.19, temos que:

2
2
2
1 3 3 2
2
3
2
2
cos . . . 2 k k a a a a + = + +

Isolando o ngulo temos:


(

+
=
3 2
2
3
2
2
2
2
2
1
3
. . 2
arccos
a a
a a k k
(4.20)

Devido existncia de componentes elevados ao quadrado, o ngulo do cotovelo
pode ter duas solues, as conhecidas cotovelo acima e cotovelo abaixo com o valor do

3
sendo positivo ou negativo respectivamente.

4.2.3 Junta do Ombro

Expandindo as equaes 4.13 e 4.14 temos (TSAI, 1999):

( ) ( )
1 2 3 3 2 3 3 2
sen . sen . cos . cos . k a a a = +
( ) ( )
2 2 3 3 2 2 3 3
sen . cos . cos . sen . k a a a = + +

Resolvendo estas equaes isolamos o cos
2
e sen
2
:


( )
|
|
.
|

\
|
+ +
+ +
= =
3 3 2
2
3
2
2
3 3 2 3 3 2 1
2
cos . . . 2
sen . . cos . .
cos 2

a a a a
a k a a k
C
(4.21)


( )
|
|
.
|

\
|
+ +
+ +
= =
3 3 2
2
3
2
2
3 3 2 2 3 3 1
2
cos . . . 2
cos . . sen . .
sen 2

a a a a
a a k a k
S
(4.22)

Aplicando a funo Atan2 obtemos o ngulo do ombro:

( ) 2 C , 2 S 2 arctan
2
= (4.23)
42

4.2.4 Junta do Punho

Com os ngulos do cotovelo e do ombro encontrados isolamos o ngulo do unho

4
do termo genrico
234
. Com isto, tem-se:


3 2 234 4
= (4.24)

4.2.5 Junta de Rotao

A junta de rotao,
5
, uma junta que est totalmente desacoplada com a
posio desejada, mas acoplada sim com a orientao, como podemos observar nas
equaes 4.7 para a resoluo de
1
, 4.12 para a resoluo de
234
, 4.20 para a resoluo
de
3
, 4.23 para a resoluo de
2
e 4.24 para a resoluo de
4
, onde no encontrado o
termo da junta de rotao
5
.
O intuito deste trabalho dar a liberdade ao usurio de escolher a sua forma de
abordagem e com isso esta junta pode ser uma escolha pessoal do usurio e no uma
soluo matemtica.
Portanto, esta junta ser mantida com o valor de 0 (zero) graus, para todas as
operaes, e tambm poder, em trabalhos futuros ser liberada para escolha do usurio.


















43
5. REALIDADE VIRTUAL

Durante a ltima dcada a palavra virtual se tornou uma das palavras mais
usadas na lngua inglesa. Hoje, h universidades virtuais, escritrios virtuais, exibies
virtuais, tneis de vento virtuais, atores virtuais, estdios virtuais, museus virtuais,
doutores virtuais e tudo isto por causa da Realidade Virtual (VINCE, 1999).
Realidade Virtual (RV) surgiu em meados de 1980, e foi o motivo de uma srie
de conferncias, exibies, programas de televiso, e debates filosficos sobre o
significado de Realidade.

5.1 O QUE REALIDADE VIRTUAL?

Os primeiros sistemas RV descreviam uma tecnologia computacional que
habilitava um usurio a olhar atravs de um visor especial chamado de Head-Mounted
Display (HMD) e em vez de verem um mundo normal, eles viam um mundo gerado por
computador. Uma das mais percebidas vantagens desta abordagem foi o mtodo de
integrao do usurio com imagens virtuais. Primeiramente, os movimentos da cabea
do usurio so monitorados eletronicamente e realimentam o computador criando as
imagens, conforme o usurio move sua cabea, os objetos em cena se tornam
estacionrios apenas como eles fazem na vida real. A maioria dos HMDs previne os
usurios de verem o mundo real, o qual, junto com uma viso estereocpica, imergem
os usurios rapidamente num mundo substituto.
Se fosse possvel construir um sistema que habilitasse ao usurio mover-se sobre
o mundo virtual e interagir-se com o prprio mundo, ento se encontrariam aplicaes
extraordinrias. Deveria ser possvel ir a um teatro virtual, fazer um test drive num carro
virtual, e interagir com atores virtuais numa televiso 3D. Os projetistas de carros
poderiam projetar carros conceito e explor-los num nvel virtual muito antes de serem
construdos. Cirurgies poderiam praticar operaes num cadver virtual. As aplicaes
so ilimitadas.
A RV representa um paradigma de interface entre o usurio e o computador, onde
o principal objetivo dessa forma de interface fazer com que o usurio sinta-se dentro
44
da mesma (sensao de imerso). A interface tradicional humano computador uma
interface em duas dimenses, x e y, onde so representados elementos como: botes,
cones, letras, imagens, vdeos, udios e nmeros. Uma interface em realidade virtual
uma interface em 3 dimenses onde no s existem as dimenses x e y do monitor, mas
a dimenso z, ou seja, a dimenso de profundidade.
Juntamente com essa nova idia de interface surgiram tambm dispositivos
especiais que a complementavam como capacetes, luvas, coletes e culos. Esses
dispositivos so os responsveis pela interao do usurio com as aplicaes em
realidade virtual. Nesse caso o usurio fica quase que totalmente imerso na interface
podendo navegar e interagir com o espao virtual. Segundo Kirner (KIRNER, 2004),
realidade virtual uma forma tcnica avanada de interface, onde o usurio pode
realizar imerso, navegao e interao em um ambiente sinttico tridimensional
gerado por computador, utilizando canais multi-sensoriais. Na fig. 13 mostrado um
exemplo de um equipamento de realidade virtual.

FIGURA 13 Dispositivos Especiais para RV (Capacete)
Fonte: KIRNER, 2004

Com a Realidade Virtual o ser humano pode vivenciar uma realidade que no
existe ou enxergar a prpria realidade de uma forma diferente e mais sofisticada de
modo que possa facilitar o seu trabalho e/ou aprimor-lo. A realidade virtual pode ser
considerada hoje, a forma mais avanada de interface usurio-mquina.
Um mundo virtual um ambiente desenvolvido com interface tridimensional -
realidade virtual para aplicaes especficas controlado interativamente pelo
45
computador. No mundo virtual os dados no so apenas nmeros ou arquivos, mas
tambm objetos concretos como paredes, cadeiras, mesas, e objetos abstratos como
temperatura, velocidade e cor. No mundo virtual o usurio realiza operaes com dados-
objetos como visualizao, anlise e manipulao. Essas operaes podem refletir no
comportamento do prprio mundo. O suporte essa interao dada por dispositivos
perifricos como luvas, capacetes, coletes e culos.

5.2 ALGUNS CONCEITOS E TERMOS DE RV

A definio de um dicionrio tpico para a palavra virtual ser alguma coisa em
efeito mas no em forma e as palavras realidade virtual so utilizadas como uma
viso da realidade sem requerer o fsico de porcas e parafusos, ou tudo o que no
necessrio para construir realidade (VINCE, 1999).
O que referido como realidade baseado em alguma coisa que chamado de
mundo fsico externo. Este universo tudo o que pode apenas ser explorado por
nossos sensores, e depende-se de do aprendizado do passado para descrever certas
experincias em termo de cores, sons, temperatura, cheiro, sabor, toque, etc. Portanto,
uma realidade virtual parece sugerir uma realidade que acreditvel, e tambm no
existe fisicamente. Mas o que fazemos com o termo acreditvel? Bem acreditar significa
aceitar como real ou verdadeiro. Mas por quanto tempo podemos estar iludidos por
uma realidade alternativa? Um segundo? Um minuto? Uma hora? Alm disso, o que
representa ser verdade para ns?

5.2.1 Navegao e Interao

Basicamente, RV a utilizao de computadores para criar imagens de cenas 3D
com as quais algum pode navegar e interagir. A palavra navegar implica a habilidade
de mover-se ao redor e explorar caractersticas de uma cena 3D tal como uma
construo; enquanto interao implica a habilidade de selecionar e mover objetos na
cena, tal como uma cadeira.
Para navegar e interagir requer-se grficos em tempo real, os quais implicam
46
computadores velozes. Navegao e interao com o mundo real tem certas vantagens
se estamos equipados com viso estereocpica, e a mesma vantagem realizada se
nossas imagens geradas por computador so tambm estereocpicas. Naturalmente, tal
fato demanda uma capacidade maior de processamento do computador.

5.2.2 Imerso e Presena

Em 1965 Ivan Sutherland publicou um artigo The Ultimate Display, que
descreveu como um dia, o computador prover uma janela dentro de um mundo virtual.
Em 1968 ele construiu um HMD que apresentava ao usurio vises direita e esquerda de
uma cena 3D gerada por computador, tal que quando a cabea do usurio se movia, a
cena virtual permanecia estacionria. As imagens foram de longe fatos reais elas
foram simples linhas desenhadas. Mas como elas eram estereoscpicas o usurio recebia
uma impresso de estar olhando para um objeto slido 3D. A Realidade Virtual havia
nascido (VINCE, 1999).
Infelizmente, as dcadas de 1960 e 1970 RV ficaram dormentes, principalmente
pela dificuldade de hardware que fosse de baixo custo e eficiente suficiente para as
cargas pesadas das imagens. Durante a dcada de 1980, grficos em tempo real se
tornaram uma realidade, e RV se tornou novamente uma realidade comercial.
Inicialmente, os primeiros sistemas RV comprimiam um sistema computacional em
tempo real, um HMD, e uma luva interativa. O HMD imerge o usurio num mundo
virtual pela privao do usurio ver um mundo real. A imerso aumenta a sensao da
presena dentro do mundo virtual, e para algumas pessoas, a imerso distingue sistemas
RV de outros tipos de sistemas grficos em tempo real nascido (VINCE, 1999). Para
esta comunidade, um sistema RV tem provido um usurio com uma viso em primeira-
pessoa. Olhando para uma tela de uma estao no era realidade virtual era apenas
grficos computacionais.

5.2.3 Realidade Virtual Imersiva e No Imersiva

Durante a dcada de 1990 muitos relaxam em suas vises duras de o que
compreendia os sistemas RV, e aceitaram uma definio mais ampla para RV. Os
47
sistemas PC foram dotados com a capacidade de mostrar imagens em tempo real de
ambientes 3D que poderiam ser navegados e suportando interaes, e tambm eles
poderiam ser configurados para suportar um HMD. Obviamente, eles eram um sistema
RV mas no to poderosos quanto seus colegas mais caros.
Diante disto, dois tipos de realidade virtual foram definidas, a imersiva e a no-
imersiva. A realidade virtual imersiva feita com o uso de perifricos de interface RV
como capacetes, luvas e salas de projeo. O usurio fica totalmente imerso no mundo
virtual sem qualquer visualizao do mundo real. A grande vantagem desse tipo de RV
o fator imersividade que d mais realismo e resultado coerente s aplicaes, bem
como a possibilidade de forte interao com os sentidos humanos. a realidade virtual
plena. J a realidade virtual no-imersiva feita atravs do uso de monitores. Nesse
caso o usurio entra em contato com o mundo virtual atravs da tela do computador
sem, no entanto, perder contato visual com o mundo real. Uma das vantagens desse tipo
de realidade virtual o fato da mesma poder dispor dos avanos da tecnologia
computacional, embora o fator no-imersividade seja uma desvantagem.

5.3 VRML
Em 1994, na conferncia anual da World Wide Web(WWW) em Genebra na
Sua, Tim Barness-Lee e Dave Roggett organizaram uma sesso para discutir
interfaces de realidade virtual na WWW. Foi a que surgiu a idia da criao de uma
linguagem Markup anloga ao HTML - para a especificao de mundos 3D e
hyperlinks chamada inicialmente de VRML (Virtual Reality Markup Language). O
Termo Markup viria, depois, a ser substitudo por Modeling (modelagem), ficando a
VRML conhecida como linguagem de modelagem de realidade virtual.
VRML uma linguagem interpretada por browsers que descreve objetos
tridimensionais formados atravs de primitivas geomtricas. Essas primitivas so
predefinidas na linguagem, embora os programadores possam definir objetos complexos
criados a partir das primitivas anteriores. Estes objetos podem receber atributos e
propriedades como cor, textura e mapeamento, transparncia, brilho, deformao,
translaes e rotaes.
Na primeira verso do VRML no existia nenhum tipo de movimento e
48
interao entre os usurios e os objetos. O VRML 1.0 produz apenas mundos estticos,
sem movimentos, onde basicamente, a nica interao com o usurio feita atravs de
links. Na segunda verso do VRML foram introduzidas noes de movimentos atravs
de interpolao e alguns scripts foram incorporados linguagem. A linguagem passou a
ter suporte a scritps Java, o que abriu novas possibilidades para aplicaes de alto nvel
de interatividade com outros sistemas e com os prprios usurios.
Uma das grandes vantagens do VRML que ela uma linguagem totalmente
independente de plataforma. Apesar de existirem diversos compiladores para diversas
plataformas, sempre que se migra o programa, muitas alteraes so feitas. Aps todas
estas alteraes, necessrio compilar o cdigo fonte novamente. Uma linguagem
totalmente independente de plataforma, pode migrar de uma plataforma para outra sem
a necessidade de se alterar uma s linha de cdigo fonte. Dentre algumas das linguagens
que vem realmente cumprindo essa promessa, podemos citar a Java e a VRML.
O VRML uma linguagem interpretada por um browser VRML ou qualquer
browser que tenha o plug in para interpretar esse formato de arquivo. Existem vrios
plug ins VRML disponveis no mercado, inclusive para plataforma Linux. A maioria de
acesso gratuito e tamanho pequeno. Dentre os mais eficientes podemos citar o Cortona
da Parallel Graphics, o Cosmo Player da Platinum Technologies e o Blaxxun
Interactive.
Outra grande vantagem da segunda verso da linguagem VRML a capacidade
de interao com diversos tipos de mdia. No VRML a propriedade cor dos objetos pode
ser substituda pela propriedade textura, nessa propriedade que fica a porta para o
suporte das mdias no VRML. As texturas podem ser arquivos JPG, GIF, BMP bem
como vdeos MPG. Como a textura representa a aparncia dos objetos, pode-se ento
exibir imagens e vdeos nos mundos virtuais.
O VRML 2.0 tambm d suporte a arquivos de udio nos formatos mais
conhecidos da internet como o WAV. O VRML incorpora arquivos como som de fundo
do ambiente podendo-se definir o nvel de volume e as dimenses aonde o som ser
ouvido. O som escutado no ambiente VRML , assim como seus objetos, tri-
dimensional. A proximidade ou afastamento da fonte sonora faz com que o usurio
tenha a sensao de aumento ou diminuio do volume do som, bem como sua
transferncia de intensidade de um ouvido para o outro.
6. IMPLEMENTAO


O simulador do grupo LARVA um ambiente virtual 3D que apresenta um rob
manipulador Scorbot-ER4PC que pertence Universidade do Estado de Santa Catarina
UDESC.
A interface do simulador compreende em uma rea de visualizao 3D, que est
inserido o plug in para VRML, pode-se constatar isto na fig. 15, na caixa 1. Alm da
visualizao dos movimentos realizados pelo rob, tambm disponibilizado, ao
usurio, uma interao com o rob virtual atravs do mouse, ou seja, ao manter
pressionado o boto esquerdo do mouse sobre uma junta e arrasta-lo, a junta realizar
um movimento que ser determinado pela direo que arrastado o mouse.
H tambm, uma interface para entrada e sada de dados, como pode ser vista na
caixa 2 da fig. 14, onde o usurio pode movimentar as juntas atravs de botes, ou
definir diretamente numa caixa de texto o valor dos ngulos correspondente de cada
junta. Ao alterar os valores dos ngulos das juntas, quer seja atravs dos botes ou pelas
caixas de texto, o rob virtual ir automaticamente assumir os valores desejados e a
interface ir fornecer, atravs de caixas de texto, os valores das componentes da posio
da ponta da ferramenta.
Outra opo que o simulador disponibiliza a criao de um simplificado
programa para simulao dos movimentos do rob, como pode ser visto na caixa 3 da
fig. 14.
Na verso atual, em termos de funes cinemticas, o simulador dispe apenas
da resoluo da cinemtica direta, sendo de duas formas, uma atravs da hierarquia
grfica modelada, onde ao movimentar o rob atravs das juntas tem-se uma noo da
posio final da ferramenta. A outra forma atravs da funo matemtica
implementada no simulador que realiza o clculo da cinemtica direta para cada
configurao de junta especificada pelo usurio.






50

FIGURA 14 Simulador do grupo LARVA
Fonte: HOUNSELL e REDEL, 2003

6.1 IMPLEMENTAO DO CONTROLE DE ABORDAGEM

A implementao do controle de abordagem para o rob manipulador Scorbot-
ER4PC foi divida em etapas, que so: implementao da funo cinemtica inversa,
implementao das solues possveis e o controle da abordagem.

6.1.1 Implementao da cinemtica inversa

A implementao da funo da cinemtica inversa para o rob SCORBOT-
ER4PC foi realizada em trs etapas. Na primeira etapa foi criada uma planilha
eletrnica com o software Microsoft Excel, contendo as funes da cinemtica direta e
inversa. A planilha pode ser vista no anexo 1, onde foi implementada a primeira verso
para o clculo das duas cinemticas e foram realizados testes como por exemplo, entrar
51
com os valores dos ngulos das juntas e a planilha realizar o clculo da cinemtica
direta e aps o clculo da cinemtica inversa e retornar os valores dos ngulos das
juntas. Com isto pde-se constatar a reciprocidade das funes, ou seja, o clculo da
cinemtica inversa retorna os mesmos valores dos ngulos das juntas que so
alimentadas na planilha.
Na segunda etapa foi implementada uma funo em VRML para o clculo da
cinemtica inversa, que pode ser vista no anexo 2. Porm, a funo arco tangente 2 que
necessria para o clculo no funo matemtica disponvel pelo VRML, sendo
assim foi necessria a incluso de uma funo especifica para o calculo deste arco
tangente. A funo pode ser vista no anexo 3.
E por fim, como terceira etapa, foi implementada uma funo em Java que visa,
basicamente, realizar os clculos matemticos para definio dos valores dos ngulos
das juntas. Na figura 15 pode ser observada a funo calcularInversa. Esta funo
recebe sete parmetros de entrada, que so: a posio no espao da ponta da ferramenta
posX, posY e posZ; o vetor orientao que foi definido para o controle da abordagem,
ou seja, o vetor r
3
orX, orY e orZ; e uma varivel booleana para determinao das
mltiplas solues, que no caso, so as solues cotovelo acima e cotovelo abaixo
brao.
Para a definio das variveis, na implementao, foi adotado seguir com a
mesma notao j utilizada na verso inicial. Com isto, a nova notao para os ngulos
das juntas que ser adotada, de aqui em diante na implementao com sua respectiva
notao utilizada at agora, ser:

angBase Base -
1
;
angantebraco Ombro -
2
;
angBraco Cotovelo -
3
;
angelevacao Punho -
4.






52

public void calcularInversa( float posX, float posY, float posZ, float orX, float orY,
float orZ, boolean braco)
{
float a1=45; float a2=220; float a3=220; float d1=360; float d5=125;
// Clculo da Junta da Base
1
Equao 4.7
float angBase = (float) Math.atan2(posY, posX);

if (posX= =1)
{
posX=Math.cos(angBase);
posY=Math.sen(angBase);
}
else if (posX= = -1)
{
posX= - Math.cos(angBase);
posY= - Math.sen(angBase);
}
// Clculo da varivel auxiliar
234
Equao 4.12
float auxA = (float) ((orX*Math.cos(angBase))+(orY*Math.sin(angBase)));
float auxB = -orZ;
float ang234= (float) Math.atan2(auxA, auxB);

// Clculo das variveis auxiliares k
1
(Equao 4.18) e k
2
(Equao 4.19)
float k1 = (float) ((posX*Math.cos(angBase))+(posY*Math.sin(angBase))-
a1+(d5*Math.sin(ang234)));
float k2 = (float) (-posZ+d1-(d5*Math.cos(ang234)));

// Clculo da Junta do Cotovelo
3
Equao 4.20
float angBraco = (float) (((braco == true) ? 1 : (-1)) *
Math.acos((Math.pow(k1,2)+Math.pow(k2,2)-Math.pow(a2,2)-
Math.pow(a3,2))/(2*a2*a3)));

// Clculo das variveis auxiliares C
2
(Equao 4.21) e S
2
(Equao 4.22)
float c2 = (float)
(((k1*(a2+(a3*Math.cos(angBraco))))+(k2*a3*Math.sin(angBraco)))/(Math.pow(
a2,2)+Math.pow(a3,2)+(2*a2*a3*Math.cos(angBraco))));
float s2 = (float)
((-(k1*a3*Math.sin(angBraco))+k2*(a2+(a3*Math.cos(angBraco))))/(Math.pow(
220,2)+Math.pow(a3,2)+(2*a2*a3*Math.cos(angBraco))));

// Clculo da Junta do Ombro
2
Equao 4.23
float angantebraco = (float) (Math.atan2(s2,c2)+ Math.PI/2);

// Clculo da Junta do Punho
4
Equao 4.24
float angelevacao = ang234 - angBraco angantebraco + (float) Math.PI/2;
}

FIGURA 15 Cdigo da funo da cinemtica inversa em Java
Fonte: Simulador Larva
53
6.1.2 Implementao das possveis solues


Segundo Schilling (1990), pode-se condensar o nmero de possveis solues
para o caso da cinemtica inversa em dois. Matematicamente possvel encontrar at
oito solues, porm como foi definido que a junta de rotao ter seu valor constante
de 0 , no poder ser utilizado a outra soluo que seria 180.
Outra opo de soluo seria a junta da base que poderia haver uma soluo
1
e

1
+, porm esta ltima soluo no vivel pois o rob estaria trabalhando de
costas para o objeto.
Ento para o rob Scorbot-ER4PC ser considerado duas possveis solues que
so as conhecidas cotovelo acima e cotovelo abaixo.
As figs. 16 e 17 mostram as solues cotovelo acima fig.16, onde o ngulo
3

tem seu valor positivo, e cotovelo abaixo fig. 17, onde o ngulo
3
tem seu valor
negativo.
Para uma mesma posio no espao, que nestes exemplos das fig. 18 e 19 :
p
x
=-52,40 p
y
=90,76 p
z
=64,78

Encontramos as duas solues sendo:
Cotovelo acima:
1
=120;
2
=45;
3
=45;
4
=40; e
5
=0;
Cotovelo abaixo:
1
=120;
2
=90;
3
=-45;
4
=85; e
5
=0;

No cdigo em Java, da fig. 15 pode-se observar no clculo do ngulo angBraco,
que o ngulo
3
multiplicado pelo resultado de uma funo que retorna 1 se a
varivel booleana verdadeira e 1 se falsa. Sendo que o ngulo
234
apenas depende da
junta da base e do vetor de orientao, a diferena no clculo destas duas solues est
na variao dos trs ngulos, ombro, cotovelo e punho.






54

FIGURA 16 Soluo Cotovelo acima do rob Scorbot-ER4PC
Fonte: Simulador LARVA


FIGURA 17 Soluo Cotovelo abaixo do rob Scorbot-ER4PC
Fonte: Simulador LARVA
55
6.1.3 Implementao do controle da abordagem

Para a implementao do controle da abordagem, sero analisadas, antes de
iniciar a implementao, algumas questes sobre os vetores que faro parte das
informaes fornecidas pelo usurio, ou seja o vetor posio e o vetor orientao.
O vetor posio o vetor mais simples pois compreende simplesmente a posio
no espao desejada pelo usurio. J o vetor orientao ser o vetor que ir ser tratado no
controle da abordagem e que ser foco do presente estudo.
Primeiramente, precisamos definir como ser este vetor de abordagem. A
resposta da cinemtica direta compreende numa matriz 3x3 de orientao, que a
orientao do sistema de coordenadas da ferramenta em relao ao sistema de
coordenadas da base. Do exemplo da fig.18 pode-se tirar as seguintes concluses, onde
x
0
,y
0
e z
o
formam o conjunto de coordenadas da base e x
5
,y
5
e z
5
formam o conjunto de
coordenadas da ponta da ferramenta:

O vetor x
5
possui a mesma direo e sentido que y
0
;
O vetor y
5
possui a mesma direo e sentido que x
0
;
O vetor z
5
possui a mesma direo e sentido contrrio a z
o
.

FIGURA 18 Exemplo de relao entre coordenadas da base e ferramenta
Fonte: SCHILLING, 1990



Segundo o algoritmo de DH, nomeado o sistema de coordenadas da ferramenta
como o seguinte:

56
vetor aproximao = z
n
;
vetor deslizamento = y
n
;
vetor normal = x
n
.

Na fig. 19 verifica-se a composio do sistema de coordenadas da ferramenta.


FIGURA 19 Composio do sistema de coordenadas da ferramenta
Fonte: SCHILLING, 1990

Diante disso, ser escolhido o vetor z
n
para o controle da abordagem, que nada
mais que o vetor orientao j definido r
3
. Sero escolhidas algumas opes para a
abordagem da ferramenta para que o usurio possa analisar, visto que pode-se definir
inmeras formas de abordagem para um determinado ponto no espao. As opes,
fornecidas pelo simulador sero as seguintes, desde que no haja restries devido a
singularidades do sistema, que sero vistas mais a diante:

Abordagem de cima;
Abordagem de baixo;
Abordagem de frente;
Abordagem de trs;
Da resposta da cinemtica direta temos as seguintes equaes para o vetor de
orientao r
3
.
234 1
3
sen . cos = x r
234 1
3
sen . sen = y r
234
3
cos = z r
57
Nas abordagens de cima e de baixo, no temos nenhuma componente de r
3
x
e r
3
y

e assim para a abordagem de cima r
3
z
ser igual a 1, ou seja, mesma direo porm
com sentido contrario a z
o
. Para o caso da abordagem de baixo r
3
z
ser igual a 1, ou seja
mesma direo e sentido que z
0
. Isto pode ser verificado no vetor o onde o fator sen
234

igual a zero ou 180 dependendo da abordagem de cima ou de baixo. Na fig. 20.a
percebe-se o caso de uma abordagem de cima onde o vetor orientao, que nesta figura
est representada como z
5
constitudo apenas por componentes de z
0

Para as abordagens de frente e de trs observando as figs. 20.b e 20.c constata-se
que o vetor r
3
no possui nenhuma componente do vetor z
o
e uma combinao do vetor
x
o
e y
o
. Esta combinao como podemos observao na fig. 20.c dependente do ngulo
da base
1
.
Sendo que o ngulo
1
dependente apenas das posies p
y
e p
x
, quando o
usurio definir a posio desejada, o sistema poder definir as componentes do vetor
orientao. Neste caso o fator sen
234
ser igual a 1 ou 1 dependendo da abordagem ser
de frente ou de trs.
Como pode ser verificado nas configuraes apresentadas na fig. 20 no h a
possibilidade de haver uma abordagem pela lateral, apenas de frente, de trs, de cima,
de baixo e inclinado, isto porque a ferramenta apenas consegue trabalhar a sua
aproximao no plano xz.
A razo disto est no fato de que o rob Scorbot-ER4PC possui apenas 5 DOFs,
faltando uma junta no punho, a junta da guinada(yaw), que uma junta de revoluo
que rotaciona a ferramenta sobre o eixo do vetor normal ou, neste caso, o vetor x
5
,
realizando uma rotao lateral da ferramenta.

6.1.4 Implementao da Interface

Diante da funo do clculo da cinemtica inversa, o simulador teve de ser
alterado para comportar a interface com o usurio. Na fig. 21 so mostradas as
alteraes realizadas no simulador. Na caixa 1 mostrado um boto para definio das
solues cotovelo acima e cotovelo abaixo. A descrio do boto est informando brao
acima e brao abaixo para continuar com a mesma nomenclatura utilizada na verso
anterior do simulador.
58


FIGURA 20 - Posies da Ferramenta do Rob para Controle da Abordagem


FIGURA 21 Novo Simulador
Fonte: Simulador LARVA
59
Ao pressionar o boto de opo das mltiplas solues um cdigo em Java
acionado para setar uma varivel booleana chamada bracoAcima, conforme mostrado
na fig. 22. Como pode ser observado no cdigo da fig. 22 quando o boto, aqui
chamado de, bracoInversa for pressionado setado a varivel bracoAcima e alterada a
descrio do boto.

(...........)
// Ao pressionar o boto para seleo da soluo....
else if (event.getSource() == this.bracoInversa)
{
this.bracoAcima = !this.bracoAcima;
if (this.bracoAcima)

this.bracoInversa.setLabel(PrincipalControles.BRACO_ACIMA);
else
this.bracoInversa.setLabel(PrincipalControles.BRACO_ABAIXO);
}
(.............)

FIGURA 22 Parte do cdigo Java para determinar opo de mltipla escolha
Fonte: Simulador LARVA


Para a escolha do tipo de abordagem que o rob ir realizar, foi incorporado
interface um objeto lista contendo as quatro opes de abordagem. Na fig. 21 pode ser
observado, na caixa 2, a lista contendo as quatro opes de abordagem, para escolha do
usurio.
Na fig. 23 mostrado parte do cdigo em Java que realiza a captura do vetor
orientao definido pelo usurio. Sendo que j existia uma classe chamada Eixo na qual
definido um vetor de trs posies, foi instanciado um objeto chamado abord para
receber o vetor orientao definido pela seleo na lista.
A lista, conforme mostra o cdigo na fig. 24, foi criada j com os valores
definidos do vetor orientao, conforme a seleo do usurio, como, por exemplo, pode
ser observada a seleo cima cria uma instancia de Eixo chamada temp com um vetor
de orientao (0,0,-1).
Pode ser verificado na fig. 24, que para chamar a funo calcularInversa,
necessrio que seja pressionada a tecla <ENTER> em qualquer uma das trs caixas de
texto da posio desejada. Neste momento, os valores das caixas de texto so
60
armazenados, o vetor orientao armazenado, atravs da seleo da lista, e ento
chamada a funo calcularInversa passando todos os parmetros necessrios.

(...........)
// Ao pressionar a tecla enter dentro de uma das caixas de texto da posio desejada.
else if ((evt.getSource() == this.posicaoX) || (evt.getSource() == this.posicaoY) ||
(evt.getSource() == this.posicaoZ))
{
// Armazena os valores do vetor da posio desejada, nas caixas de texto
float posX = Float.valueOf(this.posicaoX.getText()).floatValue();
float posY = Float.valueOf(this.posicaoY.getText()).floatValue();
float posZ = Float.valueOf(this.posicaoZ.getText()).floatValue();

// Armazena no objeto abord o vetor de abordagem, a partir da seleo do
//usurio na lista.
Eixo abord = (Eixo)this.listaAbordagem.getObjetoSel();

// Chama funo calcularInversa, passando todos os parmetros necessrios
this.robo.calcularInversa(posX,posY,posZ,abord.getX().floatValue(),
abord.getY().floatValue(),abord.getZ().floatValue(), this.bracoAcima);
this.atualizaTexto();
}
(............)
FIGURA 23 Parte do cdigo Java para escolha do tipo de abordagem e chamada da
funo calcularInversa.
Fonte: Simulador LARVA


(............)
this.addComponente((this.listaAbordagem = new RList()), 2, 3, 2, 1);
Eixo temp = new Eixo(new Float(0),new Float(0), new Float(-1));
temp.setString("Cima");
this.listaAbordagem.add(temp);
temp = new Eixo(new Float(0),new Float(0), new Float(1));
temp.setString("Baixo");
this.listaAbordagem.add(temp);
temp = new Eixo(new Float(1),new Float(0), new Float(0));
temp.setString("Frente");
this.listaAbordagem.add(temp);
temp = new Eixo(new Float(-1),new Float(0), new Float(0));
temp.setString("Trs");
this.listaAbordagem.add(temp);
(.............)

FIGURA 24 Parte do cdigo Java para definio do objeto listaAbordagem
Fonte: Simulador LARVA
61
7. CONCLUSES

O estudo da cinemtica inversa fundamental para realizao de tarefas de
movimentao dos robs manipuladores, pois auxilia o controlador a realizar
movimentos que consumam menos energia, ou seja, realizar um movimento, partindo de
um ponto para outro, movimentando um menor nmero de juntas possveis. Outra
importncia da cinemtica inversa est na sua utilizao em linguagens de programao
de robs off-line. Quando no se possui um teach pendant, que o principal recurso de
programao das linguagens on-line, para ensinar o rob a sua posio e orientao no
espao, o ambiente necessita de recursos para definio dos pontos de operao. Os
objetivos de implementar a cinemtica inversa e a interface foram alcanados, provendo
ao novo simulador a opo da interao simulador-usurio para o problema da
cinemtica inversa. Muitas dificuldades foram encontradas durante a realizao do
trabalho, principalmente devido a pouca bibliografia existente e a pouca experincia por
parte do acadmico, com isto tornando lenta a seqncia do cronograma e como
conseqncia limitando o tempo para o refinamento do simulador.
O trabalho aqui apresentado foi de grande valia, para todos, pois foram
pesquisados vrios conceitos relativos a cinemtica de robs manipuladores, e foram
vrias as discusses sobre aspectos importantes na resoluo do problema da cinemtica
inversa. Aps concluso dos trabalhos pde ser percebido o amadurecimento dos
conceitos de robtica por parte do aluno e a satisfao de ter realizado o trabalho
definido com xito.
Este trabalho ainda contribuiu no sentido de documentar a aplicao da soluo
analtica de forma completa e detalhada a um rob real com seus parmetros e
seqncia na integra. Desta feita, tem-se uma exemplificao completa de como
resolver a cinemtica inversa para um determinado rob, exemplo este que no existe na
literatura desta forma. O desenvolvimento relatado est correto pois as implementaes
algortmicas confirmaram a coerncia ente a cinemtica direta e inversa.

7.1 TRABALHOS FUTUROS
Como trabalhos futuros alguns aspectos podem ser melhorados otimizando o
simulador, como a implementao de um controle de abordagem para ngulos
62
inclinados, disponibilizando ao usurio maior flexibilidade para a utilizao da
cinemtica inversa. Dentro desta flexibilidade, tambm dispor uma forma de manipular
diretamente no ambiente virtual o ponto p e o rob ir calculando a cinemtica inversa, e
inclusive realizando testes de limites dos ngulos, pois foram encontradas algumas
situaes em que a resposta da cinemtica inversa retornava NaN, tipicamente uma
resposta devido a divises por zero. Deve-se ir testando cada clculo de cada junta para
seguir os clculos se houver uma situao de diviso por zero ou outra singularidade.
Para trabalhos futuros que necessitem da cinemtica inversa pode ser sugerida a
definio de uma trajetria, ou seja, movimentar um rob de um ponto para o outro
seguindo uma linha reta, por exemplo, ou realizando uma curva.
E com a realizao desta trajetria, pode-se realizar estudos de mtodos de
controle de trajetria para realizar estes movimentos. Existem vrios tipos de controle
de trajetria, como o de menor energia, menor tempo, menor espao percorrido, e com o
simulador podem ser realizados estudos comparativos entre mtodos. O simulador neste
caso seria uma ferramenta de anlise cinemtica apenas, pois no estudo destes mtodos
outros aspectos so envolvidos principalmente aspectos dinmicos.
Outro trabalho interessante seria a incluso de uma nova junta, por exemplo uma
junta virtual de guinada, provendo ao rob 6 DOFs e com isto se tornando um rob
cinematicamente redundante, e como conseqncia com mltiplas solues, podendo
com isto, at realizar um estudo comparativo entre a soluo analtica/geomtrica, aqui
apresentada, e a soluo numrica, pois quando se aumenta complexidade construtiva
do rob aumenta tambm a complexidade algbrica, e assim a soluo numrica se
torna mais interessante.
ambm um trabalho que envolve mais questes grficas, seria um controle de
pegada ou captura de um objeto pelo rob virtual, ou seja, geralmente no existe uma
fidelidade na incluso de novos filhos dentro de uma hierarquia de objetos virtuais, com
isto, por exemplo, quando o rob virtual pegar um objeto, simplesmente este objeto ser
incorporado hierarquia do rob. Mas ser que o objeto foi pego de maneira correta?
Ou ser que o rob real, ao realizar este procedimento ir realmente pegar o objeto?
Diante disto os movimentos e tarefas do rob virtual, no simulador, ir desenvolver
cada vez a fielmente as operaes realizadas pelo rob real.

63
REFERNCIAS BIBLIOGRFICAS

CAREY, Rikk e BELL, Gavin. The annotated VRML 2.0 reference manual.
Addisson-Wesley Developers Press, c1997. ISBN 0201419742;
FLCKIGER, Lorenzo et al. Generic robotic kinematic generator for virtual
environment interfaces. SPIE Telemanipulator and Telepresence Technologies
III, Vol. 2901, pp 186-195, Boston, Nov. 1996;
GROOVER, Mikell P. Robtica: Tecnologia e Programao. McGraw-Hill, 1998;
HOUNSELL, Marcelo da Silva e PIMENTEL, Alexandre. On the use of virtual
reality to teach robotics. 3
rd
International Conference on Enigineering and
Computer Education. March, 16-19, 2003, So Paulo, Brazil;
INTELITEK. http://www.sti-sl.es/scorboter4u.htm, acessado em 04/11/2004;
KIRNER, Cludio. http://www.dc.urscar.br/~grv/tutrv/tutrv.htm Sistemas de
Realidade Virtual, acessado em 04/11/2004;
REDEL, Rubens et al. Criteria Determination and Prioritization for a Good
Robots Off-line Programming Language. VI Induscon. Outubro, 2004, pg
1444-1449, Joinville, Brazil;
SCHILLING, Robert Jr. Fundamentals of Robotics Analysis and Control.
Englewood Cliffs Prentice Hall. Cop, 1990;
SPONG, M. W e VIDYASAGAR, M. Robot Dynamics and Control. John Wiley &
Sons, New York, 1989;
TSAI, Lung-Wen. Robot analysis: the mechanic of serial and parallel manipulators.
John Wiley & Sons, 1999. ISBN 0-471-32593-7;
VINCE, John. Essential virtual reality fast: how to understand the techniques and
potential of virtual reality. Springer-Verlag. London, 1999. ISBN 1852330120;






64
ANEXOS

ANEXO 1 Planilha Microsoft Excel do clculo da cinemtica SCORBOT-ER4PC














65

ANEXO 2 Cdigo da funo para o clculo da Cinemtica Inversa em VRML






function atualizaAngulo()
{

Atan2(ponto[1],ponto[0]);
angbase=atan2;

angrotacao=Math.asin((orientaX*Math.sin(angbase))-
(orientaY*Math.cos(angbase)));

auxY=(orientaX*Math.cos(angbase))+(orientaY*Math.sin(angbase));
auxX= -orientaZ;
Atan2(auxX,auxY);
ang234=atan2;
k1=((ponto[0]*Math.cos(angbase))+(ponto[1]*Math.sin(angbase))-
45+(125*Math.sin(ang234)));
k2 = (-ponto[2]+360-(125*Math.cos(ang234)));

angbraco=Math.acos((Math.pow(k1,2)+Math.pow(k2,2)-Math.pow(220,2)-
Math.pow(220,2))/(2*220*220));
c2=(((k1*(220+(220*Math.cos(angbraco))))+(k2*220*Math.sin(angbraco)))/(2*M
ath.pow(220,2)+(2*220*220*Math.cos(angbraco))));
s2=(((-k1*220*Math.sin(angbraco))+k2*(220+(220*Math.cos(angbraco))))/
(2*Math.pow(220,2)+(2*220*220*Math.cos(angbraco))));
Atan2(s2,c2);

angantebraco = atan2;

angelevacao = ang234-angbraco-angantebraco;

angbase = Math.round(180*angbase/Math.PI);
angrotacao = Math.round(180*angrotacao/Math.PI);
angantebraco=Math.round(180*angantebraco/Math.PI);
angbraco=Math.round(180*angbraco/Math.PI);
angelevacao=Math.round(180*angelevacao/Math.PI);


}






66


ANEXO 3 Cdigo do clculo da funo Atan2( ) em VRML







function Atan2(y,x)
{
if (x>0)
{
atan2=Math.atan(y/x);
}
if (x==0)
{
if (y>0)
{
atan2=Math.PI/2;
}
if (y<0)
{
atan2=-Math.PI/2;
}
}
if (x<0)
{
if (y>0)
{
atan2=Math.atan(y/x)+Math.PI;
}

if (y<0)
{
atan2=Math.atan(y/x)-Math.PI;
}
}
}

Você também pode gostar