19 #ifndef JSON_METRICS_FEEDBACK_CONTROL_H
20 #define JSON_METRICS_FEEDBACK_CONTROL_H
31 #include "dev/dhustigschultz/BP_SC_NoLegs_Stats/JSONQuadCPGControl.h"
33 #include <json/value.h>
65 double lp = -1 * M_PI,
84 const double freqFeedbackMin;
85 const double freqFeedbackMax;
86 const double ampFeedbackMin;
87 const double ampFeedbackMax;
88 const double phaseFeedbackMin;
89 const double phaseFeedbackMax;
91 const double maxHeight;
92 const double minHeight;
102 std::string resourcePath =
"");
116 virtual array_2D scaleNodeActions (Json::Value actions);
122 std::vector<double> transformFeedbackActions(std::vector< std::vector<double> >& actions);
128 std::vector<tgCPGActuatorControl*> m_spineControllers;
134 std::vector<double> m_muscleTensionZero;
135 std::vector<double> m_muscleTensionOne;
136 std::vector<double> m_muscleTensionTwo;
137 std::vector<double> m_muscleTensionThree;
138 std::vector<double> m_muscleTensionFour;
139 std::vector<double> m_muscleTensionFive;
140 std::vector<double> m_muscleTensionSix;
141 std::vector<double> m_muscleTensionSeven;
142 std::vector<double> m_muscleTensionEight;
143 std::vector<double> m_muscleTensionNine;
144 std::vector<double> m_muscleTensionTen;
145 std::vector<double> m_muscleTensionEleven;
146 std::vector<double> m_muscleTensionTwelve;
147 std::vector<double> m_muscleTensionThirteen;
148 std::vector<double> m_muscleTensionFourteen;
149 std::vector<double> m_muscleTensionFifteen;
150 std::vector<double> m_muscleTensionSixteen;
151 std::vector<double> m_muscleTensionSeventeen;
152 std::vector<double> m_muscleTensionEighteen;
153 std::vector<double> m_muscleTensionNineteen;
154 std::vector<double> m_muscleTensionTwenty;
155 std::vector<double> m_muscleTensionTwentyOne;
156 std::vector<double> m_muscleTensionTwentyTwo;
157 std::vector<double> m_muscleTensionTwentyThree;
158 std::vector<double> m_muscleTensionTwentyFour;
159 std::vector<double> m_muscleTensionTwentyFive;
160 std::vector<double> m_muscleTensionTwentySix;
161 std::vector<double> m_muscleTensionTwentySeven;
162 std::vector<double> m_muscleTensionTwentyEight;
163 std::vector<double> m_muscleTensionTwentyNine;
164 std::vector<double> m_muscleTensionThirty;
165 std::vector<double> m_muscleTensionThirtyOne;
166 std::vector<double> m_muscleTensionThirtyTwo;
167 std::vector<double> m_muscleTensionThirtyThree;
168 std::vector<double> m_muscleTensionThirtyFour;
169 std::vector<double> m_muscleTensionThirtyFive;
170 std::vector<double> m_muscleTensionThirtySix;
171 std::vector<double> m_muscleTensionThirtySeven;
172 std::vector<double> m_muscleTensionThirtyEight;
173 std::vector<double> m_muscleTensionThirtyNine;
174 std::vector<double> m_muscleTensionForty;
175 std::vector<double> m_muscleTensionFortyOne;
176 std::vector<double> m_muscleTensionFortyTwo;
177 std::vector<double> m_muscleTensionFortyThree;
178 std::vector<double> m_muscleTensionFortyFour;
179 std::vector<double> m_muscleTensionFortyFive;
180 std::vector<double> m_muscleTensionFortySix;
181 std::vector<double> m_muscleTensionFortySeven;
182 std::vector<double> m_muscleTensionFortyEight;
183 std::vector<double> m_muscleTensionFortyNine;
184 std::vector<double> m_muscleTensionFifty;
185 std::vector<double> m_muscleTensionFiftyOne;
189 std::vector<double> m_muscleLengthZero;
190 std::vector<double> m_muscleLengthOne;
191 std::vector<double> m_muscleLengthTwo;
192 std::vector<double> m_muscleLengthThree;
193 std::vector<double> m_muscleLengthFour;
194 std::vector<double> m_muscleLengthFive;
195 std::vector<double> m_muscleLengthSix;
196 std::vector<double> m_muscleLengthSeven;
197 std::vector<double> m_muscleLengthEight;
198 std::vector<double> m_muscleLengthNine;
199 std::vector<double> m_muscleLengthTen;
200 std::vector<double> m_muscleLengthEleven;
201 std::vector<double> m_muscleLengthTwelve;
202 std::vector<double> m_muscleLengthThirteen;
203 std::vector<double> m_muscleLengthFourteen;
204 std::vector<double> m_muscleLengthFifteen;
205 std::vector<double> m_muscleLengthSixteen;
206 std::vector<double> m_muscleLengthSeventeen;
207 std::vector<double> m_muscleLengthEighteen;
208 std::vector<double> m_muscleLengthNineteen;
209 std::vector<double> m_muscleLengthTwenty;
210 std::vector<double> m_muscleLengthTwentyOne;
211 std::vector<double> m_muscleLengthTwentyTwo;
212 std::vector<double> m_muscleLengthTwentyThree;
213 std::vector<double> m_muscleLengthTwentyFour;
214 std::vector<double> m_muscleLengthTwentyFive;
215 std::vector<double> m_muscleLengthTwentySix;
216 std::vector<double> m_muscleLengthTwentySeven;
217 std::vector<double> m_muscleLengthTwentyEight;
218 std::vector<double> m_muscleLengthTwentyNine;
219 std::vector<double> m_muscleLengthThirty;
220 std::vector<double> m_muscleLengthThirtyOne;
221 std::vector<double> m_muscleLengthThirtyTwo;
222 std::vector<double> m_muscleLengthThirtyThree;
223 std::vector<double> m_muscleLengthThirtyFour;
224 std::vector<double> m_muscleLengthThirtyFive;
225 std::vector<double> m_muscleLengthThirtySix;
226 std::vector<double> m_muscleLengthThirtySeven;
227 std::vector<double> m_muscleLengthThirtyEight;
228 std::vector<double> m_muscleLengthThirtyNine;
229 std::vector<double> m_muscleLengthForty;
230 std::vector<double> m_muscleLengthFortyOne;
231 std::vector<double> m_muscleLengthFortyTwo;
232 std::vector<double> m_muscleLengthFortyThree;
233 std::vector<double> m_muscleLengthFortyFour;
234 std::vector<double> m_muscleLengthFortyFive;
235 std::vector<double> m_muscleLengthFortySix;
236 std::vector<double> m_muscleLengthFortySeven;
237 std::vector<double> m_muscleLengthFortyEight;
238 std::vector<double> m_muscleLengthFortyNine;
239 std::vector<double> m_muscleLengthFifty;
240 std::vector<double> m_muscleLengthFiftyOne;
242 std::vector< std::vector<double> > m_muscleTensionsAll;
243 std::vector< std::vector<double> > m_muscleLengthsAll;
245 std::vector< std::vector<double> > m_quadCOM;
246 std::vector<double> m_timeStep;
248 std::vector<double> m_tensions;
249 std::vector<double> m_lengths;
252 #endif // JSON_METRICS_FEEDBACK_CONTROL_H
virtual void onSetup(BaseQuadModelLearning &subject)
virtual void onStep(BaseQuadModelLearning &subject, double dt)
virtual void onTeardown(BaseQuadModelLearning &subject)
JSONMetricsFeedbackControl(JSONMetricsFeedbackControl::Config config, std::string args, std::string resourcePath="")
Config(int ss, int tm, int om, int param, int segnum=6, double ct=0.1, double la=0, double ha=30, double lp=-1 *M_PI, double hp=M_PI, double kt=0.0, double kp=1000.0, double kv=100.0, bool def=true, double cl=10.0, double lf=0.0, double hf=30.0, double ffMin=0.0, double ffMax=0.0, double afMin=0.0, double afMax=0.0, double pfMin=0.0, double pfMax=0.0, double maxH=60.0, double minH=1.0)