[eigen] LGSM (Lie Group for Solid Mechanics) for Eigen

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


We finally released the code we developed for Rigid Body Simulation. Mathieu Gautier has posted on the subject before (about a year ago).

We use this code internally (for robotic control and simulations), so we think it's quite reliable now but we may want to consider it as in beta stage (for instance, we would like to work on the internal plumbing without touching the exposed API). The code separates the Lie Group logic from the "mechanics usage convention", namely: Rotation3D, AngularVelocity, Torque, Displacement, Twist, Wrench

This code is contributed on the following bitbucket fork (against the 3.0 branch), in the "unsupported" dir:


We will add some documentation very shortly. Just as a quick example: integrating a 6D velocity (the bracket here is the Lie bracket corresponding to the adjoint transformation of a twist):

#include <Eigen/Lgsm>

Eigen::Twistd T = (T_prev + T)*dt/2 - T_prev.bracket(T)*dt*dt/8;
Eigen::Displacementd H = T.exp() * H_prev;
H_prev = H;

I will issue a pull request if you feel that this module can be integrated in the "unsupported" section of the Eigen library.

Jean Sreng

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