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
Inverse dynamics
- Michael Sherman
- Posts: 807
- Joined: Fri Apr 01, 2005 6:05 pm
RE: Inverse dynamics
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
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
RE: Inverse dynamics
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
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
- Michael Sherman
- Posts: 807
- Joined: Fri Apr 01, 2005 6:05 pm
RE: Inverse dynamics
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
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