Page 1 of 1

Inconsistent Inverse Dynamics Solutions

Posted: Sat Apr 16, 2016 12:35 pm
by f_laufer
Hi everyone,

I'm trying to reproduce some static optimization results for pointing movements using the recently updated dynamic upper limb model https://simtk.org/home/upexdyn/. The reference data consists of the IK, ID and SO solutions computed with a SIMM model quite similar to the mentioned OpenSim model and I use that IK solution (joint angles) as my starting point. I think, the SO solution computed with the OpenSim model should be at least qualitatively similar to the reference data. But when inspecting the inverse dynamics, even the shapes of the computed generalized forces / moments differ significantly from the reference ID solution.

This is what I did so far:
- Extract the IK joint angle data of all independent (free) model coordinates from the reference data in order to prescribe a specific motion.
- Compute the correpsonding complete IK solution (independent + dependent coordinates) using the OpenSim model.
- Compute the inverse dynamics based on the filtered complete IK solution (no external forces are given).

Unfortunately, only the moments of joints at the forearm are nearly similar to the reference ID solution while those of the shoulder are entirely different.
I noticed that the reference IK data contains three translational coordinates ik_DELT2pt2a_r_tx, ik_DELT2pt2a_r_ty, ik_DELT2pt2a_r_tz which I cannot definitely map to the coordinates of the OpenSim model and that the forces given in the reference ID solution associated with those three coordinates are zero for each frame. As I'm new to OpenSim, I wonder if I'm missing an important step, e.g. minimizing residual forces etc.?
I'd appreciate any suggestions!

Best regards
Felix

Re: Inconsistent Inverse Dynamics Solutions

Posted: Tue Apr 19, 2016 6:28 am
by f_laufer
I found this thread about unilateral dynamics: https://simtk.org/forums/viewtopic.php?f=91&t=4347.

So, the residuals at the thorax computed by ID are real in case of my partial model (right arm) and reflect the reaction loads of the unmodeled parts.
I wonder if it is possible and sensible to compare the inverse dynamics obtained with a full body model (SIMM full body model) with a solution computed with a partial model?

All in all, the situation is as follows:
- inverse kinematics, inverse dynamics and muscle activations computed with a full body SIMM model + EMG measurements for the respective pointing movements are given
- no external forces are given
- I use the partial upper limb model https://simtk.org/home/upexdyn/ and the given inverse dynamics as a starting point in order to qualitatively reproduce and compare the results
- initially, I tried to reproduce the inverse dynamics solution which turns out to be quite different to the reference solution
- some moments of my ID solution are obviously correlated with residual moments at the thorax, so, I guess I must somehow reduce those residuals in order to find true muscle activations in the end

Re: Inconsistent Inverse Dynamics Solutions

Posted: Tue May 17, 2016 10:17 am
by jimmy
HI Felix,

Are the two shoulder models (Simm and OpenSim) made with the same coordinate/joint definitions? Does the motion between the two look the same? It is common that frame definitions are not consistent between different models and so the model outputs will be different.

Also, are the mass properties the same between the two models?

Re: Inconsistent Inverse Dynamics Solutions

Posted: Wed May 18, 2016 6:58 am
by f_laufer
Hi James,

thank you for your remarks. Unfortunately, I have no access to the original SIMM model but only to some data collected using that model such as IK, ID, SO, end-effector positions (hand). So, I cannot compare the two models by myself and have to rely on the information that they should be similar regarding their coordinate definitions.
For me, it is only safe to say that...
- the number and names of (relevant) coordinates are identical in both models
- the models' basic coordinate systems are identical, gravity is acting in the correct direction
- the movements (given as IK joint angles) are within the coordinate / joint bounds of the OpenSim model
- I can reproduce the given end-effector trajectories with the OpenSim model.

I have no participant-specific information such as mass properties, so I'm currently using the unscaled OpenSim model. That is a major source of error for sure, but - assuming consistent coordinate / joint definitions - shouldn't the ID solutions be qualitatively similar (at least the curve shapes and magnitudes of the generalized forces)?

As I already mentioned, it strikes me that the moments of proximal joints are very different whereas distal joint moments are quite similar. I attached two screenshots comparing the reference ID solution and my solution using the OpenSim model. The first plot contains all moments. Reference ID results (top) vs. my ID results (bottom).
id_all_moments_.jpg
id_all_moments_.jpg (234.88 KiB) Viewed 1058 times
The second plot shows only the elbow flexion moments which are reasonably similar:
id_elbow_flexion_.jpg
id_elbow_flexion_.jpg (159.7 KiB) Viewed 1058 times

Re: Inconsistent Inverse Dynamics Solutions

Posted: Thu May 19, 2016 2:52 pm
by aseth
Either the inertia, constraints, or applied forces are different if you are using the same input kinematics. The distal joint moments would be similar if the distal inertia (outboard from the joint) are similar. The large proximal moments likely means ID has to account for large forces that are assisting (e.g. constraints) or not present in the SIMM model (large inertia due perhaps to a typo? or an external load). I suggest you contact the authors of the model and perhaps they can share the original SIMM model, otherwise you cannot get to the source of difference.

A potential difference between SIMM and OpenSim is how constraints are handled during ID. In OpenSim constraints are ignored during ID and the resultant generalized forces include the contributions of any constraints that were involved in producing the input motion. For example, if you have coordinate coupler constraints that transfer force from one coordinate to another (think of massless pullies and gears) then even though you maybe actuating only one joint the coupled motion of the joints will yield corresponding generalized forces in ID (in OpenSim). SIMM (SD/FAST) may account for the constraint torque and yield only the required input force(s) at one of the coordinates. The upexdyn model likely employs several coupler constraints to couple coordinates of the humerus and scapula (e.g. for the scapulohumeral rhythm). Given coordinates named "unrothum" (which seems to imply an anti rotation like coordinate) it is likely that these coordinates (an their forces) are meant to be "internal" to the mechanism and cancel each other out (e.g. seems curious that two coordinates yield identical moments in your plot). In SIMM , the results may reflect the effect of the constraint and is already discounted from what is required to "drive" the model.

Again, I suggest you contact the authors/owners of the https://simtk.org/home/upexdyn/ project since they extensively compared SIMM and OpenSim implementations of their model.