RcsPySim
A robot control and simulation library
Rcs::AMDynamicalSystemActivation Class Reference

#include <AMDynamicalSystemActivation.h>

Inheritance diagram for Rcs::AMDynamicalSystemActivation:
Collaboration diagram for Rcs::AMDynamicalSystemActivation:

Public Member Functions

 AMDynamicalSystemActivation (ActionModel *wrapped, std::vector< DynamicalSystem *> ds, TaskCombinationMethod tcm)
 
virtual ~AMDynamicalSystemActivation ()
 
virtual ActionModelclone (RcsGraph *newGraph) const
 
virtual unsigned int getDim () const
 
virtual void getMinMax (double *min, double *max) const
 
virtual std::vector< std::string > getNames () const
 
virtual void computeCommand (MatNd *q_des, MatNd *q_dot_des, MatNd *T_des, const MatNd *action, double dt)
 
virtual void reset ()
 
virtual void getStableAction (MatNd *action) const
 
Eigen::VectorXd getX () const
 
Eigen::VectorXd getXdot () const
 
virtual ActionModelgetWrappedActionModel () const
 
const std::vector< DynamicalSystem * > & getDynamicalSystems () const
 
MatNd * getActivation () const
 
const char * getTaskCombinationMethodName () const
 
- Public Member Functions inherited from Rcs::ActionModel
 ActionModel (RcsGraph *graph)
 
virtual ~ActionModel ()
 
ActionModelclone () const
 
RcsGraph * getGraph ()
 
void setGraph (RcsGraph *newGraph)
 
const ActionModelunwrapAll () const
 
ActionModelunwrapAll ()
 
template<typename AM >
const AM * unwrap () const
 
template<typename AM >
AM * unwrap ()
 
- Public Member Functions inherited from Rcs::BoxSpaceProvider
 BoxSpaceProvider ()
 
virtual ~BoxSpaceProvider ()
 
 BoxSpaceProvider (const BoxSpaceProvider &)=delete
 
BoxSpaceProvideroperator= (const BoxSpaceProvider &)=delete
 
 BoxSpaceProvider (BoxSpaceProvider &&)=delete
 
BoxSpaceProvideroperator= (BoxSpaceProvider &&)=delete
 
const BoxSpacegetSpace () const
 

Static Public Member Functions

static TaskCombinationMethod checkTaskCombinationMethod (std::string tcmName)
 

Protected Attributes

ActionModelwrapped
 
std::vector< DynamicalSystem * > dynamicalSystems
 
Eigen::VectorXd x
 
Eigen::VectorXd x_dot
 
MatNd * activation
 
TaskCombinationMethod taskCombinationMethod
 
- Protected Attributes inherited from Rcs::ActionModel
RcsGraph * graph
 

Detailed Description

Action model controlling the activations of multiple tasks. Each task is defined by a DynamicalSystem. For every task, there is one activation variable as part of the action space. The activation is a value between 0 and 1, where 0 means to ignore the task completely. The activation values do not need to sum to 1.

Definition at line 45 of file AMDynamicalSystemActivation.h.

Constructor & Destructor Documentation

◆ AMDynamicalSystemActivation()

Rcs::AMDynamicalSystemActivation::AMDynamicalSystemActivation ( ActionModel wrapped,
std::vector< DynamicalSystem *>  ds,
TaskCombinationMethod  tcm 
)
explicit

Constructor

Parameters
[in]wrappedActionModel defining the output space of the tasks (takes ownership)
[in]dsList of dynamical systems (takes ownership)
[in]tcmMode that determines how the different tasks a.k.a. movement primitives are combined

Definition at line 43 of file AMDynamicalSystemActivation.cpp.

◆ ~AMDynamicalSystemActivation()

Rcs::AMDynamicalSystemActivation::~AMDynamicalSystemActivation ( )
virtual

Definition at line 50 of file AMDynamicalSystemActivation.cpp.

Member Function Documentation

◆ checkTaskCombinationMethod()

TaskCombinationMethod Rcs::AMDynamicalSystemActivation::checkTaskCombinationMethod ( std::string  tcmName)
static

Definition at line 233 of file AMDynamicalSystemActivation.cpp.

◆ clone()

ActionModel * Rcs::AMDynamicalSystemActivation::clone ( RcsGraph *  newGraph) const
virtual

Create a deep copy of this action model. The graph the action model operates on is replaced with newGraph.

Parameters
newGraphoptionally, replace the graph used with newGraph.
Returns
deep copy with new graph.

Implements Rcs::ActionModel.

Definition at line 223 of file AMDynamicalSystemActivation.cpp.

◆ computeCommand()

void Rcs::AMDynamicalSystemActivation::computeCommand ( MatNd *  q_des,
MatNd *  q_dot_des,
MatNd *  T_des,
const MatNd *  action,
double  dt 
)
virtual

Compute the joint commands from a specified action and the current state.

Parameters
[out]q_desdesired joint positions
[out]q_dot_desdesired joint velocities
[out]T_desdesired joint torques
[in]actioninput action values
dtdifference in time since the last call.

Implements Rcs::ActionModel.

Definition at line 82 of file AMDynamicalSystemActivation.cpp.

◆ getActivation()

MatNd * Rcs::AMDynamicalSystemActivation::getActivation ( ) const

Definition at line 275 of file AMDynamicalSystemActivation.cpp.

◆ getDim()

unsigned int Rcs::AMDynamicalSystemActivation::getDim ( ) const
virtual

Get the number of DS, i.e. entries in the dynamicalSystems vector, owned by the action model.

Implements Rcs::BoxSpaceProvider.

Definition at line 59 of file AMDynamicalSystemActivation.cpp.

◆ getDynamicalSystems()

const std::vector< DynamicalSystem * > & Rcs::AMDynamicalSystemActivation::getDynamicalSystems ( ) const

Get a vector of the owned dynamical systems.

Definition at line 218 of file AMDynamicalSystemActivation.cpp.

◆ getMinMax()

void Rcs::AMDynamicalSystemActivation::getMinMax ( double *  min,
double *  max 
) const
virtual

Provides minimum and maximum values for the space.

The passed arrays will be large enough to hold getDim() values.

Parameters
[out]minminimum value storage
[out]maxmaximum value storage

Implements Rcs::BoxSpaceProvider.

Definition at line 64 of file AMDynamicalSystemActivation.cpp.

◆ getNames()

std::vector< std::string > Rcs::AMDynamicalSystemActivation::getNames ( ) const
virtual

Provides names for each entry of the space.

These are intended for use in python, i.e., for pandas dataframe column names.

Returns
a vector of name strings. Must be of length getDim() or empty.

Reimplemented from Rcs::BoxSpaceProvider.

Definition at line 73 of file AMDynamicalSystemActivation.cpp.

◆ getStableAction()

void Rcs::AMDynamicalSystemActivation::getStableAction ( MatNd *  action) const
virtual

Obtain action values which would keep the system in the current state. For action variables which are velocities or accelerations, this should be 0. For action variables which are positions, this should be the current position.

Parameters
[out]actionmatrix to write the values into

Implements Rcs::ActionModel.

Definition at line 197 of file AMDynamicalSystemActivation.cpp.

◆ getTaskCombinationMethodName()

const char * Rcs::AMDynamicalSystemActivation::getTaskCombinationMethodName ( ) const

Definition at line 256 of file AMDynamicalSystemActivation.cpp.

◆ getWrappedActionModel()

ActionModel * Rcs::AMDynamicalSystemActivation::getWrappedActionModel ( ) const
virtual

If this ActionModel is a wrapper for another action model, return the wrapped action model. Otherwise, return NULL.

Returns
wrapped action model or NULL if none.

Reimplemented from Rcs::ActionModel.

Definition at line 213 of file AMDynamicalSystemActivation.cpp.

◆ getX()

Eigen::VectorXd Rcs::AMDynamicalSystemActivation::getX ( ) const

Definition at line 203 of file AMDynamicalSystemActivation.cpp.

◆ getXdot()

Eigen::VectorXd Rcs::AMDynamicalSystemActivation::getXdot ( ) const

Definition at line 208 of file AMDynamicalSystemActivation.cpp.

◆ reset()

void Rcs::AMDynamicalSystemActivation::reset ( )
virtual

Called at the start of a rollout to reset any state modified by computeCommand(). This allows to reuse the ActionModel for a new simulation rollout. The graph state will already be reset, so it can be used safely. It will be called before the first rollout too, so it can also be used to setup internals that depend on operations in subclass constructors.

Reimplemented from Rcs::ActionModel.

Definition at line 185 of file AMDynamicalSystemActivation.cpp.

Member Data Documentation

◆ activation

MatNd* Rcs::AMDynamicalSystemActivation::activation
protected

The activation resulting from the action and the task combination method (used for logging)

Definition at line 101 of file AMDynamicalSystemActivation.h.

◆ dynamicalSystems

std::vector<DynamicalSystem*> Rcs::AMDynamicalSystemActivation::dynamicalSystems
protected

List of dynamical systems.

Definition at line 95 of file AMDynamicalSystemActivation.h.

◆ taskCombinationMethod

TaskCombinationMethod Rcs::AMDynamicalSystemActivation::taskCombinationMethod
protected

Way to combine the tasks' contribution.

Definition at line 103 of file AMDynamicalSystemActivation.h.

◆ wrapped

ActionModel* Rcs::AMDynamicalSystemActivation::wrapped
protected

Wrapped action model.

Definition at line 93 of file AMDynamicalSystemActivation.h.

◆ x

Eigen::VectorXd Rcs::AMDynamicalSystemActivation::x
protected

Current state in task space.

Definition at line 97 of file AMDynamicalSystemActivation.h.

◆ x_dot

Eigen::VectorXd Rcs::AMDynamicalSystemActivation::x_dot
protected

Current velocity in task space.

Definition at line 99 of file AMDynamicalSystemActivation.h.


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