Addressed comments

release/4.3a0
Frank Dellaert 2022-03-24 13:23:10 -04:00
parent bf8fa75163
commit 476eb9c060
2 changed files with 81 additions and 17 deletions

View File

@ -150,18 +150,14 @@ filename "common_macros.tex"
\end_layout \end_layout
\begin_layout Section* \begin_layout Abstract
Overview
\end_layout
\begin_layout Standard
In this document I provide a hands-on introduction to both factor graphs In this document I provide a hands-on introduction to both factor graphs
and GTSAM. and GTSAM.
This is an updated version from the 2012 TR that is tailored to our GTSAM This is an updated version from the 2012 TR that is tailored to our GTSAM
4.0 library and beyond. 4.0 library and beyond.
\end_layout \end_layout
\begin_layout Standard \begin_layout Abstract
\series bold \series bold
Factor graphs Factor graphs
@ -202,7 +198,7 @@ ts or prior knowledge.
robotics and vision. robotics and vision.
\end_layout \end_layout
\begin_layout Standard \begin_layout Abstract
The GTSAM toolbox (GTSAM stands for The GTSAM toolbox (GTSAM stands for
\begin_inset Quotes eld \begin_inset Quotes eld
\end_inset \end_inset
@ -223,7 +219,7 @@ Georgia Tech Smoothing and Mapping
y. y.
\end_layout \end_layout
\begin_layout Standard \begin_layout Abstract
GTSAM exploits sparsity to be computationally efficient. GTSAM exploits sparsity to be computationally efficient.
Typically measurements only provide information on the relationship between Typically measurements only provide information on the relationship between
a handful of variables, and hence the resulting factor graph will be sparsely a handful of variables, and hence the resulting factor graph will be sparsely
@ -234,8 +230,11 @@ l complexity.
GTSAM provides iterative methods that are quite efficient regardless. GTSAM provides iterative methods that are quite efficient regardless.
\end_layout \end_layout
\begin_layout Standard \begin_layout Abstract
You can download the latest version of GTSAM from GitHub at You can download the latest version of GTSAM from GitHub at
\end_layout
\begin_layout Abstract
\begin_inset Flex URL \begin_inset Flex URL
status open status open
@ -1365,14 +1364,18 @@ where
\end_inset \end_inset
is the measurement, is the measurement,
\begin_inset Formula $q$ \begin_inset Formula $q\in SE(2)$
\end_inset \end_inset
is the unknown variable, is the unknown variable,
\begin_inset Formula $h(q)$ \begin_inset Formula $h(q)$
\end_inset \end_inset
is a (possibly nonlinear) measurement function, and is a
\series bold
measurement function
\series default
, and
\begin_inset Formula $\Sigma$ \begin_inset Formula $\Sigma$
\end_inset \end_inset
@ -1633,7 +1636,7 @@ Many of our users, when attempting to create a custom factor, are initially
\begin_inset Formula $2\times3$ \begin_inset Formula $2\times3$
\end_inset \end_inset
diagonal matrix. identity matrix.
This This
\emph on \emph on
would would
@ -1647,7 +1650,7 @@ would
such that such that
\begin_inset Formula \begin_inset Formula
\[ \[
h(qe^{\hat{\xi}})\approx h(q)+H\xi h(q\exp\hat{\xi})\approx h(q)+H\xi
\] \]
\end_inset \end_inset
@ -1664,7 +1667,8 @@ where
\series bold \series bold
exponential map exponential map
\series default \series default
for the variable we want to update, In this case for the variable we want to update.
In this case
\begin_inset Formula $q\in SE(2)$ \begin_inset Formula $q\in SE(2)$
\end_inset \end_inset
@ -1689,7 +1693,7 @@ The exponential map for
\[ \[
\exp\hat{\xi}\approx\left[\begin{array}{ccc} \exp\hat{\xi}\approx\left[\begin{array}{ccc}
1 & -\delta\theta & \delta x\\ 1 & -\delta\theta & \delta x\\
\delta\theta & 1 & \delta x\\ \delta\theta & 1 & \delta y\\
0 & 0 & 1 0 & 0 & 1
\end{array}\right] \end{array}\right]
\] \]
@ -1709,7 +1713,7 @@ h(qe^{\hat{\xi}})\approx h\left(\left[\begin{array}{ccc}
0 & 0 & 1 0 & 0 & 1
\end{array}\right]\left[\begin{array}{ccc} \end{array}\right]\left[\begin{array}{ccc}
1 & -\delta\theta & \delta x\\ 1 & -\delta\theta & \delta x\\
\delta\theta & 1 & \delta x\\ \delta\theta & 1 & \delta y\\
0 & 0 & 1 0 & 0 & 1
\end{array}\right]\right)=\left[\begin{array}{c} \end{array}\right]\right)=\left[\begin{array}{c}
q_{x}+\cos(q_{\theta})\delta x-\sin(q_{\theta})\delta y\\ q_{x}+\cos(q_{\theta})\delta x-\sin(q_{\theta})\delta y\\
@ -1726,6 +1730,66 @@ which then explains the Jacobian
. .
\end_layout \end_layout
\begin_layout Standard
Lie groups are very relevant in the robotics context, and you can read more
here:
\end_layout
\begin_layout Itemize
\begin_inset Flex URL
status open
\begin_layout Plain Layout
https://github.com/borglab/gtsam/blob/develop/doc/LieGroups.pdf
\end_layout
\end_inset
\end_layout
\begin_layout Itemize
\begin_inset Flex URL
status open
\begin_layout Plain Layout
https://github.com/borglab/gtsam/blob/develop/doc/math.pdf
\end_layout
\end_inset
\end_layout
\begin_layout Standard
In some cases you want to go even beyond Lie groups to a looser concept,
\series bold
manifolds
\series default
, because not all unknown variables behave like a group, e.g., the space of
3D planes, 2D lines, directions in space, etc.
For manifolds we do not always have an exponential map, but we have a retractio
n that plays the same role.
Some of this is explained here:
\end_layout
\begin_layout Itemize
\begin_inset Flex URL
status open
\begin_layout Plain Layout
https://gtsam.org/notes/GTSAM-Concepts.html
\end_layout
\end_inset
\end_layout
\begin_layout Subsection \begin_layout Subsection
Using Custom Factors Using Custom Factors
\end_layout \end_layout

Binary file not shown.