Hi @Bjorn,
thanks for your reply and trying to help me.
Actually, I have already used the options you mentioned to control what I did with the drivers and the DOFs.
There is still one question I would like to understand.
Model: SpineFixationModelWithForceDK
Drivers.any
Can you please explain to me the comment that is highlighted in bold. Why have you commented out L5Sacrum?
Code:
...
#if BM_TRUNK_LUMBAR_RHYTHM == OFF
// the following section is used to control the order of the rotation axes
refJoints.T12L1Jnt.Orientation.Type = RotAxesAngles;
refJoints.L1L2Jnt.Orientation.Type = RotAxesAngles;
refJoints.L2L3Jnt.Orientation.Type = RotAxesAngles;
refJoints.L3L4Jnt.Orientation.Type = RotAxesAngles;
refJoints.L4L5Jnt.Orientation.Type = RotAxesAngles;
refJoints.L5SacrumJnt.Orientation.Type = RotAxesAngles;
// FORCE-DEPENDENT KINEMATIC DRIVER
// Force-dependent constraints allow the solver to find optimal positions for the degrees of freedom
// based on the current mechanical force configuration of the system (external and muscular forces).
// The following driver shows how the curvature of the lumbar spine is calculated:
// All degrees of freedom associated with the ball joints and CType = ForceDep can move freely and.
// find a local equilibrium of forces, but an initial estimate for all angles is given in the DriverPos variable
AnyKinEqSimpleDriver FDK_Measure =
{
// Initial estimate for all joint angles except the free angles to be used by the solver for force-dependent kinematics.
// The thorax-pelvis angles are distributed to all joint angles using the following weight vectors:
AnyVector FE = {0.2538951, 0.2318493, 0.1894594, 0.1468712, 0.1020785}.JntPos.PelvisThoraxExtension/180pi;
AnyVector LB = {0.2538951, 0.2318493, 0.1894594, 0.1468712, 0.1020785}.JntPos.PelvisThoraxLateralBending/180pi;
AnyVector AT = {0.2908131, 0.2403102, 0.1937058, 0.1427486, 0.0910942}.JntPos.PelvisThoraxRotation/180pi;
DriverPos = arrcat({ FE, AT, LB }');
DriverVel = {
0.0,0.0,0.0,
0.0,0.0,0.0,
0.0,0.0,0.0,
0.0,0.0,0.0,
0.0,0.0,0.0};
// Define joints that have a force-dependent behaviour
AnySphericalJoint &jntt12l1 = .refJoints.T12L1Jnt;
AnySphericalJoint &jnt12 = .refJoints.L1L2Jnt;
AnySphericalJoint &jnt23 = .refJoints.L2L3Jnt;
AnySphericalJoint &jnt34 = .refJoints.L3L4Jnt;
AnySphericalJoint &jnt45 = .refJoints.L4L5Jnt;
//AnySphericalJoint &jnt5sacrum = .refJoints.L5SacrumJnt; // this joint is annotated to avoid excessive restriction
// for the force-dependent degrees of freedom of the joint, the constraint type ForceDep must be set
// degrees of freedom of the joint
CType = {
ForceDep, ForceDep,ForceDep,
ForceDep, ForceDep,ForceDep,
ForceDep, ForceDep,ForceDep,
ForceDep, ForceDep,ForceDep,
ForceDep, ForceDep,ForceDep
//ForceDep, ForceDep,ForceDep // annotated connection
};
Reaction.Type = {
Off,Off,Off,
Off,Off,Off,
Off,Off,Off,
Off,Off,Off,
Off,Off,Off
//Off,Off,Off // commented connection
};
};
// negligible movement between sacrum and pelvis
AnyKinEqSimpleDriver SacrumPelvisDriver = {
AnySphericalJoint &Jnt = Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt;
DriverPos = pi/180*{0.0, 0.0, 0.0};
DriverVel = pi/180*{0.0, 0.0, 0.0};
Reaction.Type = {Off, Off, Off};
};
#endif
...
(As I said, in this post L5Sacrum joint in FDK the same question seems to be L5Sacrum joint in FDK, but I can't read the link in the reply).
Thank you very much in advance.
Kind regards,
Juliana