Re: [eigen] Eigen and rigid body simulation

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


2009/11/27 Mathieu Gautier <mathieu.gautier@xxxxxx>:
>>> * 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).
>
> We use only quaternion for their efficiency, but in order to generalized, it
> would be better to use RotationBase with appropriate specialization.

OK.

Lie_so3 could be a template so it would have one specialization for
Quaternion, one for AngleAxis, etc...

in line with your colleague's idea, one could call it LieAlgebra<...>.

>
>>> * 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).
>
> I may not clearly understand what you mean by canonical or "usual". But, I'd
> say that's a "usual" duality. Generalized forces "wrench" are build from
> Twist and the notion of power :
>
> transpose(W)*T = p
>
> so this is a symmetric bilinear form, like the dot product in R^n. But it's
> interesting to have the distinction between Twist and Wrench from a
> mechanical point of view.
>
>> 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
>
> Actually, there's no specific methods for one or the other class, just the
> distinction is important.

OK, then OK for separate classes.

Benoit



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