117 lines (99 with data), 5.2 kB
//This is the calibration4 file, it will calibrate specific muscles on the leg
AnyFolder LegCal4={
AnyComponentDefinition obj = {};
AnyFolder &Pelvis = ...HumanFolderRef.Trunk.SegmentsLumbar.PelvisSeg;
AnyFolder &Sacrum = ...HumanFolderRef.Trunk.SegmentsLumbar.SacrumSeg;
AnyFolder &LegSegSide = .SideHumanFolderRef.Leg.Seg;
AnyFolder &LegJointsSide = .SideHumanFolderRef.Leg.Jnt;
AnyFolder &SacrumPelvisJnt = ...HumanFolderRef.Trunk.JointsLumbar.SacrumPelvisJnt;
AnyFolder &SacrumPelvisJnt = .SideHumanFolderRef.Leg.Jnt;
AnyFixedRefFrame ground = {
AnyRefNode node = {
ARel=..Pelvis.Axes0;
sRel=..Pelvis.r0;
};
};
AnyRevoluteJoint PelvisGround={
AnyRefFrame &Ground = .ground.node;
AnySeg &Sacrum= Main.HumanModel.Right.Leg.Seg.Pelvis;
Axis=z;
};
AnyKinEqSimpleDriver PelvisGroundRot = {
AnyRevoluteJoint &Jnt = .PelvisGround;
DriverPos = {0};
DriverVel = {0};
Reaction.Type = {Off};
};
AnyKinEqSimpleDriver PelvisSacrumFix = {
AnyKinMeasure& Jnt = .SacrumPelvisJnt;
DriverPos = {0,0,0};
DriverVel = {0,0,0};
Reaction.Type = {Off,Off,Off};
};
// AnyKinEqSimpleDriver JntDOFDriver = {
// AnyKinMeasure& Joint = ..SideHumanFolderRef.Leg.JntDOF;
// DriverPos = {2.15,0,-1.22,0,0,-1}; //10 degrees plantar flexion
//// DriverPos = {1.,0.0,0,0,0,-1};
// DriverVel = {0.0,0,0,0,0,0};
// Reaction.Type = {Off,Off,Off,Off,Off,Off};
// };//JntDOFDriver
AnyKinEqSimpleDriver Hip = {
AnySphericalJoint &Spherical = Main.HumanModel.Right.Leg.Jnt.HipRight;
MeasureOrganizer = {2,0,1}; // flexion/extension, abduction/adduction, internal/external rotation
DriverPos = {0,-5,0}*pi/180;
DriverVel = {0,0,0}*pi/180;
Reaction.Type = {Off,Off,Off};
};
AnyKinEqSimpleDriver Knee = {
AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.Knee;
DriverPos = {0*pi/180};
DriverVel = {0*pi/180};
Reaction.Type = {Off};
};
AnyKinEqSimpleDriver Ankle = {
AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.Ankle;
DriverPos = {0*pi/180}; // 10 degrees plantar flexion
DriverVel = {0*pi/180};
Reaction.Type = {Off};
};
AnyKinEqSimpleDriver SubTalar = {
AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.SubTalar;
DriverPos = {0*pi/180};
DriverVel = {0*pi/180};
Reaction.Type = {Off};
};
// Calibration4 calibrates the following muscles of the lower leg:
// rectus femoris
AnyFolder &MuscleParCal4 =.SideHumanFolderRef.Leg.MuscleModels;
AnyFolder Mus = {
AnyMuscleViaPoint &GluteusMinimusAnterior1 = ..SideHumanFolderRef.Leg.Mus.GluteusMinimusAnterior1;
AnyMuscleViaPoint &GluteusMinimusMid1 = ..SideHumanFolderRef.Leg.Mus.GluteusMinimusMid1;
AnyMuscleViaPoint &GluteusMinimusPosterior1 = ..SideHumanFolderRef.Leg.Mus.GluteusMinimusPosterior1;
AnyMuscleViaPoint &GluteusMediusAnterior1 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior1;
AnyMuscleViaPoint &GluteusMediusAnterior2 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior2;
AnyMuscleViaPoint &GluteusMediusAnterior3 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior3;
AnyMuscleViaPoint &GluteusMediusAnterior4 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior4;
AnyMuscleViaPoint &GluteusMediusAnterior5 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior5;
AnyMuscleViaPoint &GluteusMediusAnterior6 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior6;
AnyMuscleViaPoint &GluteusMediusPosterior1 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior1;
AnyMuscleViaPoint &GluteusMediusPosterior2 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior2;
AnyMuscleViaPoint &GluteusMediusPosterior3 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior3;
AnyMuscleViaPoint &GluteusMediusPosterior4 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior4;
AnyMuscleViaPoint &GluteusMediusPosterior5 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior5;
AnyMuscleViaPoint &GluteusMediusPosterior6 = ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior6;
//Muscle main function: Plantar flexion, different angle w.r.t. LegCal2 due to larger pennation angle
// AnyMuscleViaPoint &SoleusMedialis1 = ..SideHumanFolderRef.Leg.Mus.SoleusMedialis1;
// AnyMuscleViaPoint &SoleusMedialis2 = ..SideHumanFolderRef.Leg.Mus.SoleusMedialis2;
// AnyMuscleViaPoint &SoleusMedialis3 = ..SideHumanFolderRef.Leg.Mus.SoleusMedialis3;
// AnyMuscleViaPoint &SoleusLateralis1 = ..SideHumanFolderRef.Leg.Mus.SoleusLateralis1;
// AnyMuscleViaPoint &SoleusLateralis2 = ..SideHumanFolderRef.Leg.Mus.SoleusLateralis2;
// AnyMuscleViaPoint &SoleusLateralis3 = ..SideHumanFolderRef.Leg.Mus.SoleusLateralis3;
};
};
// The study: Operations to be performed on the model
AnyBodyCalibrationStudy LegCalibrationStudy4 = {
AnyFolder &ref=.LegCal4;
nStep = 1;
InitialConditions.SolverType = KinSolOverDeterminate;
InitialConditions.SmallStepAssumptionOnOff = Off;
};