Most efficient way to calculate end-effector wrench

Discussion in 'Support requests' started by Alireza Ranjbar, May 5, 2020.

1. Alireza Ranjbar

Hi,

I wanted to ask what might be the best way for calculating the external end-effector wrench in tool coordinate, and base coordinate.

A sample code snippet would be greatly appreciated. Thank you.

2. florianw

You could use a end-effector mounted force / torque sensor, i.e., the force / torque sensor that is already provided http://www.mujoco.org/book/XMLreference.html#sensor-force. That will give you the forces in your desired frame. You might have to compensate the mass that follows your measurement frame (e.g. the gripper mass) but that should be straight forward. J.J. Craig "Introduction to Robotics" Chapter 5 is a good reference for getting a coordinate transform of that force into base / world frame.

In addition to what Florian said, you can use the body Jacobians to convert between joint forces to end-effector forces. One conversion is straightforward, the other requires a pseudo-inverse.

If you want contact forces expressed in end-effector coordinates, they are computed at each step, and can be found in mjData.contact. Note that if you are using pyramidal friction cones, the contact forces are in an over-complete and non-orthogonal coordinate system, but you can decode them with the function mju_decodePyramid.

4. Alireza Ranjbar

1_In mujoco is there an advantage for using the body jacobians for getting the end-effector wrench compared to defining force/torque sensors at a desired site?
2_So my understanding is then that instead of transforming the wrench from the end-effector frame to base frame, we can also define another site for the end-effector's body but with it's frame defined similar to base frame's position and orientation, right?
3_Just wondering if there was any literature/documentation that you may suggest regarding if for contact rich manipulation using mjData.contact might be better than calculating end-effector wrench.

Thank you.