Hi, I am currently thinking of achieving the goal of a standing mannequin with forces on the shoulders and forces transmitted only to the pelvis. The model I am using is a standing model and the purpose is achieved by fixing the pelvis to the origin of the coordinates. The problem I am currently encountering is that after the fixation constraint is applied to the pelvis, the model is over constrained and I do not understand which part of the constraint I should remove to release the degrees of freedom. Please help me to solve this problem.
Here is my code for fixing the pelvis:
// CONSTRAINTS
// Pelvis is rigidly fixed to the origin of the global reference frame
AnyKinEqSimpleDriver GroundConstraint ={
AnyKinRotational PelvisRot = {
Type = RotAxesAngles;
AnyRefNode &Hpoint = Main.Model.EnvironmentModel.GlobalRef.Hpoint;
AnyRefNode &refPelvisNode = ....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.GroundPelvisJntNode;
};
AnyKinLinear PelvisPos = {
AnyRefNode &Hpoint = Main.Model.EnvironmentModel.GlobalRef.Hpoint;
AnyRefNode &refPelvisNode = ....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.GroundPelvisJntNode;
};
DriverPos = {0.0, 0, 0.0,0.0, 0.0, 0.0};
DriverVel = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
Reaction.Type = {On, On, On, On, On, On};
};
This is the code for applying force on my shoulder:
AnyForce3D Scapula =
{
F = {0.0, -100.0, 0.0}*0;
//Flocal = {0.0, -100.0, 0.0};
AnyRefNode &ApplPoint = Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Clavicula.I_trapezius_clavicular_part_3;
AnyDrawVector drF = {
Vec = Main.Model.ModelEnvironmentConnection.MannequinLoads.Left.Scapula.F/100; // Scale the length down
Line = {
Style = Line3DStyleFull;
Thickness = 0.01;
RGB = {1, 0, 0};
End = {
Style = Line3DCapStyleArrow; // This specifies the end to be an arrowhead
RGB = {1, 0, 0};
Thickness = 0.02; // The head begins with twice the thickness of the shaft
Length = 0.05;
};
};
// attach the arrow to the hand
AnyRefFrame &Scapula = Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Clavicula.I_trapezius_clavicular_part_3;
};
};
Other than that I have not changed any code for the standing model
This is the error message:
- InverseDynamics (Operation: Main.Study.InverseDynamics):
0.0) PreOperation (Operation: Main.Study.InverseDynamics.PreOperation):
0.0.0) InitialConditions (Operation: Main.Study.InitialConditions):
0.0.0) ...Design variables have been updated.
WARNING(OBJ.MCH.KIN7) : Mus.any(2148) : GluteusMaximusInferior5.SPLine : Penetration of surface : cyl : Via-point 'GluteusMaximusInferior5Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(2169) : GluteusMaximusInferior6.SPLine : Penetration of surface : cyl : Via-point 'GluteusMaximusInferior6Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(2148) : GluteusMaximusInferior5.SPLine : Penetration of surface : cyl : Via-point 'GluteusMaximusInferior5Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(2169) : GluteusMaximusInferior6.SPLine : Penetration of surface : cyl : Via-point 'GluteusMaximusInferior6Node' on 'SPLine' is located below the wrapping surface'cyl
0.0.1) ...Load-time positions have been re-established.
Constraint violations for study 'Main.Study' :
Constraint #23 is above tolerance 1e-06, error = 0.009732, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #26 is above tolerance 1e-06, error = 0.084927, constr. #5 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #29 is above tolerance 1e-06, error = 0.055066, constr. #8 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #32 is above tolerance 1e-06, error = 0.079229, constr. #11 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #35 is above tolerance 1e-06, error = 0.102203, constr. #14 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #38 is above tolerance 1e-06, error = 0.125070, constr. #17 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #67 is above tolerance 1e-06, error = 0.136962, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsCervicalSpine.Flexion.CervicalFlexionRhythmDrv'.
Constraint #84 is above tolerance 1e-06, error = 0.003546, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Slider1Jnt.Constraints'.
Constraint #89 is above tolerance 1e-06, error = 0.002633, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.LinDrv'.
Constraint #90 is above tolerance 1e-06, error = 0.003372, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Slider1Jnt.Constraints'.
Constraint #95 is above tolerance 1e-06, error = 0.003663, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.LinDrv'.
Constraint #96 is above tolerance 1e-06, error = 0.005223, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Slider1Jnt.Constraints'.
Constraint #101 is above tolerance 1e-06, error = 0.004352, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.LinDrv'.
Constraint #102 is above tolerance 1e-06, error = 0.001926, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Slider1Jnt.Constraints'.
Constraint #107 is above tolerance 1e-06, error = 0.016519, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.LinDrv'.
Constraint #108 is above tolerance 1e-06, error = 0.011005, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Slider1Jnt.Constraints'.
Constraint #113 is above tolerance 1e-06, error = 0.003867, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.LinDrv'.
Constraint #117 is above tolerance 1e-06, error = 0.002800, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.LinDrvRight'.
Constraint #118 is above tolerance 1e-06, error = 0.002800, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.LinDrvLeft'.
Constraint #125 is above tolerance 1e-06, error = 0.130600, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.drv'.
Constraint #129 is above tolerance 1e-06, error = 0.003545, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.LinDrvRight'.
Constraint #130 is above tolerance 1e-06, error = 0.003545, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.LinDrvLeft'.
Constraint #137 is above tolerance 1e-06, error = 0.116200, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.drv'.
Constraint #141 is above tolerance 1e-06, error = 0.015783, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.LinDrvRight'.
Constraint #142 is above tolerance 1e-06, error = 0.015783, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.LinDrvLeft'.
Constraint #149 is above tolerance 1e-06, error = 0.106600, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.drv'.
Constraint #153 is above tolerance 1e-06, error = 0.014254, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.LinDrvRight'.
Constraint #154 is above tolerance 1e-06, error = 0.014254, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.LinDrvLeft'.
Constraint #161 is above tolerance 1e-06, error = 0.092200, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.drv'.
Constraint #165 is above tolerance 1e-06, error = 0.013926, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.LinDrvRight'.
Constraint #166 is above tolerance 1e-06, error = 0.013926, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.LinDrvLeft'.
Constraint #173 is above tolerance 1e-06, error = 0.082600, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.drv'.
Constraint #174 is above tolerance 1e-06, error = 0.034305, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinTopDrv'.
Constraint #175 is above tolerance 1e-06, error = 0.081420, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinTopDrv'.
Constraint #178 is above tolerance 1e-06, error = 0.029944, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinBottomDrv'.
Constraint #183 is above tolerance 1e-06, error = 0.073258, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentRight.Drv1'.
Constraint #184 is above tolerance 1e-06, error = 0.003462, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentRight.Drv1'.
Constraint #189 is above tolerance 1e-06, error = 0.073258, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentLeft.Drv1'.
Constraint #190 is above tolerance 1e-06, error = 0.003462, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentLeft.Drv1'.
Constraint #222 is above tolerance 1e-06, error = 0.011197, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #223 is above tolerance 1e-06, error = 0.022978, constr. #1 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #224 is above tolerance 1e-06, error = 0.016365, constr. #2 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #227 is above tolerance 1e-06, error = 0.549639, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.CylRotDrv2'.
Constraint #238 is above tolerance 1e-06, error = 0.004070, constr. #1 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.FE.Constraints'.
Constraint #239 is above tolerance 1e-06, error = 0.006513, constr. #2 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.FE.Constraints'.
Constraint #242 is above tolerance 1e-06, error = 0.005336, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #243 is above tolerance 1e-06, error = 0.000418, constr. #1 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #244 is above tolerance 1e-06, error = 0.004080, constr. #2 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #245 is above tolerance 1e-06, error = 0.019736, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.PSLinDistalConstraint'.
Constraint #246 is above tolerance 1e-06, error = 0.000720, constr. #1 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.PSLinDistalConstraint'.
Constraint #257 is above tolerance 1e-06, error = 0.003439, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.ScapulaAIThoraxNodeDriver'.
Constraint #258 is above tolerance 1e-06, error = 0.680088, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.SternoClavicularRotationRhythm'.
Constraint #259 is above tolerance 1e-06, error = 0.003795, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.ScapulaTSThoraxNodeDriver'.
Constraint #260 is above tolerance 1e-06, error = 0.000003, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.ConoideumLigamentDrv'.
Constraint #261 is above tolerance 1e-06, error = 0.006659, constr. #0 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #262 is above tolerance 1e-06, error = 0.001733, constr. #1 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #263 is above tolerance 1e-06, error = 0.001594, constr. #2 in 'Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #288 is above tolerance 1e-06, error = 0.042615, constr. #3 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #289 is above tolerance 1e-06, error = 0.018199, constr. #4 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #290 is above tolerance 1e-06, error = 0.005364, constr. #0 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaMovement'.
Constraint #321 is above tolerance 1e-06, error = 0.011197, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #322 is above tolerance 1e-06, error = 0.022978, constr. #1 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #323 is above tolerance 1e-06, error = 0.016365, constr. #2 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.SphericalJoint.Constraints'.
Constraint #326 is above tolerance 1e-06, error = 2.202217, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.Pectoralis_minor2_cyl.Cylinder.CylRotDrv2'.
Constraint #337 is above tolerance 1e-06, error = 0.004070, constr. #1 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.FE.Constraints'.
Constraint #338 is above tolerance 1e-06, error = 0.006513, constr. #2 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.FE.Constraints'.
Constraint #341 is above tolerance 1e-06, error = 0.005336, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #342 is above tolerance 1e-06, error = 0.000418, constr. #1 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #343 is above tolerance 1e-06, error = 0.004080, constr. #2 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.PSProximalConstraints'.
Constraint #344 is above tolerance 1e-06, error = 0.019736, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.PSLinDistalConstraint'.
Constraint #345 is above tolerance 1e-06, error = 0.000720, constr. #1 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.PSLinDistalConstraint'.
Constraint #356 is above tolerance 1e-06, error = 0.003439, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.ScapulaAIThoraxNodeDriver'.
Constraint #357 is above tolerance 1e-06, error = 0.680088, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.SternoClavicularRotationRhythm'.
Constraint #358 is above tolerance 1e-06, error = 0.003795, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.ScapulaTSThoraxNodeDriver'.
Constraint #359 is above tolerance 1e-06, error = 0.000003, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.ConoideumLigamentDrv'.
Constraint #360 is above tolerance 1e-06, error = 0.006659, constr. #0 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #361 is above tolerance 1e-06, error = 0.001733, constr. #1 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #362 is above tolerance 1e-06, error = 0.001594, constr. #2 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.HandGloveLinDrv'.
Constraint #387 is above tolerance 1e-06, error = 0.018199, constr. #3 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #388 is above tolerance 1e-06, error = 0.042615, constr. #4 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #389 is above tolerance 1e-06, error = 0.005364, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaMovement'.
Constraint #390 is above tolerance 1e-06, error = 0.387327, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.RToeGroundConstraint'.
Constraint #391 is above tolerance 1e-06, error = 0.417222, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.RHeelGroundConstraint'.
Constraint #392 is above tolerance 1e-06, error = 0.387327, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.LToeGroundConstraint'.
Constraint #393 is above tolerance 1e-06, error = 0.417222, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.LHeelGroundConstraint'.
Constraint #394 is above tolerance 1e-06, error = 0.358053, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.RAnkleX'.
Constraint #395 is above tolerance 1e-06, error = 0.358053, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.LAnkleX'.
Constraint #396 is above tolerance 1e-06, error = 0.079242, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.CoMDriver'.
Constraint #398 is above tolerance 1e-06, error = 0.116110, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.GroundConstraint'.
Constraint #401 is above tolerance 1e-06, error = 0.082584, constr. #3 in 'Main.Model.ModelEnvironmentConnection.Drivers.GroundConstraint'.
Constraint #402 is above tolerance 1e-06, error = 0.033833, constr. #4 in 'Main.Model.ModelEnvironmentConnection.Drivers.GroundConstraint'.
Constraint #410 is above tolerance 1e-06, error = 0.003618, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.SCDriverRight'.
Constraint #411 is above tolerance 1e-06, error = 0.003794, constr. #1 in 'Main.Model.ModelEnvironmentConnection.Drivers.SCDriverRight'.
Constraint #419 is above tolerance 1e-06, error = 0.003618, constr. #0 in 'Main.Model.ModelEnvironmentConnection.Drivers.SCDriverLeft'.
Constraint #420 is above tolerance 1e-06, error = 0.003794, constr. #1 in 'Main.Model.ModelEnvironmentConnection.Drivers.SCDriverLeft'.
ERROR(OBJ.MCH.KIN2) : SpinePressureStanding.Main.any(81) : Study.InitialConditions : Model is kinematically over-constrained
Translated with www.DeepL.com/Translator (free version)