62 lines (51 with data), 2.0 kB
AnyReacForce LeftFootReaction = {
AnyKinLinear LeftFootLinMeasure = {
AnySeg &ref1=...HumanModel.BodyModel.Left.Leg.Seg.Foot;
AnyFixedRefFrame &ref2 = ...Environment.GlobalRef;
};
AnyKinRotational LeftFootRotMeasure = {
AnySeg &ref1=...HumanModel.BodyModel.Left.Leg.Seg.Foot;
AnyFixedRefFrame &ref2 = ...Environment.GlobalRef;
Type = RotVector;
};
};
// Place the Left toe and heel on the ground
AnyKinEqSimpleDriver LToeGroundConstraint ={
AnyKinLinear ToePos = {
AnyFixedRefFrame &Ground = ...Environment.GlobalRef;
AnyRefNode &Ball = ...HumanModel.BodyModel.Left.Leg.Seg.Foot.ToeJoint;
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction forces
};
AnyKinEqSimpleDriver LHeelGroundConstraint ={
AnyKinLinear HeelPos = {
AnyFixedRefFrame &Ground = ...Environment.GlobalRef;
#if BM_LEG_MODEL == _LEG_MODEL_LEG_
AnyRefNode &Ball = ...HumanModel.BodyModel.Left.Leg.Seg.Foot.HeelJoint;
#else
AnyRefNode &Ball = ...HumanModel.BodyModel.Left.Leg.Seg.Foot.HeelNode;
#endif
};
MeasureOrganizer = {1}; // Only the y coordinate
DriverPos = {0.0};
DriverVel = {0};
Reaction.Type = {Off}; // Provide ground reaction forces
};
// Position the Ankles Left above the z axis
AnyKinEqSimpleDriver LAnkleX = {
AnyKinLinear AnklePos = {
AnyFixedRefFrame &Ground = ...Environment.GlobalRef;
#if BM_LEG_MODEL == _LEG_MODEL_LEG_
AnyRefNode &Ankle = ...HumanModel.BodyModel.Left.Leg.Seg.Foot.AnkleJoint;
#else
AnyRefNode &Ankle = ...HumanModel.BodyModel.Left.Leg.Seg.Foot.SubTalarJoint;
#endif
};
MeasureOrganizer = {0}; // Only the x coordinate
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};