Hi all,
I am currently working on an jaw model. To start I am using a simple geometry and a simple movement. This is such that it would be easy to interpret the results. I both made a model with one joint and a model with two joints, by splitting the mandible in to parts and reconnecting them with a weld constraint. I added both models and movements in attachment. When I did the inverse dynamics, I found some odd results (also added in attachment):
As the movement is symmetric, I would expect that the moments in the model with 2 joints would also be symmetric, but this is not the case.
Also I expected that the sum of the moments in the model with 2 joints would be equal to the moment in the model with 1 joint, but this isn't the case either.
Lastly, as movement I applied a rotation around the z-axis, so I expected the moments around the x- and y-axis to be small, but they are of the same order of magnitude as the moment around the z-axis.
Does anyone has an idea where this results come from?
Thank you
Jaw model - Odd results
- Irina Wils
- Posts: 11
- Joined: Sun Jun 30, 2019 1:02 am
Jaw model - Odd results
- Attachments
-
- results.pdf
- (628.61 KiB) Downloaded 69 times
-
- IK_2.mot
- (8.69 KiB) Downloaded 60 times
-
- IK_1.mot
- (5.98 KiB) Downloaded 67 times
-
- Simple_skull_mandibula_obj_1joint_scaled.osim
- (18.45 KiB) Downloaded 72 times
-
- Simple_skull_mandibula_obj_2joints_scaled.osim
- (26.88 KiB) Downloaded 67 times
- Ton van den Bogert
- Posts: 166
- Joined: Thu Apr 27, 2006 11:37 am
Re: Jaw model - Odd results
This is probably because you overconstrained the kinematics of the model.
In the 1-joint model, you clearly have one degree of freedom (DOF): rotation in the 1 joint. (assuming the skull does not move).
In the 2-joint model, each joint has 1 DOF, and the weld joint removes 6 DOF, so you end up with -4 DOF. Fortunately, you created the model so the constraints do not conflict, and the jaw can still move, but any load analysis will no longer have a unique solution. Think about a table with 3 legs vs 4 legs. The 4-leg table is overconstrained, which does not affect the kinematics (as long as the legs are equal length), but there is no unique solution for the load distribution.
If a 3D mechanism has N links, of which one is fixed to ground, and J joints, each with F_i degrees of freedom (i = 1..J), the number of DOF, or mobility M, can be calculated with the Kutzbach formula:
M = 6*(N-1-J) + sum(F_i)
https://en.wikipedia.org/wiki/Chebychev ... _criterion
F_i is 0 for weld joints, 1 for revolute joints or slider joints, and 3 for spherical joints.
So, for the 1-joint model, N=2, J=1, F_1=1, so M = 1.
For the 2-joint model, N=3, J=3, F_1=0, F_2=1, F_3=1, so M = -4.
You could redesign the 2-joint model to give it exactly M=1. I would definitely suggest to make both TMJ joints into spherical joints (F=3). This is also in better agreement with the anatomical joints!
Then:
N=3, J=3, F=0,3,3, so M = 0. Still overconstrained because M is less than 1.
This is because the distance between the TMJ joints is constrained in two separate ways: in the skull and in the jaw. To add one DOF, you can allow one of the TMJ joints to have sliding along the combined TMJ axis, which would solve the problem, but you create an asymmetry and the horizontal joint reaction loads will not be calculated correctly (they will all go into the joint that does not slide). Better would be to change the weld joint into a 1-DOF joint, which allows no motion except sliding between the two halves of the jaw, along the TMJ axis.
So this is my recommendation:
Convert the revolute joints into spherical joints and convert the weld joint into a slider joint (sliding axis in the same direction as the line through both TMJ joints). Then you have 1 DOF and a load analysis with symmetric muscle forces and external loads will be the same as in the 1-joint model. The model will be more useful than the 1-joint model because asymmetric loading can now also be studied.
Now you have a model in which both joints can have horizontal joint reaction loads, but horizontal loads applied to the left side of the jaw will not be completely transferred to the right TMJ, because of the sliding joint between the two halves. This may or may not be important for your intended use of the model.
To eliminate that limitation, you would reinstate the weld joint and model the TMJ joints more realistically so they each have two additional sliding DOFs. Each joint would have 5 DOF, which could be modeled as point-surface contact. Penetration would be the only motion that is prevented inthe joint. Then you have 4 DOF in the system and the muscles will be responsible for preventing TMJ dislocation. You can also model the TMJ joint surface geometry (with a custom joint) to provide some stability against dislocation. Either way, you would have 4 DOF which would be quite realistic, allowing the jaw to slide in the AP and ML directions, and rotate in the transverse plane (as well as open and close).
Opensim feature request: there should be a warning when a model is overconstrained. Or rather, because you never know how many DOF the user wanted, when there are redundant constraints. Redundant constraints would be an indication that the user may not have a suitable model for load analysis. Redundant constraints are present when the Jacobian matrix of the constraint equations is rank deficient.
Recently there was another forum question with a similar issue: viewtopicPhpbb.php?f=91&t=11598
Ton van den Bogert
In the 1-joint model, you clearly have one degree of freedom (DOF): rotation in the 1 joint. (assuming the skull does not move).
In the 2-joint model, each joint has 1 DOF, and the weld joint removes 6 DOF, so you end up with -4 DOF. Fortunately, you created the model so the constraints do not conflict, and the jaw can still move, but any load analysis will no longer have a unique solution. Think about a table with 3 legs vs 4 legs. The 4-leg table is overconstrained, which does not affect the kinematics (as long as the legs are equal length), but there is no unique solution for the load distribution.
If a 3D mechanism has N links, of which one is fixed to ground, and J joints, each with F_i degrees of freedom (i = 1..J), the number of DOF, or mobility M, can be calculated with the Kutzbach formula:
M = 6*(N-1-J) + sum(F_i)
https://en.wikipedia.org/wiki/Chebychev ... _criterion
F_i is 0 for weld joints, 1 for revolute joints or slider joints, and 3 for spherical joints.
So, for the 1-joint model, N=2, J=1, F_1=1, so M = 1.
For the 2-joint model, N=3, J=3, F_1=0, F_2=1, F_3=1, so M = -4.
You could redesign the 2-joint model to give it exactly M=1. I would definitely suggest to make both TMJ joints into spherical joints (F=3). This is also in better agreement with the anatomical joints!
Then:
N=3, J=3, F=0,3,3, so M = 0. Still overconstrained because M is less than 1.
This is because the distance between the TMJ joints is constrained in two separate ways: in the skull and in the jaw. To add one DOF, you can allow one of the TMJ joints to have sliding along the combined TMJ axis, which would solve the problem, but you create an asymmetry and the horizontal joint reaction loads will not be calculated correctly (they will all go into the joint that does not slide). Better would be to change the weld joint into a 1-DOF joint, which allows no motion except sliding between the two halves of the jaw, along the TMJ axis.
So this is my recommendation:
Convert the revolute joints into spherical joints and convert the weld joint into a slider joint (sliding axis in the same direction as the line through both TMJ joints). Then you have 1 DOF and a load analysis with symmetric muscle forces and external loads will be the same as in the 1-joint model. The model will be more useful than the 1-joint model because asymmetric loading can now also be studied.
Now you have a model in which both joints can have horizontal joint reaction loads, but horizontal loads applied to the left side of the jaw will not be completely transferred to the right TMJ, because of the sliding joint between the two halves. This may or may not be important for your intended use of the model.
To eliminate that limitation, you would reinstate the weld joint and model the TMJ joints more realistically so they each have two additional sliding DOFs. Each joint would have 5 DOF, which could be modeled as point-surface contact. Penetration would be the only motion that is prevented inthe joint. Then you have 4 DOF in the system and the muscles will be responsible for preventing TMJ dislocation. You can also model the TMJ joint surface geometry (with a custom joint) to provide some stability against dislocation. Either way, you would have 4 DOF which would be quite realistic, allowing the jaw to slide in the AP and ML directions, and rotate in the transverse plane (as well as open and close).
Opensim feature request: there should be a warning when a model is overconstrained. Or rather, because you never know how many DOF the user wanted, when there are redundant constraints. Redundant constraints would be an indication that the user may not have a suitable model for load analysis. Redundant constraints are present when the Jacobian matrix of the constraint equations is rank deficient.
Recently there was another forum question with a similar issue: viewtopicPhpbb.php?f=91&t=11598
Ton van den Bogert
- Irina Wils
- Posts: 11
- Joined: Sun Jun 30, 2019 1:02 am
Re: Jaw model - Odd results
Thank you for your fast reply. I did gave both TMJs 6DOF as this is indeed closer to the anatomy and indeed a model with 1DOF gave problems. So if I am right then I get for the mobility:
For the model with one joint: 2 bodies and 1 joint with 6DOF
=> M = 6*(2-1-1) + 6 = 6
For the model with two joints: 3 bodies and 3 joints of which 2 with 6DOF and 1 with 0DOF
=> M = 6*(3-1-3) + 6+6+0 = 6
But in the .mot file I define the motion for all DOF from the joint. In the case of the 1 joint model this are 6 movements while there are 6DOF, but in the case of the 2 joint model this are than 12 movements, but there are only 6 DOF. Could this be the problem? And how do I fix it?
For the model with one joint: 2 bodies and 1 joint with 6DOF
=> M = 6*(2-1-1) + 6 = 6
For the model with two joints: 3 bodies and 3 joints of which 2 with 6DOF and 1 with 0DOF
=> M = 6*(3-1-3) + 6+6+0 = 6
But in the .mot file I define the motion for all DOF from the joint. In the case of the 1 joint model this are 6 movements while there are 6DOF, but in the case of the 2 joint model this are than 12 movements, but there are only 6 DOF. Could this be the problem? And how do I fix it?
- Ton van den Bogert
- Posts: 166
- Joined: Thu Apr 27, 2006 11:37 am
Re: Jaw model - Odd results
A 6DOF joint is not a joint, because it allows 6 DOF of motion between the two bodies.
In the 1-joint model, you don't need to make a change, it already works correctly, but the loads that are calculated are for the combination the two TM joints. They are combined into one joint.
In the 2-joint model, each TMJ joint should have 3 DOF (spherical joint).
And then you still need to add a DOF somewhere, and for that, I suggested to replace the weld joint (0 DOF) by a slider joint (1 DOF).
In the 1-joint model, you don't need to make a change, it already works correctly, but the loads that are calculated are for the combination the two TM joints. They are combined into one joint.
In the 2-joint model, each TMJ joint should have 3 DOF (spherical joint).
And then you still need to add a DOF somewhere, and for that, I suggested to replace the weld joint (0 DOF) by a slider joint (1 DOF).
- Irina Wils
- Posts: 11
- Joined: Sun Jun 30, 2019 1:02 am
Re: Jaw model - Odd results
Okay I will give that a try, but than the problem is that a real TMJ does have 6 DOF. Of course the translations are small, but they can not be neglected.
- Ton van den Bogert
- Posts: 166
- Joined: Thu Apr 27, 2006 11:37 am
Re: Jaw model - Odd results
If you look closely enough, all joint motions have 6 DOF. You could do simulations with 6 DOF joint models, but then you also need to add ligaments, surface-surface contact, and (for some joints) muscle control to prevent dislocation.
The whole point of joint models in Opensim is to eliminate those degrees of freedom that can be neglected. Then the modeling becomes a lot easier, you only need muscle forces and external forces.
What is an appropriate model depends on the research question. Your initial posting talked about joint moments and joint forces, so I assumed that this was what you needed. Those joint loads won't change when you model the joints in more detail than is necessary.
If you are interested in dislocation, or small translations in the joints, or ligament forces, then you may need a 6 DOF model.
The whole point of joint models in Opensim is to eliminate those degrees of freedom that can be neglected. Then the modeling becomes a lot easier, you only need muscle forces and external forces.
What is an appropriate model depends on the research question. Your initial posting talked about joint moments and joint forces, so I assumed that this was what you needed. Those joint loads won't change when you model the joints in more detail than is necessary.
If you are interested in dislocation, or small translations in the joints, or ligament forces, then you may need a 6 DOF model.
- Irina Wils
- Posts: 11
- Joined: Sun Jun 30, 2019 1:02 am
Re: Jaw model - Odd results
Okay thank you again for your reply. At the moment I am trying to make the model with spherical joints for the TMJ and a slider joint between the two parts of the mandible. The problem is that I can't define a joint between 2 bodies which are already child of the same parent body. So I guess I have to use a constraint there. The problem is here that there are only PointConstraints, WeldConstraints, and CoordinateCouplerConstraints and none of them have 1 degree of freedom...
Do you have an idea how to solve this problem?
Do you have an idea how to solve this problem?
- Irina Wils
- Posts: 11
- Joined: Sun Jun 30, 2019 1:02 am
Re: Jaw model - Odd results
Also, while I was trying to make the new model, I accidentally ended up with a model where the parts of the jaw could move separately. But I checked the results of the inverse dynamics anyway and they seemed quite similar to the ones of the model with the weld constraint. So then I decided to make 2 new models, one with only the left part of the jaw on only the left joint and one analog with the right part. You find pictures of the models in the slides in attachment.
As I applied a movement with a constant speed I would expect the sum of the moments to be zero, so M = r*G. You find the OpenSim results in the attachment too. For the moment around the z-axis this is okay for the model with the left part, but not for the one with the right part. For the moment around the y-axis this seems okay, but for the moment around the x-axis, it is what I expect at the start and end but not in between.
Do you have any idea why I get these results?
As I applied a movement with a constant speed I would expect the sum of the moments to be zero, so M = r*G. You find the OpenSim results in the attachment too. For the moment around the z-axis this is okay for the model with the left part, but not for the one with the right part. For the moment around the y-axis this seems okay, but for the moment around the x-axis, it is what I expect at the start and end but not in between.
Do you have any idea why I get these results?
- Attachments
-
- graphs 22_3.pdf
- (387.01 KiB) Downloaded 65 times