gtsam/doc/LieGroups.lyx

3118 lines
54 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
\lyxformat 345
\begin_document
\begin_header
\textclass article
\use_default_options false
\begin_modules
theorems-std
\end_modules
\language english
\inputencoding auto
\font_roman times
\font_sans default
\font_typewriter default
\font_default_family rmdefault
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\paperfontsize 12
\spacing single
\use_hyperref false
\papersize default
\use_geometry true
\use_amsmath 1
\use_esint 0
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
\bottommargin 1in
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\author ""
\author ""
\end_header
\begin_body
\begin_layout Title
Lie Groups for Beginners
\end_layout
\begin_layout Author
Frank Dellaert
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
Derivatives
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\deriv}[2]{\frac{\partial#1}{\partial#2}}
{\frac{\partial#1}{\partial#2}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\at}[2]{#1\biggr\rvert_{#2}}
{#1\biggr\rvert_{#2}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\Jac}[3]{ \at{\deriv{#1}{#2}} {#3} }
{\at{\deriv{#1}{#2}}{#3}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
Lie Groups
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\xhat}{\hat{x}}
{\hat{x}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\yhat}{\hat{y}}
{\hat{y}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\Ad}[1]{Ad_{#1}}
{Ad_{#1}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\define}{\stackrel{\Delta}{=}}
{\stackrel{\Delta}{=}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\gg}{\mathfrak{g}}
{\mathfrak{g}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\Rn}{\mathbb{R}^{n}}
{\mathbb{R}^{n}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SO(2), 1
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rtwo}{\mathfrak{\mathbb{R}^{2}}}
{\mathfrak{\mathbb{R}^{2}}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\SOtwo}{SO(2)}
{SO(2)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\sotwo}{\mathfrak{so(2)}}
{\mathfrak{so(2)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\that}{\hat{\theta}}
{\hat{\theta}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\skew}[1]{[#1]_{+}}
{[#1]_{+}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SE(2), 3
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\SEtwo}{SE(2)}
{SE(2)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\setwo}{\mathfrak{se(2)}}
{\mathfrak{se(2)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\Skew}[1]{[#1]_{\times}}
{[#1]_{\times}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SO(3), 3
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rthree}{\mathfrak{\mathbb{R}^{3}}}
{\mathfrak{\mathbb{R}^{3}}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\SOthree}{SO(3)}
{SO(3)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\sothree}{\mathfrak{so(3)}}
{\mathfrak{so(3)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\what}{\hat{\omega}}
{\hat{\omega}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SE(3),6
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rsix}{\mathfrak{\mathbb{R}^{6}}}
{\mathfrak{\mathbb{R}^{6}}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\SEthree}{SE(3)}
{SE(3)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\sethree}{\mathfrak{se(3)}}
{\mathfrak{se(3)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\xihat}{\hat{\xi}}
{\hat{\xi}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
Aff(2),6
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Afftwo}{Aff(2)}
{Aff(2)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\afftwo}{\mathfrak{aff(2)}}
{\mathfrak{aff(2)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\aa}{a}
{a}
\end_inset
\begin_inset FormulaMacro
\newcommand{\ahat}{\hat{a}}
{\hat{a}}
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SL(3),8
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\SLthree}{SL(3)}
{SL(3)}
\end_inset
\begin_inset FormulaMacro
\newcommand{\slthree}{\mathfrak{sl(3)}}
{\mathfrak{sl(3)}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\hh}{h}
{h}
\end_inset
\begin_inset FormulaMacro
\newcommand{\hhat}{\hat{h}}
{\hat{h}}
\end_inset
\end_layout
\begin_layout Section
Motivation: Rigid Motions in the Plane
\end_layout
\begin_layout Standard
\begin_inset Float figure
placement h
wide false
sideways false
status collapsed
\begin_layout Plain Layout
IMAGINE A FIGURE HERE
\begin_inset Caption
\begin_layout Plain Layout
(a) A robot translating.
(b) A robot rotating.
\end_layout
\end_inset
\end_layout
\begin_layout Plain Layout
\end_layout
\end_inset
\end_layout
\begin_layout Standard
We will start with a small example of a robot moving in a plane, parameterized
by a
\emph on
2D pose
\emph default
\begin_inset Formula $(x,\, y,\,\theta)$
\end_inset
.
When we give it a small forward velocity
\begin_inset Formula $v_{x}$
\end_inset
, we know that the location changes as
\begin_inset Formula \[
\dot{x}=v_{x}\]
\end_inset
The solution to this trivial differential equation is, with
\begin_inset Formula $x_{0}$
\end_inset
the initial
\begin_inset Formula $x$
\end_inset
-position f the robot,
\begin_inset Formula \[
x=x_{0}+v_{x}t\]
\end_inset
A similar story holds for translation in the
\begin_inset Formula $y$
\end_inset
direction, and in fact for translations in general:
\begin_inset Formula \[
(x,\, y,\,\theta)=(x_{0}+v_{x}t,\, y_{0}+v_{y}t,\,\theta_{0})\]
\end_inset
Similarly for rotation we have
\begin_inset Formula \[
(x,\, y,\,\theta)=(x_{0},\, y_{0},\,\theta_{0}+\omega t)\]
\end_inset
where
\begin_inset Formula $\omega$
\end_inset
is angular velocity, measured in
\begin_inset Formula $rad/s$
\end_inset
in counterclockwise direction.
\end_layout
\begin_layout Standard
\begin_inset Float figure
placement h
wide false
sideways false
status collapsed
\begin_layout Plain Layout
IMAGINE A FIGURE HERE
\begin_inset Caption
\begin_layout Plain Layout
Robot moving along a circular trajectory.
\end_layout
\end_inset
\end_layout
\end_inset
\end_layout
\begin_layout Standard
However, if we combine translation and rotation, the story breaks down!
We cannot write
\begin_inset Formula \[
(x,\, y,\,\theta)=(x_{0}+v_{x}t,\, y_{0}+v_{y}t,\,\theta_{0}+\omega t)\]
\end_inset
The reason is that, if we move the robot a tiny bit according to the velocity
vector
\begin_inset Formula $(v_{x},\, v_{y},\,\omega)$
\end_inset
, we do have to first order
\begin_inset Formula \[
(x_{t+\delta},\, y_{t+\delta},\,\theta_{t+\delta})=(x_{0}+v_{x}\delta,\, y_{0}+v_{y}\delta,\,\theta_{0}+\omega\delta)\]
\end_inset
but now the robot has rotated, and for the next incremental change, the
velocity vector would have to be rotated before it can be applied.
In fact, the robot will move on a
\emph on
circular
\emph default
trajectory.
\end_layout
\begin_layout Standard
The reason is that
\emph on
translation and rotation do not commute
\emph default
: if we rotate and then move we will end up in a different place than if
we moved first, then rotated.
In fact, someone once said (I forget who, kudos for who can track down
the exact quote):
\end_layout
\begin_layout Quote
If rotation and translation commuted, we could do all rotations before leaving
home.
\end_layout
\begin_layout Standard
To make progress, we have to be more precise about how the robot behaves.
Specifically, let us define composition of two poses
\begin_inset Formula $T_{1}$
\end_inset
and
\begin_inset Formula $T_{2}$
\end_inset
as
\begin_inset Formula \[
T_{1}T_{2}=(x_{1},\, y_{1},\,\theta_{1})(x_{2},\, y_{2},\,\theta_{2})=(x_{1}+\cos\theta_{1}x_{2}-\sin\theta y_{2},\, y_{1}+\sin\theta_{1}x_{2}+\cos\theta_{1}y_{2},\,\theta_{1}+\theta_{2})\]
\end_inset
This is a bit clumsy, so we resort to a trick: embed the 2D poses in the
\begin_inset Formula $3\times3$
\end_inset
matrices, so we can define composition as matrix multiplication:
\begin_inset Formula \[
T_{1}T_{2}=\left[\begin{array}{cc}
R_{1} & t_{1}\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
R_{2} & t_{2}\\
0 & 1\end{array}\right]=\left[\begin{array}{cc}
R_{1}R_{2} & R_{1}t_{2}+t_{1}\\
0 & 1\end{array}\right]\]
\end_inset
where the matrices
\begin_inset Formula $R$
\end_inset
are 2D rotation matrices defined as
\begin_inset Formula \[
R=\left[\begin{array}{cc}
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Float figure
placement h
wide false
sideways false
status open
\begin_layout Plain Layout
IMAGINE A FIGURE HERE
\begin_inset Caption
\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:n-step-program"
\end_inset
Approximating a circular trajectory with
\begin_inset Formula $n$
\end_inset
steps.
\end_layout
\end_inset
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Now, a
\begin_inset Quotes eld
\end_inset
tiny
\begin_inset Quotes erd
\end_inset
motion of the robot can be written as
\begin_inset Formula \[
T(\delta)=\left[\begin{array}{ccc}
\cos\omega\delta & -\sin\omega\delta & v_{x}\delta\\
\sin\omega\delta & \cos\omega\delta & v_{y}\delta\\
0 & 0 & 1\end{array}\right]\approx\left[\begin{array}{ccc}
1 & -\omega\delta & v_{x}\delta\\
\omega\delta & 1 & v_{y}\delta\\
0 & 0 & 1\end{array}\right]=I+\delta\left[\begin{array}{ccc}
0 & -\omega & v_{x}\\
\omega & 0 & v_{y}\\
0 & 0 & 1\end{array}\right]\]
\end_inset
Let us define the
\emph on
2D twist
\emph default
vector
\begin_inset Formula $\xi=(v,\omega)$
\end_inset
, and the matrix above as
\begin_inset Formula \[
\xihat\define\left[\begin{array}{ccc}
0 & -\omega & v_{x}\\
\omega & 0 & v_{y}\\
0 & 0 & 1\end{array}\right]\]
\end_inset
If we wanted
\begin_inset Formula $t$
\end_inset
to be large, we could split up
\begin_inset Formula $t$
\end_inset
into smaller timesteps, say
\begin_inset Formula $n$
\end_inset
of them, and compose them as follows:
\begin_inset Formula \[
T(t)\approx\left(I+\frac{t}{n}\xihat\right)\ldots\mbox{n times}\ldots\left(I+\frac{t}{n}\xihat\right)=\left(I+\frac{t}{n}\xihat\right)^{n}\]
\end_inset
The result is shown in Figure
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:n-step-program"
\end_inset
.
\end_layout
\begin_layout Standard
Of course, the perfect solution would be obtained if we take
\begin_inset Formula $n$
\end_inset
to infinity:
\begin_inset Formula \[
T(t)=\lim_{n\rightarrow\infty}\left(I+\frac{t}{n}\xihat\right)^{n}\]
\end_inset
For real numbers, this series is familiar and is actually a way to compute
the exponential function:
\begin_inset Formula \[
e^{x}=\lim_{n\rightarrow\infty}\left(I+\frac{x}{n}\right)^{n}=\sum_{k=0}^{\infty}\frac{x^{k}}{k!}\]
\end_inset
The series can be similarly defined for square matrices,
\begin_inset Formula \[
e^{A}=\lim_{n\rightarrow\infty}\left(I+\frac{A}{n}\right)^{n}=\sum_{k=0}^{\infty}\frac{A^{k}}{k!}\]
\end_inset
Our final result is that we can write the motion of a robot along a circular
trajectory, resulting from the 2D twist
\begin_inset Formula $\xi=(v,\omega)$
\end_inset
\begin_inset Formula $ $
\end_inset
as the matrix exponential of
\begin_inset Formula $\xihat$
\end_inset
:
\begin_inset Formula \[
T(t)=e^{t\xihat}\define\lim_{n\rightarrow\infty}\left(I+\frac{t}{n}\xihat\right)^{n}=\sum_{k=0}^{\infty}\frac{\left(t\xihat\right)^{k}}{k!}\]
\end_inset
We call this mapping from 2D twists matrices
\begin_inset Formula $\xihat$
\end_inset
to 2D rigid transformations the
\emph on
exponential map.
\end_layout
\begin_layout Standard
The above has all elemtns of Lie group theory.
We call the space of 2D rigid transformations, along with the composition
operation, the
\emph on
special Euclidean group
\emph default
\begin_inset Formula $\SEtwo$
\end_inset
.
It is called a Lie group because it is both a manifold, and its group operation
is smooth when operating on this manifold.
The space of 2D twists, together with a special binary operation to be
defined below, is called the Lie algebra
\begin_inset Formula $\setwo$
\end_inset
associated with
\begin_inset Formula $\SEtwo$
\end_inset
.
Below we generalize these concepts and then introduce the most commonly
used Lie groups and their Lie algebras.
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
Basic Lie Group Concepts
\end_layout
\begin_layout Subsection
A Manifold and a Group
\end_layout
\begin_layout Standard
A Lie group
\begin_inset Formula $G$
\end_inset
is a manifold that possesses a smooth group operation.
Associated with it is a Lie Algebra
\begin_inset Formula $\gg$
\end_inset
which, loosely speaking, can be identified with the tangent space at the
identity and completely defines how the groups behaves around the identity.
There is a mapping from
\begin_inset Formula $\gg$
\end_inset
back to
\begin_inset Formula $G$
\end_inset
, called the exponential map
\begin_inset Formula \[
\exp:\gg\rightarrow G\]
\end_inset
which is typically a many-to-one mapping.
The corresponding inverse can be define locally around the origin and hence
is a
\begin_inset Quotes eld
\end_inset
logarithm
\begin_inset Quotes erd
\end_inset
:
\begin_inset Formula \[
\log:G\rightarrow\gg\]
\end_inset
that maps elements in a neighborhood of
\begin_inset Formula $id$
\end_inset
in G to an element in
\begin_inset Formula $\gg$
\end_inset
.
\end_layout
\begin_layout Subsection
Lie Algebra
\end_layout
\begin_layout Standard
The Lie Algebra
\begin_inset Formula $\gg$
\end_inset
is called an algebra because it is endowed with a binary operation, the
Lie bracket
\begin_inset Formula $[X,Y]$
\end_inset
, the properties of which are closely related to the group operation of
\begin_inset Formula $G$
\end_inset
.
For example, in matrix Lie groups, the Lie bracket is given by
\begin_inset Formula $[A,B]\define AB-BA$
\end_inset
.
The relationship with the group operation is as follows: for commutative
Lie groups vector addition
\begin_inset Formula $X+Y$
\end_inset
in
\begin_inset Formula $\gg$
\end_inset
mimicks the group operation.
For example, if we have
\begin_inset Formula $Z=X+Y$
\end_inset
in
\begin_inset Formula $\gg$
\end_inset
, when mapped backed to
\begin_inset Formula $G$
\end_inset
via the exponential map we obtain
\begin_inset Formula \[
e^{Z}=e^{X+Y}=e^{X}e^{Y}\]
\end_inset
However, this does
\emph on
not
\emph default
hold for non-commutative Lie groups:
\begin_inset Formula \[
Z=\log(e^{X}e^{Y})\neq X+Y\]
\end_inset
Instead,
\begin_inset Formula $Z$
\end_inset
can be calculated using the Baker-Campbell-Hausdorff (BCH) formula:
\begin_inset Foot
status collapsed
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/BakerCampbellHausdorff_formula
\end_layout
\end_inset
\begin_inset Formula \[
Z=X+Y+[X,Y]/2+[X-Y,[X,Y]]/12-[Y,[X,[X,Y]]]/24+\ldots\]
\end_inset
For commutative groups the bracket is zero and we recover
\begin_inset Formula $Z=X+Y$
\end_inset
.
For non-commutative groups we can use the BCH formula to approximate it.
\end_layout
\begin_layout Subsection
Exponential Coordinates
\end_layout
\begin_layout Standard
For
\begin_inset Formula $n$
\end_inset
-dimensional matrix Lie groups, the Lie algebra
\begin_inset Formula $\gg$
\end_inset
is isomorphic to
\begin_inset Formula $\mathbb{R}^{n}$
\end_inset
, and we can define the wedge operator
\begin_inset CommandInset citation
LatexCommand cite
after "page 41"
key "Murray94book"
\end_inset
,
\begin_inset Formula \[
\hat{}:x\in\mathbb{R}^{n}\rightarrow\xhat\in\gg\]
\end_inset
which maps
\begin_inset Formula $n$
\end_inset
-vectors
\begin_inset Formula $x\in\mathbb{R}^{n}$
\end_inset
to elements of
\begin_inset Formula $\gg$
\end_inset
.
In the case of matrix Lie groups, the elements
\begin_inset Formula $\xhat$
\end_inset
of
\begin_inset Formula $\gg$
\end_inset
are
\begin_inset Formula $n\times n$
\end_inset
matrices, and the map is given by
\begin_inset Formula \begin{equation}
\xhat=\sum_{i=1}^{n}x_{i}G^{i}\label{eq:generators}\end{equation}
\end_inset
where the
\begin_inset Formula $G^{i}$
\end_inset
are
\begin_inset Formula $n\times n$
\end_inset
matrices known as the Lie group generators.
The meaning of the map
\begin_inset Formula $x\rightarrow\xhat$
\end_inset
will depend on the group
\begin_inset Formula $G$
\end_inset
and will generally have an intuitive interpretation.
\end_layout
\begin_layout Subsection
The Adjoint Map
\end_layout
\begin_layout Standard
Below we frequently make use of the equality
\begin_inset Foot
status collapsed
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/Exponential_map
\end_layout
\end_inset
\begin_inset Formula \[
ge^{\xhat}g^{-1}=e^{\Ad g{\xhat}}\]
\end_inset
where
\begin_inset Formula $\Ad g:\gg\rightarrow\mathfrak{\gg}$
\end_inset
is a map parameterized by a group element
\begin_inset Formula $g$
\end_inset
.
The intuitive explanation is that a change
\begin_inset Formula $\exp\left(\xhat\right)$
\end_inset
defined around the orgin, but applied at the group element
\begin_inset Formula $g$
\end_inset
, can be written in one step by taking the adjoint
\begin_inset Formula $\Ad g{\xhat}$
\end_inset
of
\begin_inset Formula $\xhat$
\end_inset
.
In the case of a matrix group the ajoint can be written as
\begin_inset Foot
status collapsed
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/Adjoint_representation_of_a_Lie_group
\end_layout
\end_inset
\begin_inset Formula \[
\Ad T{\xhat}\define T\xhat T^{-1}\]
\end_inset
and hence we have
\end_layout
\begin_layout Standard
\begin_inset Formula \[
Te^{\xhat}T^{-1}=e^{T\xhat T^{-1}}\]
\end_inset
where both
\begin_inset Formula $T\in G$
\end_inset
and
\begin_inset Formula $\xhat\in\gg$
\end_inset
are
\begin_inset Formula $n\times n$
\end_inset
matrices for an
\begin_inset Formula $n$
\end_inset
-dimensional Lie group.
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
The (usual) action of an
\begin_inset Formula $n$
\end_inset
-dimensional matrix group
\begin_inset Formula $G$
\end_inset
is matrix-vector multiplication on
\begin_inset Formula $\mathbb{R}^{n}$
\end_inset
,
\begin_inset Formula \[
q=Tp\]
\end_inset
with
\begin_inset Formula $p,q\in\mathbb{R}^{n}$
\end_inset
and
\begin_inset Formula $T\in GL(n)$
\end_inset
.
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
2D Rotations
\end_layout
\begin_layout Standard
We first look at a very simple group, the 2D rotations.
\end_layout
\begin_layout Subsection
Basics
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $\SOtwo$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(2)$
\end_inset
of
\begin_inset Formula $2\times2$
\end_inset
invertible matrices.
Its Lie algebra
\begin_inset Formula $\sotwo$
\end_inset
is the vector space of
\begin_inset Formula $2\times2$
\end_inset
skew-symmetric matrices.
Since
\begin_inset Formula $\SOtwo$
\end_inset
is a one-dimensional manifold,
\begin_inset Formula $\sotwo$
\end_inset
is isomorphic to
\begin_inset Formula $\mathbb{R}$
\end_inset
and we define
\begin_inset Formula \[
\hat{}:\mathbb{R}\rightarrow\sotwo\]
\end_inset
\begin_inset Formula \[
\hat{}:\theta\rightarrow\that=\skew{\theta}\]
\end_inset
which maps the angle
\begin_inset Formula $\theta$
\end_inset
to the
\begin_inset Formula $2\times2$
\end_inset
skew-symmetric matrix
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $\skew{\theta}$
\end_inset
:
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
\begin_inset Formula \[
\skew{\theta}=\left[\begin{array}{cc}
0 & -\theta\\
\theta & 0\end{array}\right]\]
\end_inset
The exponential map can be computed in closed form as
\begin_inset Formula \[
R=e^{\skew{\theta}}=\left[\begin{array}{cc}
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Subsection
Adjoint
\end_layout
\begin_layout Standard
The adjoint map for
\begin_inset Formula $\sotwo$
\end_inset
is trivially equal to the identity, as is the case for
\emph on
all
\emph default
commutative groups:
\begin_inset Formula \begin{eqnarray*}
\Ad R\what & = & \left[\begin{array}{cc}
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]\left[\begin{array}{cc}
0 & -\omega\\
\omega & 0\end{array}\right]\left[\begin{array}{cc}
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]^{T}\\
& = & \omega\left[\begin{array}{cc}
-\sin\theta & -\cos\theta\\
\cos\theta & -\sin\theta\end{array}\right]\left[\begin{array}{cc}
\cos\theta & \sin\theta\\
-\sin\theta & \cos\theta\end{array}\right]=\left[\begin{array}{cc}
0 & -\omega\\
\omega & 0\end{array}\right]\end{eqnarray*}
\end_inset
which we can write in terms of
\begin_inset Formula $\omega$
\end_inset
as
\begin_inset Formula \[
\Ad R\omega=\omega\]
\end_inset
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
In the case of
\begin_inset Formula $\SOtwo$
\end_inset
the vector space is
\begin_inset Formula $\Rtwo$
\end_inset
, and the group action corresponds to rotating a point
\begin_inset Formula \[
q=Rp\]
\end_inset
We would now like to know what an incremental rotation parameterized by
\begin_inset Formula $\theta$
\end_inset
would do:
\begin_inset Formula \[
q(\text{\theta})=Re^{\skew{\theta}}p\]
\end_inset
hence the derivative is:
\begin_inset Formula \[
\deriv{q(\omega)}{\omega}=R\deriv{}{\omega}\left(e^{\skew{\theta}}p\right)=R\deriv{}{\omega}\left(\skew{\theta}p\right)=RH_{p}\]
\end_inset
Note that
\begin_inset Formula \begin{equation}
\skew{\theta}\left[\begin{array}{c}
x\\
y\end{array}\right]=\theta R_{\pi/2}\left[\begin{array}{c}
x\\
y\end{array}\right]=\theta\left[\begin{array}{c}
-y\\
x\end{array}\right]\label{eq:RestrictedCross}\end{equation}
\end_inset
which acts like a restricted
\begin_inset Quotes eld
\end_inset
cross product
\begin_inset Quotes erd
\end_inset
in the plane.
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
2D Rigid Transformations
\end_layout
\begin_layout Subsection
Basics
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $\SEtwo$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(3)$
\end_inset
of
\begin_inset Formula $3\times3$
\end_inset
invertible matrices of the form
\begin_inset Formula \[
T\define\left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\]
\end_inset
where
\begin_inset Formula $R\in\SOtwo$
\end_inset
is a rotation matrix and
\begin_inset Formula $t\in\Rtwo$
\end_inset
is a translation vector.
\begin_inset Formula $\SEtwo$
\end_inset
is the
\emph on
semi-direct product
\emph default
of
\begin_inset Formula $\Rtwo$
\end_inset
by
\begin_inset Formula $SO(2)$
\end_inset
, written as
\begin_inset Formula $\SEtwo=\Rtwo\rtimes\SOtwo$
\end_inset
.
In particular, any element
\begin_inset Formula $T$
\end_inset
of
\begin_inset Formula $\SEtwo$
\end_inset
can be written as
\begin_inset Formula \[
T=\left[\begin{array}{cc}
0 & t\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
R & 0\\
0 & k\end{array}\right]\]
\end_inset
and they compose as
\begin_inset Formula \[
T_{1}T_{2}=\left[\begin{array}{cc}
R_{1} & t_{1}\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
R_{2} & t_{2}\\
0 & 1\end{array}\right]=\left[\begin{array}{cc}
R_{1}R_{2} & R_{1}t_{2}+t_{1}\\
0 & 1\end{array}\right]\]
\end_inset
Hence, an alternative way of writing down elements of
\begin_inset Formula $\SEtwo$
\end_inset
is as the ordered pair
\begin_inset Formula $(R,\, t)$
\end_inset
, with composition defined a
\begin_inset Formula \[
(R_{1},\, t_{1})(R_{2},\, t_{2})=(R_{1}R_{2},\, R{}_{1}t_{2}+t_{1})\]
\end_inset
\end_layout
\begin_layout Standard
The corresponding Lie algebra
\begin_inset Formula $\setwo$
\end_inset
is the vector space of
\begin_inset Formula $3\times3$
\end_inset
twists
\begin_inset Formula $\xihat$
\end_inset
parameterized by the
\emph on
twist coordinates
\emph default
\begin_inset Formula $\xi\in\Rthree$
\end_inset
, with the mapping
\begin_inset Formula \[
\xi\define\left[\begin{array}{c}
v\\
\omega\end{array}\right]\rightarrow\xihat\define\left[\begin{array}{cc}
\skew{\omega} & v\\
0 & 0\end{array}\right]\]
\end_inset
Note we think of robots as having a pose
\begin_inset Formula $(x,y,\theta)$
\end_inset
and hence I reserved the first two components for translation and the last
for rotation.
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
The corresponding Lie group generators are
\begin_inset Formula \[
G^{x}=\left[\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{y}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 1\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{\theta}=\left[\begin{array}{ccc}
0 & -1 & 0\\
1 & 0 & 0\\
0 & 0 & 0\end{array}\right]\]
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
Applying the exponential map to a twist
\begin_inset Formula $\xi$
\end_inset
yields a screw motion yielding an element in
\begin_inset Formula $\SEtwo$
\end_inset
:
\begin_inset Formula \[
T=e^{\xihat}=\left(e^{\skew{\omega}},(I-e^{\skew{\omega}})\frac{v^{\perp}}{\omega}\right)\]
\end_inset
\end_layout
\begin_layout Subsection
The Adjoint Map
\end_layout
\begin_layout Standard
The adjoint is
\begin_inset Formula \begin{eqnarray}
\Ad T{\xihat} & = & T\xihat T^{-1}\nonumber \\
& = & \left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
\skew{\omega} & v\\
0 & 0\end{array}\right]\left[\begin{array}{cc}
R^{T} & -R^{T}t\\
0 & 1\end{array}\right]\nonumber \\
& = & \left[\begin{array}{cc}
\skew{\omega} & -\skew{\omega}t+Rv\\
0 & 0\end{array}\right]\nonumber \\
& = & \left[\begin{array}{cc}
\skew{\omega} & Rv-\omega R_{\pi/2}t\\
0 & 0\end{array}\right]\label{eq:adjointSE2}\end{eqnarray}
\end_inset
From this we can express the Adjoint map in terms of plane twist coordinates:
\begin_inset Formula \[
\left[\begin{array}{c}
v'\\
\omega'\end{array}\right]=\left[\begin{array}{cc}
R & -R_{\pi/2}t\\
0 & 1\end{array}\right]\left[\begin{array}{c}
v\\
\omega\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
The action of
\begin_inset Formula $\SEtwo$
\end_inset
on 2D points is done by embedding the points in
\begin_inset Formula $\mathbb{R}^{3}$
\end_inset
by using homogeneous coordinates
\begin_inset Formula \[
\hat{q}=\left[\begin{array}{c}
q\\
1\end{array}\right]=\left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\left[\begin{array}{c}
p\\
1\end{array}\right]=T\hat{p}\]
\end_inset
Analoguous to
\begin_inset Formula $\SEthree$
\end_inset
, we can compute a velocity
\begin_inset Formula $\xihat\hat{p}$
\end_inset
in the local
\begin_inset Formula $T$
\end_inset
frame:
\begin_inset Formula \[
\xihat\hat{p}=\left[\begin{array}{cc}
\skew{\omega} & v\\
0 & 0\end{array}\right]\left[\begin{array}{c}
p\\
1\end{array}\right]=\left[\begin{array}{c}
\skew{\omega}p+v\\
0\end{array}\right]\]
\end_inset
By only taking the top two rows, we can write this as a velocity in
\begin_inset Formula $\Rtwo$
\end_inset
, as the product of a
\begin_inset Formula $2\times3$
\end_inset
matrix
\begin_inset Formula $H_{p}$
\end_inset
that acts upon the exponential coordinates
\begin_inset Formula $\xi$
\end_inset
directly:
\begin_inset Formula \[
\skew{\omega}p+v=v+R_{\pi/2}p\omega=\left[\begin{array}{cc}
I_{2} & R_{\pi/2}p\end{array}\right]\left[\begin{array}{c}
v\\
\omega\end{array}\right]=H_{p}\xi\]
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
3D Rotations
\end_layout
\begin_layout Subsection
Basics
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $\SOthree$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(3)$
\end_inset
of
\begin_inset Formula $3\times3$
\end_inset
invertible matrices.
Its Lie algebra
\begin_inset Formula $\sothree$
\end_inset
is the vector space of
\begin_inset Formula $3\times3$
\end_inset
skew-symmetric matrices
\begin_inset Formula $\what$
\end_inset
.
The exponential map can be computed in closed form using Rodrigues' formula
\begin_inset CommandInset citation
LatexCommand cite
after "page 28"
key "Murray94book"
\end_inset
:
\end_layout
\begin_layout Standard
\begin_inset Formula \[
e^{\what}=I+\what\sin\theta+\what^{2}(1\text{}\cos\theta)\]
\end_inset
where
\begin_inset Formula $\what^{2}=\omega\omega^{T}-I$
\end_inset
, with
\begin_inset Formula $\omega\omega^{T}$
\end_inset
the outer product of
\begin_inset Formula $\omega$
\end_inset
.
Hence, a slightly more efficient variant is
\end_layout
\begin_layout Standard
\begin_inset Formula \[
e^{\what}=\cos\theta I+\what sin\theta+\omega\omega^{T}(1\text{}cos\theta)\]
\end_inset
\end_layout
\begin_layout Standard
Since
\begin_inset Formula $\SOthree$
\end_inset
is a three-dimensional manifold,
\begin_inset Formula $\sothree$
\end_inset
is isomorphic to
\begin_inset Formula $\Rthree$
\end_inset
and we define the map
\begin_inset Formula \[
\hat{}:\Rthree\rightarrow\sothree\]
\end_inset
\begin_inset Formula \[
\hat{}:\omega\rightarrow\what=\Skew{\omega}\]
\end_inset
which maps 3-vectors
\begin_inset Formula $\omega$
\end_inset
to skew-symmetric matrices
\begin_inset Formula $\Skew{\omega}$
\end_inset
:
\begin_inset Formula \[
\Skew{\omega}=\left[\begin{array}{ccc}
0 & -\omega_{z} & \omega_{y}\\
\omega_{z} & 0 & -\omega_{x}\\
-\omega_{y} & \omega_{x} & 0\end{array}\right]=\omega_{x}G^{x}+\omega_{y}G^{y}+\omega_{z}G^{z}\]
\end_inset
where the
\begin_inset Formula $G^{i}$
\end_inset
are the generators for
\begin_inset Formula $\SOthree$
\end_inset
,
\begin_inset Formula \[
G^{x}=\left(\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & -1\\
0 & 1 & 0\end{array}\right)\mbox{}G^{y}=\left(\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 0\\
-1 & 0 & 0\end{array}\right)\mbox{ }G^{z}=\left(\begin{array}{ccc}
0 & -1 & 0\\
1 & 0 & 0\\
0 & 0 & 0\end{array}\right)\]
\end_inset
corresponding to a rotation around
\begin_inset Formula $X$
\end_inset
,
\begin_inset Formula $Y$
\end_inset
, and
\begin_inset Formula $Z$
\end_inset
, respectively.
The Lie bracket
\begin_inset Formula $[x,y]$
\end_inset
corresponds to the cross product
\begin_inset Formula $x\times y$
\end_inset
in
\begin_inset Formula $\Rthree$
\end_inset
.
\end_layout
\begin_layout Standard
For every
\begin_inset Formula $3-$
\end_inset
vector
\begin_inset Formula $\omega$
\end_inset
there is a corresponding rotation matrix
\begin_inset Formula \[
R=e^{\Skew{\omega}}\]
\end_inset
and this is defines the canonical parameterization of
\begin_inset Formula $\SOthree$
\end_inset
, with
\begin_inset Formula $\omega$
\end_inset
known as the canonical or exponential coordinates.
It is equivalent to the axis-angle representation for rotations, where
the unit vector
\begin_inset Formula $\omega/\left\Vert \omega\right\Vert $
\end_inset
defines the rotation axis, and its magnitude the amount of rotation
\begin_inset Formula $\theta$
\end_inset
.
\end_layout
\begin_layout Subsection
The Adjoint Map
\end_layout
\begin_layout Standard
For rotation matrices
\begin_inset Formula $R$
\end_inset
we can prove the following identity (see
\begin_inset CommandInset ref
LatexCommand vref
reference "proof1"
\end_inset
):
\begin_inset Formula \begin{equation}
R\Skew{\omega}R^{T}=\Skew{R\omega}\label{eq:property1}\end{equation}
\end_inset
Hence, given property
\begin_inset CommandInset ref
LatexCommand eqref
reference "proof1"
\end_inset
, the adjoint map for
\begin_inset Formula $\sothree$
\end_inset
simplifies to
\begin_inset Formula \[
\Ad R{\Skew{\omega}}=R\Skew{\omega}R^{T}=\Skew{R\omega}\]
\end_inset
and this can be expressed in exponential coordinates simply by rotating
the axis
\begin_inset Formula $\omega$
\end_inset
to
\begin_inset Formula $R\omega$
\end_inset
.
\end_layout
\begin_layout Standard
As an example, to apply an axis-angle rotation
\begin_inset Formula $\omega$
\end_inset
to a point
\begin_inset Formula $p$
\end_inset
in the frame
\begin_inset Formula $R$
\end_inset
, we could:
\end_layout
\begin_layout Enumerate
First transform
\begin_inset Formula $p$
\end_inset
back to the world frame, apply
\begin_inset Formula $\omega$
\end_inset
, and then rotate back:
\begin_inset Formula \[
q=Re^{\Skew{\omega}}R^{T}\]
\end_inset
\end_layout
\begin_layout Enumerate
Immediately apply the transformed axis-angle transformation
\begin_inset Formula $\Ad R{\Skew{\omega}}=\Skew{R\omega}$
\end_inset
:
\begin_inset Formula \[
q=e^{\Skew{R\omega}}p\]
\end_inset
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
In the case of
\begin_inset Formula $\SOthree$
\end_inset
the vector space is
\begin_inset Formula $\Rthree$
\end_inset
, and the group action corresponds to rotating a point
\begin_inset Formula \[
q=Rp\]
\end_inset
We would now like to know what an incremental rotation parameterized by
\begin_inset Formula $\omega$
\end_inset
would do:
\begin_inset Formula \[
q(\omega)=Re^{\Skew{\omega}}p\]
\end_inset
hence the derivative is:
\begin_inset Formula \[
\deriv{q(\omega)}{\omega}=R\deriv{}{\omega}\left(e^{\Skew{\omega}}p\right)=R\deriv{}{\omega}\left(\Skew{\omega}p\right)=RH_{p}\]
\end_inset
To calculate
\begin_inset Formula $H_{p}$
\end_inset
we make use of
\begin_inset Formula \[
\Skew{\omega}p=\omega\times p=-p\times\omega=\Skew{-p}\omega\]
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
3D Rigid Transformations
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $\SEthree$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(4)$
\end_inset
of
\begin_inset Formula $4\times4$
\end_inset
invertible matrices of the form
\begin_inset Formula \[
T\define\left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\]
\end_inset
where
\begin_inset Formula $R\in\SOthree$
\end_inset
is a rotation matrix and
\begin_inset Formula $t\in\Rthree$
\end_inset
is a translation vector.
An alternative way of writing down elements of
\begin_inset Formula $\SEthree$
\end_inset
is as the ordered pair
\begin_inset Formula $(R,\, t)$
\end_inset
, with composition defined as
\begin_inset Formula \[
(R_{1},\, t_{1})(R_{2},\, t_{2})=(R_{1}R_{2},\, R{}_{1}t_{2}+t_{1})\]
\end_inset
Its Lie algebra
\begin_inset Formula $\sethree$
\end_inset
is the vector space of
\begin_inset Formula $4\times4$
\end_inset
twists
\begin_inset Formula $\xihat$
\end_inset
parameterized by the
\emph on
twist coordinates
\emph default
\begin_inset Formula $\xi\in\Rsix$
\end_inset
, with the mapping
\begin_inset CommandInset citation
LatexCommand cite
key "Murray94book"
\end_inset
\begin_inset Formula \[
\xi\define\left[\begin{array}{c}
\omega\\
v\end{array}\right]\rightarrow\xihat\define\left[\begin{array}{cc}
\Skew{\omega} & v\\
0 & 0\end{array}\right]\]
\end_inset
Note we follow Frank Park's convention and reserve the first three components
for rotation, and the last three for translation.
Hence, with this parameterization, the generators for
\begin_inset Formula $\SEthree$
\end_inset
are
\begin_inset Formula \[
G^{1}=\left(\begin{array}{cccc}
0 & 0 & 0 & 0\\
0 & 0 & -1 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & 0\end{array}\right)\mbox{}G^{2}=\left(\begin{array}{cccc}
0 & 0 & 1 & 0\\
0 & 0 & 0 & 0\\
-1 & 0 & 0 & 0\\
0 & 0 & 0 & 0\end{array}\right)\mbox{ }G^{3}=\left(\begin{array}{cccc}
0 & -1 & 0 & 0\\
1 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\end{array}\right)\]
\end_inset
\begin_inset Formula \[
G^{4}=\left(\begin{array}{cccc}
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\end{array}\right)\mbox{}G^{5}=\left(\begin{array}{cccc}
0 & 0 & 0 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\end{array}\right)\mbox{ }G^{6}=\left(\begin{array}{cccc}
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\end{array}\right)\]
\end_inset
Applying the exponential map to a twist
\begin_inset Formula $\xi$
\end_inset
yields a screw motion yielding an element in
\begin_inset Formula $\SEthree$
\end_inset
:
\begin_inset Formula \[
T=\exp\xihat\]
\end_inset
A closed form solution for the exponential map is given in
\begin_inset CommandInset citation
LatexCommand cite
after "page 42"
key "Murray94book"
\end_inset
.
\end_layout
\begin_layout Standard
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula \[
\exp\left(\left[\begin{array}{c}
\omega\\
v\end{array}\right]t\right)=\left[\begin{array}{cc}
e^{\Skew{\omega}t} & (I-e^{\Skew{\omega}t})\left(\omega\times v\right)+\omega\omega^{T}vt\\
0 & 1\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Subsection
The Adjoint Map
\end_layout
\begin_layout Standard
The adjoint is
\begin_inset Formula \begin{eqnarray*}
\Ad T{\xihat} & = & T\xihat T^{-1}\\
& = & \left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
\Skew{\omega} & v\\
0 & 0\end{array}\right]\left[\begin{array}{cc}
R^{T} & -R^{T}t\\
0 & 1\end{array}\right]\\
& = & \left[\begin{array}{cc}
\Skew{R\omega} & -\Skew{R\omega}t+Rv\\
0 & 0\end{array}\right]\\
& = & \left[\begin{array}{cc}
\Skew{R\omega} & t\times R\omega+Rv\\
0 & 0\end{array}\right]\end{eqnarray*}
\end_inset
From this we can express the Adjoint map in terms of twist coordinates (see
also
\begin_inset CommandInset citation
LatexCommand cite
key "Murray94book"
\end_inset
and FP):
\begin_inset Formula \[
\left[\begin{array}{c}
\omega'\\
v'\end{array}\right]=\left[\begin{array}{cc}
R & 0\\
\Skew tR & R\end{array}\right]\left[\begin{array}{c}
\omega\\
v\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
The action of
\begin_inset Formula $\SEthree$
\end_inset
on 3D points is done by embedding the points in
\begin_inset Formula $\mathbb{R}^{4}$
\end_inset
by using homogeneous coordinates
\begin_inset Formula \[
\hat{q}=\left[\begin{array}{c}
q\\
1\end{array}\right]=\left[\begin{array}{cc}
R & t\\
0 & 1\end{array}\right]\left[\begin{array}{c}
p\\
1\end{array}\right]=T\hat{p}\]
\end_inset
We would now like to know what an incremental rotation parameterized by
\begin_inset Formula $\xi$
\end_inset
would do:
\begin_inset Formula \[
\hat{q}(\xi)=Te^{\xihat}\hat{p}\]
\end_inset
hence the derivative (following the exposition in Section
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Derivatives-of-Actions"
\end_inset
):
\begin_inset Formula \[
\deriv{\hat{q}(\xi)}{\xi}=T\deriv{}{\xi}\left(\xihat\hat{p}\right)=TH_{p}\]
\end_inset
where
\begin_inset Formula $\xihat\hat{p}$
\end_inset
corresponds to a velocity in
\begin_inset Formula $\mathbb{R}^{4}$
\end_inset
(in the local
\begin_inset Formula $T$
\end_inset
frame):
\begin_inset Formula \[
\xihat\hat{p}=\left[\begin{array}{cc}
\Skew{\omega} & v\\
0 & 0\end{array}\right]\left[\begin{array}{c}
p\\
1\end{array}\right]=\left[\begin{array}{c}
\omega\times p+v\\
0\end{array}\right]\]
\end_inset
Notice how velocities are anologous to points at infinity in projective
geometry: they correspond to free vectors indicating a direction and magnitude
of change.
\end_layout
\begin_layout Standard
By only taking the top three rows, we can write this as a velocity in
\begin_inset Formula $\Rthree$
\end_inset
, as the product of a
\begin_inset Formula $3\times6$
\end_inset
matrix
\begin_inset Formula $H_{p}$
\end_inset
that acts upon the exponential coordinates
\begin_inset Formula $\xi$
\end_inset
directly:
\begin_inset Formula \[
\omega\times p+v=-p\times\omega+v=\left[\begin{array}{cc}
-\Skew p & I_{3}\end{array}\right]\left[\begin{array}{c}
\omega\\
v\end{array}\right]=H_{p}\xi\]
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
2D Affine Transformations
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $Aff(2)$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(3)$
\end_inset
of
\begin_inset Formula $3\times3$
\end_inset
invertible matrices that maps the line infinity to itself, and hence preserves
paralellism.
The affine transformation matrices
\begin_inset Formula $A$
\end_inset
can be written as
\begin_inset CommandInset citation
LatexCommand cite
key "Mei08tro"
\end_inset
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula \[
\left[\begin{array}{ccc}
m_{11} & m_{12} & t_{1}\\
m_{21} & m_{22} & t_{2}\\
0 & 0 & k\end{array}\right]\]
\end_inset
with
\begin_inset Formula $M\in GL(2)$
\end_inset
,
\begin_inset Formula $t\in\Rtwo$
\end_inset
, and
\begin_inset Formula $k$
\end_inset
a scalar chosen such that
\begin_inset Formula $det(A)=1$
\end_inset
.
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
Note that just as
\begin_inset Formula $\SEtwo$
\end_inset
is a semi-direct product, so too is
\begin_inset Formula $Aff(2)=\Rtwo\rtimes GL(2)$
\end_inset
.
In particular, any affine transformation
\begin_inset Formula $A$
\end_inset
can be written as
\begin_inset Formula \[
A=\left[\begin{array}{cc}
0 & t\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
M & 0\\
0 & k\end{array}\right]\]
\end_inset
and they compose as
\begin_inset Formula \[
A_{1}A_{2}=\left[\begin{array}{cc}
M_{1} & t_{1}\\
0 & k_{1}\end{array}\right]\left[\begin{array}{cc}
M_{2} & t_{2}\\
0 & k_{2}\end{array}\right]=\left[\begin{array}{cc}
M_{1}M_{2} & M_{2}t_{2}+k_{2}t_{1}\\
0 & k_{1}k_{2}\end{array}\right]\]
\end_inset
From this it can be gleaned that the groups
\begin_inset Formula $\SOtwo$
\end_inset
and
\begin_inset Formula $\SEtwo$
\end_inset
are both subgroups, with
\begin_inset Formula $\SOtwo\subset\SEtwo\subset\Afftwo$
\end_inset
.
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
By choosing the generators carefully we maintain this subgroup hierarchy.
In particular,
\begin_inset Formula $\setwo$
\end_inset
\begin_inset Formula \[
G^{1}=\left[\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{2}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 1\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{3}=\left[\begin{array}{ccc}
0 & -1 & 0\\
1 & 0 & 0\\
0 & 0 & 0\end{array}\right]\]
\end_inset
can be extended to the
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
Lie algebra
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $\afftwo$
\end_inset
using the three additional generators
\begin_inset Formula \[
G^{4}=\left[\begin{array}{ccc}
0 & 1 & 0\\
1 & 0 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{5}=\left[\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{6}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1\end{array}\right]\]
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
Hence, the Lie algebra
\begin_inset Formula $\afftwo$
\end_inset
is the vector space of
\begin_inset Formula $3\times3$
\end_inset
incremental affine transformations
\begin_inset Formula $\ahat$
\end_inset
parameterized by 6 parameters
\begin_inset Formula $\aa\in\mathbb{R}^{6}$
\end_inset
, with the mapping
\begin_inset Formula \[
\aa\rightarrow\ahat\define\left[\begin{array}{ccc}
a_{5} & a_{4}-a_{3} & a_{1}\\
a_{4}+a_{3} & -a_{5}-a_{6} & a_{2}\\
0 & 0 & a_{6}\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Standard
Note that
\begin_inset Formula $G_{5}$
\end_inset
and
\begin_inset Formula $G_{6}$
\end_inset
change the relative scale of
\begin_inset Formula $x$
\end_inset
and
\begin_inset Formula $y$
\end_inset
but without changing the determinant:
\begin_inset Formula \[
e^{xG_{5}}=\exp\left(\left[\begin{array}{ccc}
x & 0 & 0\\
0 & -x & 0\\
0 & 0 & 0\end{array}\right]\right)=\left[\begin{array}{ccc}
e^{x} & 0 & 0\\
0 & 1/e^{x} & 0\\
0 & 0 & 1\end{array}\right]\]
\end_inset
\begin_inset Formula \[
e^{xG_{6}}=\exp\left(\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & -x & 0\\
0 & 0 & x\end{array}\right]\right)=\left[\begin{array}{ccc}
1 & 0 & 0\\
0 & 1/e^{x} & 0\\
0 & 0 & e^{x}\end{array}\right]\]
\end_inset
It might be nicer to have the correspondence with scaling
\begin_inset Formula $x$
\end_inset
and
\begin_inset Formula $y$
\end_inset
more direct, by choosing
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula \[
\mbox{ }G^{5}=\left[\begin{array}{ccc}
1 & 0 & 0\\
0 & 0 & 0\\
0 & 0 & -1\end{array}\right]\mbox{ }G^{6}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & -1\end{array}\right]\]
\end_inset
and hence
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
\begin_inset Formula \[
e^{xG_{5}}=\exp\left(\left[\begin{array}{ccc}
x & 0 & 0\\
0 & 0 & 0\\
0 & 0 & -x\end{array}\right]\right)=\left[\begin{array}{ccc}
e^{x} & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1/e^{x}\end{array}\right]\]
\end_inset
\begin_inset Formula \[
e^{xG_{6}}=\exp\left(\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & x & 0\\
0 & 0 & -x\end{array}\right]\right)=\left[\begin{array}{ccc}
1 & 0 & 0\\
0 & e^{x} & 0\\
0 & 0 & 1/e^{x}\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Section
2D Homographies
\end_layout
\begin_layout Standard
When viewed as operations on images, represented by 2D projective space
\begin_inset Formula $\mathcal{P}^{3}$
\end_inset
, 3D rotations are a special case of 2D homographies.
These are now treated, loosely based on the exposition in
\begin_inset CommandInset citation
LatexCommand cite
key "Mei06iros,Mei08tro"
\end_inset
.
\end_layout
\begin_layout Subsection
Basics
\end_layout
\begin_layout Standard
The Lie group
\begin_inset Formula $\SLthree$
\end_inset
is a subgroup of the general linear group
\begin_inset Formula $GL(3)$
\end_inset
of
\begin_inset Formula $3\times3$
\end_inset
invertible matrices with determinant
\begin_inset Formula $1$
\end_inset
.
The homographies generalize transformations of the 2D projective space,
and
\begin_inset Formula $\Afftwo\subset\SLthree$
\end_inset
.
\end_layout
\begin_layout Standard
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
We can extend
\begin_inset Formula $\afftwo$
\end_inset
to the Lie algebra
\begin_inset Formula $\slthree$
\end_inset
by adding two generators
\begin_inset Formula \[
G^{7}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 0\\
1 & 0 & 0\end{array}\right]\mbox{ }G^{8}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 0\\
0 & 1 & 0\end{array}\right]\]
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
obtaining the vector space of
\begin_inset Formula $3\times3$
\end_inset
incremental homographies
\begin_inset Formula $\hhat$
\end_inset
parameterized by 8 parameters
\begin_inset Formula $\hh\in\mathbb{R}^{8}$
\end_inset
, with the mapping
\begin_inset Formula \[
h\rightarrow\hhat\define\left[\begin{array}{ccc}
h_{5} & h_{4}-h_{3} & h_{1}\\
h_{4}+h_{3} & -h_{5}-h_{6} & h_{2}\\
h_{7} & h_{8} & h_{6}\end{array}\right]\]
\end_inset
\end_layout
\begin_layout Subsection
Tensor Notation
\end_layout
\begin_layout Itemize
A homography between 2D projective spaces
\begin_inset Formula $A$
\end_inset
and
\begin_inset Formula $B$
\end_inset
can be written in tensor notation
\begin_inset Formula $H_{A}^{B}$
\end_inset
\end_layout
\begin_layout Itemize
Applying a homography is then a tensor contraction
\begin_inset Formula $x^{B}=H_{A}^{B}x^{A}$
\end_inset
, mapping points in
\begin_inset Formula $A$
\end_inset
to points in
\begin_inset Formula $B$
\end_inset
.
\end_layout
\begin_layout Plain Layout
\begin_inset Note Note
status collapsed
\begin_layout Plain Layout
The inverse of a homography can be found by contracting with two permutation
tensors:
\begin_inset Formula \[
H_{B}^{A}=H_{A_{1}}^{B_{1}}H_{A_{2}}^{B_{2}}\epsilon_{B_{1}B_{2}B}\epsilon^{A_{1}A_{2}A}\]
\end_inset
\end_layout
\end_inset
\begin_inset Note Note
status collapsed
\begin_layout Subsection
The Adjoint Map
\end_layout
\begin_layout Plain Layout
The adjoint can be done using tensor notation.
Denoting an incremental homography in space
\begin_inset Formula $A$
\end_inset
as
\begin_inset Formula $\hhat_{A_{1}}^{A_{2}}$
\end_inset
, we have, for example for
\begin_inset Formula $G_{1}$
\end_inset
\begin_inset Formula \begin{eqnarray*}
\hhat_{B_{1}}^{B_{2}}=\Ad{H_{A}^{B}}{\hhat_{A_{1}}^{A_{2}}} & = & H_{A_{2}}^{B_{2}}\hhat_{A_{1}}^{A_{2}}H_{B_{1}}^{A_{1}}\\
& = & H_{A_{2}}^{B_{2}}\left[\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 0\\
0 & 0 & 0\end{array}\right]H_{A_{2}}^{B_{2}}H_{A_{3}}^{B_{3}}\epsilon_{B_{1}B_{2}B_{3}}\epsilon^{A_{1}A_{2}A_{3}}\\
& = & H_{1}^{B_{2}}H_{A_{2}}^{B_{2}}H_{A_{3}}^{B_{3}}\epsilon_{B_{1}B_{2}B_{3}}\epsilon^{3A_{2}A_{3}}\end{eqnarray*}
\end_inset
This does not seem to help.
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section*
Appendix: Proof of Property
\begin_inset CommandInset ref
LatexCommand ref
reference "proof1"
\end_inset
\end_layout
\begin_layout Standard
We can prove the following identity for rotation matrices
\begin_inset Formula $R$
\end_inset
,
\begin_inset Formula \begin{eqnarray}
R\Skew{\omega}R^{T} & = & R\Skew{\omega}\left[\begin{array}{ccc}
a_{1} & a_{2} & a_{3}\end{array}\right]\nonumber \\
& = & R\left[\begin{array}{ccc}
\omega\times a_{1} & \omega\times a_{2} & \omega\times a_{3}\end{array}\right]\nonumber \\
& = & \left[\begin{array}{ccc}
a_{1}(\omega\times a_{1}) & a_{1}(\omega\times a_{2}) & a_{1}(\omega\times a_{3})\\
a_{2}(\omega\times a_{1}) & a_{2}(\omega\times a_{2}) & a_{2}(\omega\times a_{3})\\
a_{3}(\omega\times a_{1}) & a_{3}(\omega\times a_{2}) & a_{3}(\omega\times a_{3})\end{array}\right]\nonumber \\
& = & \left[\begin{array}{ccc}
\omega(a_{1}\times a_{1}) & \omega(a_{2}\times a_{1}) & \omega(a_{3}\times a_{1})\\
\omega(a_{1}\times a_{2}) & \omega(a_{2}\times a_{2}) & \omega(a_{3}\times a_{2})\\
\omega(a_{1}\times a_{3}) & \omega(a_{2}\times a_{3}) & \omega(a_{3}\times a_{3})\end{array}\right]\nonumber \\
& = & \left[\begin{array}{ccc}
0 & -\omega a_{3} & \omega a_{2}\\
\omega a_{3} & 0 & -\omega a_{1}\\
-\omega a_{2} & \omega a_{1} & 0\end{array}\right]\nonumber \\
& = & \Skew{R\omega}\label{proof1}\end{eqnarray}
\end_inset
where
\begin_inset Formula $a_{1}$
\end_inset
,
\begin_inset Formula $a_{2}$
\end_inset
, and
\begin_inset Formula $a_{3}$
\end_inset
are the
\emph on
rows
\emph default
of
\begin_inset Formula $R$
\end_inset
.
Above we made use of the orthogonality of rotation matrices and the triple
product rule:
\begin_inset Formula \[
a(b\times c)=b(c\times a)=c(a\times b)\]
\end_inset
Similarly, without proof
\begin_inset CommandInset citation
LatexCommand cite
after "Lemma 2.3"
key "Murray94book"
\end_inset
:
\begin_inset Formula \[
R(a\times b)=Ra\times Rb\]
\end_inset
\end_layout
\begin_layout Section*
Appendix: Alternative Generators for
\begin_inset Formula $\slthree$
\end_inset
\end_layout
\begin_layout Standard
\begin_inset CommandInset citation
LatexCommand cite
key "Mei06iros"
\end_inset
uses the following generators for
\begin_inset Formula $\slthree$
\end_inset
:
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula \[
G^{1}=\left[\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{2}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 1\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{3}=\left[\begin{array}{ccc}
0 & 1 & 0\\
0 & 0 & 0\\
0 & 0 & 0\end{array}\right]\]
\end_inset
\begin_inset Formula \[
G^{4}=\left[\begin{array}{ccc}
0 & 0 & 0\\
1 & 0 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{5}=\left[\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 0\end{array}\right]\mbox{ }G^{6}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1\end{array}\right]\]
\end_inset
\begin_inset Formula \[
G^{7}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 0\\
1 & 0 & 0\end{array}\right]\mbox{ }G^{8}=\left[\begin{array}{ccc}
0 & 0 & 0\\
0 & 0 & 0\\
0 & 1 & 0\end{array}\right]\]
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
We choose to use a different linear combination as the basis.
\end_layout
\begin_layout Standard
\begin_inset CommandInset bibtex
LatexCommand bibtex
bibfiles "/Users/dellaert/papers/refs"
options "plain"
\end_inset
\end_layout
\end_body
\end_document