hello
i want to constain 5 dof of pelvis (except y translation) and then weight exert on legs. i work on the freeposture model and when i remove y direction i must controll this dof with legs but there is a problem with this.
one constraint on pelvis must transform to two constraints on both legs and doing this cause overconstraint error.
please help me with this problem…
Hi ?
Yes this is correct this will normally lead to an over constrained problem
So one solution is to use the one leg for supplying the kinematic constraint you knee. Then the forces on the other leg can be applied using an AnyReacForce … these can be used for supplying reaction forces but no motion.
Best regards
Søren
hello and thank you for your answer
i have another question in this case
a body in the space has 6 degree of freedom and we must add 6 constraints to it as we can solve equations of the body.
but in standing model there is 8 constraints for the body in space. these constraints are:
3 for right leg:
// Place the right toe and heel on the ground
AnyKinEqSimpleDriver RToeGroundConstraint ={
AnyKinLinear ToePos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ball = Main.Model.HumanModel.Right.Leg.Seg.Foot.ToeJoint;
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction forces
};
AnyKinEqSimpleDriver RHeelGroundConstraint ={
AnyKinLinear HeelPos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ball = Main.Model.HumanModel.Right.Leg.Seg.Foot.HeelJoint;
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction forces
};
// Position the Ankles right above the z axis
AnyKinEqSimpleDriver RAnkleX = {
AnyKinLinear AnklePos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ankle = …LegR.Seg.Foot.AnkleJoint;
};
MeasureOrganizer = {0}; // Only the x coordinate
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};
3 for left leg:
// Place the left toe and heel on the ground
AnyKinEqSimpleDriver LToeGroundConstraint ={
AnyKinLinear ToePos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ball = Main.Model.HumanModel.Left.Leg.Seg.Foot.ToeJoint;
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction
};
AnyKinEqSimpleDriver LHeelGroundConstraint ={
AnyKinLinear HeelPos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ball = Main.Model.HumanModel.Left.Leg.Seg.Foot.HeelJoint;
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction
};
// Position the Ankles right above the z axis
AnyKinEqSimpleDriver LAnkleX ={
AnyKinLinear AnklePos = {
AnyFixedRefFrame &Ground = Main.Model.EnvironmentModel.GlobalRef;
AnyRefNode &Ankle = …LegL.Seg.Foot.AnkleJoint;
};
MeasureOrganizer = {0}; // Only the x coordinate
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};
and two for com:
//Constraint the collective CoM to be right above the GlobalRef
AnyKinEqSimpleDriver CoMDriver = {
AnyKinCoM CoM = {
AnyFolder &Body = Main.Model.HumanModel;
};
MeasureOrganizer = {0,2}; // Only the x and z directions
DriverPos = {0,0};
DriverVel = {0,0};
Reaction.Type = {Off,Off};
};
my question is how this constraints work and why there is no error when we run the model.
standing model is similar to freeposture model, but in freeposture model there is 6 constraints for model which attach pelvis to global reference.
how can i remove y translation constraint and apply it to foot?
i try some ways but when i run the model there is many errors.
Hi Hossein?,
I think you are slightly on the wrong track. As Sören said each body in space has 6 degrees of freedom (dof). But the whole body model consists of a number of bodies (segments - which are mostly bones). Each of these bodies has 6 dof. But as they are connected with joints, the total number of d.of. is reduced. E.g. an hinge joint (like the knee) takes away 5 dof and keeps only 1 open. So if all dof of the body model are fully driven 6 dof are open, this is the case in the free posture model. Therefore this model is a good starting point (and the drivers used in this model can be used to fully drive a model).
I attached a freeposture model which has contact in y between the feet and ground and no y reaction in pelvis.
Best regards,
Sebastian