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

Yay skew symmetric matrixes.

It's also fun to introduce e as a matrix operator for 3d rotations.

It's useful for kinematics and having compact representations for axis angle notations. It's a little far in my head but at some point it felt like a ha-ha moment with the Euler identity, in the "2d version".



In the three-dimensional case, for any practical purpose, use quaternions. https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotati...

(At least if you’re ever needing to compose rotations; to apply a quaternion to a big array of 3-vectors, go ahead and convert it to a 3x3 matrix first, which should end up slightly more efficient.)

3x3 rotation matrices are really hard to keep normalized properly, whereas quaternions are trivial to normalize (just divide by the norm).

If you need to compress a unit quaternion down to 3 numbers, instead of taking the logarithm (which is computationally expensive and a pain to deal with) use the stereographic projection.


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: