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: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 27 Nov 2009 08:58:26 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=+9aUvNZr3L47FwFkParO+rOO4lcg6DgqDQM3ZGBewvk=; b=PHuelQZS+nxZLEATT8SJj5WS3LjCh/YDv/j/w5CAkJ3v9H9VlIT4HGKrLLYx/C0EGe /vUIXppgtVkwhS21rqFASFMHnUG/nbEZfUzXwN2saWg6p/6kcUc1gICMwx93mzj80oD7 wDDXuMUQ8ZGCPOqde2GY5mTDlqmG7Igr6i7Xc=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=APZcBQppgsldAduDistp5Zvpc5CUKfSKnhQVgc6liR7QjV21AgPGsRFUr9dYuSu1nb XTHoiDMU1sI0A3mlU2JvM+5+zyYlwkYvjhhk8MJm4jhfDi8DSCpukBchbfBXzT7/9z1D EX+lzf47sCoolSoK7oRqXH9lw3cCLYoto4N9A=
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