Switch to unified view

a b/Tools/GRFPrediction/WeakResiduals.any
1
AnyFolder HumanGroundResiduals = {
2
  AnyComponentDefinition obj = {};
3
  
4
  AnyFolder CenterOfMass = {
5
    AnySeg DummySeg={
6
      Mass=0;
7
      Jii={0,0,0};
8
    };
9
    AnyKinEqSimpleDriver  FixRotation ={
10
      AnyKinRotational rot ={
11
        AnySeg &ref1=..DummySeg;
12
        Type=RotAxesAngles;
13
      };
14
      DriverPos ={0,0,0}; DriverVel={0,0,0};
15
    };
16
    AnyKinEqSimpleDriver  DummySegDriver ={
17
      AnyKinMeasureLinComb LinComb ={
18
        AnyKinLinear LinSeg ={
19
          AnySeg &ref=...DummySeg;
20
        };
21
        AnyKinCoM CoMMeasure =  {
22
          AnyFolder& ref = Main.HumanModel.BodyModel;
23
        };
24
        Coef ={{1,0,0,-1,0,0},{0,1,0,0,-1,0},{0,0,1,0,0,-1}};
25
        OutDim =3;
26
      };
27
      DriverPos ={0,0,0}; DriverVel={0,0,0};
28
    };
29
  };
30
31
  
32
  AnyFolder &PelvisSegment = ..BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
33
  AnyFolder &COMSegment = CenterOfMass.DummySeg;
34
  
35
  AnyFolder Measures = {
36
    AnyKinLinear LinearCOM ={
37
        AnySeg &ref2 = ..COMSegment;
38
    };   
39
    AnyKinRotational RotationalPelvis ={
40
        AnySeg &ref2 = ..PelvisSegment;
41
        Type=RotVector;
42
        AngVelOnOff = On; 
43
    };
44
  };
45
  
46
  AnyFolder WeakRecruitedResiduals = 
47
  {
48
49
    AnyRecruitedActuator Linear_1 = {
50
      AnyKinMeasure& ref= ..Measures.LinearCOM;
51
      Type = NonNegative;
52
      Strength = 5;
53
      SET_DEFAULT_ACTUATOR_VOLUME;
54
    };
55
    AnyRecruitedActuator Linear_2 = {
56
      AnyKinMeasure& ref= ..Measures.LinearCOM;
57
      Type = NonPositive;
58
      Strength = 5;
59
      SET_DEFAULT_ACTUATOR_VOLUME;
60
    };
61
    AnyRecruitedActuator Rotational_1 = {
62
      AnyKinMeasure& ref= ..Measures.RotationalPelvis;
63
      Type = NonNegative;
64
      Strength = 2;
65
      SET_DEFAULT_ACTUATOR_VOLUME;
66
    };
67
    AnyRecruitedActuator Rotational_2 = {
68
      AnyKinMeasure& ref= ..Measures.RotationalPelvis;
69
      Type = NonPositive;
70
      Strength = 2;
71
      SET_DEFAULT_ACTUATOR_VOLUME;
72
    };
73
74
       
75
  };
76
  AnyVar PosX_Force = WeakRecruitedResiduals.Linear_1.Fout[0]+WeakRecruitedResiduals.Linear_2.Fout[0];
77
  AnyVar PosY_Force = WeakRecruitedResiduals.Linear_1.Fout[1]+WeakRecruitedResiduals.Linear_2.Fout[1];
78
  AnyVar PosZ_Force = WeakRecruitedResiduals.Linear_1.Fout[2]+WeakRecruitedResiduals.Linear_2.Fout[2];
79
  AnyVar RotX_Torque = WeakRecruitedResiduals.Rotational_1.Fout[2]+WeakRecruitedResiduals.Rotational_2.Fout[2];
80
  AnyVar RotY_Torque = WeakRecruitedResiduals.Rotational_1.Fout[1]+WeakRecruitedResiduals.Rotational_2.Fout[1];
81
  AnyVar RotZ_Torque = WeakRecruitedResiduals.Rotational_1.Fout[0]+WeakRecruitedResiduals.Rotational_2.Fout[0];
82
  
83
};
84