Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
CINEMÁTICA INVERSARodrigo 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
1r1θ
Coordenadas 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
1r1θ
Coordenadas articulares: r, θ
),( yx
Método geométrico:
11
11
sencos
θ=θ=
ryrx
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.
2θ
x
y
1r1θ
Coordenadas articulares: r, θ
Método geométrico:
2r
),( yx
)sen(sen)cos(cos
21211
21211
θ+θ+θ=θ+θ+θ=
rryrrx
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.
2θ
x
y
1r1θ
Coordenadas articulares: r, θ
Método geométrico:
2r
),( yx
)sen(sen)cos(cos
21211
21211
θ+θ+θ=θ+θ+θ=
rryrrx
Esta abordagem não é sistemática
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
x
y
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100010
01 2r
x
y
2r
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
100
100010
01
1000cs0sc 2
22
22 r
x
y
2θ2r
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100010
01
1000cs0sc
100010
01 2
22
221 rr
x
y
2θ2r
1r
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100010
01
1000cs0sc
100010
01
1000cs0sc
1
2
1
2
22
22
1
0
1
11
11
44444 344444 2144444 344444 21A
r
A
ryx
2r2θ
),( yx
2r2θ
),( yx
x
y
1r1θ
Cinemática direta (2/5)
Representação de Denavit-Hartenberg (D-H):
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θ+θ+θθ+θθ+θθ+θ+θθ+θ−θ+θ
=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100)s(s)c()s()c(c)s()c(
1212112121
212112121
rrrr
yx
2r2θ
),( yx
2r2θ
),( yx
x
y
1r1θ
Cinemá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):
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
θθθ−θ
10000cs00sc00001
Rotação ao redor do eixo x:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1000100
00100001
rTranslação paralela ao eixo z:
Cinemática direta (4/5)
Representação de Denavit-Hartenberg (D-H):
Em 2D:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θ+θ+θθ+θθ+θθ+θ+θθ+θ−θ+θ
=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100)s(s)c()s()c(c)s()c(
1212112121
212112121
rrrr
yx
O equivalente em 3D:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡θ+θ+θθ+θθ+θθ+θ+θθ+θ−θ+θ
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1000
10000100
)s(s0)c()s()c(c0)s()c(
1
212112121
212112121
rrrr
zyx
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 A1−
A representação total do sistema que serve de exemplo:
2
1
1
0
2
0 AAA =
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:
22),,(2atansencos
yxrxyryrx
+==θ⇒⎭⎬⎫θ=θ=
Para casos mais complexos, resulta muito difícil aplicar este método.
Cinemática inversa (2/9)
Da cinemática direta temos:
xqTqfX rrr)()( ==
onde q é o vetor das coordenadas articulares:),,,,( 11 nnrrq θθ= K
O problema da cinemática inversa consiste em encontrar a “inversa” da tal quef
r
)(1 Xfqrr
−=
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,…).
fr
Cinemática inversa (3/9)
A idéia é utilizar uma aproximação linear da função e achar sua “inversa”:
))(()()( 000 qqqJqfqf −+=rr
(Taylor)
onde é o jacobiano da função no ponto e a aproximação anterior é válida perto desse ponto.
)( 0qJ 0q
x
y
AproximadaExata
Cinemática inversa (4/9)
Cálculo do jacobiano:
xTRTRqf nn
rL
r11)( =
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
fr
0q
onde só depende de e só depende de pela regra do produto as derivadas parciais são calculadas como sendo:
iRiθ iT ,ir
.)(
,)(
11
11
xTRTRTRqf
xTRTRTRqf
nniir
nnii
i
i
rLL
r
rLL
r
′=∂
′=∂θ
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:
TTTTTT RRRRRRRRRR )()( ′−=′⇒=′+′⇒= 01
Então a velocidade angular é uma matriz antissimétrica, que está relacionada com o eixo de rotação
TRR′=Ω
),,( zyx ωωω=ωr
via
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
ωω−ω−ωωω−
=Ω
0000000000
xy
xz
yz
Finalmente, .RRRRR T Ω=′=′
Cinemática inversa (6/9)
Cálculo do jacobiano:Derivada de uma matriz de translação T:
Por exemplo:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=′⇒
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0000000010000000
10000100
0100001
Tr
T
Cinemática inversa (7/9)
Cálculo do jacobiano:
Retomando nosso exemplo, se
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θθθ−θ
=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100
100010
01
1000cs0sc
100010
01
1000cs0sc
1
2
22
221
11
11 rryx
então o jacobiano resulta ser:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡θ+θθ+θθ+θ+θθθ+θ−θ+θθ−θ+θ−θ
=0000
)c()s(c)c(s)s()c(s)s(c
21221112121
21221112121
rrrrrr
J
O vetor das coordenadas articulares é),,,( 2211 θθ= rrq
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:
xJq ∆=∆ −1
Em geral, não existe a inversa do jacobiano, mas sim uma inversa generalizada B, que cumpre alguma das condições de Moore-Penrose:
BJBJJBJBBBJBJJBJ
TT ====
)(.4)(.3.2.1
Se B cumpre todas as quatro condições, é dita pseudo-inversa, e é única: += JB
Achar a inversa generalizada é um processo lento e que não lida adequadamente com singularidades.
Cinemática inversa (9/9)
Transposta do jacobiano:
xJq 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( iTi xJhq ∆=∆ +
Referências
Cinemática Inversa:
•Fast Numerical Methods for Inverse Kinematics, Bill Baxter•Cinemática del robot, Amador
Matrizes em geral:
•Matrix Computations, Gene H. Golub & Charles F. Van Loan