85 lines (74 with data), 2.7 kB
AnyFolder HumanGroundResiduals = {
AnyComponentDefinition obj = {};
AnyFolder CenterOfMass = {
AnySeg DummySeg={
Mass=0;
Jii={0,0,0};
};
AnyKinEqSimpleDriver FixRotation ={
AnyKinRotational rot ={
AnySeg &ref1=..DummySeg;
Type=RotAxesAngles;
};
DriverPos ={0,0,0}; DriverVel={0,0,0};
};
AnyKinEqSimpleDriver DummySegDriver ={
AnyKinMeasureLinComb LinComb ={
AnyKinLinear LinSeg ={
AnySeg &ref=...DummySeg;
};
AnyKinCoM CoMMeasure = {
AnyFolder& ref = Main.HumanModel.BodyModel;
};
Coef ={{1,0,0,-1,0,0},{0,1,0,0,-1,0},{0,0,1,0,0,-1}};
OutDim =3;
};
DriverPos ={0,0,0}; DriverVel={0,0,0};
};
};
AnyFolder &PelvisSegment = ..BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
AnyFolder &COMSegment = CenterOfMass.DummySeg;
AnyFolder Measures = {
AnyKinLinear LinearCOM ={
AnySeg &ref2 = ..COMSegment;
};
AnyKinRotational RotationalPelvis ={
AnySeg &ref2 = ..PelvisSegment;
Type=RotVector;
AngVelOnOff = On;
};
};
AnyFolder WeakRecruitedResiduals =
{
AnyRecruitedActuator Linear_1 = {
AnyKinMeasure& ref= ..Measures.LinearCOM;
Type = NonNegative;
Strength = 5;
SET_DEFAULT_ACTUATOR_VOLUME;
};
AnyRecruitedActuator Linear_2 = {
AnyKinMeasure& ref= ..Measures.LinearCOM;
Type = NonPositive;
Strength = 5;
SET_DEFAULT_ACTUATOR_VOLUME;
};
AnyRecruitedActuator Rotational_1 = {
AnyKinMeasure& ref= ..Measures.RotationalPelvis;
Type = NonNegative;
Strength = 2;
SET_DEFAULT_ACTUATOR_VOLUME;
};
AnyRecruitedActuator Rotational_2 = {
AnyKinMeasure& ref= ..Measures.RotationalPelvis;
Type = NonPositive;
Strength = 2;
SET_DEFAULT_ACTUATOR_VOLUME;
};
};
AnyVar PosX_Force = WeakRecruitedResiduals.Linear_1.Fout[0]+WeakRecruitedResiduals.Linear_2.Fout[0];
AnyVar PosY_Force = WeakRecruitedResiduals.Linear_1.Fout[1]+WeakRecruitedResiduals.Linear_2.Fout[1];
AnyVar PosZ_Force = WeakRecruitedResiduals.Linear_1.Fout[2]+WeakRecruitedResiduals.Linear_2.Fout[2];
AnyVar RotX_Torque = WeakRecruitedResiduals.Rotational_1.Fout[2]+WeakRecruitedResiduals.Rotational_2.Fout[2];
AnyVar RotY_Torque = WeakRecruitedResiduals.Rotational_1.Fout[1]+WeakRecruitedResiduals.Rotational_2.Fout[1];
AnyVar RotZ_Torque = WeakRecruitedResiduals.Rotational_1.Fout[0]+WeakRecruitedResiduals.Rotational_2.Fout[0];
};