LaiArnold 2017 model high flexion- TransforAxis question

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Andrea Morelli
Posts: 89
Joined: Thu Jan 24, 2008 1:10 pm

LaiArnold 2017 model high flexion- TransforAxis question

Post by Andrea Morelli » Thu Feb 28, 2019 2:45 am

Good morning everybody!
I'm working on LaiArnold 2017 model that is suitable for high degree of knee flexion to add a 4DOF knee.
I see that the TransformAxis rotation doesn't respect a "classic" XYZ rotation, in fact knee flex-extension is coded in this manner (if I'm not wrong):

Code: Select all

								<TransformAxis name="rotation2">
									<!--Names of the coordinates that serve as the independent variables         of the transform function.-->
									<coordinates>knee_angle_r</coordinates>
									<!--Rotation or translation axis for the transform.-->
									<axis>1 0 0</axis>
									<!--Transform function of the generalized coordinates used to        represent the amount of transformation along a specified axis.-->
									<function>
										<SimmSpline>
											<x> 0 0.174533 0.349066 0.523599 0.698132 0.872665 1.0472 1.22173 1.39626 1.5708 1.74533 1.91986 2.0944</x>
											<y> 0 0.0126809 0.0226969 0.0296054 0.0332049 0.0335354 0.0308779 0.0257548 0.0189295 0.011407 0.00443314 -0.00050475 -0.0016782</y>
										</SimmSpline>
									</function>
								</TransformAxis>
In theory knee flex-extension should have been coded around Z axis.
Is this code defining joint "walker_knee_r" that is rotating the ref. axis ?
Why this type of code is used ?

Code: Select all

						<CustomJoint name="walker_knee_r">
							<!--Name of the parent body to which this joint connects its owner body.-->
							<parent_body>femur_r</parent_body>
							<!--Location of the joint in the parent body specified in the parent reference frame. Default is (0,0,0).-->
							<location_in_parent>-0.0045 -0.4096 -0.00175</location_in_parent>
							<!--Orientation of the joint in the parent body specified in the parent reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. Default is (0,0,0).-->
							<orientation_in_parent>-1.64156849 1.4461808 1.57079633</orientation_in_parent>
							<!--Location of the joint in the child body specified in the child reference frame. For SIMM models, this vector is always the zero vector (i.e., the body reference frame coincides with the joint). -->
							<location>-0.00808954 -0.0035348 -0.00148474</location>
							<!--Orientation of the joint in the owing body specified in the owning body reference frame.  Euler XYZ body-fixed rotation angles are used to express the orientation. -->
							<orientation>-1.64156849 1.4461808 1.57079633</orientation>
							<!--Set holding the generalized coordinates (q's) that parmeterize this joint.-->
							<CoordinateSet>
								<objects>
Thank you
Andrea

P.S.
I sent a PM to one of the authors under project page but no answer yet.

POST REPLY