Hacker News new | ask | show | jobs
by mattivc 1919 days ago
Lie theory is, among other things, a very elegant way to parameterize an energy function involving rotations in 3D space. For example the translation and rotation of multiple camera frames that observe the same set of 3D points. This is the basis of how Visual Odometry, SLAM or 3D reconstruction problems are solved.

There are other cool things like representing a probability distribution over a 3D rotation with an multivariate gaussian vector interpreted as a so3 or se3 vector. Using this you can for implement a very elegant extended kalman filter estimating a 3D rotation. Which usually can be a tricky thing to do.

In robotics we pretty much only use the SO3, SE3 and SIM3 groups so my knowledge is limited to those groups.

2 comments

Thanks for the explanation.
What about quaternions?
The problem with quaternions for optimizations is that they are over-constrained. Meaning the norm of the 4 values must sum to 1 for it to be a valid 3D rotation. So you need to ether penalize a rotation with a norm different from 1 or constantly remap the quaternion back to a valid one in each iteration of the optimization. Neither solutions is very elegant.

A 3 valued so3 lie algebra vector is however always a valid 3D rotation, no matter what the values are. That makes it an ideal parameterization of the optimization problem.

The mapping from so3 lie algebra to SO3 lie group (which could be represented as a rotation matrix or quaternion) is a smooth differentiable function, which allows us to compute the jacobian we need for the gradient in the optimization.