How Does InverseDynamics Calculate Torques if Velocity is 0?

3 views (last 30 days)
Hi,
Please explain, if I don't specify end-effector velocity, and I call inverseDynamics,
torques = inverseDynamics(Manipulator,config),
I get a joints' torque vector to hold the specified configuration mentioned. These are joint velocities, right? I am confused, if velocity is zero, how are the torques being generated? Which method/ equations are used here?
When I multiply the Jacobian with the torques gnerated above, I get the cartesian velocities, which are valid numbers, as I can verify J inverse X cartesian velocities will give me the correct torques generated. But my confusion is, how did we get the torques, and hence the velocities, if the velocities were zero to start with?
Thanks,

Answers (1)

Yiping Liu
Yiping Liu on 10 Mar 2021
As described in the doc page,
jointTorq = inverseDynamics(robot,configuration) computes joint torques to hold the specified robot configuration.
This means, if you don't provide the joint velocities and joint accelerations as input to ID, they are assumed to be zero vectors. The returned value is a vector of joint torque using which you can hold the robot still (compensating the gravity torque)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!