NTRT Simulator  v1.1
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
LearningSpineSine Class Reference

#include <LearningSpineSine.h>

Inheritance diagram for LearningSpineSine:
Collaboration diagram for LearningSpineSine:

Public Member Functions

 LearningSpineSine (BaseSpineCPGControl::Config config, std::string args, std::string ec="edgeConfig.ini", std::string nc="nodeConfig.ini")
 
virtual void onSetup (BaseSpineModelLearning &subject)
 
virtual void onStep (BaseSpineModelLearning &subject, double dt)
 
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 setupWaves (BaseSpineModelLearning &subject, array_2D nodeActions, array_2D edgeActions)
 
virtual array_2D scalePhaseActions (std::vector< std::vector< double > > actions)
 
virtual array_2D scaleNodeActions (std::vector< std::vector< double > > actions)
 
virtual array_4D scaleEdgeActions (std::vector< std::vector< double > > actions)
 
virtual void setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
 

Protected Attributes

std::vector
< tgSineStringControl * > 
m_sineControllers
 
CPGEquationsm_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
 

Detailed Description

Inherits from BaseSpineCPGControl, and overrides setupCPGs so different muscle groups can have different ImpedanceControl parameters

Definition at line 39 of file LearningSpineSine.h.

Constructor & Destructor Documentation

LearningSpineSine::LearningSpineSine ( BaseSpineCPGControl::Config  config,
std::string  args,
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 52 of file LearningSpineSine.cpp.

Member Function Documentation

void tgSubject< BaseSpineCPGControl >::attach ( tgObserver< BaseSpineCPGControl > *  pObserver)
inherited

Attach an observer to the subject of the observer.

Parameters
[in,out]pObservera pointer to an observer for the subject; do nothing if the pointer is NULL
void tgSubject< BaseSpineCPGControl >::notifySetup ( )
inherited

Call tgObserver<T>::onSetup() on all observers in the order in which they were attached.

Here is the caller graph for this function:

void tgSubject< BaseSpineCPGControl >::notifyStep ( double  dt)
inherited

Call tgObserver<T>::onStep() on all observers in the order in which they were attached.

Parameters
[in]dtthe number of seconds since the previous call; do nothing if not positive
void tgSubject< BaseSpineCPGControl >::notifyTeardown ( )
inherited

Call tgObserver<T>::onTeardown() on all observers in the order in which they were attached.

Here is the caller graph for this function:

virtual void tgObserver< BaseSpineModelLearning >::onAttach ( BaseSpineModelLearning subject)
inlinevirtualinherited

Notify the observers when an attach action has occurred. Will only occur once, typically before setup

Parameters
[in,out]subjectthe subject being observed

Definition at line 55 of file tgObserver.h.

void LearningSpineSine::onSetup ( BaseSpineModelLearning subject)
virtual

Notify the observers when a setup action has occurred.

Parameters
[in,out]subjectthe subject being observed

Reimplemented from BaseSpineCPGControl.

Definition at line 61 of file LearningSpineSine.cpp.

void LearningSpineSine::onStep ( BaseSpineModelLearning subject,
double  dt 
)
virtual

Notify the observers when a step action has occurred.

Parameters
[in,out]subjectthe subject being observed
[in]thenumber of seconds since the previous call; must be positive

Basically nothing to do. Sine controllers will take care of themselves

Reimplemented from BaseSpineCPGControl.

Definition at line 91 of file LearningSpineSine.cpp.

Here is the call graph for this function:

void LearningSpineSine::onTeardown ( BaseSpineModelLearning subject)
virtual

Notify the observers when a teardown action has occurred.

Parameters
[in,out]subjectthe subject being observed
Todo:
  • consolidate with other controller classes.
Todo:
  • return length scale as a parameter

Reimplemented from BaseSpineCPGControl.

Definition at line 106 of file LearningSpineSine.cpp.

array_4D BaseSpineCPGControl::scaleEdgeActions ( std::vector< std::vector< double > >  actions)
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.

Here is the caller graph for this function:

array_2D LearningSpineSine::scalePhaseActions ( std::vector< std::vector< double > >  actions)
protectedvirtual

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 229 of file LearningSpineSine.cpp.

Here is the caller graph for this function:

void BaseSpineCPGControl::setupCPGs ( BaseSpineModelLearning subject,
array_2D  nodeActions,
array_4D  edgeActions 
)
protectedvirtualinherited
Todo:
: redo with for_each

Reimplemented in KinematicSpineCPGControl, LearningSpineJSON, and TetraSpineCPGControl.

Definition at line 210 of file BaseSpineCPGControl.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: