62 lines (51 with data), 2.0 kB
AnyReacForce RightFootReaction = {
AnyKinLinear RightFootLinMeasure = {
AnySeg &ref1=...HumanModel.BodyModel.Right.Leg.Seg.Foot;
AnyFixedRefFrame &ref2 = ...Environment.GlobalRef;
};
AnyKinRotational RightFootRotMeasure = {
AnySeg &ref1=...HumanModel.BodyModel.Right.Leg.Seg.Foot;
AnyFixedRefFrame &ref2 = ...Environment.GlobalRef;
Type = RotVector;
};
};
// Place the right toe and heel on the ground
AnyKinEqSimpleDriver RToeGroundConstraint ={
AnyKinLinear ToePos = {
AnyFixedRefFrame &Ground = ...Environment.GlobalRef;
AnyRefNode &Ball = ...HumanModel.BodyModel.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 = ...Environment.GlobalRef;
#if BM_LEG_MODEL == _LEG_MODEL_LEG_
AnyRefNode &Ball = ...HumanModel.BodyModel.Right.Leg.Seg.Foot.HeelJoint;
#else
AnyRefNode &Ball = ...HumanModel.BodyModel.Right.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 right above the z axis
AnyKinEqSimpleDriver RAnkleX = {
AnyKinLinear AnklePos = {
AnyFixedRefFrame &Ground = ...Environment.GlobalRef;
#if BM_LEG_MODEL == _LEG_MODEL_LEG_
AnyRefNode &Ankle = ...HumanModel.BodyModel.Right.Leg.Seg.Foot.AnkleJoint;
#else
AnyRefNode &Ankle = ...HumanModel.BodyModel.Right.Leg.Seg.Foot.SubTalarJoint;
#endif
};
MeasureOrganizer = {0}; // Only the x coordinate
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};