gtsam/doc/LieGroups.lyx

3234 lines
56 KiB
Plaintext
Raw Normal View History

2010-06-20 00:50:27 +08:00
#LyX 1.6.6.1 created this file. For more info see http://www.lyx.org/
2010-03-02 09:47:58 +08:00
\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
2010-03-04 14:34:45 +08:00
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
Derivatives
2010-03-02 09:47:58 +08:00
\end_layout
2010-03-04 14:34:45 +08:00
\end_inset
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\deriv}[2]{\frac{\partial#1}{\partial#2}}
{\frac{\partial#1}{\partial#2}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\at}[2]{#1\biggr\rvert_{#2}}
{#1\biggr\rvert_{#2}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\Jac}[3]{ \at{\deriv{#1}{#2}} {#3} }
{\at{\deriv{#1}{#2}}{#3}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
Lie Groups
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\xhat}{\hat{x}}
{\hat{x}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\yhat}{\hat{y}}
{\hat{y}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\Ad}[1]{Ad_{#1}}
{Ad_{#1}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
\begin_inset FormulaMacro
\newcommand{\AAdd}[1]{\mathbf{\mathop{Ad}}{}_{#1}}
{\mathbf{\mathop{Ad}}{}_{#1}}
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\define}{\stackrel{\Delta}{=}}
{\stackrel{\Delta}{=}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\gg}{\mathfrak{g}}
{\mathfrak{g}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\Rn}{\mathbb{R}^{n}}
{\mathbb{R}^{n}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
\begin_layout Plain Layout
2010-03-04 14:34:45 +08:00
SO(2), 1
2010-03-02 09:47:58 +08:00
\end_layout
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rtwo}{\mathfrak{\mathbb{R}^{2}}}
{\mathfrak{\mathbb{R}^{2}}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\SOtwo}{SO(2)}
{SO(2)}
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\sotwo}{\mathfrak{so(2)}}
{\mathfrak{so(2)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\that}{\hat{\theta}}
{\hat{\theta}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\skew}[1]{[#1]_{+}}
{[#1]_{+}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
SE(2), 3
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\SEtwo}{SE(2)}
{SE(2)}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\setwo}{\mathfrak{se(2)}}
{\mathfrak{se(2)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\Skew}[1]{[#1]_{\times}}
{[#1]_{\times}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Standard
\begin_inset Note Comment
status open
\begin_layout Plain Layout
SO(3), 3
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rthree}{\mathfrak{\mathbb{R}^{3}}}
{\mathfrak{\mathbb{R}^{3}}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\SOthree}{SO(3)}
{SO(3)}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\sothree}{\mathfrak{so(3)}}
{\mathfrak{so(3)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\what}{\hat{\omega}}
{\hat{\omega}}
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
\begin_layout Plain Layout
2010-03-04 14:34:45 +08:00
SE(3),6
2010-03-02 09:47:58 +08:00
\end_layout
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\Rsix}{\mathfrak{\mathbb{R}^{6}}}
{\mathfrak{\mathbb{R}^{6}}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\SEthree}{SE(3)}
{SE(3)}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\sethree}{\mathfrak{se(3)}}
{\mathfrak{se(3)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\xihat}{\hat{\xi}}
{\hat{\xi}}
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset Note Comment
status open
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
Aff(2),6
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\Afftwo}{Aff(2)}
{Aff(2)}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\afftwo}{\mathfrak{aff(2)}}
{\mathfrak{aff(2)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\aa}{a}
{a}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\ahat}{\hat{a}}
{\hat{a}}
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset Note Comment
2010-03-08 01:50:27 +08:00
status collapsed
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
SL(3),8
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\SLthree}{SL(3)}
{SL(3)}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\slthree}{\mathfrak{sl(3)}}
{\mathfrak{sl(3)}}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\hh}{h}
{h}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset FormulaMacro
\newcommand{\hhat}{\hat{h}}
{\hat{h}}
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
\begin_layout Section
2010-03-04 14:34:45 +08:00
Motivation: Rigid Motions in the Plane
2010-03-02 09:47:58 +08:00
\end_layout
2010-03-04 14:34:45 +08:00
\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)$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
When we give it a small forward velocity
\begin_inset Formula $v_{x}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, we know that the location changes as
\begin_inset Formula \[
\dot{x}=v_{x}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
The solution to this trivial differential equation is, with
\begin_inset Formula $x_{0}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
the initial
\begin_inset Formula $x$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-11 21:45:39 +08:00
-position of the robot,
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
x_{t}=x_{0}+v_{x}t\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
A similar story holds for translation in the
\begin_inset Formula $y$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
direction, and in fact for translations in general:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
(x_{t},\, y_{t},\,\theta_{t})=(x_{0}+v_{x}t,\, y_{0}+v_{y}t,\,\theta_{0})\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
Similarly for rotation we have
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
(x_{t},\, y_{t},\,\theta_{t})=(x_{0},\, y_{0},\,\theta_{0}+\omega t)\]
2010-03-04 14:34:45 +08:00
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
where
\begin_inset Formula $\omega$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is angular velocity, measured in
\begin_inset Formula $rad/s$
\end_inset
in counterclockwise direction.
2010-03-08 01:50:27 +08:00
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Standard
\begin_inset Float figure
placement h
wide false
sideways false
status collapsed
\begin_layout Plain Layout
2010-03-08 01:50:27 +08:00
\align center
\begin_inset Graphics
filename images/circular.pdf
\end_inset
2010-03-04 14:34:45 +08:00
\begin_inset Caption
\begin_layout Plain Layout
Robot moving along a circular trajectory.
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\end_inset
\end_layout
\begin_layout Standard
However, if we combine translation and rotation, the story breaks down!
We cannot write
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
(x_{t},\, y_{t},\,\theta_{t})=(x_{0}+v_{x}t,\, y_{0}+v_{y}t,\,\theta_{0}+\omega t)\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-08 01:50:27 +08:00
, we have (to first order)
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
(x_{\delta},\, y_{\delta},\,\theta_{\delta})=(x_{0}+v_{x}\delta,\, y_{0}+v_{y}\delta,\,\theta_{0}+\omega\delta)\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\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):
2010-03-02 09:47:58 +08:00
\end_layout
2010-03-04 14:34:45 +08:00
\begin_layout Quote
If rotation and translation commuted, we could do all rotations before leaving
home.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-11 21:45:39 +08:00
\begin_inset Float figure
placement h
wide false
sideways false
2010-06-20 00:50:27 +08:00
status open
2010-03-11 21:45:39 +08:00
\begin_layout Plain Layout
\align center
\begin_inset Graphics
2010-06-20 00:50:27 +08:00
filename images/n-steps.pdf
2010-03-11 21:45:39 +08:00
\end_inset
\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
2010-03-04 14:34:45 +08:00
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}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and
\begin_inset Formula $T_{2}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
as
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
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})\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
This is a bit clumsy, so we resort to a trick: embed the 2D poses in the
2010-06-25 03:35:56 +08:00
space of
2010-03-04 14:34:45 +08:00
\begin_inset Formula $3\times3$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
matrices, so we can define composition as matrix multiplication:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
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]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
where the matrices
\begin_inset Formula $R$
\end_inset
are 2D rotation matrices defined as
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
R=\left[\begin{array}{cc}
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-11 21:45:39 +08:00
Now a
2010-03-04 14:34:45 +08:00
\begin_inset Quotes eld
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
tiny
\begin_inset Quotes erd
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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}\\
2010-03-11 21:45:39 +08:00
0 & 0 & 0\end{array}\right]\]
2010-03-04 14:34:45 +08:00
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
Let us define the
\emph on
2D twist
\emph default
vector
\begin_inset Formula $\xi=(v,\omega)$
\end_inset
, and the matrix above as
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
\xihat\define\left[\begin{array}{ccc}
0 & -\omega & v_{x}\\
\omega & 0 & v_{y}\\
2010-03-11 21:45:39 +08:00
0 & 0 & 0\end{array}\right]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
If we wanted
\begin_inset Formula $t$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
to be large, we could split up
\begin_inset Formula $t$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
into smaller timesteps, say
\begin_inset Formula $n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
The result is shown in Figure
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:n-step-program"
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
\end_layout
\begin_layout Standard
Of course, the perfect solution would be obtained if we take
\begin_inset Formula $n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
to infinity:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
T(t)=\lim_{n\rightarrow\infty}\left(I+\frac{t}{n}\xihat\right)^{n}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
For real numbers, this series is familiar and is actually a way to compute
the exponential function:
\begin_inset Formula \[
2010-03-08 01:50:27 +08:00
e^{x}=\lim_{n\rightarrow\infty}\left(1+\frac{x}{n}\right)^{n}=\sum_{k=0}^{\infty}\frac{x^{k}}{k!}\]
2010-03-04 14:34:45 +08:00
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
The series can be similarly defined for square matrices, and the final result
2010-03-08 01:50:27 +08:00
is that we can write the motion of a robot along a circular trajectory,
resulting from the 2D twist
2010-03-04 14:34:45 +08:00
\begin_inset Formula $\xi=(v,\omega)$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_inset Formula $ $
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-11 21:45:39 +08:00
as the
\emph on
matrix exponential
\emph default
of
2010-03-04 14:34:45 +08:00
\begin_inset Formula $\xihat$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
T(t)=e^{t\xihat}\define\lim_{n\rightarrow\infty}\left(I+\frac{t}{n}\xihat\right)^{n}=\sum_{k=0}^{\infty}\frac{t^{k}}{k!}\xihat^{k}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
We call this mapping from 2D twists matrices
\begin_inset Formula $\xihat$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
to 2D rigid transformations the
\emph on
exponential map.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-08 01:50:27 +08:00
The above has all elements of Lie group theory.
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
.
2010-06-25 03:35:56 +08:00
It is called a Lie group because it is simultaneously a topological group
and a manifold, which implies that the multiplication and the inversion
operations are smooth.
2010-03-04 14:34:45 +08:00
The space of 2D twists, together with a special binary operation to be
defined below, is called the Lie algebra
\begin_inset Formula $\setwo$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset Newpage pagebreak
2010-03-02 09:47:58 +08:00
\end_inset
\end_layout
2010-03-04 14:34:45 +08:00
\begin_layout Section
Basic Lie Group Concepts
\end_layout
2010-03-02 09:47:58 +08:00
\begin_layout Subsection
2010-03-04 14:34:45 +08:00
A Manifold and a Group
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
A Lie group
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
is a a group and a manifold that possesses a smooth group operation.
2010-03-04 14:34:45 +08:00
Associated with it is a Lie Algebra
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
back to
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, called the exponential map
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
\exp:\gg\rightarrow G\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
logarithm
\begin_inset Quotes erd
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-11 21:45:39 +08:00
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
\log:G\rightarrow\gg\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
that maps elements in a neighborhood of
\begin_inset Formula $id$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
in G to an element in
\begin_inset Formula $\gg$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Subsection
2010-03-04 14:34:45 +08:00
Lie Algebra
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
The Lie Algebra
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is called an algebra because it is endowed with a binary operation, the
Lie bracket
\begin_inset Formula $[X,Y]$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, the properties of which are closely related to the group operation of
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
For example, in matrix Lie groups, the Lie bracket is given by
\begin_inset Formula $[A,B]\define AB-BA$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
2010-03-11 21:45:39 +08:00
\end_layout
\begin_layout Standard
The relationship of the Lie bracket to the group operation is as follows:
for commutative Lie groups vector addition
2010-03-04 14:34:45 +08:00
\begin_inset Formula $X+Y$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
in
\begin_inset Formula $\gg$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
mimicks the group operation.
For example, if we have
\begin_inset Formula $Z=X+Y$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
in
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, when mapped backed to
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
via the exponential map we obtain
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
e^{Z}=e^{X+Y}=e^{X}e^{Y}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
However, this does
\emph on
not
\emph default
hold for non-commutative Lie groups:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
Z=\log(e^{X}e^{Y})\neq X+Y\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
Instead,
\begin_inset Formula $Z$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
can be calculated using the Baker-Campbell-Hausdorff (BCH) formula
\begin_inset CommandInset citation
LatexCommand cite
key "Hall00book"
\end_inset
\begin_inset Note Note
2010-03-04 14:34:45 +08:00
status collapsed
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/BakerCampbellHausdorff_formula
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
Z=X+Y+[X,Y]/2+[X-Y,[X,Y]]/12-[Y,[X,[X,Y]]]/24+\ldots\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
For commutative groups the bracket is zero and we recover
\begin_inset Formula $Z=X+Y$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
For non-commutative groups we can use the BCH formula to approximate it.
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Subsection
Exponential Coordinates
\end_layout
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Standard
For
\begin_inset Formula $n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
-dimensional matrix Lie groups, as a vector space the Lie algebra
2010-03-04 14:34:45 +08:00
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is isomorphic to
\begin_inset Formula $\mathbb{R}^{n}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
, and we can define the hat operator
2010-03-04 14:34:45 +08:00
\begin_inset CommandInset citation
LatexCommand cite
after "page 41"
key "Murray94book"
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
,
\begin_inset Formula \[
\hat{}:x\in\mathbb{R}^{n}\rightarrow\xhat\in\gg\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
which maps
\begin_inset Formula $n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
-vectors
\begin_inset Formula $x\in\mathbb{R}^{n}$
\end_inset
to elements of
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
.
2010-03-04 14:34:45 +08:00
In the case of matrix Lie groups, the elements
\begin_inset Formula $\xhat$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
of
\begin_inset Formula $\gg$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
are
\begin_inset Formula $n\times n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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}
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
where the
\begin_inset Formula $G^{i}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
are
\begin_inset Formula $n\times n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
matrices known as Lie group generators.
2010-03-04 14:34:45 +08:00
The meaning of the map
\begin_inset Formula $x\rightarrow\xhat$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
will depend on the group
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and will generally have an intuitive interpretation.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Subsection
2010-06-25 03:35:56 +08:00
Tangent Spaces and the Tangent Bundle
\end_layout
\begin_layout Standard
The tangent space
\begin_inset Formula $T_{g}G$
\end_inset
at a group element
\begin_inset Formula $g\in G$
\end_inset
is the vector space of tangent vectors at
\begin_inset Formula $g$
\end_inset
.
The tangent bundle
\begin_inset Formula $TG$
\end_inset
is the set of all tangent vectors
\begin_inset Formula \[
TG\define\bigcup_{g\in G}T_{g}G\]
\end_inset
A vector field
\begin_inset Formula $X:G\rightarrow TG$
\end_inset
assigns to each element
\begin_inset Formula $g$
\end_inset
as single tangent vector
\begin_inset Formula $x\in T_{g}G$
\end_inset
.
\end_layout
\begin_layout Subsection
The Adjoint Map and Adjoint Representation
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-06-25 03:35:56 +08:00
\begin_inset Note Note
status open
\begin_layout Plain Layout
We do not fully understand this yet!!!
\end_layout
\end_inset
\end_layout
\begin_layout Standard
The
\emph on
adjoint map
\emph default
\begin_inset Formula $\AAdd g$
\end_inset
maps a group element
\begin_inset Formula $a\in G$
\end_inset
to its conjugate
\begin_inset Formula $gag^{-1}$
\end_inset
by
\begin_inset Formula $g$
\end_inset
.
\end_layout
\begin_layout Standard
Below we frequently make use of the equality
\begin_inset Note Note
2010-03-04 14:34:45 +08:00
status collapsed
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/Exponential_map
\end_layout
2010-03-02 09:47:58 +08:00
\end_inset
\begin_inset Formula \[
2010-06-25 03:35:56 +08:00
\AAdd ge^{\xhat}=ge^{\xhat}g^{-1}=e^{\Ad g{\xhat}}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
where
\begin_inset Formula $\Ad g:\gg\rightarrow\mathfrak{\gg}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is a map parameterized by a group element
\begin_inset Formula $g$
2010-03-02 09:47:58 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
, and is called the
\emph on
adjoint representation
\emph default
2010-03-02 09:47:58 +08:00
.
2010-06-25 03:35:56 +08:00
\begin_inset Note Note
status open
\begin_layout Plain Layout
The intuitive explanation is that a change
2010-03-04 14:34:45 +08:00
\begin_inset Formula $\exp\left(\xhat\right)$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
defined around the orgin, but applied at the group element
\begin_inset Formula $g$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, can be written in one step by taking the adjoint
\begin_inset Formula $\Ad g{\xhat}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
of
\begin_inset Formula $\xhat$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
2010-06-25 03:35:56 +08:00
\end_layout
\end_inset
\end_layout
\begin_layout Standard
In the case of a matrix group the adjoint can be written as
\begin_inset Note Note
2010-03-04 14:34:45 +08:00
status collapsed
\begin_layout Plain Layout
http://en.wikipedia.org/wiki/Adjoint_representation_of_a_Lie_group
2010-03-02 09:47:58 +08:00
\end_layout
\end_inset
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
\Ad T{\xhat}\define T\xhat T^{-1}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and hence we have
2010-03-02 09:47:58 +08:00
\end_layout
2010-03-04 14:34:45 +08:00
\begin_layout Standard
\begin_inset Formula \[
Te^{\xhat}T^{-1}=e^{T\xhat T^{-1}}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
where both
\begin_inset Formula $T\in G$
\end_inset
and
\begin_inset Formula $\xhat\in\gg$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
are
\begin_inset Formula $n\times n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
matrices for an
\begin_inset Formula $n$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
-dimensional Lie group.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Subsection
Actions
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
The (usual) action of an
\begin_inset Formula $n$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
-dimensional matrix group
\begin_inset Formula $G$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is matrix-vector multiplication on
\begin_inset Formula $\mathbb{R}^{n}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
,
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
q=Tp\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
with
\begin_inset Formula $p,q\in\mathbb{R}^{n}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and
\begin_inset Formula $T\in GL(n)$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Section
2010-03-04 14:34:45 +08:00
2D Rotations
\end_layout
\begin_layout Standard
We first look at a very simple group, the 2D rotations.
\end_layout
\begin_layout Subsection
Basics
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
The Lie group
2010-03-04 14:34:45 +08:00
\begin_inset Formula $\SOtwo$
2010-03-02 09:47:58 +08:00
\end_inset
is a subgroup of the general linear group
2010-03-04 14:34:45 +08:00
\begin_inset Formula $GL(2)$
2010-03-02 09:47:58 +08:00
\end_inset
of
2010-03-04 14:34:45 +08:00
\begin_inset Formula $2\times2$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
invertible matrices.
Its Lie algebra
\begin_inset Formula $\sotwo$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is the vector space of
\begin_inset Formula $2\times2$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
skew-symmetric matrices.
Since
\begin_inset Formula $\SOtwo$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is a one-dimensional manifold,
\begin_inset Formula $\sotwo$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is isomorphic to
\begin_inset Formula $\mathbb{R}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and we define
\begin_inset Formula \[
\hat{}:\mathbb{R}\rightarrow\sotwo\]
2010-03-02 09:47:58 +08:00
\end_inset
\begin_inset Formula \[
2010-03-08 01:50:27 +08:00
\hat{}:\omega\rightarrow\what=\skew{\omega}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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 \[
2010-03-08 01:50:27 +08:00
R=e^{\skew{\omega t}}=e^{\skew{\theta}}=\left[\begin{array}{cc}
2010-03-04 14:34:45 +08:00
\cos\theta & -\sin\theta\\
\sin\theta & \cos\theta\end{array}\right]\]
\end_inset
2010-03-08 01:50:27 +08:00
This can be proven
\begin_inset CommandInset citation
LatexCommand cite
key "Hall00book"
\end_inset
by realizing
\begin_inset Formula $\skew 1$
\end_inset
is diagonizable with eigenvalues
\begin_inset Formula $-i$
\end_inset
and
\begin_inset Formula $i$
\end_inset
2010-03-04 14:34:45 +08:00
2010-03-08 01:50:27 +08:00
, and eigenvectors
\begin_inset Formula $\left[\begin{array}{c}
1\\
i\end{array}\right]$
\end_inset
and
\begin_inset Formula $\left[\begin{array}{c}
i\\
1\end{array}\right]$
\end_inset
.
Readers familiar with projective geometry will recognize these as the circular
points when promoted to homogeneous coordinates.
2010-03-04 14:34:45 +08:00
\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
2010-06-25 03:35:56 +08:00
i.e.,
2010-03-04 14:34:45 +08:00
\begin_inset Formula \[
2010-06-25 03:35:56 +08:00
\Ad R\what=\what\]
2010-03-04 14:34:45 +08:00
\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 \[
2010-03-08 01:50:27 +08:00
q(\text{\omega t})=Re^{\skew{\omega t}}p\]
2010-03-04 14:34:45 +08:00
\end_inset
hence the derivative is:
\begin_inset Formula \[
2010-03-08 01:50:27 +08:00
\deriv{q(\omega t)}t=R\deriv{}t\left(e^{\skew{\omega t}}p\right)=R\deriv{}t\left(\skew{\omega t}p\right)=RH_{p}\]
2010-03-04 14:34:45 +08:00
\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\\
2010-03-11 21:45:39 +08:00
0 & 1\end{array}\right]\]
2010-03-04 14:34:45 +08:00
\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
\begin_inset Formula \[
e^{\what}=\cos\theta I+\what sin\theta+\omega\omega^{T}(1\text{}cos\theta)\]
\end_inset
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
2010-03-11 21:45:39 +08:00
reference "eq:property1"
2010-03-04 14:34:45 +08:00
\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 \[
2010-03-10 08:12:05 +08:00
\deriv{q(\omega)}{\omega}=R\deriv{}{\omega}\left(e^{\Skew{\omega}}p\right)=R\deriv{}{\omega}\left(\Skew{\omega}p\right)=R\Skew{-p}\]
2010-03-04 14:34:45 +08:00
\end_inset
2010-03-10 08:12:05 +08:00
To show the last equality note that
2010-03-04 14:34:45 +08:00
\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
2010-03-02 09:47:58 +08:00
for rotation, and the last three for translation.
Hence, with this parameterization, the generators for
\begin_inset Formula $\SEthree$
\end_inset
2010-03-04 14:34:45 +08:00
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\\
2010-06-25 03:35:56 +08:00
1\end{array}\right]=\left[\begin{array}{c}
Rp+t\\
2010-03-04 14:34:45 +08:00
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
2010-03-10 08:12:05 +08:00
hence the derivative is
2010-03-04 14:34:45 +08:00
\begin_inset Formula \[
2010-03-10 08:12:05 +08:00
\deriv{\hat{q}(\xi)}{\xi}=T\deriv{}{\xi}\left(\xihat\hat{p}\right)\]
2010-03-04 14:34:45 +08:00
\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\\
2010-03-10 08:12:05 +08:00
v\end{array}\right]\]
2010-03-04 14:34:45 +08:00
\end_inset
2010-06-25 03:35:56 +08:00
The inverse action
\begin_inset Formula $T^{-1}p$
\end_inset
is
\begin_inset Formula \[
\hat{q}=\left[\begin{array}{c}
q\\
1\end{array}\right]=\left[\begin{array}{c}
R^{T}(p-t)\\
1\end{array}\right]=\left[\begin{array}{cc}
R^{T} & -R^{T}t\\
0 & 1\end{array}\right]\left[\begin{array}{c}
p\\
1\end{array}\right]=T^{-1}\hat{p}\]
\end_inset
2010-03-04 14:34:45 +08:00
\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
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
\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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
, 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$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
can be written as
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
A=\left[\begin{array}{cc}
0 & t\\
0 & 1\end{array}\right]\left[\begin{array}{cc}
M & 0\\
0 & k\end{array}\right]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-11 21:45:39 +08:00
By choosing the generators carefully we maintain this hierarchy among the
associated Lie algebras.
2010-03-04 14:34:45 +08:00
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
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 \[
2010-03-11 21:45:39 +08:00
e^{xG_{5}}=\exp\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
x & 0 & 0\\
0 & -x & 0\\
2010-03-11 21:45:39 +08:00
0 & 0 & 0\end{array}\right]=\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
e^{x} & 0 & 0\\
0 & 1/e^{x} & 0\\
0 & 0 & 1\end{array}\right]\]
\end_inset
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
e^{xG_{6}}=\exp\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
0 & 0 & 0\\
0 & -x & 0\\
2010-03-11 21:45:39 +08:00
0 & 0 & x\end{array}\right]=\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
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 \[
2010-03-11 21:45:39 +08:00
e^{xG_{5}}=\exp\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
x & 0 & 0\\
0 & 0 & 0\\
2010-03-11 21:45:39 +08:00
0 & 0 & -x\end{array}\right]=\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
e^{x} & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1/e^{x}\end{array}\right]\]
\end_inset
\begin_inset Formula \[
2010-03-11 21:45:39 +08:00
e^{xG_{6}}=\exp\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
0 & 0 & 0\\
0 & x & 0\\
2010-03-11 21:45:39 +08:00
0 & 0 & -x\end{array}\right]=\left[\begin{array}{ccc}
2010-03-04 14:34:45 +08:00
1 & 0 & 0\\
0 & e^{x} & 0\\
0 & 0 & 1/e^{x}\end{array}\right]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\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}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, 3D rotations are a special case of 2D homographies.
These are now treated, loosely based on the exposition in
2010-03-02 09:47:58 +08:00
\begin_inset CommandInset citation
LatexCommand cite
2010-03-04 14:34:45 +08:00
key "Mei06iros,Mei08tro"
2010-03-02 09:47:58 +08:00
\end_inset
.
\end_layout
\begin_layout Subsection
2010-03-04 14:34:45 +08:00
Basics
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
The Lie group
\begin_inset Formula $\SLthree$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
is a subgroup of the general linear group
\begin_inset Formula $GL(3)$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
of
\begin_inset Formula $3\times3$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
invertible matrices with determinant
\begin_inset Formula $1$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
.
The homographies generalize transformations of the 2D projective space,
and
\begin_inset Formula $\Afftwo\subset\SLthree$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
We can extend
\begin_inset Formula $\afftwo$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
to the Lie algebra
\begin_inset Formula $\slthree$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
by adding two generators
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
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]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\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$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
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]\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Subsection
Tensor Notation
\end_layout
\begin_layout Itemize
A homography between 2D projective spaces
\begin_inset Formula $A$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
and
\begin_inset Formula $B$
\end_inset
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
can be written in tensor notation
\begin_inset Formula $H_{A}^{B}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\end_layout
\begin_layout Itemize
Applying a homography is then a tensor contraction
\begin_inset Formula $x^{B}=H_{A}^{B}x^{A}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, mapping points in
\begin_inset Formula $A$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
to points in
\begin_inset Formula $B$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
.
\end_layout
2010-03-08 01:50:27 +08:00
\begin_layout Standard
2010-03-04 14:34:45 +08:00
\begin_inset Note Note
status collapsed
\begin_layout Plain Layout
The inverse of a homography can be found by contracting with two permutation
tensors:
2010-03-02 09:47:58 +08:00
\begin_inset Formula \[
2010-03-04 14:34:45 +08:00
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}\]
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
2010-03-02 09:47:58 +08:00
\end_layout
\end_inset
2010-03-04 14:34:45 +08:00
\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$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
as
\begin_inset Formula $\hhat_{A_{1}}^{A_{2}}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
, we have, for example for
\begin_inset Formula $G_{1}$
2010-03-02 09:47:58 +08:00
\end_inset
2010-03-04 14:34:45 +08:00
\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
2010-03-02 09:47:58 +08:00
\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
2010-03-04 14:34:45 +08:00
reference "proof1"
2010-03-02 09:47:58 +08:00
\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 \\
2010-03-04 14:34:45 +08:00
& = & \Skew{R\omega}\label{proof1}\end{eqnarray}
2010-03-02 09:47:58 +08:00
\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
2010-03-04 14:34:45 +08:00
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
2010-03-02 09:47:58 +08:00
2010-03-04 14:34:45 +08:00
\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.
2010-03-02 09:47:58 +08:00
\end_layout
\begin_layout Standard
\begin_inset CommandInset bibtex
LatexCommand bibtex
2010-06-20 00:50:27 +08:00
bibfiles "../../../papers/refs"
2010-03-02 09:47:58 +08:00
options "plain"
\end_inset
\end_layout
\end_body
\end_document