Joint angular velocity computation method

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Nirav Maniar
Posts: 32
Joined: Tue May 12, 2015 11:03 pm

Joint angular velocity computation method

Post by Nirav Maniar » Wed Nov 01, 2023 8:44 pm

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

Tags:

User avatar
Thomas Uchida
Posts: 1789
Joined: Wed May 16, 2012 11:40 am

Re: Joint angular velocity computation method

Post by Thomas Uchida » Thu Nov 02, 2023 7:35 pm

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).

POST REPLY