Dear Opensim users,
I’m trying to develop an animal musculo-skeletal model in Opensim. I am editing a *.osim file that is already written for a human musculoskeletal model and trying to adjust this file to my specific model. But I have encountered some problems and If you could please make comments on the following questions, I would greatly appreciate it.
1. What the “rotation 1” “rotation 2”, and “rotation 3” values” refer to in defining the axis of rotation angles? And, how can we determine those (X, Y, Z) values (or coordinates)? Please see the attached file including these codes.
2. I want the model’s joints to move in the sagittal plane, but they move in a plane between transverse and sagittal planes. I want to allow just flexion and extension movements in sagittal plane. How can we define constraints to restrict the occurrence of other types of rotations.
Thanks for your suggestions in advance.
Best regards,
Derya
Define the axis of rotation angles
- Derya Karabulut
- Posts: 6
- Joined: Fri Sep 20, 2013 2:10 am
- David John Saxby
- Posts: 83
- Joined: Mon May 09, 2011 8:39 pm
Re: Define the axis of rotation angles
Hi Derya,
1) Rotation 1, 2, 3 do not define the axes of rotation, they are a semantic for the rotation and indicate the rotation sequence. The tag within <transform axis> called <axis> lists axis for which the mobility is associated. If it is rotational then rotation about this axis, if translation then translation along the axis.
Looking at your file the first rotation is about an axis that has been rotated by some factor and is no longer represented by a basis with a conventional relationship to the parent frame, i.e not 0 0 1 or 0 1 0 , etc...
Did you do this? if not check the references to how the model was constructed.
2) If you want the mobility to be just sagital (check your convention) then rotation about z axis [0 0 1] is what you want. If you want to bound the mobility define a range in the <range> tag. You can delete or empty the other mobilities within the joint, or lock them.
David
1) Rotation 1, 2, 3 do not define the axes of rotation, they are a semantic for the rotation and indicate the rotation sequence. The tag within <transform axis> called <axis> lists axis for which the mobility is associated. If it is rotational then rotation about this axis, if translation then translation along the axis.
Looking at your file the first rotation is about an axis that has been rotated by some factor and is no longer represented by a basis with a conventional relationship to the parent frame, i.e not 0 0 1 or 0 1 0 , etc...
Did you do this? if not check the references to how the model was constructed.
2) If you want the mobility to be just sagital (check your convention) then rotation about z axis [0 0 1] is what you want. If you want to bound the mobility define a range in the <range> tag. You can delete or empty the other mobilities within the joint, or lock them.
David
- Derya Karabulut
- Posts: 6
- Joined: Fri Sep 20, 2013 2:10 am
Re: Define the axis of rotation angles
Dear David,
Thank you very much for your reply. That explains it nicely.
Best regards,
Derya
Thank you very much for your reply. That explains it nicely.
Best regards,
Derya
- Dominic Gehring
- Posts: 2
- Joined: Tue Jun 03, 2008 12:53 am
Re: Define the axis of rotation angles
Dear OpenSim users,
I just want to extend this already existing post as my question refers to the same topic of how to define the axis of rotation angles for custom joints.
I am currently struggling in defining the axis of transform.
Just as an example: Looking at the subtalar joint axis of the gait2354_simbody model or other comparable models this axis is defined as follows:
<TransformAxis name="rotation1">
<!--Names of the coordinates that serve as the independent variables … -->
coordinates>subtalar_angle_r</coordinates>
<!--Rotation or translation axis for the transform.-->
<axis>0.78717961 0.60474746 -0.12094949</axis>
According to the descriptions in Delp et al. (1990) this axis refers to the data of Isman & Inman (1969) and should therefore represent an axis with 23° of deviation and 41° of inclination.
My question is, how were these to deviation and inclination angles ‘converted’ in order to get the values <axis>0.78717961 0.60474746 -0.12094949</axis>, i.e., what do this axis definition exactly represent? I assume that this might reflect some kind of unit vector representation. Yet, I do not know if I am right and my first approaches in reproducing the axis within OpenSim with the inclination and deviation values given failed. Any suggestions are highly welcome.
Best regards,
Dominic
I just want to extend this already existing post as my question refers to the same topic of how to define the axis of rotation angles for custom joints.
I am currently struggling in defining the axis of transform.
Just as an example: Looking at the subtalar joint axis of the gait2354_simbody model or other comparable models this axis is defined as follows:
<TransformAxis name="rotation1">
<!--Names of the coordinates that serve as the independent variables … -->
coordinates>subtalar_angle_r</coordinates>
<!--Rotation or translation axis for the transform.-->
<axis>0.78717961 0.60474746 -0.12094949</axis>
According to the descriptions in Delp et al. (1990) this axis refers to the data of Isman & Inman (1969) and should therefore represent an axis with 23° of deviation and 41° of inclination.
My question is, how were these to deviation and inclination angles ‘converted’ in order to get the values <axis>0.78717961 0.60474746 -0.12094949</axis>, i.e., what do this axis definition exactly represent? I assume that this might reflect some kind of unit vector representation. Yet, I do not know if I am right and my first approaches in reproducing the axis within OpenSim with the inclination and deviation values given failed. Any suggestions are highly welcome.
Best regards,
Dominic
Re: Define the axis of rotation angles
Hi Dominic,
There is some confluence documentation that may be able to assist you. It describes the joint definitions and gives an example of the custom joint at the knee;
http://simtk-confluence.stanford.edu:80 ... els-Joints
Hope that helps,
-james
There is some confluence documentation that may be able to assist you. It describes the joint definitions and gives an example of the custom joint at the knee;
http://simtk-confluence.stanford.edu:80 ... els-Joints
Hope that helps,
-james
- Ton van den Bogert
- Posts: 167
- Joined: Thu Apr 27, 2006 11:37 am
Re: Define the axis of rotation angles
I also have noticed in the past that the axis of rotation in Delp's model does not seem to agree with Inman's numbers.
This same axis of rotation was already used in the original model that was made available by Scott Delp in 1996: http://isbweb.org/data/delp/.
Nevertheless, I use Delp's model because it is an "industry standard" and it seems to work well.
Delp et al. (1990) actually cites Inman (1976) which I don't have. It is a book and I always assumed it is consistent with Isman & Inman (1969) which has the values of 41 and 23 that you mention.
When I made my own model, I created the axis as follows. I interpret Inman's inclination as the angle between the axis and the horizontal plane, and deviation as the angle between horizontal projection of the axis and the long axis of the foot (as defined by Inman). Assume X is anterior, Y is up, and Z is lateral. Then the axis unit vector A would have the following cartesian components:
Ax = cos(41)*cos(-23) = 0.6947
Ay = sin(41) = 0.6561
Az = cos(41)*sin(-23) = -0.2949
The axis in Delp's model seems to have a lower inclination and a much lower deviation:
inclination = arcsin(0.60474746) = 37.2 degrees
deviation = arctan(-0.12094949/0.78717961) = -8.7 degrees
There is so much uncertainty and anatomical variation in this joint axis that this is probably still within the margin of error, but I do wonder (like you) how this model was derived from Inman's.
Our library does not have Inman's 1976 book, but it would be good to check whether the book has the same 41 and 23 deg angles from the 1969 paper.
The deviation value affects muscle function. With 23 deg deviation, the Achilles tendon will generate considerable supination moment. Because the Achilles tendon is the main ankle actuator, its activation during stance would create a lateral shift of the center of pressure that is coupled to the forward shift. With only 9 degrees deviation, that coupling would be much less strong.
Ton van den Bogert
This same axis of rotation was already used in the original model that was made available by Scott Delp in 1996: http://isbweb.org/data/delp/.
Nevertheless, I use Delp's model because it is an "industry standard" and it seems to work well.
Delp et al. (1990) actually cites Inman (1976) which I don't have. It is a book and I always assumed it is consistent with Isman & Inman (1969) which has the values of 41 and 23 that you mention.
When I made my own model, I created the axis as follows. I interpret Inman's inclination as the angle between the axis and the horizontal plane, and deviation as the angle between horizontal projection of the axis and the long axis of the foot (as defined by Inman). Assume X is anterior, Y is up, and Z is lateral. Then the axis unit vector A would have the following cartesian components:
Ax = cos(41)*cos(-23) = 0.6947
Ay = sin(41) = 0.6561
Az = cos(41)*sin(-23) = -0.2949
The axis in Delp's model seems to have a lower inclination and a much lower deviation:
inclination = arcsin(0.60474746) = 37.2 degrees
deviation = arctan(-0.12094949/0.78717961) = -8.7 degrees
There is so much uncertainty and anatomical variation in this joint axis that this is probably still within the margin of error, but I do wonder (like you) how this model was derived from Inman's.
Our library does not have Inman's 1976 book, but it would be good to check whether the book has the same 41 and 23 deg angles from the 1969 paper.
The deviation value affects muscle function. With 23 deg deviation, the Achilles tendon will generate considerable supination moment. Because the Achilles tendon is the main ankle actuator, its activation during stance would create a lateral shift of the center of pressure that is coupled to the forward shift. With only 9 degrees deviation, that coupling would be much less strong.
Ton van den Bogert
- Dominic Gehring
- Posts: 2
- Joined: Tue Jun 03, 2008 12:53 am
Re: Define the axis of rotation angles
Dear Ton van den Bogert, dear James,
Thank you very much for your suggestions. They help me a lot to solve my problem!
Indeed, I was struggling because I was confused about the the mismatch of the unit vector within the existing model and the anatomical inclination and deviation angles reported by Inman.
Just as a note: I just now had the chance to have a look into the book of Inman (1976). The angles reported there are (almost) the same as in the paper from 1969. The inclination angle ist reported as 42° (instead of 41°) and the deviation angle as 23°. Yet, this does not explain the difference with respect to the axis within the model as nicely illustrated by your calculations.
Best regards,
Dominic
Thank you very much for your suggestions. They help me a lot to solve my problem!
Indeed, I was struggling because I was confused about the the mismatch of the unit vector within the existing model and the anatomical inclination and deviation angles reported by Inman.
Just as a note: I just now had the chance to have a look into the book of Inman (1976). The angles reported there are (almost) the same as in the paper from 1969. The inclination angle ist reported as 42° (instead of 41°) and the deviation angle as 23°. Yet, this does not explain the difference with respect to the axis within the model as nicely illustrated by your calculations.
Best regards,
Dominic