Re: [eigen] Eigen and rigid body simulation |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
I was confused that you called these functions log() and exp()
yes, it's a little bit tricky because there's two different exponential function, and both have a mathematical definition.
1/ the exponential of quaternion generalize the exponential of complex number to quaternion. This exponential is actually useless for rigid body motion.
2/ the exponential of an element of the Lie algebra so(3) (Angular Velocity) return an element of the Lie group SO(3) which are in fact the rotation matrices. This exponential function is defined by the sum of 1/k! A^k with k in [0; infinity[ where A is in SO(3). This exponential links a rotation and the angular velocity.
The main problem is that we choose to represent a rotation with a quaternion. It's very usefull, but have some drawbacks. For example, adding two quaternions have no meanings when these quaternion represents rotation. That's why I introduce a Rotation3D to reflects this distinction. I don't know if it's better to have a class Quaternion to represents the classical quaternion and another class to represents 3D rotation with a link (inheritance, ownership) to this Quaternion class.
-- Mathieu
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |