NTRT Simulator
Version: Master
|
#include <KinematicSpineCPGControl.h>
Public Member Functions | |
KinematicSpineCPGControl (BaseSpineCPGControl::Config config, std::string args, std::string resourcePath="", std::string ec="edgeConfig.ini", std::string nc="nodeConfig.ini") | |
virtual void | onStep (BaseSpineModelLearning &subject, double dt) |
virtual void | onSetup (BaseSpineModelLearning &subject) |
virtual void | onTeardown (BaseSpineModelLearning &subject) |
const double | getCPGValue (std::size_t i) const |
double | getScore () const |
virtual void | onAttach (BaseSpineModelLearning &subject) |
void | attach (tgObserver< BaseSpineCPGControl > *pObserver) |
void | notifyStep (double dt) |
void | notifySetup () |
void | notifyTeardown () |
Protected Member Functions | |
virtual void | setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions) |
virtual array_4D | scaleEdgeActions (std::vector< std::vector< double > > actions) |
virtual array_2D | scaleNodeActions (std::vector< std::vector< double > > actions) |
Protected Attributes | |
CPGEquations * | m_pCPGSys |
std::vector < tgCPGActuatorControl * > | m_allControllers |
BaseSpineCPGControl::Config | m_config |
std::string | edgeConfigFilename |
std::string | nodeConfigFilename |
configuration | nodeConfigData |
configuration | edgeConfigData |
AnnealEvolution | edgeEvolution |
AnnealEvolution | nodeEvolution |
AnnealAdapter | edgeAdapter |
AnnealAdapter | nodeAdapter |
bool | nodeLearning |
bool | edgeLearning |
std::vector< double > | initConditions |
std::size_t | segments |
tgDataObserver | m_dataObserver |
double | m_updateTime |
std::vector< double > | scores |
bool | bogus |
KinematicSpineCPGControl learns the parameters for a CPG system on a spine like tensegrity structure specified as a BaseSpineModelLearning. Parameters are generated by AnnealEvolution and used in the CPGEquations family of classes. tgImpedanceController controllers are used for the detailed muscle control. Due to the number of parameters, the learned parameters are split into one config file for the nodes and another for the CPG's "edges"
Definition at line 40 of file KinematicSpineCPGControl.h.
KinematicSpineCPGControl::KinematicSpineCPGControl | ( | BaseSpineCPGControl::Config | config, |
std::string | args, | ||
std::string | resourcePath = "" , |
||
std::string | ec = "edgeConfig.ini" , |
||
std::string | nc = "nodeConfig.ini" |
||
) |
Defining the adapters here assumes the controller is around and attached for the lifecycle of the learning runs. I.E. that the setup and teardown functions are used for tgModel
Definition at line 57 of file KinematicSpineCPGControl.cpp.
|
inherited |
Attach an observer to the subject of the observer.
[in,out] | pObserver | a pointer to an observer for the subject; do nothing if the pointer is NULL |
|
inherited |
Call tgObserver<T>::onSetup() on all observers in the order in which they were attached.
|
inherited |
Call tgObserver<T>::onStep() on all observers in the order in which they were attached.
[in] | dt | the number of seconds since the previous call; do nothing if not positive |
|
inherited |
Call tgObserver<T>::onTeardown() on all observers in the order in which they were attached.
|
inlinevirtualinherited |
Notify the observers when an attach action has occurred. Will only occur once, typically before setup
[in,out] | subject | the subject being observed |
Definition at line 55 of file tgObserver.h.
|
virtualinherited |
Notify the observers when a setup action has occurred.
[in,out] | subject | the subject being observed |
Reimplemented from tgObserver< BaseSpineModelLearning >.
Reimplemented in SpineGoalControl, SpineOnlineControl, SpineFeedbackControl, OctaCLSine, and LearningSpineSine.
Definition at line 175 of file BaseSpineCPGControl.cpp.
|
virtualinherited |
Notify the observers when a step action has occurred.
[in,out] | subject | the subject being observed |
[in] | the | number of seconds since the previous call; must be positive |
Implements tgObserver< BaseSpineModelLearning >.
Reimplemented in SpineGoalControl, SpineOnlineControl, SpineFeedbackControl, OctaCLSine, and LearningSpineSine.
Definition at line 253 of file BaseSpineCPGControl.cpp.
|
virtualinherited |
Notify the observers when a teardown action has occurred.
[in,out] | subject | the subject being observed |
Reimplemented from tgObserver< BaseSpineModelLearning >.
Reimplemented in SpineGoalControl, SpineOnlineControl, SpineFeedbackControl, OctaCLSine, and LearningSpineSine.
Definition at line 281 of file BaseSpineCPGControl.cpp.
|
protectedvirtualinherited |
Takes a vector of parameters reported by learning, and then converts it into a format used to assign to the CPGEdges Note that if the CPG edges change, this will need to change
Definition at line 364 of file BaseSpineCPGControl.cpp.
|
protectedvirtual |
Reimplemented from BaseSpineCPGControl.
Definition at line 68 of file KinematicSpineCPGControl.cpp.
|
protectedinherited |
Handles getting parameters from and returning scores to the evolution object. Needs to persist throughout a simulation
Definition at line 175 of file BaseSpineCPGControl.h.
|
protectedinherited |
Hold the filename that gets passed to the respective configuration objects Having two of each of these allows for different groups of parameters to be specified
Definition at line 154 of file BaseSpineCPGControl.h.
|
protectedinherited |
The object that holds all of the data for the evolution run in vectors of populations. Needs to persist throughout a simulation
Definition at line 168 of file BaseSpineCPGControl.h.
|
protectedinherited |
A file input/output system that uses .ini files. The object converts a string to data in the filename that it has been passed.
Definition at line 161 of file BaseSpineCPGControl.h.
|
protectedinherited |
A booelan that indicates whether the respective group is learning this run. Is passed to the evolution adapter
Definition at line 181 of file BaseSpineCPGControl.h.