Hi, Anybody

I would like to modify the coefficient matrix in SRMatrixes.any.
Would you explain what each row and column means and let me know any references helpful according to it?



The SRMatrices.any file is linking the dof of freedom in the spine together into a linear rhythm, this is done by using the AnyKinLinearComb measure.

The implementation of the measure looks like this:

AnyKinEqSimpleDriver SpineRhythmDrv = {
AnyKinMeasureLinComb Measure = {
AnyJoint &u1 = …RefHM.Trunk.JointsLumbar.SacrumPelvisJnt;
AnyJoint &u2 = …RefHM.Trunk.JointsLumbar.L5SacrumJnt;
AnyJoint &u3 = …RefHM.Trunk.JointsLumbar.L4L5Jnt;
AnyJoint &u4 = …RefHM.Trunk.JointsLumbar.L3L4Jnt;
AnyJoint &u5 = …RefHM.Trunk.JointsLumbar.L2L3Jnt;
AnyJoint &u6 = …RefHM.Trunk.JointsLumbar.L1L2Jnt;
AnyJoint &u7 = …RefHM.Trunk.JointsLumbar.T12L1Jnt;
#include “SRMatrixes.any”
}; // Measure
DriverPos = {0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0};
DriverVel = {0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0};
Reaction.Type = {0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0};
}; //SpineRhythmDrv

The SRMatrices is a 21x18 matrix or (73)x(63). The collum’s (7*3) corresponds to the dof listed above namely all rotational dof in the spine.

Each of the rows adds one constraint to the kinematics so since there are 18 rows the spinerhythm adds 18 constraints.

Looking at the numbers in the SpineMatrices.any you will see that it is a an identity matrix with three collumns appended. The first row looks like this:

{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.105616e-002, 0, 0},

This row is multiplied by dof listed in the linear combination measure and this is is subsequently driven to zero. Then it means that it create the following ration between -1*SacrumPelvisJnt[0]+ 7.105616e-2=*T12L1Jnt[0] =0;

Each of the following rows add one more kinematic constraint alway relating the dof in the diagonal to one of the dof of the T12L1Jnt.

There are some more explanation available at this link (please be very patient it is a large file) have a look at slide 58 and forward

Please ask again if you have further questions.

Best regards

Thanks a lot soren. Is there any specific browser needed to see the slide? The site I was trying to see before but the slides were all broken. I am using firefox but it does not see the site properly.



Just tried with IE7 and Safari it worked with both for me, it might be because it runs an ActiveX component so this should be allowed, it is a powerpoint presentation.

Secondly the file is really large… so it may take some time before it appears in the browser.

Best regards

Thanks Søren,

Sorry, I think I figured out to change the curvature. I want to make sure one thing. I need to run the analysis every time after changing the script to see the full effect of it according to the postures, etc., right?


You have to run at least the SetInitialConditions operation to see the effect.


Thanks John,

Got another question. I would like to change the initial spinal curvature (lordosis) in the lumbar region fitting to my research purpose. When I change the value in DirverPos, it changes the position of the lower extremity also. I want other parts remains still changing a certain part.

It is not possible to have all other parts remain still when you change the lordosis. But you can have the thorax and thighs remain in the same position. The pelvis will have to change its angle unless you completely disable the lumbar rhythm.

There is a clever way to do what you want and it is already included in the SeatedHuman model in the repository. Look for ThoraxThighRhythm in JointsAndDrivers. It is an additional rhythm that automatically sets the relationship between hip joint angles and the lumbar spine angle. If you change the values in the Coef matrix of this rhythm you get different lordoses.


Thanks a lot, John. will go through that model.