Page 1 of 1

Joint angular velocity computation method

Posted: Wed Nov 01, 2023 8:44 pm
by kneerav
Hi all,

I am trying to find the specifics on how OpenSim's kinematics analysis tool computes joint angular velocity.

I've always assumed that this was achieve via fitting a GVC spline to the joint angle positions, then the spline is differentiated to get the joint angular velocity (and a simple test using the api seems to confirm this). However, I have peer reviewer arguing that differentiating joint angles to get joint angular velocities is not appropriate for 3D joint angle data. They have not been clear why, but my assumption that their argument is based on information like this:

https://c-motion.com/v3dwiki/index.php/ ... r_Velocity

It is a challenge to respond without confirming what OpenSim is actually doing in the back end. Can anyone provide some clarity? I've been unable to find a clear answer on the OpenSim documentation, doxygen, Github or SimTK forum.

Regards,
Nirav

Re: Joint angular velocity computation method

Posted: Thu Nov 02, 2023 7:35 pm
by tkuchida
Please see the InverseDynamicsTool::run() method, from line 332 (https://github.com/opensim-org/opensim- ... l.cpp#L332). The coordinates are low-pass filtered (line 346) using the cut-off frequency specified by the user (see the "Filter coordinates" box: https://simtk-confluence.stanford.edu:8 ... amics+Tool) and GCVSplines of degree 5 are then created (line 353).