TSMPController< TSControllerType, MPInterfaceType > Class Template Reference

#include <armarx/control/njoint_mp_controller/task_space/Template.h>

+ Inheritance diagram for TSMPController< TSControllerType, MPInterfaceType >:

Classes

struct  MPDebugData
 

Public Types

using MPListConfig = common::mp::arondto::MPListConfig
 

Public Member Functions

void additionalTask () override
 
void onPublish (const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
 
void rtPreActivateController () override
 
 TSMPController (const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
 
void updateMPConfig (const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
- Public Member Functions inherited from MPPool
void createMPs (const MPListConfig &mpListConfig)
 
DVec deserialize (const std::string &, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
Ice::Double getCanVal (const std::string &mpName, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
::armarx::aron::data::dto::DictPtr getMPConfig (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 config
 
bool getMPEnabled (const Ice::Current &) override
 
std::string getNames (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 Interface functions.
 
bool isFinished (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
bool isFinishedAll (const Ice::Current &=Ice::emptyCurrent) override
 
void learnFromCSV (const Ice::StringSeq &fileNames=std::vector< std::string >(), const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 setting
 
void learnFromTrajs (const ::armarx::aron::data::dto::DictPtr &dict, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
 MPPool ()=default
 
void pause (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void pauseAll (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void reconfigureMPs (const MPListConfig &mpListConfig)
 
void removeAllViaPoint (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void requestStop (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void reset (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void resetAll (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
bool resetMPs (const ::armarx::aron::data::dto::DictPtr &dto, const std::map< std::string, VirtualRobot::RobotNodeSetPtr > &rnsMap)
 
bool resetMPsV1 (const ::armarx::aron::data::dto::DictPtr &dto, const std::map< std::string, VirtualRobot::RobotNodeSetPtr > &rnsMap, const std::shared_ptr< common::coordination::Coordination > &coordinator)
 
bool resetMPsV2 (const ::armarx::aron::data::dto::DictPtr &dto, const std::map< std::string, MPReInitData > &data)
 
void resume (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void resumeAll (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void runMPs (bool rtSafe)
 
std::string serialize (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 serialize
 
void set (const ::armarx::StringDoubleSeqMap &, const ::armarx::StringDoubleSeqMap &, const ::armarx::StringDoubleMap &, const ::Ice::Current &iceCurrent=::Ice::emptyCurrent) override
 
void setGoal (const DVec &goals, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void setStartAndGoal (const DVec &starts, const DVec &goals, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void setViaPoint (Ice::Double u, const DVec &viapoint, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void start (const std::string &mpName="all", const DVec &startVec=std::vector< double >(), const DVec &goalVec=std::vector< double >(), Ice::Double timeDuration=-1.0, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 control
 
void startAll (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void stop (const std::string &mpName="all", const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void stopAll (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void trainMP (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void updateMPConfig (const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
 ~MPPool ()
 
- Public Member Functions inherited from MPPoolInterface
Ice::DoubleSeq deserialize (string mpAsString)
 
double getCanVal (string mpName)
 utilities
 
armarx::aron::data::dto::Dict getMPConfig ()
 
bool getMPEnabled ()
 
string getNames ()
 
bool isFinished (string mpName)
 
bool isFinishedAll ()
 
void learnFromCSV (Ice::StringSeq fileNames)
 setting
 
void learnFromTrajs (armarx::aron::data::dto::Dict config)
 
void pause (string mpName)
 
void pauseAll ()
 
void removeAllViaPoint ()
 
void requestStop (string mpName)
 
void reset (string mpName)
 
void resetAll ()
 
void resume (string mpName)
 
void resumeAll ()
 
string serialize ()
 serialze
 
void set (StringDoubleSeqMap startVec, StringDoubleSeqMap goalVec, StringDoubleMap durationSec)
 control
 
void setGoal (Ice::DoubleSeq goals)
 
void setStartAndGoal (Ice::DoubleSeq starts, Ice::DoubleSeq goals)
 
void setViaPoint (double u, Ice::DoubleSeq viapoint)
 
void start (string mpName, Ice::DoubleSeq startVec, Ice::DoubleSeq goalVec, double durationSec)
 
void startAll ()
 
void stop (string mpName)
 
void stopAll ()
 
void trainMP ()
 
void updateMPConfig (armarx::aron::data::dto::Dict config)
 config
 

Public Attributes

TripleBuffer< MPDebugDatabufferMPToOnPublish
 

Additional Inherited Members

- Protected Member Functions inherited from MPPool
void reInitMPInputOutputData (const std::map< std::string, VirtualRobot::RobotNodeSetPtr > &rnsMap)
 
void reInitMPInputOutputDataV1 (const std::map< std::string, VirtualRobot::RobotNodeSetPtr > &rnsMap, const std::shared_ptr< common::coordination::Coordination > &coordinator)
 
void reInitMPInputOutputDataV2 (const std::map< std::string, MPReInitData > &data)
 
- Protected Attributes inherited from MPPool
std::atomic< bool > isMPReady {false}
 
MPListConfig mpConfig
 this variable is only needed when constructing the MP instances, therefore you don't need to use triple buffers
 
std::map< std::string, MPInputOutputmps
 
std::atomic_bool mpTaskRunning {false}
 
std::recursive_mutex mtx_mps
 
std::map< arondto::MPGroup, PhaseStopResultphaseStops_
 

Detailed Description

template<typename TSControllerType, typename MPInterfaceType>
class armarx::control::njoint_mp_controller::task_space::TSMPController< TSControllerType, MPInterfaceType >

Definition at line 41 of file Template.h.

Member Typedef Documentation

◆ MPListConfig

template<typename TSControllerType, typename MPInterfaceType>
using MPListConfig = common::mp::arondto::MPListConfig

Definition at line 47 of file Template.h.

Constructor & Destructor Documentation

◆ TSMPController()

template<typename TSControllerType, typename MPInterfaceType>
TSMPController ( const RobotUnitPtr & robotUnit,
const NJointControllerConfigPtr & config,
const VirtualRobot::RobotPtr & robot )

Definition at line 82 of file Template.h.

+ Here is the call graph for this function:

Member Function Documentation

◆ additionalTask()

template<typename TSControllerType, typename MPInterfaceType>
void additionalTask ( )
override
  1. Update Status from RT and user configuration update
  1. Update Timing calculations
  1. Check Stop Conditions
  1. Prepare Inputs
  1. Handle RT unsafe logging due to descripancy in desired and current pose
  1. The MPs will envolve one step forward if it is the first run or rtTargetSafe is true
  1. Set mp target to nonRT config data structure
  1. Handle coordinator and set/commit non RT targets/buffer

Definition at line 531 of file Template.h.

+ Here is the call graph for this function:

◆ onPublish()

template<typename TSControllerType, typename MPInterfaceType>
void onPublish ( const SensorAndControl & sac,
const DebugDrawerInterfacePrx & interface,
const DebugObserverInterfacePrx & debugObs )
override

Definition at line 113 of file Template.h.

+ Here is the call graph for this function:

◆ rtPreActivateController()

template<typename TSControllerType, typename MPInterfaceType>
void rtPreActivateController ( )
override

Definition at line 95 of file Template.h.

+ Here is the call graph for this function:

◆ updateMPConfig()

template<typename TSControllerType, typename MPInterfaceType>
void updateMPConfig ( const ::armarx::aron::data::dto::DictPtr & dto,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

Definition at line 134 of file Template.h.

+ Here is the call graph for this function:

Member Data Documentation

◆ bufferMPToOnPublish

template<typename TSControllerType, typename MPInterfaceType>
TripleBuffer<MPDebugData> bufferMPToOnPublish

Definition at line 68 of file Template.h.


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