\[\begin{split}E_{ij}(\hat{\mathbf{b}}^{\omega}) &= || \mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega}) ||^{2}, \\
\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega}) &= \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i}\mathrm{Exp}((\mathbf{\omega}^{m}_{k} - \hat{\mathbf{b}}^{\omega}) \Delta t))\end{split}\]
\[\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega}) \approx \mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega}) + J_{ij} \Delta \hat{\mathbf{b}}^{\omega}\]
\[\hat{\mathbf{b}}^{\omega} \leftarrow \hat{\mathbf{b}}^{\omega} - (J_{ij}^{\top}J_{ij})^{-1}J_{ij}^{\top}\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega})\]
残差の線形近似
我々の関心は、 \(\hat{\mathbf{b}}^{\omega}\) を \(\Delta \hat{\mathbf{b}}^{\omega}\) だけ大きくしたときに、残差 \(\mathbf{r}_{ij}\) がどのように変化するかである。
(1)\[\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
= \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i} \mathrm{Exp}([\mathbf{\omega}^{m}_{k} - (\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})] \Delta t))\]
表記の煩雑さを低減するため、 \(\hat{\mathbf{\omega}}^{m}_{k} = \mathbf{\omega}^{m}_{k} - \hat{\mathbf{b}}^{\omega}\) とおく。
\[\begin{split}\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
&= \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i}\mathrm{Exp}([\hat{\mathbf{\omega}}^{m}_{k} - \Delta \hat{\mathbf{b}}^{\omega}] \Delta t)) \\
&= \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i}\mathrm{Exp}(\hat{\mathbf{\omega}}^{m}_{k}\Delta t - \Delta \hat{\mathbf{b}}^{\omega} \Delta t))\end{split}\]
さて、行列の指数関数には一般に指数法則が成立しない。n次元ベクトル \(\mathbf{a}, \mathbf{b} \in \mathbb{R}^{n}\) について、一般に
\[\mathrm{Exp}(\mathbf{a} + \mathbf{b}) \neq \mathrm{Exp}(\mathbf{a})\mathrm{Exp}(\mathbf{b})\]
である。
\(\mathbf{a}\) と \(\mathbf{b}\) が互いに線形従属である場合にのみ指数法則
\[\mathrm{Exp}(\mathbf{a} + \mathbf{b}) = \mathrm{Exp}(\mathbf{a}) \cdot \mathrm{Exp}(\mathbf{b})\]
が成立する。したがって、式 (1) の \(\mathrm{Exp}\) の積に対して指数法則を適用することができない。
一方で、一般に \(||\mathbf{b}||\) が小さいとき、リー代数の和の指数写像は次のように近似できる。
\[\mathrm{Exp}(\mathbf{a} + \mathbf{b}) \approx \mathrm{Exp}(\mathbf{a}) \cdot \mathrm{Exp}(J_{r}(\mathbf{a}) \cdot \mathbf{b})\]
ここで \(J_{r}\) は right Jacobian と呼ばれるものであり、解析的に計算できる。
これを利用すると、残差 \(\mathbf{r}_{ij}\) は次のように書ける。
\[\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
\approx \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i}\mathrm{Exp}(\hat{\mathbf{\omega}}^{m}_{k} \Delta t)\cdot \mathrm{Exp}(-J_{r}(\hat{\mathbf{\omega}}^{m}_{k} \Delta t) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t))\]
読みやすさのために \(\hat{R}^{m}_{k} = \mathrm{Exp}(\hat{\mathbf{\omega}}^{m}_{k} \Delta t), \; \hat{\mathbf{\theta}}^{m}_{k} = \hat{\mathbf{\omega}}^{m}_{k} \Delta t\) とおこう。
\[\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
\approx \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i} \left[ \hat{R}^{m}_{k} \cdot \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \right])\]
さて、 \(\mathrm{Exp}\) には次の面白い性質がある。
\(\forall \mathbf{\omega} \in \mathbb{R}^{3}, \forall R \in \mathrm{SO}(3)\) について、
\[\begin{split}\mathrm{Exp}(R\cdot\mathbf{\omega}) &= R\cdot\mathrm{Exp}(\mathbf{\omega})\cdot R^{\top} \\
R^{\top}\cdot\mathrm{Exp}(R\cdot \mathbf{\omega}) &= \mathrm{Exp}(\mathbf{\omega}) \cdot R^{\top} \\
\mathrm{Exp}(R^{\top}\cdot\mathbf{\omega}) &= R^{\top}\cdot\mathrm{Exp}(\mathbf{\omega})\cdot R \\
R\cdot\mathrm{Exp}(R^{\top}\cdot\mathbf{\omega}) &= \mathrm{Exp}(\mathbf{\omega}) \cdot R\end{split}\]
が成り立つ。
残差 \(\mathbf{r}_{ij}\) に対してこれを適用するため、総乗記号の中身を展開する。
例として、 \(i=1, j=5\) の場合を示そう。
\[\begin{split}&\prod^{4}_{k=1}\hat{R}^{m}_{k} \cdot \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \\\\
=
& \hat{R}^{m}_{1} \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{1}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{2} \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{2}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{3} \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{3}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{4} \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{4}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \\\\
=
& \hat{R}^{m}_{1} \cdot \hat{R}^{m}_{2} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{2}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{1}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{3} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{3}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{2}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{4} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{3}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{4}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \\\\
=
& \hat{R}^{m}_{1} \cdot \hat{R}^{m}_{2} \cdot \hat{R}^{m}_{3} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{3}}^{\top} \cdot {\hat{R}^{m}_{2}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{1}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \hat{R}^{m}_{4} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot {\hat{R}^{m}_{3}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{2}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{3}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{4}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \\\\
=
& \hat{R}^{m}_{1} \cdot \hat{R}^{m}_{2} \cdot \hat{R}^{m}_{3} \cdot \hat{R}^{m}_{4} \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot {\hat{R}^{m}_{3}}^{\top} \cdot {\hat{R}^{m}_{2}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{1}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot {\hat{R}^{m}_{3}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{2}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-{\hat{R}^{m}_{4}}^{\top} \cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{3}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \cdot \\
& \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{4}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t)\end{split}\]
このようにして、 \(\Delta \hat{\mathbf{b}}^{\omega}\) に依存する部分とそうでない部分を分離することができる。
一般的に書けば次のようになる。
\[\begin{split}\prod^{j-1}_{k=i}\hat{R}^{m}_{k} \cdot \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t)
&=
\hat{R}^{m}_{i,j-1}
\prod_{k=i}^{j-1}
\mathrm{Exp}(-{\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t), \\
&\text{where} \;\; \hat{R}^{m}_{k,j-1} = \prod^{j-1}_{l=k} \hat{R}^{m}_{l}\end{split}\]
以上の結果を利用すれば、残差 \(\mathbf{r}_{ij}\) は次のようになる。
\[\begin{split}\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
&\approx \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \prod^{j-1}_{k=i} \left[ \hat{R}^{m}_{k} \cdot \mathrm{Exp}(-J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t) \right]) \\
&=
\mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \hat{R}^{m}_{i,j-1} \cdot
\prod_{k=i}^{j-1}
\mathrm{Exp}(-{\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t)) \\\end{split}\]
さて、任意の \(\mathbf{x}\in\mathrm{R}^{3}\) に対して \(||J_{r}(\hat{\mathbf{\theta}}^{m}_{k})\mathbf{x}|| \leq ||\mathbf{x}||\) となる(参考: 行列ノルム)ので、次が成り立つ。
\[||{\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t|| = ||J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t|| \leq ||\Delta \hat{\mathbf{b}}^{\omega} \Delta t||\]
また、 \(\mathbf{a}, \mathbf{b} \in \mathrm{R}^{3}\) について、これらのノルムが十分に小さいとき、次が成り立つ
\[\mathrm{Log}(\mathrm{Exp}(\mathbf{a} + \mathbf{b})) = \mathbf{a} + \mathbf{b} + O(||\mathbf{a}||^{2}, ||\mathbf{b}||^{2})\]
したがって、 \(||\Delta \hat{\mathbf{b}}^{\omega} \Delta t||\) が十分に小さいならば、残差 \(\mathbf{r}_{ij}\) をさらに次のように近似できる。
\[\begin{split}\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
&\approx
\mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \hat{R}^{m}_{i,j-1} \cdot
\mathrm{Exp}(-\sum_{k=i}^{j-1} {\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t)) \\\end{split}\]
ベクトル \(\mathbf{a} \in \mathbb{R}^{3}\) と微小量 \(\Delta \mathbf{a} \in \mathbb{R}^{3}\) の間には次の関係が成り立つ。
\[\mathrm{Log}(\mathrm{Exp}(\mathbf{a})\mathrm{Exp}(\Delta \mathbf{a})) = \mathbf{a} + J_{r}^{-1}(\mathbf{a})\Delta \mathbf{a}\]
\(\mathbf{\xi}_{ij} = \mathrm{Log}({R^{j}_{WB}}^{\top} \cdot R^{i}_{WB} \cdot \hat{R}^{m}_{i,j-1})\) としてこの関係性を利用すると、Gauss-Newton 法の Jacobian が導出できる。
\[\begin{split}\mathbf{r}_{ij}(\hat{\mathbf{b}}^{\omega} + \Delta \hat{\mathbf{b}}^{\omega})
&\approx
\mathrm{Log}(\mathrm{Exp}(\mathbf{\xi}_{ij}) \cdot
\mathrm{Exp}(-\sum_{k=i}^{j-1} {\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t)) \\
&\approx
\mathbf{\xi}_{ij} -
J_{r}^{-1}(\mathbf{\xi}_{ij})\left[
\sum_{k=i}^{j-1} {\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k}) \cdot \Delta \hat{\mathbf{b}}^{\omega} \Delta t
\right ] \\
&=
\mathbf{\xi}_{ij} -
\Delta t \cdot J_{r}^{-1}(\mathbf{\xi}_{ij}) \left[
\sum_{k=i}^{j-1} {\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k})
\right ] \cdot \Delta \hat{\mathbf{b}}^{\omega} \\
&=
\mathbf{\xi}_{ij} -
J_{ij} \cdot \Delta \hat{\mathbf{b}}^{\omega}, \\
\text{where} \;\; J_{ij} &= \Delta t \cdot J_{r}^{-1}(\mathbf{\xi}_{ij}) \left[
\sum_{k=i}^{j-1} {\hat{R}^{m}_{k+1,j-1}}^{\top}\cdot J_{r}(\hat{\mathbf{\theta}}^{m}_{k})
\right]\end{split}\]
あとは Gauss-Newton 法の更新式を用いて角速度バイアスの推定値を更新していけばよい。