Left and Right Perturbations
Imagine we have a world frame, a car frame, and a pedestrian. Now the car has rotated from the car1
pose to the car2
pose. We assume the pedestrain has not moved:
In car1
and car2
poses, the pedestrian is at
\(\begin{gather*}
p_1 = R_{c1w}p_w
\\
p_2 = R_{c2c1} R_{c1w}p_w
\end{gather*}\)
$R_{c2c1} R_{c1w}$ is called a “left perturbation”.
On the other hand, at the world frame,
\[\begin{gather*} p_w = R_{wc1}p_1 \\ p_w = R_{wc1}R_{c1c2}p_2 \end{gather*}\]$R_{wc1}R_{c1c2}$ is called a “right perturbation”. This is more common since we are always more interested in world frame coordinates.
Perturbations Can Not Be Added On so(3)
Or SO(3)
One question is can skew matrices so(3)
be added?
In 2D, the above form is correct. However, in 3D, we know that $R_1R_2 \ne R_2R_1$, so the above can’t be true. Rotation matrices (Lie Algebra) are in the tangent space, not in the Cartesian space. So perturbations in rotation matrices need to be mapped correspondingly.
BCH (Baker-Cambell-Hausdorff) Formula
BCH formula states that for two Lie Algebras $e^{A}$ and $e^{B}$ with skew matrices A
and B
that composes C
: $R = e^{C} = e^{A^{\land}} e^{B^{\land}}$, Then to determine C
Where [A, B]
is a commutator that $[A, B] = AB - BA$, and $[A, [A, B]] = A(AB-BA) - (AB-BA)A$. If we take the taylor expansion with perturbations as shown, we get:
Small Example of BCH
- For small $A$, $B$, one have $C \approx A + B + \frac{1}{2}[A, B]$. Example: for two rotations
A
andB
How BCH Approximates The Left Perturbation
I’m omitting the derivation of below SO(3)
BCH linerization formulae because it’s not trivial.
This approximation linearizes manipulation to skew matrices addition.
- Rodrigues Formula can also be written as: (A is a rotation vector)
- Left Jacobian is defined as the “derivative” that measures the infinitesimally small change in R w.r.t to $A^{\land}$. So it’s
-
So note that in $exp(A^{\land}) = I + \frac{(1-cos \theta) A^{\land} A^{\land}}{\theta^2} + \frac{sin \theta A^{\land}}{\theta}$, $\frac{\partial A^{\land}}{A}$ is not hard because TODO?
-
$\frac{\theta}{A}$ is a bit tricky. But we have $\theta = \sqrt{A_1^2 + A_2^2 + A_3^2}$. So
- Eventually, we get
Right Perturbation
\[\begin{gather*} => J_{l}(\theta)^{-1} = \frac{\theta}{2}cot \frac{\theta}{2} I + (1 - \frac{\theta}{2}cot \frac{\theta}{2}) aa^T - \frac{\theta}{2} a^{\land} \end{gather*}\]And the right Jacobian is: \(\begin{gather*} \begin{aligned} & C = ln(exp(A^{\land}) exp((\Delta A)^{\land})) \\ & = J_r^{-1}(A) \Delta B + A \\ & J_r(-\theta) = J_l(\theta) \end{aligned} \end{gather*}\)
Perturbations All Together
\[\begin{gather*} exp(C) = exp(\Delta B^{\land}) exp(B^{\land}) = exp((B + J_l^{-1}(\Delta B) B)^{\land}) \end{gather*}\]Also when we want to add a small value vector together:
\[\begin{gather*} \begin{aligned} & exp((\Delta B + B)^{\land}) = exp((J_l^{-1}(B) \Delta B) ^{\land}) exp(B^{\land}) \end{aligned} \end{gather*}\]