Go to the documentation of this file.
25 #include <VirtualRobot/Robot.h>
32 #include <armarx/control/common/control_law/aron/ZeroTorqueOrVelocityControllerConfig.aron.generated.h>
34 #include <armarx/control/interface/ConfigurableNJointControllerInterface.h>
35 #include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
57 using ConfigPtrT = ConfigurableNJointControllerConfigPtr;
61 using Config = common::control_law::arondto::ZeroTorqueOrVelocityControllerConfig;
62 using ConfigDict = common::control_law::arondto::ZeroTorqueOrVelocityControllerConfigDict;
68 std::vector<ControlTarget1DoFActuatorZeroVelocity*>
targetsVel;
87 law::ZeroTorqueOrVelocityController::RtStatus
rtStatus;
99 using ArmPtr = std::unique_ptr<ArmData>;
102 const NJointControllerConfigPtr& config,
105 std::string
getClassName(
const Ice::Current&)
const override;
112 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
115 getConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
119 const std::map<std::string, ConstControlDevicePtr>&,
120 const std::map<std::string, ConstSensorDevicePtr>&);
134 void limbInit(
const std::string nodeSetName,
143 std::map<std::string, ArmPtr>
limb;
void rtPreActivateController() override
This function is called before the controller is activated.
std::string getClassName(const Ice::Current &) const override
void rtPostDeactivateController() override
This function is called after the controller is deactivated.
std::map< std::string, VariantBasePtr > StringVariantBaseMap
std::vector< ControlTarget1DoFActuatorZeroTorque * > targetsTorque
::armarx::aron::data::dto::DictPtr getConfig(const Ice::Current &iceCurrent=Ice::emptyCurrent) override
TripleBuffer< law::ZeroTorqueOrVelocityController::RtStatus > bufferRtStatusToUser
void limbRT(ArmPtr &arm, const double deltaT)
NJointControllerConfigPtr ConfigPtrT
law::ZeroTorqueOrVelocityController controller
std::atomic_bool rtFirstRun
std::vector< std::string > jointNames
void limbReInit(ArmPtr &arm)
std::vector< size_t > velocityControlledIndex
std::unique_ptr< ArmData > ArmPtr
TripleBuffer< Config > bufferUserToNonRt
set buffers
law::ZeroTorqueOrVelocityController::RtStatus rtStatusInNonRT
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
TODO make protected and use attorneys.
TripleBuffer< Config > bufferNonRtToRt
std::map< std::string, ArmPtr > limb
VirtualRobot::RobotPtr nonRtRobot
void limbInit(const std::string nodeSetName, ArmPtr &arm, Config cfg, VirtualRobot::RobotPtr &nonRtRobotPtr)
This file is part of ArmarX.
Brief description of class NJointTaskspaceZeroTorqueOrVelocityController.
static WidgetDescription::WidgetPtr GenerateConfigDescription(const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &, const std::map< std::string, ConstSensorDevicePtr > &)
TripleBuffer< law::ZeroTorqueOrVelocityController::RtStatus > bufferRtStatusToOnPublish
armarx::core::time::DateTime Time
void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
law::ZeroTorqueOrVelocityController::RtStatus rtStatus
static ConfigPtrT GenerateConfigFromVariants(const StringVariantBaseMap &values)
std::shared_ptr< Dict > DictPtr
void validateConfigData(Config &config, ArmPtr &arm)
std::vector< size_t > torqueControlledIndex
TripleBuffer< law::ZeroTorqueOrVelocityController::RtStatus > bufferRtToNonRt
void limbPublish(ArmPtr &arm, const DebugObserverInterfacePrx &debugObs)
TripleBuffer< Config > bufferRtConfigToOnPublish
std::string kinematicChainName
common::control_law::arondto::ZeroTorqueOrVelocityControllerConfigDict ConfigDict
void onInitNJointController() override
NJointControllerBase interface.
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
NJointController interface.
common::SensorDevicesForNJointTorqueController sensorDevices
NJointTaskspaceZeroTorqueOrVelocityController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
std::vector< ControlTarget1DoFActuatorZeroVelocity * > targetsVel
TripleBuffer< Config > bufferRtConfigToUser
common::control_law::arondto::ZeroTorqueOrVelocityControllerConfig Config
std::shared_ptr< class Robot > RobotPtr
VirtualRobot::RobotPtr nonRtRobot