-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathLeftLegDrivers.any
More file actions
124 lines (93 loc) · 3.27 KB
/
LeftLegDrivers.any
File metadata and controls
124 lines (93 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Place the left toe and heel on the ground
AnyKinEqSimpleDriver LToeGroundConstraint ={
AnyKinLinear ToePos = {
AnyFixedRefFrame &Ground = Main.Model.Environment.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.Environment.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.Environment.GlobalRef;
AnyRefNode &Ankle = ..LegL.Seg.Foot.AnkleJoint;
};
MeasureOrganizer = {0}; // Only the x coordinate
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};
// ************************************
// Drivers for the Left leg
// ************************************
//Left hip driver
AnyKinEqSimpleDriver HipDriverLeft={
AnyKinMeasure& ref1 =...HumanModel.Interface.Left.HipFlexion;
AnyKinMeasure& ref2 =...HumanModel.Interface.Left.HipExternalRotation;
AnyKinMeasure& ref3 =...HumanModel.Interface.Left.HipAbduction;
DriverPos=pi/180*{
.JntPos.Left.HipFlexion,
.JntPos.Left.HipExternalRotation,
.JntPos.Left.HipAbduction
};
DriverVel = pi/180*{
.JntVel.Left.HipFlexion,
.JntVel.Left.HipExternalRotation,
.JntVel.Left.HipAbduction
};
Reaction.Type={Off,Off,Off};
};
//Knee driver
AnyKinEqSimpleDriver KneeDriverLeft={
AnyKinMeasure& Knee =...HumanModel.Interface.Left.KneeFlexion;
DriverPos=pi/180*{ .JntPos.Left.KneeFlexion };
DriverVel = pi/180*{ .JntVel.Left.KneeFlexion };
Reaction.Type={Off};
};
//Ankle driver
AnyKinEqSimpleDriver AnkleDriverLeft={
AnyKinMeasure& ref1=...HumanModel.Interface.Left.AnklePlantarFlexion;
AnyKinMeasure& ref2=...HumanModel.Interface.Left.AnkleEversion;
DriverPos = pi/180*{.JntPos.Left.SubTalarEversion};
DriverVel=pi/180*{.JntVel.Left.SubTalarEversion};
Reaction.Type={Off};
MeasureOrganizer={1};
};
AnyReacForce LeftFootReaction = {
AnyKinLinear LeftFootLinMeasure = {
AnySeg &ref1=..LegL.Seg.Foot;
AnyFixedRefFrame &ref2 = ....Environment.GlobalRef;
};
AnyKinRotational LeftFootRotMeasure = {
AnySeg &ref1=..LegL.Seg.Foot;
AnyFixedRefFrame &ref2 = ....Environment.GlobalRef;
Type = RotVector;
};
};
MannequinLoads.Left = {
AnyForce3D Hip = {
AnyRefNode &ApplPoint = .lhm.Leg.Seg.Thigh.HipJoint;
F = .locmql.Hip;
};
AnyForce3D Knee = {
AnyRefNode &ApplPoint = .lhm.Leg.Seg.Thigh.KneeJoint;
F = .locmql.Knee;
};
AnyForce3D Ankle = {
AnyRefNode &ApplPoint = .lhm.Leg.Seg.Foot.AnkleJoint;
F = .locmql.Ankle;
};
};