Some refactoring

release/4.3a0
Frank 2015-12-23 17:59:37 -08:00
parent 27565ea1f5
commit 88c1308ccf
1 changed files with 69 additions and 22 deletions

View File

@ -245,7 +245,7 @@ X(t)=\left\{ R_{0},P_{0}+V_{0}t,V_{0}\right\}
then the differential equation describing the trajectory is then the differential equation describing the trajectory is
\begin_inset Formula \begin_inset Formula
\[ \[
\dot{X}(t)=\left[0_{3x3},V_{0},0_{3x1}\right],\,\,\,\,\,X(0)=\left\{ R_{0},P_{0},V_{0}\right\} \dot{X}(t)=\left[0_{3x3},V_{0},0_{3x1}\right],\,\,\,\,\, X(0)=\left\{ R_{0},P_{0},V_{0}\right\}
\] \]
\end_inset \end_inset
@ -591,7 +591,7 @@ key "Iserles00an"
, ,
\begin_inset Formula \begin_inset Formula
\begin{equation} \begin{equation}
\dot{R}(t)=F(R,t),\,\,\,\,R(0)=R_{0}\label{eq:diffSo3} \dot{R}(t)=F(R,t),\,\,\,\, R(0)=R_{0}\label{eq:diffSo3}
\end{equation} \end{equation}
\end_inset \end_inset
@ -962,20 +962,22 @@ Application: The New IMU Factor
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
The above scheme suffers from one problem, which is that In the IMU factor, we need to predict the NavState
\begin_inset Formula $R_{0}$ \begin_inset Formula $X_{j}$
\end_inset \end_inset
needs to be known exactly to compensate for the initial velocity from the current NavState
\begin_inset Formula $V_{0}$ \begin_inset Formula $X_{i}$
\end_inset \end_inset
and the gravity and the IMU measurements in-between.
\begin_inset Formula $g$ The above scheme suffers from a problem, which is that
\begin_inset Formula $X_{i}$
\end_inset \end_inset
. needs to be known in order to compensate properly for the initial velocity
Hence, we split up and rotated gravity vector.
Hence, the idea of Lupton was to split up
\begin_inset Formula $v(t)$ \begin_inset Formula $v(t)$
\end_inset \end_inset
@ -990,14 +992,14 @@ v(t)=v_{g}(t)+v_{a}(t)
evolving as evolving as
\begin_inset Formula \begin_inset Formula
\begin{eqnarray*} \begin{eqnarray*}
\dot{v}_{g}(t) & = & R_{0}^{T}\, g\\ \dot{v}_{g}(t) & = & R_{i}^{T}\, g\\
\dot{v}_{a}(t) & = & R_{b}^{0}(t)a^{b}(t) \dot{v}_{a}(t) & = & R_{b}^{i}(t)a^{b}(t)
\end{eqnarray*} \end{eqnarray*}
\end_inset \end_inset
The solution for the first equation is simply The solution for the first equation is simply
\begin_inset Formula $v_{g}(t)=R_{0}^{T}gt$ \begin_inset Formula $v_{g}(t)=R_{i}^{T}gt$
\end_inset \end_inset
. .
@ -1008,7 +1010,7 @@ The solution for the first equation is simply
up in three parts up in three parts
\begin_inset Formula \begin_inset Formula
\[ \[
p(t)=p_{0}(t)+p_{g}(t)+p_{v}(t) p(t)=p_{i}(t)+p_{g}(t)+p_{v}(t)
\] \]
\end_inset \end_inset
@ -1016,8 +1018,8 @@ p(t)=p_{0}(t)+p_{g}(t)+p_{v}(t)
evolving as evolving as
\begin_inset Formula \begin_inset Formula
\begin{eqnarray*} \begin{eqnarray*}
\dot{p}_{0}(t) & = & R_{0}^{T}\, V_{0}\\ \dot{p}_{i}(t) & = & R_{i}^{T}\, V_{i}\\
\dot{p}_{g}(t) & = & v_{g}(t)=R_{0}^{T}gt\\ \dot{p}_{g}(t) & = & v_{g}(t)=R_{i}^{T}gt\\
\dot{p}_{v}(t) & = & v_{a}(t) \dot{p}_{v}(t) & = & v_{a}(t)
\end{eqnarray*} \end{eqnarray*}
@ -1026,8 +1028,8 @@ evolving as
Here the solutions for the two first equations are simply Here the solutions for the two first equations are simply
\begin_inset Formula \begin_inset Formula
\begin{eqnarray*} \begin{eqnarray*}
p_{0}(t) & = & R_{0}^{T}V_{0}t\\ p_{i}(t) & = & R_{i}^{T}V_{i}t\\
p_{g}(t) & = & R_{0}^{T}\frac{gt^{2}}{2} p_{g}(t) & = & R_{i}^{T}\frac{gt^{2}}{2}
\end{eqnarray*} \end{eqnarray*}
\end_inset \end_inset
@ -1038,7 +1040,7 @@ The recipe for the IMU factor is then, in summary.
\begin{eqnarray*} \begin{eqnarray*}
\dot{\theta}(t) & = & H(\theta(t))^{-1}\,\omega^{b}(t)\\ \dot{\theta}(t) & = & H(\theta(t))^{-1}\,\omega^{b}(t)\\
\dot{p}_{v}(t) & = & v_{a}(t)\\ \dot{p}_{v}(t) & = & v_{a}(t)\\
\dot{v}_{a}(t) & = & R_{b}^{0}(t)a^{b}(t) \dot{v}_{a}(t) & = & R_{b}^{i}(t)a^{b}(t)
\end{eqnarray*} \end{eqnarray*}
\end_inset \end_inset
@ -1048,14 +1050,14 @@ starting from zero, up to time
\end_inset \end_inset
, where , where
\begin_inset Formula $R_{b}^{0}(t)=\exp\Skew{\theta(t)}$ \begin_inset Formula $R_{b}^{i}(t)=\exp\Skew{\theta(t)}$
\end_inset \end_inset
at all times. at all times.
Form the local coordinate vector as Form the local coordinate vector as
\begin_inset Formula \begin_inset Formula
\[ \[
\zeta(t_{ij})=\left[\theta(t_{ij}),p(t_{ij}),v(t_{ij})\right]=\left[\theta(t_{ij}),R_{0}^{T}V_{0}t_{ij}+R_{0}^{T}\frac{gt_{ij}^{2}}{2}+p_{v}(t_{ij}),R_{0}^{T}gt_{ij}+v_{a}(t_{ij})\right] \zeta(t_{ij})=\left[\theta(t_{ij}),p(t_{ij}),v(t_{ij})\right]=\left[\theta(t_{ij}),R_{i}^{T}V_{i}t_{ij}+R_{i}^{T}\frac{gt_{ij}^{2}}{2}+p_{v}(t_{ij}),R_{i}^{T}gt_{ij}+v_{a}(t_{ij})\right]
\] \]
\end_inset \end_inset
@ -1071,7 +1073,7 @@ Predict the NavState
from from
\begin_inset Formula \begin_inset Formula
\[ \[
X_{j}=\mathcal{R}_{X_{j}}(\zeta(t_{ij}))=\left\{ \Phi_{R_{0}}\left(\theta(t_{ij})\right),P_{0}+V_{0}t_{ij}+\frac{gt_{ij}^{2}}{2}+R_{0}\, p_{v}(t_{ij}),V_{0}+gt_{ij}+R_{0}\, v_{a}(t_{ij})\right\} X_{j}=\mathcal{R}_{X_{j}}(\zeta(t_{ij}))=\left\{ \Phi_{R_{0}}\left(\theta(t_{ij})\right),P_{i}+V_{i}t_{ij}+\frac{gt_{ij}^{2}}{2}+R_{i}\, p_{v}(t_{ij}),V_{i}+gt_{ij}+R_{i}\, v_{a}(t_{ij})\right\}
\] \]
\end_inset \end_inset
@ -1079,6 +1081,30 @@ X_{j}=\mathcal{R}_{X_{j}}(\zeta(t_{ij}))=\left\{ \Phi_{R_{0}}\left(\theta(t_{ij}
\end_layout \end_layout
\begin_layout Standard
Note that the predicted NavState
\begin_inset Formula $X_{j}$
\end_inset
depends on
\begin_inset Formula $X_{i}$
\end_inset
, but the inrgrated quantities
\begin_inset Formula $\theta(t)$
\end_inset
,
\begin_inset Formula $p_{i}(t)$
\end_inset
, and
\begin_inset Formula $v_{a}(t)$
\end_inset
do not.
\end_layout
\begin_layout Subsubsection* \begin_layout Subsubsection*
A Simple Euler Scheme A Simple Euler Scheme
\end_layout \end_layout
@ -1109,6 +1135,27 @@ where
. .
\end_layout \end_layout
\begin_layout Standard
In the above, we have to think about how to handle both bias
\begin_inset Formula $(b_{g},b_{a})$
\end_inset
and lever arm
\begin_inset Formula $T_{s}^{b}$
\end_inset
.
Both of them can be seen as arguments to two functions
\begin_inset Formula $\omega_{k}^{b}(b_{g})$
\end_inset
and
\begin_inset Formula $a_{k}^{b}(b_{a},T_{s}^{b})$
\end_inset
, and hence we have to properly account for their derivatives.
\end_layout
\begin_layout Section \begin_layout Section
Old Stuff: Old Stuff:
\end_layout \end_layout