Go to the documentation of this file.
25 #include <VirtualRobot/Robot.h>
34 #include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
56 using ConfigPtrT = ConfigurableNJointControllerConfigPtr;
59 using RtStatus = law::TaskspaceMixedImpedanceVelocityController::RtStatus;
66 std::vector<ControlTarget1DoFActuatorVelocity*>
targetsVel;
104 const NJointControllerConfigPtr& config,
107 std::string
getClassName(
const Ice::Current& = Ice::emptyCurrent)
const override;
114 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
117 const Ice::Current& = Ice::emptyCurrent)
override;
119 getConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
121 Ice::FloatSeq
getTCPVel(
const std::string& rns,
122 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
128 const bool forceGuard,
129 const bool torqueGuard,
130 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
132 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
137 const std::map<std::string, ConstControlDevicePtr>&,
138 const std::map<std::string, ConstSensorDevicePtr>&);
151 void limbInit(
const std::string nodeSetName,
159 const size_t nDoFTorque,
160 const size_t nDoFVelocity,
161 const Eigen::VectorXf& targetTorque,
162 const Eigen::VectorXf& targetVelocity);
168 std::map<std::string, ArmPtr>
limb;
void rtPreActivateController() override
This function is called before the controller is activated.
std::shared_ptr< HandControlBase > HandControlPtr
std::string getClassName(const Ice::Current &=Ice::emptyCurrent) const override
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
TODO make protected and use attorneys.
void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
std::map< std::string, VariantBasePtr > StringVariantBaseMap
std::map< std::string, ArmPtr > limb
void handleRTNotSafeInNonRT()
std::map< std::string, VirtualRobot::RobotNodeSetPtr > controllableNodeSets
bool updateTargetPose(const TargetPoseMap &targetPoseMap, const TargetNullspaceMap &targetNullspaceMap, const Ice::Current &=Ice::emptyCurrent) override
virtual void additionalTask()
Config nonRtConfig
set data containers and buffers
common::control_law::arondto::TaskspaceMixedImpedanceVelocityControllerConfigDict ConfigDict
std::atomic_bool reInitPreActivate
NJointControllerConfigPtr ConfigPtrT
std::vector< ControlTarget1DoFActuatorVelocity * > targetsVel
std::string kinematicChainName
names
TripleBuffer< RtStatus > bufferRtStatusToUser
void limbInit(const std::string nodeSetName, ArmPtr &arm, Config &cfg, VirtualRobot::RobotPtr &nonRtRobotPtr)
void validateConfigData(Config &config, ArmPtr &arm)
TripleBuffer< RtStatus > bufferRtStatusToOnPublish
::armarx::aron::data::dto::DictPtr getConfig(const Ice::Current &iceCurrent=Ice::emptyCurrent) override
dictionary< string, Ice::FloatSeq > TargetNullspaceMap
std::vector< size_t > torqueControlledIndex
TripleBuffer< Config > bufferConfigUserToNonRt
Brief description of class NJointTaskspaceMixedImpedanceVelocityController.
void limbNonRT(ArmPtr &arm)
common::control_law::arondto::TaskspaceMixedImpedanceVelocityControllerConfig Config
void enableSafeGuardForceTorque(const std::string &nodeSetName, const bool forceGuard, const bool torqueGuard, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
VirtualRobot::RobotPtr nonRtRobot
robot
TripleBuffer< Config > bufferConfigRtToOnPublish
NJointTaskspaceMixedImpedanceVelocityController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
TripleBuffer< Config > bufferConfigNonRtToRt
void limbRTUpdateStatus(ArmPtr &arm, const double deltaT)
-----------------------------— Real time cotnrol --------------------------------------—
bool isSafeForceTorque(const std::string &nodeSetName, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
-----------------------------— Other interaces ----------------------------------------—
void limbReInit(ArmPtr &arm)
Ice::FloatSeq getTCPVel(const std::string &rns, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
This file is part of ArmarX.
bool additionalTaskUpdateStatus()
common::SensorDevicesForNJointTorqueController sensorDevices
devices
VirtualRobot::RobotPtr nonRtRobot
std::vector< size_t > velocityControlledIndex
armarx::core::time::DateTime Time
void limbRT(ArmPtr &arm, const double deltaT)
law::TaskspaceMixedImpedanceVelocityController controller
controller (maths)
void calibrateFTSensor()
ft sensor
void onInitNJointController() override
NJointControllerBase interface.
std::shared_ptr< Dict > DictPtr
void rtPostDeactivateController() override
This function is called after the controller is deactivated.
void limbRTSetTarget(ArmPtr &arm, const size_t nDoFTorque, const size_t nDoFVelocity, const Eigen::VectorXf &targetTorque, const Eigen::VectorXf &targetVelocity)
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
NJointController interface.
std::vector< ControlTarget1DoFActuatorTorque * > targetsTorque
static WidgetDescription::WidgetPtr GenerateConfigDescription(const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &, const std::map< std::string, ConstSensorDevicePtr > &)
--------------------------------— GUI Widget ------------------------------------------—
std::atomic_bool rtFirstRun
flags
core::HandControlPtr hands
dictionary< string, FloatSeqSeq > TargetPoseMap
std::vector< std::string > jointNames
static ConfigPtrT GenerateConfigFromVariants(const StringVariantBaseMap &values)
law::TaskspaceMixedImpedanceVelocityController::Config Config
TripleBuffer< RtStatus > bufferRtStatusToNonRt
law::TaskspaceMixedImpedanceVelocityController::RtStatus RtStatus
void limbPublish(ArmPtr &arm, const DebugObserverInterfacePrx &debugObs)
std::unique_ptr< ArmData > ArmPtr
void additionalTaskSetTarget()
TripleBuffer< Config > bufferConfigRtToUser
law::TaskspaceMixedImpedanceVelocityController::ConfigDict ConfigDict
std::shared_ptr< class Robot > RobotPtr