[eigen] LGSM (Lie Group for Solid Mechanics) for Eigen |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
Hello,
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:
https://bitbucket.org/jsreng/eigen
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