Inverse dynamics

SimTKcore exists as a separate project to provide 'one stop shopping' for SimTK Core software and support, although the software is actually developed as a set of interdependent projects. SimTK 1.0 was released in March 2008, SimTK 2.0 in December, 2009.
POST REPLY
User avatar
rob rein
Posts: 11
Joined: Thu May 29, 2008 6:13 am

Inverse dynamics

Post by rob rein » Wed Aug 05, 2009 6:54 am

Hello Guys,

I was reading up on the inverse dynamics thread and I was wondering whether any particular solution has already been implemented?
I'm interested in getting joint torques from an arm model. I have joint angle data(position,velocity,acceleration) and I would like to calculate the resulting joint torques.

Regards
Rob

User avatar
Michael Sherman
Posts: 806
Joined: Fri Apr 01, 2005 6:05 pm

RE: Inverse dynamics

Post by Michael Sherman » Wed Aug 05, 2009 9:31 am

Hi, Rob.

Simbody 1.6 has inverse dynamics built in. That is done and there is a source branch for it, but we haven't had time yet to build and post the binaries. If you can build from source, you can get it now.

Otherwise there are several alternatives you can use in Simbody 1.5. One is to use a Constraint to prescribe the motion you want, and then examine the resulting constraint multiplier. That would probably be the easiest method for now if you're not building from source.

Another alternative is to solve the problem numerically by applying a mobility torque and adjusting its value until you obtain the desired acceleration.

Best regards,
Sherm

User avatar
rob rein
Posts: 11
Joined: Thu May 29, 2008 6:13 am

RE: Inverse dynamics

Post by rob rein » Thu Aug 06, 2009 12:43 am

Hi Sherm,

Thanks very much. I'll get the new sources.
Anyway, thanks very much for your quick response. You guys are doing a great job which is much appreciated.

Regards
Rob

User avatar
Michael Sherman
Posts: 806
Joined: Fri Apr 01, 2005 6:05 pm

RE: Inverse dynamics

Post by Michael Sherman » Thu Aug 06, 2009 9:17 am

Thanks, Rob.

The available inverse dynamics routines in 1.6 are methods of SimbodyMatterSubsystem that provide related operations. The main one is succinctly named calcResidualForceIgnoringConstraints(). That lets you apply forces and accelerations and returns the additional mobility forces that would be required to produce those accelerations.

The other inverse dynamics routine is the low-level operator calcMV() which calculates the product of the mass matrix and a vector in O(n) time.

There is doxygen documentation for these (generated from the comments in the header file) but no "big picture" documentation so please post if you want more info.

Regards,
Sherm

POST REPLY