-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
End-Effector Velocity Computation: getLinkState() versus calculateJacobian() #2429
Comments
That is not clear, how big is the difference? |
Dear @erwincoumans , Thanks for your response. This is the runnable code snippet:
and the example print-outs are:
Do you know why ee_lin_vel and ee_lin_vel_via_jacobian is slightly different, while ee_ang_vel is identical to ee_ang_vel_via_jacobian ? Thanks! Best Regards, Giovanni |
Hello Giovianni, The method via Jacobian computes the link velocity at the joint, while the 'getLinkState' returns the velocity at the center of mass: lbr_iiwa_link_7 has an inertial frame at location xyz="0 0 0.02".
both linear and angular velocity will match:
Can we use your snippet as a PyBullet example? Also, for comparison, do you have a similar example using Pinocchio using the same URDF? |
Dear @erwincoumans , I see. That makes sense. Sure, you can use the snippet as a PyBullet example. Yes, actually I compared the result between PyBullet versus Pinocchio. I can work on a simple code snippet that compares between the two. Please give me a couple days for this, and I will post it here, once it is ready. Thanks! Best Regards, Giovanni Sutanto |
Dear @erwincoumans , Here's the code comparing PyBullet vs. Pinocchio:
and some of the print-outs are:
|
Thanks a lot for sharing your code, that is very useful. Also, I'm glad to see that PyBullet and Pinocchio agree on the results. If you have any further results of comparisons involving PyBullet and other simulators, please share it if you can. |
I tried running this example recently (without Pinocchio, since the pip install version lacks buildModelFromUrdf ), but I don't get the same results. How did you create the print output exactly? Can you still reproduce this with the latest PyBullet version? Do you have the (modified) URDF that you used? Here is my output (from the start)
|
Hi Erwin, I am using Pinocchio version 2.1.9 and PyBullet version 2.5.8, and it still produces the same result with the script I provided above. The model is:
For the pairs of q, qd, and qdd you asked:
|
Dear PyBullet Authors,
I am computing end-effector velocity using two methods, the first one is:
and the second one is:
I found out that: while ee_ang_vel and ee_ang_vel_via_jacobian are identical, the ee_lin_vel and ee_lin_vel_via_jacobian is slightly different. Why is this?
Best Regards,
Giovanni
The text was updated successfully, but these errors were encountered: