19 #ifndef JSON_MG_CPG_GENERAL_CONTROL_H
20 #define JSON_MG_CPG_GENERAL_CONTROL_H
36 #include "boost/multi_array.hpp"
42 #include <json/value.h>
52 typedef boost::multi_array<double, 2> array_2D;
53 typedef boost::multi_array<double, 3> array_3D;
81 double lp = -1 * M_PI,
92 const int segmentSpan;
93 const int theirMuscles;
96 const int segmentNumber;
99 const double controlTime;
103 const double highAmp;
104 const double lowFreq;
105 const double highFreq;
106 const double lowPhase;
107 const double highPhase;
110 const double tension;
111 const double kPosition;
112 const double kVelocity;
113 const bool useDefault;
114 const double controlLength;
119 std::string resourcePath =
"");
129 const double getCPGValue(std::size_t i)
const;
131 double getScore()
const;
140 virtual array_2D scaleNodeActions (Json::Value actions);
146 std::vector<tgCPGMGActuatorControl*> m_allControllers;
150 std::vector<double> initConditions;
152 std::size_t segments;
159 std::vector<double> scores;
160 std::vector<double> metrics;
164 std::string controlFilename;
165 std::string controlFilePath;
168 #endif // JSON_MG_CPG_GENERAL_CONTROL_H
Definition of tgObserver class.
Implementing the Flemons quadruped model (roughly), but as a subclass of Brian's BaseSpineModelLearni...
virtual void onTeardown(BaseQuadModelLearning &subject)
Definition of tgSubject class.
virtual array_3D scaleEdgeActions(Json::Value edgeParam)
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)
Definition of tgObserver class.
virtual void onSetup(BaseQuadModelLearning &subject)
JSONMGCPGGeneralControl(JSONMGCPGGeneralControl::Config config, std::string args, std::string resourcePath="")
virtual void setupCPGs(BaseQuadModelLearning &subject, array_2D nodeActions, array_3D edgeActions)
virtual void onStep(BaseQuadModelLearning &subject, double dt)