Fxing of pelvis(Over-constrained)

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:


  1. 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)

Hi @biao - welcome to the forum!

We have a good tutorial that shows you how to investigate the active constraints on the model and modify them, you can find it here:
https://anyscript.org/tutorials/A_Getting_started_modeling/lesson3.html#check-if-model-is-kinematically-determined

Best regards,
Bjørn

Hi, first of all, thank you for your reply. I have read the tutorial about what you said and added the constraints and drivers according to the tips, but my current model has 432 total degrees of freedom and only 430 constraints, I am not sure where I should add two more constraints, I hope you can give a suggestion.
Here is my driver file:
JointsAndDrivers.any (13.0 KB)

Hi @biao

I cant really say anything based on you JointsAndDrivers file - you need to investigate the study information when you have your model loaded.
You can also find the degrees of freedom which are unspecified, however you need to check each dof in the information window.

Start with the objects that you have defined yourself (any environment) and those places where you are not using the default mannequin drivers.

Best regards,
Bjørn

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.