Manbible model

Hi,
I am new to AnyBody. I am interested in the musculoskeletal model of the mandible (its movement, muscle forces, TMJ forces, etc.). I have the AnyBody 4.0.1.626, that means I have the Model Repository V1.0 (if I understand it right). In this repository I haven’t find the mandible model. Somewhere I have read that the mandible model is in Repository 7, that means, which version of Anybody do I need?

Thank you
Michala

[edit] I found the repository page on the Internet (http://forge.anyscript.org/gf/) and the mandible model as well. Sorry for the post, but it was not clear in the beginning that the repository is online and does not go only with the instalation.

Hi,
This is more a reaction on one old post
http://forum.anyscript.org/showthread.php?t=2147&highlight=mandible

I am aware of the fact that these posts are quite old. But anyway, I have a question – the model there was driven just by one point (movement of the mandible governed by the movement of the incisor point) – isn’t that to little? What about the rotations? Also the medio-lateral movement was set to zero. So in the end is the mandible rotating or not? Is the mandible model in the Repository 1.5 better (I don’t have yet the skills to explore the files)?

Michala

Hi Michala,

This is what I did. In my model of the human jaw I force the condyles of the TMJ to be in contact with the fossa. In this way I end up with a mandible with 4 DoF.

For driving the model I used one marker at the frontal incisors.
Moreover I drive the sideways movement of the condyle to be zero. In
this way I end up with kinematic determinant system.

It is best to use the newest repository. However, I do not think that in the mandible case, there is a big difference.

Greetings, Mark

Hi,
I was going through the model repository that goes with the AnyBody version 5.3.1, especially the mandible model under the folder AUHuman. But since I am quite new to AnyBody, I was not able to run this example. I was looking for a “Main” file, but there are just:
SymetricMandible.root.any
SymetricMandibleHill.root.any
VirtualDistractionMandible.root.any

and when I tried to run one of them, I got the following error:
C:/…/SymmetricMandible.root.any : ‘AnyFolder’ when ‘Main’ was expected

How can I run these models?

Thanks
Michala

HI Michala,

the files that you found are not full models, they are just what we call “body parts”.

The repository is divided into applications, with all the models and the body folder with all the parts to make a body for a model. If you look at the mandible model in Application/Validation/Mandible…
you’ll see in the Main file that these xxx.root.any files are included there to build the model.


Hi,
Thanks, this is what I was looking for.

Michala

Hi,
I now more or less understand the scaling technique in AnyBody, but what I am not getting yet is the scaling of the input trajectories of the markers. In the mandible example, the marker´s trajectory (lower incisor point) is loaded as:

AnyKinEqInterPolDriver ChewingMovement = {
AnyKinMeasure &ref = .LowerIncisorDistance;
Type = Bspline;
BsplineOrder = 4;
FileName = “ChewingRight.txt”;
Reaction.Type = {Off,Off,Off};
};

What happens when I scale the model? Let´s say, if I exaggerate it, the model is now twice as big, so the ratio between the model and the trajectory will be different. How should I use the scaling in this example?

Thanks
Michala

[LEFT][LEFT]Hi, [/LEFT][/LEFT]
[LEFT][LEFT]what exactly is the „reaction force“: Main.Model.HumanModel.Jnt.ReactionForceTMJ_R.Ft in the mandible model? What is its direction? And why, for the same movement, this result is different when I change the muscle physiological properties? [/LEFT][/LEFT]
[LEFT][LEFT] [/LEFT][/LEFT]
[LEFT][LEFT]Thanks for any comments[/LEFT][/LEFT]
[LEFT][LEFT]Michala[/LEFT][/LEFT]

Hi Michala,

If you open the file

Jnt.any file in the mandible model you will see a linear measure named
“TMJ_JntR”

Try to add the line inside the measure and you will see a cooridnate system
"
SkullRef ={[SIZE=3]AnyDrawRefFrame[/SIZE] drw={};};
"

If you look further down the jnt.ny file you will see that the reaction force you are looking for act on the z axis of the coordinate system visualized above.

The reason why you will see diff results on the reaction is that if you change the model paramters such as muscle attachment point muscle strength etc. is that the new confiration will choose to use the reaction force differently. The muscle recruitment algorithm will have get diff input paramters in terms of muscle moment arm, strength etc and this may all change the way it will use the reaction force. If all moment arms are much bigger the reaction force would drop. If one muscle with a big moment arm gets weaker it would require other muscles to take over the loads and if they have a smaller moment arm the reaction force would then increase.

Best regards
Søren

Hi,
Does anybody have an idea how I could define the temporomandibular joint, that could fulfill the attached movement of the condyles? The joints in the mandible model in the model repository are constraint to move between two planes, therefore the trajectory of the condyles in the sagittal plane is a line. However, what we have measured looks more an ellipse. Is there a way how I can model this movement?

So far I have tried the approach without the joint - that I have the kinematics and want the muscles to fulfill the movement. But it seems that at some point it just cannot cover the movement in all the DOFs. So I have to constraint the joint somehow. But how?

The difference between the reality and my model is the missing cartilaginous disc, which loaded/unloaded cause this “strange” movement pattern.

Michala

Hi,
I have a question concerning the definition (restrictions) of the condyles node movement on a plane (still the Mark de Zee’s mandible model from the repository). It was partially mentioned in an older post here http://forum.anyscript.org/showthread.php?t=2153&highlight=mandible. If I understand it right, the only part of the code that it supposed to govern the movement of the condyles on a plane is in the seg.any file: AngleY, AngleX, and subsequently TransY, TransX_R, TransX_L. The transformations (Trans) are then used to rotate the condyles’ nodes around the axis X and Y (mirrored for left and right condyle). And as I understand, in a newer AnyBody version the function RotMat could be used instead (only an easier way of writing down the transformation matrix).

However, I don’t see, how such a „plane“ transformation can keep the points‘ movement on a plane. I would expect some constraints „node on a plane“ as it was once demonstrated in an example (I don’t remember anymore where) - a plane was defined by three points, some of them can move, and the movement of one point was constrained to the plane. This I don’t see from Mark’s definition. What am I missing?

Thanks for any comment
Michala

Hi Michala,

The joints are defined in the Jnt.any file (found in the body part of the repository next to the Seg.any file). The remaining drivers and constraints are defined in the JointsAndDrivers file next to the main file.

Best regards
Michael Skipper Andersen
Associate Professor
The AnyBody Research Group

Hi Michael,
Thank you for your answer. However, it did not help me much. I went through the files even before and the problem is that the temporomandibular joint is kind of loose joint, by which I mean that there is none of the “classic” joints useful (rotation, spherical, etc.). If I did not miss anything, in the seg.any only the nodes for the condyles, incisor points and muscle attachments are defined (together with the transformations) on the skull and mandible.

And then in the Jnt.any the drivers for the “joint” are defined. So maybe here I don’t fully understand what is going on. Here, for the left and right joints the drivers and constraints are defined in the same way.

First AnyKinLinear TMJ_JntR (or TMJ_JntL) measures the translation (in 3D) between the TMJ_Node on the Skull and on the Mandible.

Than the AnyKinMeasureOrg TMJ_JntR_Z (TMJ_JntL_Z) just „picks“ the z-coordinate from the above mentioned kinematic measure (MeasureOrganizer={2}).

Finaly, the drive AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint (TMJ_JntL_Z_Constraint) constraints the movement in z-direction (DriverPos = {0.0};
DriverVel = {0.0}; Reaction.Type = {Off};).

Here, I am not really sure what the AnyGeneralMuscle does (control the force direction?)

AnyGeneralMuscle ReactionForceTMJ_R= {
AnyMuscleModel &ref=.ArtificialMuscle;
AnyKinMeasure &ref2=.TMJ_JntR_Z;
ForceDirection=-1;
};

So all this was actually only about the constraint in the z-direction. Here to be sure – the z-direction means up, right? In the beginning I thought that this is the mediolateral constraint of the joint, but now, at least after the visualization of the global coordinate system, it looks like the constraint in the vertical direction (and also from the results the movement of the condyle in y-direction is zero). But maybe here I did not fully get what the AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint is doing. The variables DriverPos = {0.0} and DriverVel = {0.0} do not mean that this is constantly zero, but these are the initial position and velocity (?).

Than in the file JointsAndDriversChewing.any the movement and constraints in the mediolateral direction are stated. Here the 3D movement of the incisor point in time is loaded. And the movement of the left TMJ is set to 0 (AnyKinMeasureOrg TMJ_JntL_Y, AnyKinEqSimpleDriver TMJ_JntL_Y_Driver).

So, to get back to my question – how those Z-constraints ensure, that the movement of the condyles is on a plane?

Thanks for your time
Michala

Hi Michala,

What is in the Jnt.any file are exactly the drivers (also constraint equations) that specify that the condyles are moving on a plane. The [FONT=&quot][COLOR=blue]AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint driver specifies that the z-component of the vector between the two points should be zero. The DriverPos={0.0}; and DriverVel=[/COLOR][/FONT][FONT=&quot][COLOR=black][FONT=&quot][COLOR=blue][FONT=&quot][COLOR=black]{0.0};[/COLOR][/FONT] do mean that the values should be constantly zero. Only case where this is not true is when the kinematic driver is specifed as force-dependent, but that is not used in this model.

Normally, active reactions related to kinematic constraints are bilateral. However, in this model, Mark de Zee wanted the reaction forces to be unilateral, representing the contact forces of the joints. That is why the reaction force of the kinematic constraint equations are switched off and instead replaced by a general muscle that only can provide a force in one direction.

The constraints in the JointsAndDrivers file specify the medial/lateral direction (which is just fixed at a given position) and the mouth opening.

I would recommend that go through the tutorial “The mechanical elements” for a better understanding of kinematic measures and drivers.

Best regards
Michael Skipper Andersen
Associate Professor
The AnyBody Research Group
[/COLOR][/FONT][/COLOR][/FONT]

So one more silly question. When I compare the TMJ_JntL_Y_Driver and TMJ_JntL_Z_Constraint they both are basically the same – AnyKinLinear (for the left joint). Then the difference is that for the TMJ_JntL_Y the MeasureOrganizer={1} and for TMJ_JntL_Z it is MeasureOrganizer={2} (makes sense). The AnyKinEqSimpleDriver for both is the same (calling the appropriate AnyKinMeasure): DriverPos = {0.0}; DriverVel = {0.0}; Reaction.Type = {Off}. So what still surprises me is that in the end the displacement/movement of the condyles in y (TMJ_JntL_Y_Driver) is zero, while z-displacement of the condyle changes (TMJ_JntL_Z_Constraint) in time. Or does the AnyGeneralMuscle applied on the TMJ_JntL_Z plays here a role?

Regards
Michala

Hi Michala,

When the kinematics is solved, both the y-component (due to the driver in the JointsAndDrivers file) and the z-component of the driver for each of the condyles (due to the drivers in the Jnt.any file) will be zero. I think what you have missed is in which reference frame these coordinates are expressed. If you look in the Jnt.any file then you will see that the linear measure for both condyles have Ref=0:

//The right TMJ
AnyKinLinear TMJ_JntR={
AnyRefNode &SkullRef = …Seg.Skull.TMJ_NodeR;
AnyRefNode &MandibleRef = …Seg.Mandible.TMJ_NodeR;
Ref=0;
};

This means that the vector between the two nodes is expressed in the first mentioned reference frame. In this case the Skull.TMJ_NodeR reference frame for the right side and the Skull.TMJ_NodeL for the left side. If you plot both reference frames of the TMJ on the mandible and on the skull, you will see that the right condyle remains in the x-y plane of the Skull.TMJ_NodeR reference frame. Similarly for the left condyle.

I hope this helps.

Best regards
Michael Skipper Andersen
Associate Professor
The AnyBody Research Group

Hi Michael,

Thank you for your comments. I finally see what is going on. Among others I also had problem to realize, that I am turning the “coordinate system” of the TMJ nodes and not the whole mandible. And after realizing this together with your note about the AnyKinLinear in the local coordinate system (Ref=0) it all make sense.

Thanks a lot.
Michala

Dear members,

I want to model the different reconstruction of mandible. So I need that for example by considering biting force on molar teeth, How I can get the muscle forces. Actually is there any posibility to get muscle forces by Anybody software?

Regards,

Dear members,

I want to model the different reconstruction of mandible. So I need that for example by considering biting force on molar teeth, How I can get the muscle forces. Actually is there any posibility to get muscle forces by Anybody software?

Regards,

The AnyBody Modeling System will compute the muscle activations and forces when you have the biting forces and the motion.

The basis model is in the repository.