RainerKuemmerle / g2o

g2o: A General Framework for Graph Optimization
3.06k stars 1.1k forks source link

Definition of the Exponential / Logarithmic maps of SE(2) #806

Open sadsimulation opened 3 months ago

sadsimulation commented 3 months ago

Looking at the code and the PDF documentation example, it seems the definition of the exponential map that goes from the tangent vector to the SE(2) element differs from that used in GTSAM and presented in [1].

g2o seems to use

$$ \mathcal{X} = \mathrm{Exp}\left(\mathbf{x}\right) = \mathrm{Exp}\left(\left(x, y, \theta\right)^T\right) = \begin{bmatrix} \cos \theta & -\sin \theta & x \ \sin \theta & \cos \theta & y \ 0 & 0 & 1 \end{bmatrix} \in \mathrm{SE}(2) $$

i.e. rotation and translation do not interact. It seems to me then, that the resulting tangent space is that of $\mathrm{T}(2) \times \mathrm{SO}(2)$ and not that of $\mathrm{SE}(2)$? Is my understanding correct? This is important to know for specifying the information matrices correctly, they depend on the definition of the exp/log maps.

[1] Sola, Joan, Jeremie Deray, and Dinesh Atchuthan. "A micro Lie theory for state estimation in robotics." arXiv preprint arXiv:1812.01537 (2018).

RainerKuemmerle commented 3 months ago

Yes, the above mapping is used in the provided types.