Two bones, two joints

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Michala Cadova
Posts: 40
Joined: Tue Nov 23, 2010 3:45 am

Two bones, two joints

Post by Michala Cadova » Thu Jul 26, 2012 3:20 am

Hi,
I have a question concerning the temporomandibular joint – it is possible to get results for left and right joint separately? How do I define the joint?

So far, I did the .osim model from joint (.jnt) and muscle (.msl) files (for me it was easier to adjust than to work with any of the .osim files directly). In the joint file I have defined the temporomandibular joint (joint between the skull and the mandible) as:

beginjoint jawjnt /* name of the joint */
segments skull jaw
order t r3 r1 r2
axis1 1.000000 0.000000 0.000000
axis2 0.000000 1.000000 0.000000
axis3 0.000000 0.000000 1.000000
tx function f4(protrusion)
ty function f7 (depression)
tz function f5(laterotrusion)
r1 constant 0.000000
r2 constant 0.000000
r3 function f6(open_close)
/* f6 specifies the relation between open_close and the rotation around axis3 */
endjoint /* end of the jawjnt join definition */

/*********************************************/
/* GENCOORDS */
/*********************************************/
begingencoord open_close
range -30.000000 0.000000
endgencoord
begingencoord protrusion
range -0.0015000 0.007000
endgencoord
begingencoord laterotrusion
range -0.00900000 0.0090000
endgencoord
begingencoord depression
range -0.00500000 0.000000
endgencoord
/*********************************************/
/* KINEMATIC FUNCTIONS */
/*********************************************/
beginfunction f4 /* protrusion [m] - tx */
/* function (protrusion [m], tx [m]) */
/* what value of protrusion correspond to what tx displacement */
/* same as the GENCOORD */
(-0.0015000, -0.0015000)
( 0.007000, 0.007000)
endfunction
beginfunction f5 /* laterotrusion [m] - tz */
(-0.009000, -0.009000)
( 0.009000, 0.009000)
endfunction
beginfunction f6 /* opne_close [deg] - r3 */
(-30.000000, -30.000000)
( 0.000000, 0.000000)
endfunction
beginfunction f7 /* depression - ty [m] */
(-0.00500000, -0.00500000)
( 0.000000, 0.000000)

So like this it means, I guess, that there is kind of one joint between the two bony parts. So even if I get the reaction force in the joint, I cannot separate values for left and right, or can I?

Thanks for any comments

Michala

User avatar
Ayman Habib
Posts: 2248
Joined: Fri Apr 01, 2005 12:24 pm

Re: Two bones, two joints

Post by Ayman Habib » Thu Jul 26, 2012 2:07 pm

Hi Michala,

I don't think users on this forum are all familiar with SIMM or the jnt/msl files you sent. I'd appreciate if you can reformulate your question using OpenSim terms (Models, Joints, Bodies, Analyses) so that all users on the forum can benefit from the questions/answers.

The page below from the support site explains what the JointReaction analysis is capable of, so please let us know if you continue to have questions after reading it so that we can improve the documentation.


http://simtk-confluence.stanford.edu:80 ... s+Analysis

Best regards,
-Ayman

User avatar
Michala Cadova
Posts: 40
Joined: Tue Nov 23, 2010 3:45 am

Re: Two bones, two joints

Post by Michala Cadova » Mon Jul 30, 2012 7:43 am

The part of the .osim file where the “jaw joint” (TMJ) is defined is as follows:

<CustomJoint name="jawjnt">
<parent_body> skull </parent_body>
<location_in_parent> -0.03, 0.07, -0.046 </location_in_parent>
<orientation_in_parent> 0.0 0.0 0.00 </orientation_in_parent>
<location -0.03, 0.07, -0.046 </location>
<orientation> 0.00000000 0.00000000 0.00000000 </orientation>
<!--Generalized coordinates parameterizing this joint.-->
<CoordinateSet name="">
<objects>
<Coordinate name="open_close">
<!--Cooridnate can describe rotational, translational, or coupled values.
Defaults to rotational.-->
<motion_type> rotational </motion_type>
<default_value> 0.00000000 </default_value>
<default_speed_value> 0.00000000 </default_speed_value>
<initial_value> 0.00000000 </initial_value>
<range> -0.52359878 0.00000000 </range>
<clamped> true </clamped>
<locked> false </locked>
<prescribed_function/>
</Coordinate>
...
etc.

And what I found in one OpenSim tutorial is that between two bodies can be only one joint, is that right? The tutorial also mentions that if I want to make a close loop (which would be my case) I need to introduce some constraints. So this could be a possibility, but it will not solve my problem to compute the reaction forces in both TMJ (left and right), is that right?

Michala

User avatar
Michael Sherman
Posts: 807
Joined: Fri Apr 01, 2005 6:05 pm

Re: Two bones, two joints

Post by Michael Sherman » Mon Jul 30, 2012 9:50 am

Hi, Michala.

Probably the best way to do this is to split the jaw or skull body into two and use a weld constraint to put them back together. Then you can use identical pin joints for both sides of the jaw and obtain the reaction forces at those two joints.

Note though that when you just have one degree of freedom, the two pin joints are redundant so the distribution of reactions is underdetermined (for example, one joint carrying all the reaction and the other zero would still produce the same motion). OpenSim will find a least squares solution that best distributes the reactions across the two joints. If that's not a reasonable result for your purpose, you might have to consider putting additional degrees of freedom in the model, perhaps using bushing elements to allow some flexing.

Regards,
Sherm

User avatar
Michala Cadova
Posts: 40
Joined: Tue Nov 23, 2010 3:45 am

Re: Two bones, two joints

Post by Michala Cadova » Thu Aug 02, 2012 3:44 am

Thank you for the answer. I will try it. For now I have 4 DOF in each joint.

Michala

POST REPLY