|
a |
|
b/Tools/AnyMocap/ModelSetup.any |
|
|
1 |
ModelSetup = { |
|
|
2 |
|
|
|
3 |
AnyFolder TrialSpecificData = { |
|
|
4 |
#include "TrialSpecificData_Defaults.any" |
|
|
5 |
#include "<MOCAP_TRIAL_SPECIFIC_DATA>" |
|
|
6 |
}; |
|
|
7 |
|
|
|
8 |
AnyFolder SubjectSpecificData = { |
|
|
9 |
#include "SubjectSpecificData_Defaults.any" |
|
|
10 |
#include "<MOCAP_SUBJECT_SPECIFIC_DATA>" |
|
|
11 |
}; |
|
|
12 |
|
|
|
13 |
AnyFolder LabSpecificData= { |
|
|
14 |
#include "LabSpecificData_Defaults.any" |
|
|
15 |
#include "<MOCAP_LAB_SPECIFIC_DATA>" |
|
|
16 |
}; |
|
|
17 |
|
|
|
18 |
// This file checks if all the defines statements |
|
|
19 |
// are made correctly. |
|
|
20 |
#include "CheckAnyMoCapConfiguration.any" |
|
|
21 |
|
|
|
22 |
|
|
|
23 |
Main = { |
|
|
24 |
#include "<BODY_MODEL_CONFIG_FILE>" |
|
|
25 |
}; |
|
|
26 |
|
|
|
27 |
#if MOCAP_INPUT_DATA_TYPE == "C3D" |
|
|
28 |
AnyInputC3D C3DFileData = { |
|
|
29 |
AnyComponentDefinition obj = {}; |
|
|
30 |
}; |
|
|
31 |
#include "<MOCAP_C3DSETTINGS>" |
|
|
32 |
#endif |
|
|
33 |
|
|
|
34 |
#if MOCAP_INPUT_DATA_TYPE == "BVH" |
|
|
35 |
|
|
|
36 |
/// Redirects to BVHFileData, so models expecting C3D emulation still work. |
|
|
37 |
AnyFolder C3DFileData = {AnyFolder& Header = .BVHFileData.Header;}; |
|
|
38 |
|
|
|
39 |
AnyInputBVH BVHFileData = { |
|
|
40 |
AnyComponentDefinition obj = { |
|
|
41 |
SubGroupRegexSearch = ".*\.([_[:alnum:]]+?)\.([_[:alnum:]]+?)"; |
|
|
42 |
SubGroupRegexReplace = "$1"; |
|
|
43 |
}; |
|
|
44 |
}; |
|
|
45 |
#include "<MOCAP_BVHSETTINGS>" |
|
|
46 |
#endif |
|
|
47 |
|
|
|
48 |
|
|
|
49 |
AnyFolder MocapExtraDrivers = { |
|
|
50 |
AnyComponentDefinition obj = {}; |
|
|
51 |
#include "<MOCAP_EXTRA_DRIVERS_FILE>" |
|
|
52 |
}; |
|
|
53 |
|
|
|
54 |
AnyFolder MocapDrivers = { |
|
|
55 |
AnyComponentDefinition obj = { |
|
|
56 |
// regex pattern starts at the component level |
|
|
57 |
SubGroupRegexSearch = "([_[:alnum:]]+)\.([_[:alnum:]]+?)"; |
|
|
58 |
SubGroupRegexReplace = "$1"; |
|
|
59 |
}; |
|
|
60 |
#include "<MOCAP_MARKER_PROTOCOL_FILE>" |
|
|
61 |
}; |
|
|
62 |
|
|
|
63 |
AnyFolder ParameterIdentification = { }; |
|
|
64 |
|
|
|
65 |
#if MOCAP_FILTER_JOINT_ANGLES == ON |
|
|
66 |
/// Filter for Joint Angles (Output of the marker tracking step). |
|
|
67 |
AnyFolder JointAngleFilter = |
|
|
68 |
{ |
|
|
69 |
AnyInt N ??= 1; |
|
|
70 |
AnyVar Fs ??= (Main.Studies.MarkerTracking.nStep-1) |
|
|
71 |
/(Main.Studies.MarkerTracking.tEnd-Main.Studies.MarkerTracking.tStart); |
|
|
72 |
AnyVar Fc ??= 10; |
|
|
73 |
AnySwitchVar FilterForwardBackwardOnOff ??= On; |
|
|
74 |
|
|
|
75 |
AnyFunButterworthFilter FilterFun = |
|
|
76 |
{ |
|
|
77 |
AutomaticInitialConditionOnOff = On; |
|
|
78 |
FilterForwardBackwardOnOff = .FilterForwardBackwardOnOff; |
|
|
79 |
N = .N; |
|
|
80 |
Fs = .Fs; |
|
|
81 |
Fc = {.Fc}; |
|
|
82 |
Type = LowPass; |
|
|
83 |
}; |
|
|
84 |
}; |
|
|
85 |
|
|
|
86 |
#endif |
|
|
87 |
|
|
|
88 |
// Study for saving a loading the parameters from calibration trials |
|
|
89 |
//(dynamic or standing refereces) |
|
|
90 |
#include "SaveLoadParameters.any" |
|
|
91 |
|
|
|
92 |
#include "ModelViews.any" |
|
|
93 |
|
|
|
94 |
|
|
|
95 |
//markers adds macros automatically into this folder |
|
|
96 |
AnyFolder Macros = |
|
|
97 |
{ |
|
|
98 |
|
|
|
99 |
AnyOperationMacro SaveOutputToHDF = |
|
|
100 |
{ |
|
|
101 |
OPERATION_DISPLAY_PRIORITY(PriorityLow); |
|
|
102 |
MacroStr = { |
|
|
103 |
"classoperation Main.Studies.MarkerTracking.Output" + strquote("Save data") |
|
|
104 |
+ "--type= " + strquote("Deep") |
|
|
105 |
+ "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX |
|
|
106 |
+ Main.ModelSetup.TrialSpecificData.TrialFileName + "_MarkerTracking.anydata.h5"), |
|
|
107 |
|
|
|
108 |
"classoperation Main.Studies.InverseDynamicStudy.Output" + strquote("Save data") |
|
|
109 |
+ "--type= " + strquote("Deep") |
|
|
110 |
+ "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX |
|
|
111 |
+ Main.ModelSetup.TrialSpecificData.TrialFileName + "_InverseDynamicStudy.anydata.h5") |
|
|
112 |
}; |
|
|
113 |
}; |
|
|
114 |
AnyOperationMacro LoadOutputFromHDF = |
|
|
115 |
{ |
|
|
116 |
OPERATION_DISPLAY_PRIORITY(PriorityLow); |
|
|
117 |
MacroStr = { |
|
|
118 |
"classoperation Main.Studies.MarkerTracking.Output" + strquote("Load data") |
|
|
119 |
+ "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX |
|
|
120 |
+ Main.ModelSetup.TrialSpecificData.TrialFileName + "_MarkerTracking.anydata.h5"), |
|
|
121 |
|
|
|
122 |
"classoperation Main.Studies.InverseDynamicStudy.Output" + strquote("Load data") |
|
|
123 |
+ "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX |
|
|
124 |
+ Main.ModelSetup.TrialSpecificData.TrialFileName + "_InverseDynamicStudy.anydata.h5") |
|
|
125 |
}; |
|
|
126 |
}; |
|
|
127 |
}; // Macros |
|
|
128 |
|
|
|
129 |
|
|
|
130 |
}; |
|
|
131 |
|
|
|
132 |
|
|
|
133 |
AnyFolder ModelSetup = {}; |
|
|
134 |
|
|
|
135 |
ModelSetup = |
|
|
136 |
{ |
|
|
137 |
//DocumentationLink = AMMR_PATH_DOC + "/anymocap.html"; |
|
|
138 |
AnyFolder Views = {}; |
|
|
139 |
}; |
|
|
140 |
|
|
|
141 |
|
|
|
142 |
#ifdef BM_DRAWSETTINGS_FILE |
|
|
143 |
// Ensure that HumanModel does not |
|
|
144 |
// include DrawSettings as well. |
|
|
145 |
#define BM_DRAWSETTINGS_SKIP ON |
|
|
146 |
#include "<BM_DRAWSETTINGS_FILE>" |
|
|
147 |
#endif |
|
|
148 |
|
|
|
149 |
|
|
|
150 |
#include "CheckAnyMoCapPostConfiguration.any" |
|
|
151 |
|