Go to the documentation of this file.
34 const RobotUnitPtr& robotUnit,
35 const NJointControllerConfigPtr& config,
40 const auto& cfg = bufferUserToAdditionalTask.getUpToDateReadBuffer();
41 createMPs(cfg.mpConfig);
48 return "NJointTSAdmittanceMPController";
66 if (_mp.second.mp->getClassName() ==
"TSMP")
68 mp::TSMPInputPtr in = std::dynamic_pointer_cast<mp::TSMPInput>(_mp.second.input);
69 in->pose =
controller.tcp->getPoseInRootFrame();
70 in->vel =
controller.bufferNonRtToOnPublish.getWriteBuffer().currentTwist;
79 if (_mp.second.mp->getClassName() ==
"TSMP")
81 mp::TSMPOutputPtr out = std::dynamic_pointer_cast<mp::TSMPOutput>(_mp.second.output);
82 rtConfig.desiredPose = out->pose;
83 rtConfig.desiredTwist = out->vel;
91 ARMARX_IMPORTANT <<
"rt pre activate: reinitialize the mp input output, as well as the rt related buffer values";
97 if (_mp.second.mp->getClassName() ==
"TSMP")
101 std::dynamic_pointer_cast<mp::TSMPInput>(_mp.second.input)->pose = currentPose;
102 std::dynamic_pointer_cast<mp::TSMPOutput>(_mp.second.output)->pose = currentPose;
TripleBuffer< BO > bufferUserToAdditionalTask
void additionalTask() override
TripleBuffer< law::RobotStatus > bufferRtToAdditionalTask
TripleBuffer< BO > bufferUserToRt
void rtPreActivateController() override
This function is called before the controller is activated.
const VirtualRobot::RobotPtr & rtGetRobot()
TODO make protected and use attorneys.
virtual void additionalTask()
std::shared_ptr< TSMPOutput > TSMPOutputPtr
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
Brief description of class NJointTaskspaceAdmittanceController.
std::string getClassName(const Ice::Current &) const override
NJointTSAdmittanceMPController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
This file is part of ArmarX.
void reconfigureMPs(const MP::MPListConfig &mpListConfig)
std::shared_ptr< Dict > DictPtr
MatrixXX< 4, 4, float > Matrix4f
void rtPreActivateController() override
This function is called before the controller is activated.
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
NJointController interface.
NJointControllerRegistration< NJointTSAdmittanceMPController > registrationControllerNJointTSAdmittanceMPController("NJointTSAdmittanceMPController")
std::map< std::string, MPInputOutput > mps
std::string kinematicChainName
variables
std::shared_ptr< TSMPInput > TSMPInputPtr
const T & getUpToDateReadBuffer() const
std::shared_ptr< class Robot > RobotPtr