Orientacja z atan2

Transkrypt

Orientacja z atan2
Zadanie
Dla macierzy orientacji manipulatora FANUC R-2000iB postaci


b1 c 1 − b2 s 1
b3 c 1 − b4 s 1
b5 c 1 + s 4 s 5 s 1


b
s
+
b
c
b
s
+
b
c
b
R(q) =  1 1
2 1
3 1
4 1
5 s 1 − s 4 s 5 c1  ,
b6 c6 − c3 s4 s6 −b6 s6 − c3 s4 c6 −s3 c5 − c3 c4 s5
(1)
gdzie b1 = −c4 c5 c6 s3 + s4 s6 s3 − c3 c6 s5 , b2 = c5 c6 s4 + c4 s6 , b3 = c6 s3 s4 + c4 c5 s3 s6 +
c3 s5 s6 , b4 = c4 c6 −c5 s4 s6 , b5 = c4 s3 s5 −c3 c5 , b6 = c3 c4 c5 −s3 s5 , oraz q = (q1 , . . . , q6 )T ,
wyznaczyć kąty KKM zdefiniowane jako KKM(φ, θ, ψ + π).
Didaskalia
Funkcja atan21 :
x
α = atan2(x, y) = arctan
y
!
sin α
= arctan
,
cos α
x y
+ +
+ −
− −
− +
ćwiartka α
pierwsza
druga
trzecia
czwarta
(2)
Rozwiązanie
Macierz rotacji dla wybranych kątów:
KKM(φ, θ, ψ + π) = Rot(Z, φ)Rot(Y , θ)Rot(X , ψ + π) =


cθ cφ sφ cψ − cφ sθ sψ −sφ sψ − cφ sθ cψ


= cθ sφ −cφ cψ − sφ sθ sψ cφ sψ − sφ sθ cψ  . (3)
−sθ
−cθ sψ
−cθ cψ
Stąd
 


ψ
atan2(−b6 s6 − c3 s4 c6 , −c5 s3 − c3 c4 s5 )
 


− arcsin(b6 c6 − c3 s4 s6 )
θ = 
.
φ
atan2(b1 s1 + b2 c1 , b1 c1 − b2 s1 )
1
Dla wartości argumentów 0 wartość funkcji atan2 jest nieokreślona.
1
(4)