1400 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			1400 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
#LyX 2.0 created this file. For more info see http://www.lyx.org/
 | 
						|
\lyxformat 413
 | 
						|
\begin_document
 | 
						|
\begin_header
 | 
						|
\textclass article
 | 
						|
\use_default_options true
 | 
						|
\maintain_unincluded_children false
 | 
						|
\language english
 | 
						|
\language_package default
 | 
						|
\inputencoding auto
 | 
						|
\fontencoding global
 | 
						|
\font_roman default
 | 
						|
\font_sans default
 | 
						|
\font_typewriter default
 | 
						|
\font_default_family default
 | 
						|
\use_non_tex_fonts false
 | 
						|
\font_sc false
 | 
						|
\font_osf false
 | 
						|
\font_sf_scale 100
 | 
						|
\font_tt_scale 100
 | 
						|
 | 
						|
\graphics default
 | 
						|
\default_output_format default
 | 
						|
\output_sync 0
 | 
						|
\bibtex_command default
 | 
						|
\index_command default
 | 
						|
\paperfontsize 11
 | 
						|
\spacing single
 | 
						|
\use_hyperref false
 | 
						|
\papersize default
 | 
						|
\use_geometry true
 | 
						|
\use_amsmath 1
 | 
						|
\use_esint 1
 | 
						|
\use_mhchem 1
 | 
						|
\use_mathdots 1
 | 
						|
\cite_engine basic
 | 
						|
\use_bibtopic false
 | 
						|
\use_indices false
 | 
						|
\paperorientation portrait
 | 
						|
\suppress_date false
 | 
						|
\use_refstyle 1
 | 
						|
\index Index
 | 
						|
\shortcut idx
 | 
						|
\color #008000
 | 
						|
\end_index
 | 
						|
\leftmargin 3cm
 | 
						|
\topmargin 3cm
 | 
						|
\rightmargin 3cm
 | 
						|
\bottommargin 3cm
 | 
						|
\secnumdepth 3
 | 
						|
\tocdepth 3
 | 
						|
\paragraph_separation indent
 | 
						|
\paragraph_indentation default
 | 
						|
\quotes_language english
 | 
						|
\papercolumns 1
 | 
						|
\papersides 1
 | 
						|
\paperpagestyle default
 | 
						|
\tracking_changes false
 | 
						|
\output_changes false
 | 
						|
\html_math_output 0
 | 
						|
\html_css_as_file 0
 | 
						|
\html_be_strict false
 | 
						|
\end_header
 | 
						|
 | 
						|
\begin_body
 | 
						|
 | 
						|
\begin_layout Title
 | 
						|
The new IMU Factor
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Author
 | 
						|
Frank Dellaert
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset CommandInset include
 | 
						|
LatexCommand include
 | 
						|
filename "macros.lyx"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset FormulaMacro
 | 
						|
\renewcommand{\sothree}{\mathfrak{so(3)}}
 | 
						|
{\mathfrak{so(3)}}
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Navigation States
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Let us assume a setup where frames with image and/or laser measurements
 | 
						|
 are processed at some fairly low rate, e.g., 10 Hz.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
We define the state of the vehicle at those times as attitude, position,
 | 
						|
 and velocity.
 | 
						|
 These three quantities are jointly referred to as a NavState 
 | 
						|
\begin_inset Formula $X_{b}^{n}\define\left\{ R_{b}^{n},P_{b}^{n},V_{b}^{n}\right\} $
 | 
						|
\end_inset
 | 
						|
 | 
						|
, where the superscript 
 | 
						|
\begin_inset Formula $n$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 denotes the 
 | 
						|
\emph on
 | 
						|
navigation frame
 | 
						|
\emph default
 | 
						|
, and 
 | 
						|
\begin_inset Formula $b$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 the 
 | 
						|
\emph on
 | 
						|
body frame
 | 
						|
\emph default
 | 
						|
.
 | 
						|
 For simplicity, we drop these indices below where clear from context.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Vector Fields and Differential Equations
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
We need a way to describe the evolution of a NavState over time.
 | 
						|
 The NavState lives in a 9-dimensional manifold 
 | 
						|
\begin_inset Formula $M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, defined by the orthonormality constraints on 
 | 
						|
\begin_inset Formula $\Rone$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 For a NavState 
 | 
						|
\begin_inset Formula $X$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 evolving over time we can write down a differential equation
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\dot{X}(t)=F(t,X)\label{eq:diffeqM}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $F$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is a time-varying 
 | 
						|
\series bold
 | 
						|
vector field
 | 
						|
\series default
 | 
						|
 on 
 | 
						|
\begin_inset Formula $M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, defined as a mapping from 
 | 
						|
\begin_inset Formula $\Rone\times M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 to tangent vectors at 
 | 
						|
\begin_inset Formula $X$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 A 
 | 
						|
\series bold
 | 
						|
tangent vector
 | 
						|
\series default
 | 
						|
 at 
 | 
						|
\begin_inset Formula $X$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is defined as the derivative of a trajectory at 
 | 
						|
\begin_inset Formula $X$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and for the NavState manifold this will be a triplet 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\left[\dot{R}(t,X),\dot{P}(t,X),\dot{V}(t,X)\right]\in\sothree\times\Rthree\times\Rthree
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where we use square brackets to indicate a tangent vector.
 | 
						|
 The space of all tangent vectors at 
 | 
						|
\begin_inset Formula $X$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is denoted by 
 | 
						|
\family roman
 | 
						|
\series medium
 | 
						|
\shape up
 | 
						|
\size normal
 | 
						|
\emph off
 | 
						|
\bar no
 | 
						|
\strikeout off
 | 
						|
\uuline off
 | 
						|
\uwave off
 | 
						|
\noun off
 | 
						|
\color none
 | 
						|
 | 
						|
\begin_inset Formula $T_{X}M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\family default
 | 
						|
\series default
 | 
						|
\shape default
 | 
						|
\size default
 | 
						|
\emph default
 | 
						|
\bar default
 | 
						|
\strikeout default
 | 
						|
\uuline default
 | 
						|
\uwave default
 | 
						|
\noun default
 | 
						|
\color inherit
 | 
						|
, and hence 
 | 
						|
\begin_inset Formula $F(t,X)\in T_{X}M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 For example, if the state evolves along a constant velocity trajectory
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
X(t)=\left\{ R_{0},P_{0}+V_{0}t,V_{0}\right\} 
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
then the differential equation describing the trajectory is
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\dot{X}(t)=\left[0_{3x3},V_{0},0_{3x1}\right],\,\,\,\,\, X(0)=\left\{ R_{0},P_{0},V_{0}\right\} 
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Valid vector fields on a NavState manifold are special, in that the attitude
 | 
						|
 and velocity derivatives can be arbitrary functions of X and t, but the
 | 
						|
 derivative of position is constrained to be equal to the current velocity
 | 
						|
 
 | 
						|
\begin_inset Formula $V(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
: 
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\dot{X}(t)=\left[\dot{R}(X,t),V(t),\dot{V}(X,t)\right]\label{eq:validField}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Suppose we are given the 
 | 
						|
\series bold
 | 
						|
body angular velocity
 | 
						|
\series default
 | 
						|
 
 | 
						|
\begin_inset Formula $\omega^{b}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and non-gravity 
 | 
						|
\series bold
 | 
						|
acceleration
 | 
						|
\series default
 | 
						|
 
 | 
						|
\begin_inset Formula $a^{b}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 in the body frame.
 | 
						|
 We know (from Murray84book) that the derivative of 
 | 
						|
\begin_inset Formula $R$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 can be written as 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\dot{R}(X,t)=R(t)\Skew{\omega^{b}(t)}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $\Skew{\theta}\in so(3)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is the skew-symmetric matrix corresponding to 
 | 
						|
\begin_inset Formula $\theta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and hence the resulting exact vector field is 
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\dot{X}(t)=\left[\dot{R}(X,t),V(t),\dot{V}(X,t)\right]=\left[R(t)\Skew{\omega^{b}(t)},V(t),g+R(t)a^{b}(t)\right]\label{eq:bodyField}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Local Coordinates
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Optimization on manifolds relies crucially on the concept of 
 | 
						|
\series bold
 | 
						|
local coordinates
 | 
						|
\series default
 | 
						|
.
 | 
						|
 For example, when optimizing over the rotations 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 starting from an initial estimate 
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, we define a local map 
 | 
						|
\begin_inset Formula $\Phi_{R_{0}}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 from 
 | 
						|
\begin_inset Formula $\theta\in\Rthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 to a neighborhood of 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 centered around 
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\Phi_{R_{0}}(\theta)=R_{0}\exp\left(\Skew{\theta}\right)
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $\exp$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is the matrix exponential, given by
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\exp\left(\Skew{\theta}\right)=\sum_{k=0}^{\infty}\frac{1}{k!}\Skew{\theta}^{k}\label{eq:expm}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
which for 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 can be efficiently computed in closed form.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
The local coordinates 
 | 
						|
\begin_inset Formula $\theta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 are isomorphic to tangent vectors at 
 | 
						|
\emph on
 | 
						|
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\emph default
 | 
						|
.
 | 
						|
 To see this, define 
 | 
						|
\begin_inset Formula $\theta=\omega t$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and note that 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\frac{d\Phi_{R_{0}}\left(\omega t\right)}{dt}\biggr\vert_{t=0}=\frac{dR_{0}\exp\left(\Skew{\omega t}\right)}{dt}\biggr\vert_{t=0}=R_{0}\Skew{\omega}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Hence, the 3-vector 
 | 
						|
\begin_inset Formula $\omega$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 defines a direction of travel on the 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 manifold, but does so in the local coordinate frame define by 
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
A similar story holds in 
 | 
						|
\begin_inset Formula $\SEthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
: we define local coordinates 
 | 
						|
\begin_inset Formula $\xi=\left[\omega t,vt\right]\in\Rsix$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and a mapping 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\Phi_{T_{0}}(\xi)=T_{0}\exp\xihat
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $\xihat\in\sethree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is defined as 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\xihat=\left[\begin{array}{cc}
 | 
						|
\Skew{\omega} & v\\
 | 
						|
0 & 0
 | 
						|
\end{array}\right]t
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
and the 6-vectors 
 | 
						|
\begin_inset Formula $\xi$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 are mapped to tangent vectors 
 | 
						|
\begin_inset Formula $T_{0}\xihat$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 at 
 | 
						|
\begin_inset Formula $T_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Derivative of The Local Coordinate Mapping
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
For the local coordinate mapping 
 | 
						|
\family roman
 | 
						|
\series medium
 | 
						|
\shape up
 | 
						|
\size normal
 | 
						|
\emph off
 | 
						|
\bar no
 | 
						|
\strikeout off
 | 
						|
\uuline off
 | 
						|
\uwave off
 | 
						|
\noun off
 | 
						|
\color none
 | 
						|
 | 
						|
\begin_inset Formula $\Phi_{R_{0}}\left(\theta\right)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\family default
 | 
						|
\series default
 | 
						|
\shape default
 | 
						|
\size default
 | 
						|
\emph default
 | 
						|
\bar default
 | 
						|
\strikeout default
 | 
						|
\uuline default
 | 
						|
\uwave default
 | 
						|
\noun default
 | 
						|
\color inherit
 | 
						|
 in 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we can define a 
 | 
						|
\begin_inset Formula $3\times3$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 
 | 
						|
\family roman
 | 
						|
\series medium
 | 
						|
\shape up
 | 
						|
\size normal
 | 
						|
\emph off
 | 
						|
\bar no
 | 
						|
\strikeout off
 | 
						|
\uuline off
 | 
						|
\uwave off
 | 
						|
\noun off
 | 
						|
\color none
 | 
						|
Jacobian 
 | 
						|
\begin_inset Formula $H(\theta)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 that models the effect of an incremental change 
 | 
						|
\begin_inset Formula $\delta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 to the local coordinates:
 | 
						|
\family default
 | 
						|
\series default
 | 
						|
\shape default
 | 
						|
\size default
 | 
						|
\emph default
 | 
						|
\bar default
 | 
						|
\strikeout default
 | 
						|
\uuline default
 | 
						|
\uwave default
 | 
						|
\noun default
 | 
						|
\color inherit
 | 
						|
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\Phi_{R_{0}}\left(\theta+\delta\right)\approx\Phi_{R_{0}}\left(\theta\right)\,\exp\left(\Skew{H(\theta)\delta}\right)=\Phi_{\Phi_{R_{0}}\left(\theta\right)}\left(H(\theta)\delta\right)\label{eq:push_exp}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
This Jacobian depends only on 
 | 
						|
\begin_inset Formula $\theta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and, for the case of 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, is given by a formula similar to the matrix exponential map, 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
H(\theta)=\sum_{k=0}^{\infty}\frac{(-1)^{k}}{(k+1)!}\Skew{\theta}^{k}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
which can also be computed in closed form.
 | 
						|
 In particular, 
 | 
						|
\begin_inset Formula $H(0)=I_{3\times3}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 at the base 
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Numerical Integration in Local Coordinates
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Inspired by the paper 
 | 
						|
\begin_inset Quotes eld
 | 
						|
\end_inset
 | 
						|
 | 
						|
Lie Group Methods
 | 
						|
\begin_inset Quotes erd
 | 
						|
\end_inset
 | 
						|
 | 
						|
 by Iserles et al.
 | 
						|
 
 | 
						|
\begin_inset CommandInset citation
 | 
						|
LatexCommand cite
 | 
						|
key "Iserles00an"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
, when we have a differential equation on 
 | 
						|
\begin_inset Formula $\SOthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
,
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\dot{R}(t)=F(R,t),\,\,\,\, R(0)=R_{0}\label{eq:diffSo3}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
we can transfer it to a differential equation in the 3-dimensional local
 | 
						|
 coordinate space.
 | 
						|
 To do so, we model the solution to 
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand eqref
 | 
						|
reference "eq:diffSo3"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 as
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
R(t)=\Phi_{R_{0}}(\theta(t))
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
To find an expression for 
 | 
						|
\begin_inset Formula $\dot{\theta}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, create a trajectory 
 | 
						|
\begin_inset Formula $\gamma(\delta)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 that passes through 
 | 
						|
\begin_inset Formula $R(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 for 
 | 
						|
\begin_inset Formula $\delta=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and moves 
 | 
						|
\begin_inset Formula $\theta(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 along the direction 
 | 
						|
\begin_inset Formula $\dot{\theta}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
: 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\gamma(\delta)=R(t+\delta)=\Phi_{R_{0}}\left(\theta(t)+\dot{\theta}(t)\delta\right)\approx\Phi_{R(t)}\left(H(\theta)\dot{\theta}(t)\delta\right)
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Taking the derivative for 
 | 
						|
\begin_inset Formula $\delta=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we obtain
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\dot{R}(t)=\frac{d\gamma(\delta)}{d\delta}\biggr\vert_{\delta=0}=\frac{d\Phi_{R(t)}\left(H(\theta)\dot{\theta}(t)\delta\right)}{d\delta}\biggr\vert_{\delta=0}=R(t)\Skew{H(\theta)\dot{\theta}(t)}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Comparing this to 
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand eqref
 | 
						|
reference "eq:diffSo3"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we obtain a differential equation for 
 | 
						|
\begin_inset Formula $\theta(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
:
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\dot{\theta}(t)=H(\theta)^{-1}\left\{ R(t)^{T}F(R,t)\right\} \check{},\,\,\,\,\theta(0)=0_{3\times1}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
In other words, the vector field 
 | 
						|
\begin_inset Formula $F(R,t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is rotated to the local frame, the inverse hat operator is applied to get
 | 
						|
 a 3-vector, which is then corrected by 
 | 
						|
\begin_inset Formula $H(\theta)^{-1}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 away from 
 | 
						|
\begin_inset Formula $\theta=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Retractions
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset FormulaMacro
 | 
						|
\newcommand{\Rnine}{\mathfrak{\mathbb{R}^{9}}}
 | 
						|
{\mathfrak{\mathbb{R}^{9}}}
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Note that the use of the exponential map in local coordinate mappings is
 | 
						|
 not obligatory, even in the context of Lie groups.
 | 
						|
 Often it is computationally expedient to use mappings that are easier to
 | 
						|
 compute, but yet induce the same tangent vector at 
 | 
						|
\begin_inset Formula $T_{0}.$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 Mappings that satisfy this constraint are collectively known as 
 | 
						|
\series bold
 | 
						|
retractions
 | 
						|
\series default
 | 
						|
.
 | 
						|
 For example, for 
 | 
						|
\begin_inset Formula $\SEthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 one could use the retraction 
 | 
						|
\begin_inset Formula $\mathcal{R}_{T_{0}}:\Rsix\rightarrow\SEthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\mathcal{R}_{T_{0}}\left(\xi\right)=T_{0}\left\{ \exp\left(\Skew{\omega t}\right),vt\right\} =\left\{ \Phi_{R_{0}}\left(\omega t\right),P_{0}+R_{0}vt\right\} 
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
This trajectory describes a linear path in position while the frame rotates,
 | 
						|
 as opposed to the helical path traced out by the exponential map.
 | 
						|
 The tangent vector at 
 | 
						|
\begin_inset Formula $T_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 can be computed as
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\frac{d\mathcal{R}_{T_{0}}\left(\xi\right)}{dt}\biggr\vert_{t=0}=\left[R_{0}\Skew{\omega},R_{0}v\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
which is identical to the one induced by 
 | 
						|
\family roman
 | 
						|
\series medium
 | 
						|
\shape up
 | 
						|
\size normal
 | 
						|
\emph off
 | 
						|
\bar no
 | 
						|
\strikeout off
 | 
						|
\uuline off
 | 
						|
\uwave off
 | 
						|
\noun off
 | 
						|
\color none
 | 
						|
 | 
						|
\begin_inset Formula $\Phi_{T_{0}}(\xi)=T_{0}\exp\xihat$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
The NavState manifold is not a Lie group like 
 | 
						|
\begin_inset Formula $\SEthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, but we can easily define a retraction that behaves similarly to the one
 | 
						|
 for 
 | 
						|
\begin_inset Formula $\SEthree$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, while treating velocities the same way as positions:
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\mathcal{R}_{X_{0}}(\zeta)=\left\{ \Phi_{R_{0}}\left(\omega t\right),P_{0}+R_{0}vt,V_{0}+R_{0}at\right\} 
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Here 
 | 
						|
\begin_inset Formula $\zeta=\left[\omega t,vt,at\right]$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is a 9-vector, with respectively angular, position, and velocity components.
 | 
						|
 The tangent vector at 
 | 
						|
\begin_inset Formula $X_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\frac{d\mathcal{R}_{X_{0}}(\zeta)}{dt}\biggr\vert_{t=0}=\left[R_{0}\Skew{\omega},R_{0}v,R_{0}a\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
and the isomorphism between 
 | 
						|
\begin_inset Formula $\Rnine$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $T_{X_{0}}M$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is 
 | 
						|
\begin_inset Formula $\zeta\rightarrow\left[R_{0}\Skew{\omega t},R_{0}vt,R_{0}at\right]$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Integration in Local Coordinates
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
We now proceed exactly as before to describe the evolution of the NavState
 | 
						|
 in local coordinates.
 | 
						|
 Let us model the solution of the differential equation 
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand eqref
 | 
						|
reference "eq:diffeqM"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 as a trajectory 
 | 
						|
\begin_inset Formula $\zeta(t)=\left[\theta(t),p(t),v(t)\right]$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, with 
 | 
						|
\begin_inset Formula $\zeta(0)=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, in the local coordinate frame anchored at 
 | 
						|
\begin_inset Formula $X_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 Note that this trajectory evolves away from 
 | 
						|
\begin_inset Formula $X_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and we use the symbols 
 | 
						|
\begin_inset Formula $\theta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, 
 | 
						|
\begin_inset Formula $p$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and 
 | 
						|
\begin_inset Formula $v$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 to indicate that these are integrated rather than differential quantities.
 | 
						|
 With that, we have 
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
X(t)=\mathcal{R}_{X_{0}}(\zeta(t))=\left\{ \Phi_{R_{0}}\left(\theta(t)\right),P_{0}+R_{0}p(t),V_{0}+R_{0}v(t)\right\} \label{eq:scheme1}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
We can create a trajectory 
 | 
						|
\begin_inset Formula $\gamma(\delta)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 that passes through 
 | 
						|
\begin_inset Formula $X(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 for 
 | 
						|
\begin_inset Formula $\delta=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\gamma(\delta)=X(t+\delta)=\left\{ \Phi_{R_{0}}\left(\theta(t)+\dot{\theta}(t)\delta\right),P_{0}+R_{0}\left\{ p(t)+\dot{p}(t)\delta\right\} ,V_{0}+R_{0}\left\{ v(t)+\dot{v}(t)\delta\right\} \right\} 
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
and taking the derivative for 
 | 
						|
\begin_inset Formula $\delta=0$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we obtain
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\dot{X}(t)=\frac{d\gamma(\delta)}{d\delta}\biggr\vert_{\delta=0}=\left[R(t)\Skew{H(\theta)\dot{\theta}(t)},R_{0}\,\dot{p}(t),R_{0}\,\dot{v}(t)\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Comparing that with the vector field 
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand eqref
 | 
						|
reference "eq:bodyField"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
, we have exact integration iff 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\left[R(t)\Skew{H(\theta)\dot{\theta}(t)},R_{0}\,\dot{p}(t),R_{0}\,\dot{v}(t)\right]=\left[R(t)\Skew{\omega^{b}(t)},V(t),g+R(t)a^{b}(t)\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Or, as another way to state this, if we solve the differential equations
 | 
						|
 for 
 | 
						|
\begin_inset Formula $\theta(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, 
 | 
						|
\begin_inset Formula $p(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and 
 | 
						|
\begin_inset Formula $v(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 such that
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray*}
 | 
						|
\dot{\theta}(t) & = & H(\theta)^{-1}\,\omega^{b}(t)\\
 | 
						|
\dot{p}(t) & = & R_{0}^{T}\, V_{0}+v(t)\\
 | 
						|
\dot{v}(t) & = & R_{0}^{T}\, g+R_{b}^{0}(t)a^{b}(t)
 | 
						|
\end{eqnarray*}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\family roman
 | 
						|
\series medium
 | 
						|
\shape up
 | 
						|
\size normal
 | 
						|
\emph off
 | 
						|
\bar no
 | 
						|
\strikeout off
 | 
						|
\uuline off
 | 
						|
\uwave off
 | 
						|
\noun off
 | 
						|
\color none
 | 
						|
 | 
						|
\begin_inset Formula $R_{b}^{0}(t)=R_{0}^{T}R(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is the rotation of the body frame with respect to 
 | 
						|
\begin_inset Formula $R_{0}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and we have used 
 | 
						|
\begin_inset Formula $V(t)=V_{0}+R_{0}v(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Application: The New IMU Factor
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
In the IMU factor, we need to predict the NavState 
 | 
						|
\begin_inset Formula $X_{j}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 from the current NavState 
 | 
						|
\begin_inset Formula $X_{i}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and the IMU measurements in-between.
 | 
						|
 The above scheme suffers from a problem, which is that 
 | 
						|
\begin_inset Formula $X_{i}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 needs to be known in order to compensate properly for the initial velocity
 | 
						|
 and rotated gravity vector.
 | 
						|
 Hence, the idea of Lupton was to split up 
 | 
						|
\begin_inset Formula $v(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 into a gravity-induced part and an accelerometer part
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
v(t)=v_{g}(t)+v_{a}(t)
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
evolving as
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray*}
 | 
						|
\dot{v}_{g}(t) & = & R_{i}^{T}\, g\\
 | 
						|
\dot{v}_{a}(t) & = & R_{b}^{i}(t)a^{b}(t)
 | 
						|
\end{eqnarray*}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
The solution for the first equation is simply 
 | 
						|
\begin_inset Formula $v_{g}(t)=R_{i}^{T}gt$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 Similarly, we split the position 
 | 
						|
\begin_inset Formula $p(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 up in three parts 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
p(t)=p_{i}(t)+p_{g}(t)+p_{v}(t)
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
evolving as
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray*}
 | 
						|
\dot{p}_{i}(t) & = & R_{i}^{T}\, V_{i}\\
 | 
						|
\dot{p}_{g}(t) & = & v_{g}(t)=R_{i}^{T}gt\\
 | 
						|
\dot{p}_{v}(t) & = & v_{a}(t)
 | 
						|
\end{eqnarray*}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Here the solutions for the two first equations are simply 
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray*}
 | 
						|
p_{i}(t) & = & R_{i}^{T}V_{i}t\\
 | 
						|
p_{g}(t) & = & R_{i}^{T}\frac{gt^{2}}{2}
 | 
						|
\end{eqnarray*}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
The recipe for the IMU factor is then, in summary.
 | 
						|
 Solve the ordinary differential equations
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray*}
 | 
						|
\dot{\theta}(t) & = & H(\theta(t))^{-1}\,\omega^{b}(t)\\
 | 
						|
\dot{p}_{v}(t) & = & v_{a}(t)\\
 | 
						|
\dot{v}_{a}(t) & = & R_{b}^{i}(t)a^{b}(t)
 | 
						|
\end{eqnarray*}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
starting from zero, up to time 
 | 
						|
\begin_inset Formula $t_{ij}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, where 
 | 
						|
\begin_inset Formula $R_{b}^{i}(t)=\exp\Skew{\theta(t)}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 at all times.
 | 
						|
 Form the local coordinate vector as
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\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
 | 
						|
 | 
						|
Predict the NavState 
 | 
						|
\begin_inset Formula $X_{j}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 at time 
 | 
						|
\begin_inset Formula $t_{j}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 from
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
X_{j}=\mathcal{R}_{X_{i}}(\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_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 integrated quantities 
 | 
						|
\begin_inset Formula $\theta(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
,
 | 
						|
\begin_inset Formula $p_{v}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and 
 | 
						|
\begin_inset Formula $v_{a}(t)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 do not.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
A Simple Euler Scheme
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
To solve the differential equation we can use a simple Euler scheme:
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray}
 | 
						|
\theta_{k+1}=\theta_{k}+\dot{\theta}(t_{k})\Delta_{t} & = & \theta_{k}+H(\theta_{k})^{-1}\,\omega_{k}^{b}\Delta_{t}\label{eq:euler_theta-1}\\
 | 
						|
p_{k+1}=p_{k}+\dot{p}_{v}(t_{k})\Delta_{t} & = & p_{k}+v_{k}\Delta_{t}\label{eq:euler_p-1}\\
 | 
						|
v_{k+1}=v_{k}+\dot{v}_{a}(t_{k})\Delta_{t} & = & v_{k}+\exp\left(\Skew{\theta_{k}}\right)a_{k}^{b}\Delta_{t}\label{eq:euler_v-1}
 | 
						|
\end{eqnarray}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $\theta_{k}\define\theta(t_{k})$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, 
 | 
						|
\begin_inset Formula $p_{k}\define p_{v}(t_{k})$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and 
 | 
						|
\begin_inset Formula $v_{k}\define v_{a}(t_{k})$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 However, the position propagation can be done more accurately, by using
 | 
						|
 exact integration of the zero-order hold acceleration 
 | 
						|
\begin_inset Formula $a_{k}^{b}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
:
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{eqnarray}
 | 
						|
\theta_{k+1} & = & \theta_{k}+H(\theta_{k})^{-1}\,\omega_{k}^{b}\Delta_{t}\label{eq:euler_theta}\\
 | 
						|
p_{k+1} & = & p_{k}+v_{k}\Delta_{t}+R_{k}a_{k}^{b}\frac{\Delta_{t}^{2}}{2}\label{eq:euler_p}\\
 | 
						|
v_{k+1} & = & v_{k}+R_{k}a_{k}^{b}\Delta_{t}\label{eq:euler_v}
 | 
						|
\end{eqnarray}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where we defined the rotation matrix 
 | 
						|
\begin_inset Formula $R_{k}=\exp\left(\Skew{\theta_{k}}\right)$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Subsubsection*
 | 
						|
Noise Propagation
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Even when we assume uncorrelated noise on 
 | 
						|
\begin_inset Formula $\omega^{b}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $a^{b}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, the noise on the final computed quantities will have a non-trivial covariance
 | 
						|
 structure, because the intermediate quantities 
 | 
						|
\begin_inset Formula $\theta_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $v_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 appear in multiple places.
 | 
						|
 To model the noise propagation, let us define 
 | 
						|
\begin_inset Formula $\zeta_{k}=[\theta_{k},p_{k},v_{k}]$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and rewrite Eqns.
 | 
						|
 (
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand ref
 | 
						|
reference "eq:euler_theta"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
-
 | 
						|
\begin_inset CommandInset ref
 | 
						|
LatexCommand ref
 | 
						|
reference "eq:euler_v"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
) as the non-linear function 
 | 
						|
\begin_inset Formula $f$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\zeta_{k+1}=f\left(\zeta_{k},a_{k}^{b},\omega_{k}^{b}\right)
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
Then the noise on 
 | 
						|
\begin_inset Formula $\zeta_{k+1}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 propagates as
 | 
						|
\begin_inset Formula 
 | 
						|
\begin{equation}
 | 
						|
\Sigma_{k+1}=A_{k}\Sigma_{k}A_{k}^{T}+B_{k}\Sigma_{\eta}^{ad}B_{k}+C_{k}\Sigma_{\eta}^{gd}C_{k}\label{eq:prop}
 | 
						|
\end{equation}
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where 
 | 
						|
\begin_inset Formula $A_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is the 
 | 
						|
\begin_inset Formula $9\times9$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 partial derivative of 
 | 
						|
\begin_inset Formula $f$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 wrpt 
 | 
						|
\begin_inset Formula $\zeta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, and 
 | 
						|
\begin_inset Formula $B_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $C_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 the respective 
 | 
						|
\begin_inset Formula $9\times3$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 partial derivatives with respect to the measured quantities 
 | 
						|
\begin_inset Formula $a^{b}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $\omega^{b}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
We start with the noise propagation on 
 | 
						|
\begin_inset Formula $\theta$
 | 
						|
\end_inset
 | 
						|
 | 
						|
, which is independent of the other quantities.
 | 
						|
 Taking the derivative, we have
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\deriv{\theta_{k+1}}{\theta_{k}}=I_{3x3}+\deriv{H(\theta_{k})^{-1}\omega_{k}^{b}}{\theta_{k}}\Delta_{t}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
It can be shown that for small 
 | 
						|
\begin_inset Formula $\theta_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we have 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\deriv{H(\theta_{k})^{-1}\omega_{k}^{b}}{\theta_{k}}\approx-\frac{1}{2}\Skew{\omega_{k}^{b}}\mbox{ and hence }\deriv{\theta_{k+1}}{\theta_{k}}=I_{3x3}-\frac{\Delta t}{2}\Skew{\omega_{k}^{b}}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
For the derivatives of 
 | 
						|
\begin_inset Formula $p_{k+1}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 and 
 | 
						|
\begin_inset Formula $v_{k+1}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 we need the derivative
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\deriv{R_{k}a_{k}^{b}}{\theta_{k}}=R_{k}\Skew{-a_{k}^{b}}\deriv{R_{k}}{\theta_{k}}=R_{k}\Skew{-a_{k}^{b}}H(\theta_{k})
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
where we used 
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
\deriv{\left(Ra\right)}R\approx R\Skew{-a}
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
and the fact that the dependence of the rotation 
 | 
						|
\begin_inset Formula $R_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 on 
 | 
						|
\begin_inset Formula $\theta_{k}$
 | 
						|
\end_inset
 | 
						|
 | 
						|
 is the already computed 
 | 
						|
\begin_inset Formula $H(\theta_{k})$
 | 
						|
\end_inset
 | 
						|
 | 
						|
.
 | 
						|
 
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
Putting all this together, we finally obtain
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
A_{k}\approx\left[\begin{array}{ccc}
 | 
						|
I_{3\times3}-\frac{\Delta_{t}}{2}\Skew{\omega_{k}^{b}}\\
 | 
						|
R_{k}\Skew{-a_{k}^{b}}H(\theta_{k})\frac{\Delta_{t}}{2}^{2} & I_{3\times3} & I_{3\times3}\Delta_{t}\\
 | 
						|
R_{k}\Skew{-a_{k}^{b}}H(\theta_{k})\Delta_{t} &  & I_{3\times3}
 | 
						|
\end{array}\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
The other partial derivatives are simply
 | 
						|
\begin_inset Formula 
 | 
						|
\[
 | 
						|
B_{k}=\left[\begin{array}{c}
 | 
						|
0_{3\times3}\\
 | 
						|
R_{k}\frac{\Delta_{t}}{2}^{2}\\
 | 
						|
R_{k}\Delta_{t}
 | 
						|
\end{array}\right],\,\,\,\, C_{k}=\left[\begin{array}{c}
 | 
						|
H(\theta_{k})^{-1}\Delta_{t}\\
 | 
						|
0_{3\times3}\\
 | 
						|
0_{3\times3}
 | 
						|
\end{array}\right]
 | 
						|
\]
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\begin_layout Standard
 | 
						|
\begin_inset CommandInset bibtex
 | 
						|
LatexCommand bibtex
 | 
						|
bibfiles "refs"
 | 
						|
options "plain"
 | 
						|
 | 
						|
\end_inset
 | 
						|
 | 
						|
 | 
						|
\end_layout
 | 
						|
 | 
						|
\end_body
 | 
						|
\end_document
 |