Page 1 of 1

Cannot solve BodyKinematics if I replace one ball joint with free joint

Posted: Sun May 07, 2023 6:22 pm
by haolee
Hi all
I am trying to solve the position and velocity of each body in my model from the inverse kinematic data I got. While opensim can solve IK easily, if I use the IK results to run the Analyze tool to get BodyKinematics, it crashes.

After digging into the problem, I found if I just replace the "free joint" in my model with a "ball joint", I can get the Analyze tool's BodyKinematics output. Yet, it does not make sense to me. All I am trying to get is the kinematics, free joint or ball joint should not matter.

Am I missing anything?
The attached file is the model and IK result

Re: Cannot solve BodyKinematics if I replace one ball joint with free joint

Posted: Tue May 16, 2023 9:14 am
by bogert
Is it the "exo_back" joint that you changed from free to ball?

The type of joint can be very important if there are fewer than 3 markers on each body segment. In general, it is good to remove as many degrees of freedom as possible, to make the IK solution more robust against errors in marker data and soft tissue artifact.

I think the problem is that your "exo_pelvis" has no markers on it. So, it needs a connection to other bodies to help OpenSim solve the kinematics. In the model you posted, exo_pelvis has no markers and no joints to constrain it.

A ball joint between pelvis and exo_pelvis should not be sufficient, though. Two exo_hip joints would also be necessary, otherwise the rotation of exo_pelvis would be undefined. So I can't really explain that you were able to do IK with just one ball joint on the exo_pelvis and no markers.

Ton van den Bogert