Escolar Documentos
Profissional Documentos
Cultura Documentos
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;
}
}
}