NTRT Simulator
 All Classes Files Functions Variables Typedefs Friends Pages
BaseSpineCPGControl Class Reference

#include <BaseSpineCPGControl.h>

Inheritance diagram for BaseSpineCPGControl:
Collaboration diagram for BaseSpineCPGControl:

Classes

struct  Config
 

Public Member Functions

 BaseSpineCPGControl (BaseSpineCPGControl::Config config, std::string args, 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)
 
virtual void onAttach (BaseSpineModelLearning &subject)
 

Protected Member Functions

virtual array_4D scaleEdgeActions (std::vector< std::vector< double > > actions)
 
virtual array_2D scaleNodeActions (std::vector< std::vector< double > > actions)
 
virtual void setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
 

Protected Attributes

CPGEquationsm_pCPGSys
 
std::vector< tgCPGStringControl * > m_allControllers
 

Detailed Description

BaseSpineCPGControl 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. ImpedanceControl 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 59 of file BaseSpineCPGControl.h.

Constructor & Destructor Documentation

BaseSpineCPGControl::BaseSpineCPGControl ( 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 124 of file BaseSpineCPGControl.cpp.

Member Function Documentation

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 54 of file tgObserver.h.

void BaseSpineCPGControl::onSetup ( BaseSpineModelLearning subject)
virtual

Notify the observers when a setup action has occurred.

Parameters
[in,out]subjectthe subject being observed

Reimplemented from tgObserver< BaseSpineModelLearning >.

Definition at line 148 of file BaseSpineCPGControl.cpp.

void BaseSpineCPGControl::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

Implements tgObserver< BaseSpineModelLearning >.

Definition at line 223 of file BaseSpineCPGControl.cpp.

Here is the call graph for this function:

void BaseSpineCPGControl::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 tgObserver< BaseSpineModelLearning >.

Definition at line 241 of file BaseSpineCPGControl.cpp.

array_4D BaseSpineCPGControl::scaleEdgeActions ( 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 297 of file BaseSpineCPGControl.cpp.

Here is the caller graph for this function:

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

Reimplemented in TetraSpineCPGControl.

Definition at line 181 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: