Go to the documentation of this file.
25 #include <VirtualRobot/VirtualRobot.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>
39 class ControlTarget1DoFActuatorZeroTorque;
40 class ControlTarget1DoFActuatorZeroVelocity;
63 using ConfigPtrT = ConfigurableNJointControllerConfigPtr;
67 using Config = common::control_law::arondto::ZeroTorqueOrVelocityControllerConfig;
68 using ConfigDict = common::control_law::arondto::ZeroTorqueOrVelocityControllerConfigDict;
74 std::vector<ControlTarget1DoFActuatorZeroVelocity*>
targetsVel;
93 law::ZeroTorqueOrVelocityController::RtStatus
rtStatus;
108 const NJointControllerConfigPtr& config,
111 std::string
getClassName(
const Ice::Current&)
const override;
118 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
121 getConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
125 const std::map<std::string, ConstControlDevicePtr>&,
126 const std::map<std::string, ConstSensorDevicePtr>&);
140 void limbInit(
const std::string nodeSetName,
149 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
This file offers overloads of toIce() and fromIce() functions for STL container types.
TripleBuffer< Config > bufferRtConfigToUser
common::control_law::arondto::ZeroTorqueOrVelocityControllerConfig Config
std::shared_ptr< class Robot > RobotPtr
VirtualRobot::RobotPtr nonRtRobot