Skip to content
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

Get coriolis matrix or transpose of coriolis and centrifugal * velocity #21

Open
ad1t7a opened this issue Sep 22, 2020 · 4 comments
Open

Comments

@ad1t7a
Copy link

ad1t7a commented Sep 22, 2020

Is it possible to get the coriolis matrix for a given model? I realize that there is no direct API call, but I wanted to calculate Ctranspose * qdot for my work. Is there a way to get this value?

@ad1t7a ad1t7a changed the title Get coriolis matrix value Get coriolis matrix Sep 22, 2020
@ad1t7a ad1t7a changed the title Get coriolis matrix Get coriolis matrix or transpose of coriolis and centrifugal * velocity Sep 22, 2020
@martinfelis
Copy link
Collaborator

Can you specify what do you mean by coriolis matrix? Do you maybe mean the vector returned by NonlinearEffects (q, qdot, f_ext) (https://rbdl.github.io/d6/d63/group__dynamics__group.html#ga1782fbfb223812259d73fec58deff94e)?

@thanhtam-h
Copy link

Martin, the NonlinearEffects term (N) in rbdl library can be expressed as: N = C(q,qdot)*qdot
What he meant is, how to get only C(q,qdot) separately. I think that he want to use it to estimate momentum of a robot manipulator for collision detection.

@chinahuangyong
Copy link

Martin, the NonlinearEffects term (N) in rbdl library can be expressed as: N = C(q,qdot)*qdot What he meant is, how to get only C(q,qdot) separately. I think that he want to use it to estimate momentum of a robot manipulator for collision detection.

i also meet this problem, solved it?

@DaegyuLim
Copy link

DaegyuLim commented Dec 21, 2022

One of the easiest ways to circumvent this problem is by using 'Mdotqdot - Cqdot' instead of 'Ctranspose * qdot' from the relationship 'Mdot = C + C^T'. Mdot can be obtained from simple numerical derivatives. C*qdot is equal to the NonlinearEffects API values - gravity vector. But this method produces some errors on Mdot especially when the velocity is fast. C matrix also can be obtained from the inertia matrix M using the Christoffel Symbol method. But this method costs a lot of computation if the DoF of the model is large (maybe O(N^3)). I'm trying to implement a recent work presented in this paper (https://arxiv.org/abs/2010.01033) which offers MATLAB code(https://github.com/ROAM-Lab-ND/spatial_v2_extended).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants