Anatomical Reference Frames

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Rebecca Lathrop
Posts: 1
Joined: Sat Nov 17, 2007 1:40 pm

Anatomical Reference Frames

Post by Rebecca Lathrop » Thu Dec 02, 2010 9:34 am

I'm trying to understand how the anatomical reference frames in the generic models are defined. I know there are ways to adjust reference frames for bones in SIMM, but I don't see this information anywhere in the OpenSim. Using an xml reader I see the definition of joint reference frames in the osim file, but not reference frames for each body. Does each bone have an inherently defined coordinate system? Or can the reference frames be defined using experimental data such as a functional hip joint center and femoral epicondylar markers for the femur?

Also, I'm getting a little confused between reference frames for bodies and joint reference frames. I assume that when joint angles are calculated during inverse kinematics it is the angle between reference frames of two bodies (i.e. the femur and tibia RFs), but I'm not sure if that's correct.

Can anyone help clarify? Thanks!

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

RE: Anatomical Reference Frames

Post by Ayman Habib » Thu Dec 02, 2010 2:30 pm

Hi Rebecca,

A body has an assume geometric reference frame (you an see it by creating a marker at position 0,0,0 or using Body->Show Axes in GUI). Whenever coordinates are specified (e.g. for a marker or muscle point, or center of mass) they are wrt this geometric reference frame. Bone geometry has an associated coordinate frame built into it.

In the past these frames were coincident. In version 2.2, we added the ability to attach a transform to each piece of geometry so that the geometry of the bone file can be transformed wrt the body it lives on.

Joints are defined such that they align two coordinate frames one two different bodies (parent, child). Each of these two frames is specified wrt the geometric reference frame of the body they live on respectively, you can see these in the GUI in version 2.2 using the Joint->Show ParentFrame, Joint->ShowChildFrame.

Hope this helps and please let me know if you have any questions.

-Ayman

User avatar
Paulien Roos
Posts: 5
Joined: Thu Aug 12, 2010 3:02 am

RE: Anatomical Reference Frames

Post by Paulien Roos » Wed Dec 08, 2010 8:38 am

Hi Ayman,

Thank you, this is very useful information.

Could you tell us more about the anatomical reference frame of the ankle joint. The child frame appears to be the talus frame. It is however not clear how the parent frame is defined.
It would help us a lot if you could explain this.

Paulien and Gemma

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

RE: Anatomical Reference Frames

Post by Ayman Habib » Mon Dec 13, 2010 2:17 pm

Hi Paulien & Gemma,

In version 2.2 you should be able to use the GUI to:
1. Show Parent frame
2. Show Child frame
3. Move the slider corresponding to the joint of interest and see how the frames move relative to each other.
Even if coincident you should be able to see the two different frames overlaid since they are displayed with different radius/transparency.

For the specific model definitions I'd refer to the "Publications" section of the model file to find out where these reference frames were derived.

Good luck,
-Ayman

User avatar
Sylvia Wan
Posts: 18
Joined: Thu Oct 07, 2010 6:43 am

RE: Anatomical Reference Frames

Post by Sylvia Wan » Mon Mar 28, 2011 9:07 am

Hi,

I am interested in the flexion angle of the tibiofemural joint (TFJ). I would like to know how the centre of rotation is defined. Does it have an instantaneous centre of rotation, or a fixed one? Knee flexion angle generated from OpenSim is 10 degree higher constantly then my results from another modelling software. Therefore, I would like to know if the definition of centre of rotation is the cause of the difference.

So when the two coordinate frames are aligned to the tibia and femur’s geometric reference frame, the TFJ is defined. However when I attempt to show axes in the GUI, it was not clear to me how the coordinate frames are matched to the geometric reference frame. I am using version 2.0.2 so I cannot show the parent and child frame. Would it be possible that you explain further how the coordinate frames are matched to the parent and child geometric frames?
Thank you!!

Sylvia

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

RE: Anatomical Reference Frames

Post by Ayman Habib » Tue Mar 29, 2011 1:52 pm

Hi Sylvia,

When you show-axes for a body in the GUI it will show you the "geometric" reference frame. You can also add markers at position (0,0,0) of specific bodies to see their origins in the GUI.

The joint describes how/where the body is attached to its parent/child by specifying two frames in the corresponding bodies. These frames are with respect to the "geometric" reference frame. The joint is responsible for aligning two frames according to its type (e.g PinJoint allows only for rotation about one common axis etc.).

You may find the following schematic useful http://wiki.simtk.org/opensim/FrontPage ... Frames.jpg

Normally we do not define the Joints using experimental data (though it's possible) but we use the experimental data to "scale" a generic model so it fits experimental data better. (Please read the user guide chapter on scaling for more details).

When you solve inverse kinematics, it solves for coordinate values (these would normally be the joint angles between the frames defining the joints).

Hope this helps,
-Ayman

User avatar
Carlos Ramirez
Posts: 13
Joined: Mon Oct 22, 2012 12:10 pm

Re: Anatomical Reference Frames

Post by Carlos Ramirez » Tue Feb 11, 2014 10:16 am

Hello it has passed to much time but i see that i am having the same problem as Sylvia 10 degree (negative shifted) of differences between another modelling software and opensim models, i have used different opensim models and all have the same difference, does anybody know what i can try to fix it, what can i modify to correct this, any sugestion would be appreciated.
Carlos

POST REPLY