1. so(3)
1.1 회전 행렬 R과의 관계
exponential maps
so(3), axis angle인 ϕ는 axis u와 회전 크기 angle θ의 곱으로,
Rodrigues 공식에 따르면
R=exp([ϕ]×)=exp(θ[u]×)=I+sin(θ)[u]×+(1−cos(θ))[u]×2
where [v]×=⎝⎜⎛0v3−v2−v30v1v2−v10⎠⎟⎞
logarithmic maps
θ=arccos((tr(R)−1)/2)
u=(R−RT)∨/(2sin(θ))
vector rotation
x′=Rx
rotation composition
RAC=RABRBC
spherical linear interpolation
R(t)=R(0)(R(0)TR(1))t=R(0)(I+sin(tΔθ)[u]×+(1−cos(tΔθ))[u]×2)
Right/Left Jacobian of SO(3)
Jr(ϕ)=∂ϕ∂R{ϕ}=I−∣∣ϕ∣∣21−cos∣∣ϕ∣∣[ϕ]×+∣∣ϕ∣∣3∣∣ϕ∣∣−sin∣∣ϕ∣∣[ϕ]×2
Jr−1(ϕ)=I+21[ϕ]×+(∣∣ϕ∣∣21−2∣∣ϕ∣∣sin∣∣ϕ∣∣1+cos∣∣ϕ∣∣)[ϕ]×2
Jr(ϕ)=Jl(−ϕ)∈R3×3
examples of usage of Jacobians of SO(3)
R{ϕ+δϕ}≈R{ϕ}R{Jr(ϕ)δϕ}
R{ϕ}R{δϕ}≈R{ϕ+Jr−1(ϕ)δϕ}
Jacobian wrt rotation vector
∂δϕ∂R{ϕ}x=−R{ϕ}[x]×Jr(ϕ)=−[R{ϕ}x]×Jl(ϕ)
perturbation
∂φ∂(Rx)=−[Rx]×
1-2 유닛 쿼터니언 q와의 관계
exponential maps
q=Exp(ϕ)=exp(ϕ/2)=[cos(ϕ/2)u∗sin(ϕ/2)]
logarithmic maps
θ=2arctan(∣∣qv∣∣,qw)
u=qv/∣∣qv∣∣
vector rotation
x′=q⊗x⊗q∗=[q]L[q∗]Rx
where [q]L=⎝⎜⎜⎜⎛qwqxqyqz−qxqwqz−qy−qy−qzqwqx−qzqy−qxqw⎠⎟⎟⎟⎞,
[q]R=⎝⎜⎜⎜⎛qwqxqyqz−qxqw−qzqy−qyqzqw−qx−qz−qyqxqw⎠⎟⎟⎟⎞
rotation composition
qAC=qAB⊗qBC
where p⊗q=(pwqw−pvTqvpwqv+qwpv+pv×qv)
spherical linear interpolation
Δθ=arccos(q(0)Tq(1))
q(t)=q(0)sin(Δθ)sin((1−t)Δθ)+q(1)sin(Δθ)sin(tΔθ)
Jacobian wrt quaternion
∂q∂(q⊗x⊗q∗)=2(qwx+qv×x∣qvTxI3+qvxT−xqvT−qw[x]×)∈R3×4
2. se(3)
T=(R0Tt1)∈R4×4
ξ=(ρϕ)∈R6
exponential maps
exp([ξ]×)=(exp([ϕ]×)0TJρ1)=T
where J(ϕ)=θsin(θ)I+(1−θsin(θ))uuT+θ1−cos(θ)[u]×
logarithmic maps
ρ=J−1t,ϕ=ln(R)∨
Right/Left Jacobian of SE(3)
Jr(ξ)=∂ξ∂T{ξ}=(Jr(ϕ)03×3Qr(ξ)Jr(ϕ))∈R6×6
where Qr(ξ)=−21[ρ]×+(θ3θ−sin(θ))([ϕ]×[ρ]×+[ρ]×[ϕ]×−[ϕ]×[ρ]×[ϕ]×)−(2θ4θ2+2cos(θ)−2)([ϕ]×2[ρ]×+[ρ]×[ϕ]×2−3[ϕ]×[ρ]×[ϕ]×)+(2θ52θ−3sin(θ)+θcos(θ))([ϕ]×[ρ]×[ϕ]×2+[ϕ]×2[ρ]×[ϕ]×)
where (θ=∣∣ϕ∣∣)
Jr−1(ξ)≈I6×6+21([ϕ]×03×3[ρ]×[ϕ]×)
examples of usage of Jacobians of SE(3)
T{ξ+δξ}≈T{ξ}T{Jr(ξ)δξ}
T{ξ}T{δξ}≈T{ξ+Jr−1(ξ)δξ}
perturbation
∂δξ∂(Tp)=(I30T−[Rp+t]×0T)∈R4×6