CINEMÁTICA INVERSA
Rodrigo Morante Blanco
Objetivos
•Cinemática direta
•Introdução
•Representação de Denavit-Hartenberg (D-H)
•Cinemática inversa
•Introdução
•Cálculo do jacobiano
•Inversa generalizada
•Transposta do jacobiano
Cinemática direta (1/5)
A cinemática direta permite determinar a localização do extremo de um membro se conhecidos os valores das coordenadas articulares.
x y
r
1θ
1Coordenadas articulares: r, θ
Cinemática direta (1/5)
A cinemática direta permite determinar a localização do extremo de um membro se conhecidos os valores das coordenadas articulares.
x y
r
1θ
1Coordenadas articulares: r, θ
) , ( x y
Método geométrico:
1 1
1 1
sen cos
θ
=
θ
= r y
r
x
Cinemática direta (1/5)
A cinemática direta permite determinar a localização do extremo de um membro se conhecidos os valores das coordenadas articulares.
θ
2x y
r
1θ
1Coordenadas articulares: r, θ Método geométrico:
r
2) , ( x y
) sen(
sen
) cos(
cos
2 1
2 1
1
2 1
2 1
1
θ + θ +
θ
=
θ + θ +
θ
=
r r
y
r r
x
Cinemática direta (1/5)
A cinemática direta permite determinar a localização do extremo de um membro se conhecidos os valores das coordenadas articulares.
θ
2x y
r
1θ
1Coordenadas articulares: r, θ Método geométrico:
r
2) , ( x y
) sen(
sen
) cos(
cos
2 1
2 1
1
2 1
2 1
1
θ + θ +
θ
=
θ + θ +
θ
=
r r
y
r r
x
Esta abordagem não é sistemática
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
x
y
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
0 1
0
0
1 r
2x y
r
2Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
1 0 0
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
22 2
2
2
r
x y
θ
2r
2Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
1 0
0
0 1
0
0
1
22 2
2 2
1
r
r
x y
θ
2r
2r
1Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
=
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
1
2 1
2
2 2
2 2
1 0
1
1 1
1 1
4 4 4 4
4 3
4 4 4 4
4 2
1 4 4 4 4
4 3
4 4 4 4
4 2
1 A
r
A
r y
x
r
2θ
2) , ( x y
r
2θ
2) , ( x y
x y
r
1θ
1Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ + θ +
θ θ
+ θ θ
+ θ
θ + θ +
θ θ
+ θ
− θ
+ θ
=
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
) s(
s )
c(
) s(
) c(
c )
s(
) c(
1
2 1
2 1
1 2
1 2
1
2 1
2 1
1 2
1 2
1
r r
r r
y x
r
2θ
2) , ( x y
r
2θ
2) , ( x y
x y
r
1θ
1Cinemática direta (3/5)
De esta forma é possível descrever as rotações e
translações de um elo do sistema com respeito ao elo anterior. A extensão a 3D é imediata (acrescentado uma linha e uma coluna). Por exemplo:
Representação de Denavit-Hartenberg (D-H):
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
θ θ
θ
− θ
1 0
0 0
0 c
s 0
0 s
c 0
0 0
0 1
Rotação ao redor do eixo x:
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
1 0
0 0
1 0
0
0 0
1 0
0 0
0 1
Translação paralela ao eixo z: r
Cinemática direta (4/5)
Representação de Denavit-Hartenberg (D-H):
Em 2D:
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ + θ +
θ θ
+ θ θ
+ θ
θ + θ +
θ θ
+ θ
− θ
+ θ
=
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
) s(
s )
c(
) s(
) c(
c )
s(
) c(
1
2 1
2 1
1 2
1 2
1
2 1
2 1
1 2
1 2
1
r r
r r
y x
O equivalente em 3D:
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
θ + θ +
θ θ
+ θ θ
+ θ
θ + θ +
θ θ
+ θ
− θ
+ θ
=
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
1 0 0 0
1 0
0 0
0 1
0 0
) s(
s 0
) c(
) s(
) c(
c 0
) s(
) c(
1
2 1
2 1
1 2
1 2
1
2 1
2 1
1 2
1 2
1
r r
r r
z
y
x
Cinemática direta (5/5)
Representação de Denavit-Hartenberg (D-H):
Utilizando matrizes de transformação homogênea:
•Cada elo do sistema tem associado um sistema de referência
•É possível representar as translações e rotações relativas entre vários elos (ou entre todos)
•A matriz representa a posição e orientação relativa entre os sistemas associados a dois elos sucessivos
i i−1
A
A representação total do sistema que serve de exemplo:
2 1 1 0 2
0
A = A A
Esta abordagem é sistemática
Cinemática inversa (1/9)
A cinemática inversa procura determinar os valores das coordenadas articulares se conhecida a localização do extremo do membro.
Assim como no caso da cinemática direta, pode-se aplicar métodos geométricos:
2
),
2, ( 2 sen atan
cos y x r x y
r y
r
x ⇒ θ = = +
⎭ ⎬
⎫ θ
=
θ
=
Para casos mais complexos, resulta muito difícil aplicar
este método.
Cinemática inversa (2/9)
Da cinemática direta temos:
x q T q
f
X r r r
) ( )
( =
=
onde q é o vetor das coordenadas articulares:
) , , , ,
( r
1 1r
n nq = θ K θ
O problema da cinemática inversa consiste em encontrar a “inversa” da tal que f r
)
1
( X f
q r
−r
=
Devido aos senos & cosenos das rotações, é não linear em q. Por isso, sua inversa pode não existir ou não ser uma função elementar (arctan, cos,…).
f r
Cinemática inversa (3/9)
A idéia é utilizar uma aproximação linear da função e achar sua “inversa”:
) )(
( )
( )
( q f q
0J q
0q q
0f r = r + −
(Taylor) onde é o jacobiano da função no ponto e a aproximação anterior é válida perto desse ponto.
) ( q
0J q
0x y
Aproximada
Exata
Cinemática inversa (4/9)
Cálculo do jacobiano:
x T R T
R q
f
n nr
r L
1
)
1( =
Precisamos calcular o jacobiano e logo “invertê-lo”. As colunas do jacobiano são as derivadas parciais de no ponto . Como da representação de D-H temos
f r q
0onde só depende de e só depende de pela regra do produto as derivadas parciais são
calculadas como sendo:
R
iθ
iT
ir
i,
. )
(
, )
(
1 1
1 1
x T R T
R T
R q
f
x T R T
R T
R q
f
n n i
i r
n n i
i
i
i
r
L r L
L r r L
= ′
∂
= ′
∂
θPor isso é necessário derivar matrizes de rotação e
translação.
Cinemática inversa (5/9)
Cálculo do jacobiano:
Derivada de uma matriz de rotação R:
T T T
T T
T
R R R R R R R R
RR = 1 ⇒ ′ + ( ′ ) = 0 ⇒ ′ = − ( ′ ) Então a velocidade angular é uma matriz
antissimétrica, que está relacionada com o eixo de rotação R
TR ′
= Ω
) ,
,
( ω
xω
yω
z= ω r via
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
ω ω
−
ω
− ω
ω ω
−
= Ω
0 0
0 0
0 0
0 0
0 0
x y
x z
y z
Finalmente, R ′ = R ′ R
TR = Ω R .
Cinemática inversa (6/9)
Cálculo do jacobiano:
Derivada de uma matriz de translação T:
Por exemplo:
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
′ =
⇒
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
=
0 0
0 0
0 0
0 0
1 0
0 0
0 0
0 0
1 0
0 0
0 1
0 0
0 1
0
0 0
0 1
r T
T
Cinemática inversa (7/9)
Cálculo do jacobiano:
Retomando nosso exemplo, se
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ θ
θ
− θ
=
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
1 0 0
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
1 0
0
0 1
0
0 1
1 0
0
0 c
s
0 s
c
1
2
2 2
2 2
1
1 1
1
1
r r
y x
então o jacobiano resulta ser:
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
θ + θ θ
+ θ θ
+ θ
+ θ θ
θ + θ
− θ
+ θ θ
− θ
+ θ
− θ
=
0 0
0 0
) c(
) s(
c )
c(
s
) s(
) c(
s )
s(
c
2 1
2 2
1 1
1 2
1 2
1
2 1
2 2
1 1
1 2
1 2
1
r r
r
r r
r J
O vetor das coordenadas articulares é ) , , ,
(
1θ
1 2θ
2= r r
q
Cinemática inversa (8/9)
A inversa do jacobiano é tal que, dada uma pequena variação da posição do extremo, é possível calcular a variação nas coordenadas articulares:
Inversa generalizada:
x J
q = ∆
∆
−1Em geral, não existe a inversa do jacobiano, mas sim uma inversa generalizada B, que cumpre alguma das
condições de Moore-Penrose:
BJ BJ
JB JB
B BJB
J JBJ
T
T
= =
=
=
) (
. 4 )
( . 3
. 2 .
1
Se B cumpre todas as quatro condições, é dita pseudo- inversa, e é única: B = J
+Achar a inversa generalizada é um processo lento e que
não lida adequadamente com singularidades.
Cinemática inversa (9/9)
Transposta do jacobiano:
x J
q =
T∆
∆
Em lugar de utilizar a pseudo-inversa do jacobiano, pode-se utilizar a transposta:
É muito mais barato e ainda por cima evita problemas com singularidades.
Esta aproximação é motivada por considerações físicas (“trabalho virtual”).
Para resolver certos problemas de escala, pode-se introduzir um fator de escala h, e iterar até atingir a convergência:
) ( )
1
(i T i