Re: [eigen] Eigen and rigid body simulation |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Eigen and rigid body simulation*From*: Mathieu Gautier <mathieu.gautier@xxxxxx>*Date*: Fri, 27 Nov 2009 14:51:55 +0100

* a rotation 3d is an element of the special orthogonal group SO(3) which is a Lie group. We choose to represent it with a quaternion.That I understood. Do you think that there is a fundamental reason why you specialize on quaternions? Just a question, I guess it depends on technical details. Because otherwise you could leverage our RotationBase infrastructure, which is quite nice, it exactly means "3D rotation" but allows different kinds of storage, at no cost (in pure Eigen style, everything is done at compile time).

* a displacement is an element of the special euclidian group SE(3) = SO(3) * R^3 (rotations and translations = direct isometries) which is also a Lie Group.Ok, that too I understood. In Eigen terms, that would be a pair (Translation, RotationBase). However so far you specialized on the case where the rotation is reprensented by a quaternion. So that would be a pair (Translation, Quaternion).

Indeed

* a Wrench is a member to the dual Lie aglebra se*(3) of se(3). * a Torque is a member of so*(3) dual of so(3).

Is there a canonical duality? Or does e.g. the natural dot product on R^3 give you at least a "usual" duality? If there is a reasonable "usual" duality then there's no need to implement a separate class for the dual, just implementing the bilinear form is enough. (Think of how we don't have a class for linear forms on R^n, the dual of R^n; instead we have the dot product function; so a linear form can just be represented by the vector that is dual to it in the usual dot product, and the dot product gives you the pairing between the vector space and its dual).

transpose(W)*T = p

But if there is a reason to add specify methods or operators there, then I understand that you want to keep them as separate classes

Or did you mean lowercase so3 and se3? Then yes I very much agree with your idea, except that "Element" is a bit clumsy, and we must find a way of putting "so" and "se" in lowercase. Not easy! Perhaps:

yes, se3 and so3.

Lie_so3 and Lie_se3 ?

It depends a lot on how it's going to be used. As I said, we rejected creating a Point class because it was going to be used exactly like a Vector. On the other hand we created a Translation class because for example it allows to do: Translation * SomeOtherVector or SomeOtherMatrix * Translation which is completely different semantics than a vector had. So you need to think about use cases.

OK, I'll think about it. -- Mathieu

**Follow-Ups**:**Re: [eigen] Eigen and rigid body simulation***From:*Benoit Jacob

**References**:**[eigen] Eigen and rigid body simulation***From:*Mathieu Gautier

**Re: [eigen] Eigen and rigid body simulation***From:*Christian Mayer

**Re: [eigen] Eigen and rigid body simulation***From:*Mathieu Gautier

**Re: [eigen] Eigen and rigid body simulation***From:*Thomas Capricelli

**Re: [eigen] Eigen and rigid body simulation***From:*Mathieu Gautier

**Re: [eigen] Eigen and rigid body simulation***From:*Benoit Jacob

**Re: [eigen] Eigen and rigid body simulation***From:*Benoit Jacob

**Re: [eigen] Eigen and rigid body simulation***From:*Mathieu Gautier

**Re: [eigen] Eigen and rigid body simulation***From:*Benoit Jacob

**Re: [eigen] Eigen and rigid body simulation***From:*Mathieu Gautier

**Re: [eigen] Eigen and rigid body simulation***From:*Benoit Jacob

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Eigen and rigid body simulation** - Next by Date:
**Re: [eigen] Eigen and rigid body simulation** - Previous by thread:
**Re: [eigen] Eigen and rigid body simulation** - Next by thread:
**Re: [eigen] Eigen and rigid body simulation**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |