29#include <armarx/control/njoint_mp_controller/task_space/ControllerInterface.h>
33 using namespace armarx::control::njoint_controller::task_space;
34 using namespace armarx::control::common;
106 virtual public NJointBiKACInterface
112 const NJointControllerConfigPtr& config,
115 std::string
getClassName(
const Ice::Current& = Ice::emptyCurrent)
const override;
117 void updateMPConfig(const ::armarx::aron::data::dto::DictPtr& dto,
118 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
120 getMPConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
122 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
124 getBiKACConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
148 std::atomic<bool> isConstraintReady{
false};
A simple triple buffer for lockfree comunication between a single writer and a single reader.
NJointTaskspaceImpedanceController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
std::unique_ptr< ArmData > ArmPtr
std::string getClassName(const Ice::Current &=Ice::emptyCurrent) const override
void additionalTask() override
void updateConstraintStatus(const bool rtSafe)
void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
BiKACConfig biKacConfigForDebug
void limbNonRT(ArmPtr &arm)
NJointBiKAC(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
MPListConfig mpConfig
this variable is only needed when constructing the MP instances, therefore you don't need to use trip...
void updateBiKACConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
common::mp::arondto::MPListConfig MPListConfig
::armarx::aron::data::dto::DictPtr getBiKACConfig(const Ice::Current &iceCurrent=Ice::emptyCurrent) override
TripleBuffer< BiKACConfig > bufferBiKACConfig
armarx::aron::data::dto::Dict getMPConfig()
Matrix< float, 6, 1 > Vector6f
std::shared_ptr< class Robot > RobotPtr
::IceInternal::Handle< Dict > DictPtr
This file is part of ArmarX.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceUtil::Handle< class RobotUnit > RobotUnitPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx
detail::ControlThreadOutputBufferEntry SensorAndControl
Eigen::Vector6f desiredVel
std::vector< int > constraintIdxList
Eigen::Vector6f forceTorque
Eigen::Matrix4f desiredPose
Eigen::Vector6f desiredAcc
Eigen::Vector6f kdAdmittance
Eigen::Vector6f kpAdmittance
std::vector< Constraint > cList
std::map< std::string, AdmittanceData > admittanceData
Eigen::Vector6f kmAdmittance
Eigen::Matrix4f poseDiffKptLocal
float keypointPositionFilter
Eigen::Vector3f trackingForceLocal
Eigen::Vector3f trackingForceRoot
Eigen::Matrix4f poseDiffFrameLocal
Eigen::Vector3f pcaMeanLocal
Eigen::Matrix4f currentKptPoseRoot
Eigen::Matrix4f currentKptPoseLocal
Eigen::Matrix4f targetKptPoseRoot
Eigen::Matrix4f targetKptPoseLocal
Eigen::Vector6f currentKptVelocityRoot
float keypointForceFilter
Eigen::Vector6f currentKptVelocityLocal
Eigen::Matrix4f currentFrameRoot
Eigen::Matrix3f pcaComponentsLocal
float keypointVelocityFilter