Page 1 of 1

Inverse Dynamics values seem wrong for elbow joint

Posted: Mon Oct 16, 2023 12:29 am
by fkiki18
Hi all,
I am using OpenSim inverse Dynamics tool to calculate moments around the joints. However, the value seem very weird at the elbow joint even for simple motion. I did a simple arm raising motion (generated clean data in Matlab), but the moment seem to be negative all the time (even when it should be just zero when there is no elevation angle). I am not adding external force here (even when I do, it doesn't make much difference).

My expectation is that the moment for the elbow should be positive when there is angle, and zero when there is not.
I also checked the masses of the arm parts, and the moment value from body weight seem higher than expected.

Do you know why this is happening?
opensim_torque.png
opensim_torque.png (426.08 KiB) Viewed 544 times
Another problem I have is that when I am adding real data and do Inverse Dynamics with and without external force, I see a noticeable shift in moment (I didn't such a shift when I generated the motion data in Matlab). The motion here is to raise the arm until ~90 degrees. The results are in the photo below.
I know that the data need more filtering and cleaning, but this shift doesn't make sense. It is also not a consistent shift throughout the graph.
real_data.png
real_data.png (178.6 KiB) Viewed 544 times
All your help is much appreciated,

Re: Inverse Dynamics values seem wrong for elbow joint

Posted: Fri Nov 17, 2023 4:44 pm
by ongcf
Difficult to tell from these images alone to know why the elbow flexion moment is opposite of what is expected. Perhaps some things to consider while debugging:
- Which model are you using? Are there any constraints that could be doing something unexpected?
- Given these coordinate values for the shoulder, is the elbow axis rotating exactly in the sagittal plane? You could view some of the joint and body axes to figure out which way it would bend (it's hard to tell from the pictures alone). It could also be helpful to hide the muscles while doing this step too, so you can better see the joint.
- It seems like you are using the GUI to perform ID (which should correctly ignore muscle forces), but in case you are using MATLAB, Python, or C++, you have to be careful to make sure that the muscles are ignored (or remove them from the model) to make sure that passive muscle forces aren't affecting your results.