19 #ifndef BASE_SPINE_CPG_CONTROL_H
20 #define BASE_SPINE_CPG_CONTROL_H
31 #include "boost/multi_array.hpp"
48 typedef boost::multi_array<double, 2> array_2D;
49 typedef boost::multi_array<double, 4> array_4D;
77 double lp = -1 * M_PI,
86 const int segmentSpan;
87 const int theirMuscles;
90 const int segmentNumber;
93 const double controlTime;
98 const double lowPhase;
99 const double highPhase;
102 const double tension;
103 const double kPosition;
104 const double kVelocity;
105 const bool useDefault;
106 const double controlLength;
111 std::string ec =
"edgeConfig.ini",
112 std::string nc =
"nodeConfig.ini");
128 virtual array_4D
scaleEdgeActions (std::vector< std::vector <double> > actions);
129 virtual array_2D scaleNodeActions (std::vector< std::vector <double> > actions);
135 std::vector<tgCPGStringControl*> m_allControllers;
140 std::string edgeConfigFilename;
141 std::string nodeConfigFilename;
155 std::vector<double> initConditions;
157 std::size_t segments;
165 #endif // BASE_SPINE_CPG_CONTROL_H
virtual void onSetup(BaseSpineModelLearning &subject)
virtual void onStep(BaseSpineModelLearning &subject, double dt)
Definition of tgObserver class.
virtual void onTeardown(BaseSpineModelLearning &subject)
virtual void setupCPGs(BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
A template base class for a tensegrity spine.
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)
Definition of tgObserver class.
virtual array_4D scaleEdgeActions(std::vector< std::vector< double > > actions)
BaseSpineCPGControl(BaseSpineCPGControl::Config config, std::string args, std::string ec="edgeConfig.ini", std::string nc="nodeConfig.ini")
Defines a class AnnealAdapter to pass parameters from AnnealEvolution to a controller. Adapting NeuroEvolution to do Simulated Annealing.