Hacker News new | ask | show | jobs
by mattivc 1917 days ago
Probably Lie Theory, or at least the small subset of it that is relevant for robotics.

It has taken me a long time and a lot of work to understand it to the level I have, and I still have a lot more to learn. But it is a fascinating subject and a very elegant way to represent some very complex optimization problems.

2 comments

How is Lie theory relevant to robotics and optimisation? I looked into Weyl groups a bit during my undergrad, but didn't really go into Lie theory in much depth.
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.

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.

Thanks. I didn't know about Lie Theory. https://en.wikipedia.org/wiki/Lie_theory