-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement algorithm to compute the C Coriolis Matrix such that dotM = C + C^T #745
Comments
cc @singhbal-baljinder @robotology/iit-dynamic-interaction-control |
Apparently an algorithm similar to the one published in Numerical Methods to Compute the CoriolisMatrix and Christoffel Symbols for Rigid-BodySystems. was added in Pinocchio 3 years ago in stack-of-tasks/pinocchio@69cccea, but I am not sure if that one was implemented from some kind of written reference, perhaps @jcarpent has some reference for that. |
If you want, this feature is already implemented in Pinocchio: https://github.com/stack-of-tasks/pinocchio/blob/820d0f85fbabddce20924a6e0f781fb2be5029e9/src/algorithm/rnea.hpp#L152. |
Oh, amazing, we had the same thoughts. I don't have any reference, but I may write a technical note if you want. |
Thanks @jcarpent for the quick reply! Don't worry, I think the code is enough as a reference. Writing it down with proper notation may be a perfect exercise for some of our students. : ) |
Cool! |
I can try to tackle the problem, however I think I need a short meeting with @traversaro to better discuss the possible approaches |
Sure, let's schedule it when you prefer using the Teams' scheduling helper. |
FYI I finalized a pretty slow implementation of the Coriolis matrix (i.e. not implemented on the kinematic tree) in ami-iit/jaxsim#172. It's not useful for real-time computation (unless 500 µs for 20 DoFs is acceptable), but at least it can provide a ground truth in all three velocity representations (inertial-fixed, body-fixed, and mixed) if anyone is willing to explore/implement more efficient solutions. |
It is useful to compute the Coriolis matrix in a numerical efficient manner. Two initial references are :
For reference, the code to compute the mass matrix (for floating base systems, and using the left-trivialized base velocity) is:
idyntree/src/model/src/Dynamics.cpp
Line 149 in d5bbcea
The resulting matrix is then processed in
idyntree/src/high-level/src/KinDynComputations.cpp
Line 1816 in d5bbcea
This code basically implements the CRBA algorithm you can find in Featherstone RBDA book, but adapted for floating base systems.
The text was updated successfully, but these errors were encountered: