Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Quaternions are a useful tool for manipulating rotations in a lot of common applications. But that wasn't my point here. Also quaternions are hard to grasp by humans. I find axis-angle much more palatable in general.

Imaginary numbers can be represented with a 2x2 skew symmetric matrix with no stretch of the imagination at all. And 3x3 skew symmetric matrixes represent rotations most compactly with only 3 actual variables. Instead of 4 for quaternions, 9 for "classic rotation matrixes", or the need to tell which is the order of the angles if you're given 3 euler angles.

There are interesting applications of Lie Algebra on SO(3) [1], notably in computer vision where a global energy is minimized across two successive rgb-d "shots" in order to recover the infinitesimal rotation [2]. It's going to be easier to minimize energy on something that is most compactly defined, and always amounts to a valid rotation.

[1] https://en.wikipedia.org/wiki/Rotation_group_SO(3)#Lie_algeb... [2] https://vision.in.tum.de/_media/spezial/bib/kerl13icra.pdf



From what I understand that would be (sorta; I’m not an expert in Lie theory) the logarithm of a rotation. I find the stereographic projection to be a more useful way to compress an arbitrary rotation down to 3 dimensions, for most purposes.


Yes, precisely. exp() is the mapping from so(3) to SO(3), so you can use log to go the other way around.

Here is the relationship with the other representations [1]

Where it becomes interesting for our rigid-body transform application (or recovery of it, in the case of computer vision), is with Twist coordinates (6 element vector) which will map to a 4x4 Transform, again using the matrix exp() operator [2].

[1] https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representat... [2] https://en.wikipedia.org/wiki/Screw_theory#Twists_as_element...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: