Professional Documents
Culture Documents
http://www.coep.ufrj.br/gscar 1/67
Cinematica Diferencial
Fernando Lizarralde
DEL-POLI/UFRJ e PEE-COPPE/UFRJ
JJ
II
J
I
Rio de Janeiro, 15 de outubro de 2009
Voltar
Fechar
Cinematica Diferencial
2/67
Como observamos na solucao da cinematica inversa utilizando um metodo
iterativo, o Jacobiano da cinematica direta de um manipulador torna
possvel a linearizacao do problema.
O Jacobiano do manipulador estabelece a relacao entre as velocidades
das juntas e a velocidade linear e angular do efetuador.
O Jacobiano do manipulador e um dos mais importantes valores na
analise e controle do movimento de um robo manipulador:
Planejamento e execucao de trajetorias suaves
Determinacao de singularidades JJ
II
Calculo das equacoes dinamicas de movimento J
I
Transformacao de forcas e torques do efetuador para as juntas
Voltar
Fechar
Jacobiano Geometrico
Considere a transformacao homogenea que representa a configuracao
do efetuador com relacao a base do manipulador:
3/67
R() p()
T () =
0 1
Entao a ideia e relacionar a velocidade das juntas com a velocidade
linear e angular do efetuador:
p velocidade linear do efetuador
velocidade angular do efetuador
Este mapeamento e descrito pelo Jacobiano geometrico do manipulador:
p = Jp() JJ
= Jo() II
J
onde Jp IR3n e o jacobiano de posicao e Jo IR3n e o jacobiano I
de orientacao. Voltar
Fechar
Desta forma temos:
p
= J()
onde
4/67
Jp()
J() =
Jo()
JJ
II
J
I
Voltar
Fechar
Velocidade de um Corpo Rgido
5/67
Diferenciacao de um vetor
Considere a rotacao do vetor ~e ao redor do vetor ~k fixo no sistema de
coordenadas Ea.
k
e
e + De
JJ
II
Entao tem-se (c.f. figura): J
I
~k
~e + ~e = e ~e Voltar
Fechar
Pela formula de Rodrigues
h i
~e + ~e = I + sin() ~k +(1 cos()) ~k ~k ~e
~e + ~e = ~e + (~k ~e)
Consequentemente
~e ~
~e = (~k ~e) = = (k ~e)
t t
Para t 0, tem-se
d~e
a
= ~k ~e
dt
JJ
Chamando ~ a = ~k a velocidade angular do vetor ~e no sistema de II
coordenadas Ea: J
d~e I
=~ a ~e
dta Voltar
Fechar
Diferenciacao de um Sistema de Coordenadas
Considere os sistemas de coordenadas Ea e Eb. A derivada de Eb com
respeito a um sistema de coordenadas fixo Ea e dada por:
7/67
dEb
~ ab Eb
=
dta
Portanto JJ
II
Rab = (~ab)a Rab
J
ou simplesmente I
R = R = R Voltar
Fechar
~ ab = ~ba.
Note que
Rab = ek = ek 9/67
Rab = k ek = k
c R
ab
Entao define-se
(~ab)a = k
e desta forma tem-se,
\
Rab = (~
ab)a Rab JJ
onde (~ab)a = velocidade angular do sistema de coordenadas Eb com II
J
respeito a Ea, representada em Ea.
I
Voltar
Fechar
Diferenciacao de vetores
Considere a representacao de um vetor ~v nos sistemas de coordenadas
Ea e Eb, relacionados atraves de va = Rab(t) vb(t). Entao
10/67
dRabvb
va =
dt
= Rabvb + Rabvb
va = (~ab)a Rabvb + Rabvb
= (~ab)a va + Rabvb
Diferenciacao de transformacoes
Considere uma transformacao representada em diferentes sistemas de
T
coordenadas: ga = Rab(t) gb(t) Rab (t), e.g. gb = vb. Entao
JJ
T II
dRabgbRab
ga = J
dt
T
= (~ab)a ga ga(~ab)a +RabgbRab I
Voltar
Fechar
Relacao de velocidade em diferentes frames
Considere 2 sistemas de coordenadas Ea e Eb solidarios a um mesmo
corpo rgido:
w 11/67
zA
yA
xA Pab
zB
yB
P0a
xB
z0 P0b
y0
x0
I: operador identidade.
Da mesma forma podemos obter a relacao acima representada num dado
sistema de coordenadas. Considerando as seguintes relacoes:
JJ
(~pab)a = Rab (~pab)b II
(~va)a = Rab (~va)b J
(~a)a = Rab (~a)b I
Voltar
Fechar
Apos manipulacoes algebricas pode-se obter
" #
(~vb)b T T d (~va)a
Rab Rab (~pab)a
= T
(~b)b 0 Rab (~a)a
| {z } 13/67
ba =AdT
ba
JJ
II
Neste caso, se consideramos a forca (f ) e torque ( ) aplicado no corpo J
rgido representada no 2 sistemas de coordenadas, a potencia e a mesma I
naquele 2 pontos. Voltar
Fechar
Desta forma, como a potencia e mantida, tem-se:
~ f~2
~v1 f1 ~v2
=
~1 ~t1
~2 ~t2
15/67
Entao considerando a relacao de velocidade entre diferentes sistemas de
coordenadas:
~v2 I ~p12 ~v1
=
~2 0 I
~1
Chegasse a seguinte relacao:
f~1 f~2
I 0
=
~t1 p~12 I ~t2
d~e
~ 0 ~e
=
dt0
Diferenciacao de vetores
Considere o vetor va = Rabvb:
va = (~ab)a va + Rabvb
zB
yB
18/67
xB
zA Pab
yA
xA
R p
T =
0 1
Velocidade espacial:
\ pab (~ab)a (~pab)a
Tab = (Vab )a Tab (Vab)a =
(~ab)a JJ
Velocidade do corpo: II
J
T
[ Rab pab I
Tab = Tab (Vab )b ; (Vab)b =
(~ab)b Voltar
Fechar
Relacao de velocidade:
Rab pabRab
(Vab)a = (Vab)b
0 Rab
| {z }
ab =AdT 19/67
ab
Outras relacoes
w
zA
yA
xA Pab
zB
yB
P0a
xB
z0 P0b
y0
x0
JJ
II
f~a f~b J
~vb I ~pab ~va I 0
= ; = I
~b 0 I
~a ~ta p~ab I ~tb
Voltar
Fechar
Cinematica diferencial do manipulador
20/67
No manipulador da figura considere que a junta i e uma junta de re-
volucao. Alem disto, considere que as demais juntas estam congeladas,
i.e., a unica junta que esta movimentando-se e a junta i.
JJ
II
J
I
Voltar
Fechar
Para ficar independente da convencao de DH (standard ou modificada),
o vetor ~hi ficar asendo o eixo de rotacao da junta i.
A velocidade angular i gera uma velocidade espacial no sistema de
coordenadas En (solidario ao ultimo elo) dada por: 21/67
~ n = i~hi
~ n p~in = i~hi p~in
~vn =
~n = 0
~vn = i~hi
JJ
II
J
I
Voltar
Fechar
Contribuicao da Junta i
Velocidade Linear (~vn):
Prismatica: iJpi = i~hi = Jpi = ~hi
23/67
Revolucao: iJpi = i~hi p~in = Jpi = ~hi p~in
Velocidade Angular (~n)
Prismatica: iJoi = 0 = Joi = 0
Revolucao: iJoi = i~hi = Joi = ~hi
Entao cada coluna do Jacobiano e composta por:
~hi
Jpi
= Prismatica
Joi 0
ou JJ
II
" #
~hi p~in
Jpi
= Revolucao J
Joi ~hi
I
Voltar
Fechar
Considerando todas as contribuicoes
~vn
= Jn()
~n
24/67
adicionalmente, considerando juntas de revolucao tem-se:
" #
~h1 p~1n ~h2 p~2n ~hn p~nn
Jn() = ~h1 ~h2 ~hn
Para fins de computacao, o Jacobiano deve ser exprimido num sistema
de coordenadas. Por exemplo na base E0:
" #
(~vn)0 ~ ~ ~
= (Jn)0 = (h1)0(~p1n)0 (h2)0(~p2n)0 (hn)0(~pnn)0
d d d
(~n)0 (~h1)0 (~h2)0 (~hn)0
~vn I p~nE ~vE ~vE I ~pnE ~vn
= ; =
~n 0 I
~E
~E 0 I
~n
x3
a2 2
x2
a1
x1 1
JJ
II
y J
E0 I
x
z Voltar
Fechar
Por ser um manipulador planar tem-se que:
0
(~h1)0 = (~h2)0 = 0
1 28/67
e
c1 s1 0 c2 s2 0
R01 = s1 c1 0 ; R12 = s2 c2 0
0 0 1 0 0 1
Por outro lado:
p~13 = a1~x1 + a2~x2
e no sistema de coordenadas da base:
Calculando
a1s1 a2s12 a2s12
(~h1)0 (~p13)0 = a1c1 + a2c12 ; (~h2)0 (~p23)0 = a2c12
0 0
JJ
II
J
I
Voltar
Fechar
tem-se que o jacobiano e dado por:
a1s1 a2s12 a2s12
a c +a c a2c12
1 1 2 12
0 0
30/67
(J3)0 =
0 0
0 0
1 1
JJ
II
J
I
Voltar
Fechar
Singularidade do Manipulador
31/67
Considerando
~v
= J()
~
Uma singularidade acontece quando o Jacobiano perde posto.
Posto de J:
# de colunas linearmente independentes de J;
# de direcoes independentes em SE(3) nas quais o efetuador pode-
se movimentar.
J e singular se: JJ
II
J perde posto (R(J) reduz de dimensao); J
J ganha DOF adicionais em self-motion (N (J) ganha dimensao). I
Voltar
Fechar
A singularidade pode ser produto de:
Mobilidade reduzida em algumas direcoes
Infinitas solucoes da cinematica inversa
32/67
Numa vizinhanca pequenas velocidades do efetuador causam grande
velocidades nas juntas
Uma possvel classificacao e:
Singularidade de Fronteira: devido a se encontrar na fronteira do
workspace
Singularidade internas: quando 2 ou mais eixos estao alinhados
JJ
II
J
I
Voltar
Fechar
Manipulador com Desacoplamento Cinematico
Considere um manipulador de 6DOF com um punho esferico. A posicao
do punho nao varia com os angulos das 3 ultimas juntas.
Desta forma, a velocidade linear e angular do punho e dada por 33/67
~vp J11 0 b
=
~p J21 J22 p
onde b e o vetor de angulos das 3 primeiras juntas, e p e o vetor de
angulos das 3 ultimas juntas que compoem o punho esferico.
J12 = 0: dado que as juntas do punho nao contribuem em ~vp.
Mais especificamente, considerando que pp = p4 = p5 = p6:
" #
~ ~ ~
~vp h1 p~1p h2 p~2p h3 p~3p 0 0 0 b
= ~h1 ~h2 ~h3 ~h4 ~h5 ~h6
~p p JJ
II
Desta forma, dado que J IRnn tem-se: J
det(J) = det(J11) det(J22) I
Voltar
Fechar
PUMA 560: Configuracao Zero
34/67
JJ
II
J
I
Voltar
Fechar
Singularidade do Punho
Neste caso h i
J22 = ~h4 ~h5 ~h6
J22 e singular (det(J22) = 0) quando ~h4 e ~h6 sao colineares, que acon- 35/67
tece quando 5 = 0, .
Singularidade do Braco
Neste caso, dado que pp = p4 = p5 = p6
h i
J11 = ~h1 p~14 ~h2 p~24 ~h3 p~34
JJ
Notando que p~12 e colinear com ~h1; ~h2 k ~h3; e fazendo (c2=c2-c3), II
tem-se h i J
J11 ~h1 p~24 ~h2 p~23 ~h2 p~34 I
Voltar
Fechar
Entao, em h i
J11 ~h1 p~24 ~h2 p~23 ~h2 p~34
podem ser observadas 2 situacoes onde e perdido o posto:
36/67
1. ~h1 e p~24 colineares
2. p~23 e p~34 colineares
JJ
II
p J
I
Voltar
Fechar
Este resultado pode ser validado numericamente calculando o jacobiano
(por simplicidade nao serao considerados os offsets do PUMA)
0 0 a3c3
J11 a2c2 a3s23 0 0
0 a2 a3s3
O determinante e dado por:
JJ
det(J11) = a2a3c3(a2c2 a3s23) II
J
Existem 2 casos onde J11 e singular I
1. c3 = 0 = 3 = /2 (Esticado) Voltar
Fechar
38/67
JJ
II
J
I
Voltar
Fechar
Singularidade Genericas: 6 DOF e juntas de revolucao
1. Duas juntas colineares
Considerando ~zi = ~zj (paralelas ou colineares) e operando colunas
39/67
(col2 = col1 - col2) tem-se
~zi ~pin ~zj ~pjn ~zi ~pin ~zi ~pij
~zi ~zj ~zi 0
JJ
II
J
I
Voltar
Fechar
2. Tres juntas paralelas coplanares
Neste caso,
~zi = ~zj = ~zk
e existe um plano comum que contem ~zi, p~ij , p~ik , isto e, existe ~n tal 40/67
Operando colunas
~zi ~pin ~zj ~pjn ~zk ~pkn ~zi ~pin ~zi ~pij ~zi ~pik JJ
II
~zi ~zj ~zk ~zi 0 0
J
Dado que (~zi, p~ij , p~ik ) sao coplanares, as duas ultimas colunas sao I
linearmente dependentes. Voltar
Fechar
3. Quatro juntas interceptando num ponto
~ tal que ~zi (~pin L)
Existe L ~ = 0, i = 1, 2, 3, 4.
~ .
Implica que ~zi p~in = ~zi L
z1 z2
z3 41/67
z4
p2n
p3n
p4n
p1n
On
q: ponto de intercepcao
Operando colunas
~z1 ~p1n ~z2 ~p2n ~z3 ~p3n ~z4 ~p4n JJ
~z1 ~z2 ~z3 ~z4 II
J
~ ~z2 L ~ ~z3 L ~ ~z4 L ~
~z1 L I
~z1 ~z2 ~z3 ~z4 Voltar
Fechar
~
I L 0 0 0 0
Pre-multiplicando por obtem-se .
0 I ~z1 ~z2 ~z3 ~z4
Que tem Posto maximo = 3.
42/67
Exemplo: Inverse Elbow
JJ
II
J
I
Voltar
Fechar
4. Tres juntas coplanares interceptando num ponto
Com os mesmos argumentos anteriores pode ser obtido que o Jaco-
biano e similar a:
~ ~zj L~ ~zk L~
~zi ~pin ~zj ~pjn ~zk ~pkn ~zi L 43/67
~zi ~zj ~zk ~zi ~zj ~zk
~
I L 0 0 0
Pre-multiplicando por obtem-se .
0 I ~zi ~zj ~zk
Dado que ~zi, ~zj , ~zk sao coplanares, o maximo posto e 2.
JJ
II
J
I
Voltar
Fechar
Jacobiano Analtico
44/67
Considerando que a orientacao R SO(3) pode ser representada por
uma parametrizacao (e.g., RPY, quaternions, etc), sendo desta forma
a cinematica direta dada
p
x= = k()
temos que derivando com respeito ao tempo
k()
x = = Ja()
k() JJ
onde Ja() = . II
v J
Note que esta expressao e diferente a do Jacobiano Geometrico: =
I
J(). Logo calcularemos uma relacao entre e . Voltar
Fechar
Relacao entre Jacobiano Geometrico e Analtico
Tem-se em condicoes de estabelecer uma relacao entre o Jacobiano
Geometrico e o Jacobiano Analtico.
Tem-se as seguintes 3 relacoes: 45/67
v p
V = = J() ; x = = Ja() ; = JR ()
onde Jr () e o Jacobiano da Representacao.
Entao pode-se estabelecer que (v = p)
p I 0 v
x = = = TR (x) V
0 JR ()
e portanto
x = Tr (x)J() JJ
II
| {z }
Ja ()
com J
Ja() = TR (x) J() I
Voltar
Fechar
Jacobiano da Representacao
46/67
Relacao entre e a derivada da representacao da orientacao .
Representacao Exponencial
Neste caso tem-se que como R = ek com ||k|| = 1, a representacao e
JJ
dada por {k, }. II
Considerando J
I
R = I + sin() k + (1 cos()) k 2 Voltar
Fechar
Lembrando que a inversa de representacao exponencial e dada por:
2 cos() = tr(R) 1
2 sin() k = F (R) = (R RT )
47/67
k = 1/2 [ k + cotg(/2) k 2 ]
Prova: (Esboco) Considerando
F (R) = F (R) = [tr(R)I R]
Por outro lado, tem-se que F (R) = 2sk que implica
F (R) = 2sk + 2ck
Portanto comparando as duas equacoes
2sk = 2ck + [tr(R)I R] JJ
II
tendo em conta que = k T , a formula de Rodrigues, as igualdades J
kk T = k 2 + I, c = 1 2s2(/2), s = 2s(/2)c(/2) (portanto I
cotg(/2) = (1 + c)/s), mostra-se a igualdade. Voltar
Fechar
Concluindo, a relacao entre a derivada da representacao e a velocidade
angular e dada por
kT
43
JR (, k) = IR
1/2 [ k + cotg(/2) k 2 ] 49/67
JJ
II
J
I
Voltar
Fechar
Representacoes Mnimas: Angulos de Euler (ZYZ)
Considerando as rotacoes dada pelos angulos de Euler
50/67
51/67
Compondo tem-se
0 s cs cc sc 1
1
= 0 c ss ; = ss cs 0 JJ
s II
1 0 c c s 0
J
O jacobiano e singular para = 0, . I
Voltar
Fechar
Roll-Pitch-Yaw
Considerando os angulos (yaw), (pitch) e (roll) tem-se
ctg stg 1
52/67
JR (, , ) = s c 0
c/c s/c 0
O jacobiano e singular para = /2.
Quaternions
O Quaternion e definido por:
q0
q= ; q0 = cos(/2) IR qv = sin(/2)k IR3
qv
JJ
onde ||q|| = 1 e a unica restricao. Com R = ek . II
O calculo da derivada de q0 e direta: J
1 1 1 I
q0 = sin(/2) = T k sin(/2) = T qv Voltar
2 2 2
Fechar
Adicionalmente o jacobiano e dado por:
qvT
1 1
JR (q) = = E(q)
2 q0I qv 2
53/67
e portanto
q0 1
= E(q)
qv 2
T2 t
T1
= J ()F~n
= J () F~n
= J0T () (F~n)0
JJ T ui = i ui JJ
II
de forma que os valores singulares de J sao definidos como:
J
I
p
i = i
Voltar
Fechar
Desta forma a decompisicao SVD e dada por:
J = U V T;
com 58/67
1 0 0 0
= ... ... ... 0 ... 0 = [m 0]
0 m 0 0
onde m i 1;
satisfazendo U U T = Im e,
59/67
N(J)=span(V2) N(J*) = span(U2)
+ +
R(J*)=span(V1) R(J)=span(U1)
=
=
n J 6
R R
onde
V1T JJ
1 0
J = [U1 U2] II
0 0 V2T
J
e J e a adjunta de J que no caso se ser uma matriz e a transposta I
J T = V U T . Voltar
Fechar
Desta forma, a decomposicao SVD e uma ferramente util para estudar
a transformacao linear v = J .
Segundo a interpretacao geometrica,
J transforma uma esfera unitaria
em IRn definida como = 1 num conjunto de vetores que definem
60/67
um elipsoide em IRm. Os valores singulares sao os comprimentos dos
eixos do elipsoide.
De fato tem-se
T = v T (J )T J v
com J = J T (JJ T )1 sendo a pseudo-inversa a direita, i.e. JJ = I.
Apos manipulacoes algebricas, considerando que JJ T = (JJ T )T , obtem-
se:
T = v T (JJ T )1v = v T (U V T V U T )1v
e dado que U 1 = U T tem-se JJ
II
T = v T U 2 T
m U v J
I
Voltar
Fechar
Definindo v = U T v tem-se
T = v T 2
m v = 1
JJ
II
J
I
Voltar
Fechar
1. Cinematica (v = J() )
J
1U1
62/67
V2 V1
2U2
2 V2
64/67
q
det(JJ T ) = 1 n
O problema aqui e que a escolha pode nao ser boas se a relacao
entre o menor e maior valor singular e grande.
min(J)
Numero de condicao:
min(J)
c= JJ
max(J)
II
J
I
Voltar
Fechar
Manipulabilidade: manipulador nao redundante
No caso de manipuladores nao redundantes, i.e., J IRnn tem-se que
q
det(JJ T ) = |det(J)| 65/67
JJ
II
J
I
Voltar
Fechar
min(J), max(J) em funcao da posicao x:
66/67
JJ
II
J
I
Voltar
Fechar
Exemplo: Manipulador planar de 3 elos (braco+antebraco+mao).
1. Escrevendo no plano horizontal
67/67
JJ
II
J
I
Voltar
Fechar