Open ad1t7a opened 4 years ago
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)?
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.
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?
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. Cqdot 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).
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?