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

#include <OMTaskSpaceDiscrepancy.h>

Inheritance diagram for Rcs::OMTaskSpaceDiscrepancy:
Collaboration diagram for Rcs::OMTaskSpaceDiscrepancy:

Public Member Functions

 OMTaskSpaceDiscrepancy (const char *bodyName, const RcsGraph *controllerGraph, const RcsGraph *configGraph, double maxDiscrepancy=1.)
 
virtual ~OMTaskSpaceDiscrepancy ()
 
virtual unsigned int getStateDim () const
 
unsigned int getVelocityDim () const override
 
void getLimits (double *minState, double *maxState, double *maxVelocity) const override
 
virtual void computeObservation (double *state, double *velocity, const MatNd *currentAction, double dt) const
 
void reset () override
 
virtual std::vector< std::string > getStateNames () const
 
- Public Member Functions inherited from Rcs::ObservationModel
virtual ~ObservationModel ()
 
MatNd * computeObservation (const MatNd *currentAction, double dt) const
 
void computeObservation (MatNd *observation, const MatNd *currentAction, double dt) const
 
virtual std::vector< std::string > getVelocityNames () const
 
virtual void getMinMax (double *min, double *max) const final
 
virtual unsigned int getDim () const final
 
virtual std::vector< std::string > getNames () const final
 
template<typename OM >
OM * findModel ()
 
template<typename OM >
Offsets findOffsets ()
 
virtual std::vector< ObservationModel * > getNested () const
 
- 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
 

Private Attributes

RcsBody * bodyController
 
RcsBody * bodyConfig
 
double maxDiscrepancy
 

Detailed Description

ObservationModel computing the discrepancy between a body's position in the desired graph (owned by the controller) and the current graph (owned by the config) in task space.

Definition at line 46 of file OMTaskSpaceDiscrepancy.h.

Constructor & Destructor Documentation

◆ OMTaskSpaceDiscrepancy()

Rcs::OMTaskSpaceDiscrepancy::OMTaskSpaceDiscrepancy ( const char *  bodyName,
const RcsGraph *  controllerGraph,
const RcsGraph *  configGraph,
double  maxDiscrepancy = 1. 
)
explicit

Create from action model. NOTE: assumes that the task activation action model wraps a IK-based action model.

Definition at line 42 of file OMTaskSpaceDiscrepancy.cpp.

◆ ~OMTaskSpaceDiscrepancy()

Rcs::OMTaskSpaceDiscrepancy::~OMTaskSpaceDiscrepancy ( )
virtual

Definition at line 55 of file OMTaskSpaceDiscrepancy.cpp.

Member Function Documentation

◆ computeObservation()

void Rcs::OMTaskSpaceDiscrepancy::computeObservation ( double *  state,
double *  velocity,
const MatNd *  currentAction,
double  dt 
) const
virtual

Implement to fill the observation vector with the observed values.

Parameters
[out]statestate observation vector to fill, has getStateDim() elements.
[out]velocityvelocity observation vector to fill, has getVelocityDim() elements.
[in]currentActionaction in current step. May be NULL if not available.
[in]dttime step since the last observation has been taken

Implements Rcs::ObservationModel.

Definition at line 78 of file OMTaskSpaceDiscrepancy.cpp.

◆ getLimits()

void Rcs::OMTaskSpaceDiscrepancy::getLimits ( double *  minState,
double *  maxState,
double *  maxVelocity 
) const
overridevirtual

Provides the minimum and maximum observable values. Since the velocity is symmetric, only the maximum needs to be provided. The default implementation uses -inf and inf.

Parameters
[out]minStateminimum state vector to fill, has getStateDim() elements.
[out]maxStatemaximum state vector to fill, has getStateDim() elements.
[out]maxVelocitymaximum velocity vector to fill, has getVelocityDim() elements.

Reimplemented from Rcs::ObservationModel.

Definition at line 70 of file OMTaskSpaceDiscrepancy.cpp.

◆ getStateDim()

unsigned int Rcs::OMTaskSpaceDiscrepancy::getStateDim ( ) const
virtual

The number of state variables.

Implements Rcs::ObservationModel.

Definition at line 60 of file OMTaskSpaceDiscrepancy.cpp.

◆ getStateNames()

std::vector< std::string > Rcs::OMTaskSpaceDiscrepancy::getStateNames ( ) const
virtual

Provides names for each state entry.

Returns
a vector of name strings. Must be of length getStateDim() or empty for a nameless space.

Reimplemented from Rcs::ObservationModel.

Definition at line 99 of file OMTaskSpaceDiscrepancy.cpp.

◆ getVelocityDim()

unsigned int Rcs::OMTaskSpaceDiscrepancy::getVelocityDim ( ) const
overridevirtual

The number of velocity variables. The default implementation assumes that for each state there is a velocity.

Reimplemented from Rcs::ObservationModel.

Definition at line 65 of file OMTaskSpaceDiscrepancy.cpp.

◆ reset()

void Rcs::OMTaskSpaceDiscrepancy::reset ( )
overridevirtual

Reset any internal state. This is called to begin a new episode. It should also reset values depending on modifiable physics parameters. This is an optional operation, so the default implementation does nothing.

Reimplemented from Rcs::ObservationModel.

Definition at line 93 of file OMTaskSpaceDiscrepancy.cpp.

Member Data Documentation

◆ bodyConfig

RcsBody* Rcs::OMTaskSpaceDiscrepancy::bodyConfig
private

Definition at line 79 of file OMTaskSpaceDiscrepancy.h.

◆ bodyController

RcsBody* Rcs::OMTaskSpaceDiscrepancy::bodyController
private

Definition at line 78 of file OMTaskSpaceDiscrepancy.h.

◆ maxDiscrepancy

double Rcs::OMTaskSpaceDiscrepancy::maxDiscrepancy
private

Definition at line 82 of file OMTaskSpaceDiscrepancy.h.


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