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

#include <OMTaskPositions.h>

Inheritance diagram for Rcs::OMTaskPositions:
Collaboration diagram for Rcs::OMTaskPositions:

Public Member Functions

 OMTaskPositions (Task *task)
 
virtual ~OMTaskPositions ()
 
 OMTaskPositions (const OMTaskPositions &)=delete
 
OMTaskPositionsoperator= (const OMTaskPositions &)=delete
 
 OMTaskPositions (OMTaskPositions &&)=delete
 
OMTaskPositionsoperator= (OMTaskPositions &&)=delete
 
virtual unsigned int getStateDim () const
 
virtual unsigned int getVelocityDim () const
 
virtual void computeObservation (double *state, double *velocity, const MatNd *currentAction, double dt) const
 
virtual void getLimits (double *minState, double *maxState, double *maxVelocity) const
 
virtual std::vector< std::string > getStateNames () const
 
OMTaskPositionssetMinState (double minState)
 
OMTaskPositionssetMinState (std::vector< double > minState)
 
OMTaskPositionssetMaxState (double maxState)
 
OMTaskPositionssetMaxState (std::vector< double > maxState)
 
Task * getTask () 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 void reset ()
 
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
 

Protected Member Functions

void initTaskBodyNames (const char *effectorName, const char *refBodyName, const char *refFrameName)
 

Private Attributes

Task * task
 

Detailed Description

ObservationModel wrapping a Rcs Task.

Note: In contrast to OMTask, this ObservationModel only observes the task space positions called X.

Definition at line 46 of file OMTaskPositions.h.

Constructor & Destructor Documentation

◆ OMTaskPositions() [1/3]

Rcs::OMTaskPositions::OMTaskPositions ( Task *  task)

Wrap the given task. Takes ownership of the task object.

Definition at line 42 of file OMTaskPositions.cpp.

◆ ~OMTaskPositions()

Rcs::OMTaskPositions::~OMTaskPositions ( )
virtual

Definition at line 44 of file OMTaskPositions.cpp.

◆ OMTaskPositions() [2/3]

Rcs::OMTaskPositions::OMTaskPositions ( const OMTaskPositions )
delete

◆ OMTaskPositions() [3/3]

Rcs::OMTaskPositions::OMTaskPositions ( OMTaskPositions &&  )
delete

Member Function Documentation

◆ computeObservation()

void Rcs::OMTaskPositions::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 59 of file OMTaskPositions.cpp.

◆ getLimits()

void Rcs::OMTaskPositions::getLimits ( double *  minState,
double *  maxState,
double *  maxVelocity 
) const
virtual

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 64 of file OMTaskPositions.cpp.

◆ getStateDim()

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

The number of state variables.

Implements Rcs::ObservationModel.

Definition at line 49 of file OMTaskPositions.cpp.

◆ getStateNames()

std::vector< std::string > Rcs::OMTaskPositions::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 72 of file OMTaskPositions.cpp.

◆ getTask()

Task* Rcs::OMTaskPositions::getTask ( ) const
inline

Return the wrapped Rcs Task.

Definition at line 92 of file OMTaskPositions.h.

◆ getVelocityDim()

unsigned int Rcs::OMTaskPositions::getVelocityDim ( ) const
virtual

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

Reimplemented from Rcs::ObservationModel.

Definition at line 54 of file OMTaskPositions.cpp.

◆ initTaskBodyNames()

void Rcs::OMTaskPositions::initTaskBodyNames ( const char *  effectorName,
const char *  refBodyName,
const char *  refFrameName 
)
protected

Initialize the task's effector, refBody and refFrame values by looking up the named bodies from the graph.

Parameters
effectorNameName of effector body, a.k.a. the body controlled by the task.
refBodyNameName of reference body, a.k.a. the body the task coordinates should be relative to. Set to NULL to use the world origin.
refFrameNameName of the reference frame body. The task coordinates will be expressed in this body's frame if set. If this is NULL, refBodyName will be used.

Definition at line 129 of file OMTaskPositions.cpp.

◆ operator=() [1/2]

OMTaskPositions& Rcs::OMTaskPositions::operator= ( OMTaskPositions &&  )
delete

◆ operator=() [2/2]

OMTaskPositions& Rcs::OMTaskPositions::operator= ( const OMTaskPositions )
delete

◆ setMaxState() [1/2]

OMTaskPositions * Rcs::OMTaskPositions::setMaxState ( double  maxState)

Set the upper state limit, broadcasting one value to all elements.

Definition at line 112 of file OMTaskPositions.cpp.

◆ setMaxState() [2/2]

OMTaskPositions * Rcs::OMTaskPositions::setMaxState ( std::vector< double >  maxState)

Set the upper state limit. The number of elements must match the state dimension.

Definition at line 120 of file OMTaskPositions.cpp.

◆ setMinState() [1/2]

OMTaskPositions * Rcs::OMTaskPositions::setMinState ( double  minState)

Set the lower state limit, broadcasting one value to all elements.

Definition at line 95 of file OMTaskPositions.cpp.

◆ setMinState() [2/2]

OMTaskPositions * Rcs::OMTaskPositions::setMinState ( std::vector< double >  minState)

Set the lower state limit. The number of elements must match the state dimension.

Definition at line 103 of file OMTaskPositions.cpp.

Member Data Documentation

◆ task

Task* Rcs::OMTaskPositions::task
private

Wrapped task object (owned!)

Definition at line 109 of file OMTaskPositions.h.


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