25#include <VirtualRobot/VirtualRobot.h>
30#include <armarx/control/interface/ConfigurableNJointControllerInterface.h>
32#include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
36 namespace law = armarx::control::common::control_law;
54 using ConfigPtrT = ConfigurableNJointControllerConfigPtr;
55 using AronDTO = law::arondto::KeypointControllerConfig;
56 using BO = law::KeypointsImpedanceController::Config;
59 const NJointControllerConfigPtr& config,
62 std::string
getClassName(
const Ice::Current&)
const override;
64 void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
65 const IceUtil::Time& timeSinceLastIteration)
override;
70 void updateConfig(const ::armarx::aron::data::dto::DictPtr& dto,
71 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
73 getConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
93 std::vector<ControlTarget1DoFActuatorTorque*>
targets;
A simple triple buffer for lockfree comunication between a single writer and a single reader.
std::atomic_bool rtFirstRun
void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
void onInitNJointController() override
NJointControllerBase interface.
ConfigurableNJointControllerConfigPtr ConfigPtrT
TripleBuffer< BO > bufferUserToAdditionalTask
set buffers
::armarx::aron::data::dto::DictPtr getConfig(const Ice::Current &iceCurrent=Ice::emptyCurrent) override
std::vector< ControlTarget1DoFActuatorTorque * > targets
std::string kinematicChainName
variables
law::arondto::KeypointControllerConfig AronDTO
std::vector< std::string > jointNames
NJointKeypointsImpedanceController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
void validateConfigData(BO &config)
void rtPostDeactivateController() override
This function is called after the controller is deactivated.
virtual void additionalTask()
common::control_law::ControlTarget controlTargets
std::atomic_bool reInitPreActivate
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
TODO make protected and use attorneys.
TripleBuffer< BO > bufferUserToRt
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
NJointController interface.
TripleBuffer< BO > bufferAdditionalTaskToUser
law::KeypointsImpedanceController::Config BO
VirtualRobot::RobotPtr nonRtRobot
TripleBuffer< law::RobotStatus > bufferRtToAdditionalTask
std::string getClassName(const Ice::Current &) const override
void rtPreActivateController() override
This function is called before the controller is activated.
SensorDevices sensorDevices
std::shared_ptr< class Robot > RobotPtr
::IceInternal::Handle< Dict > DictPtr
This file is part of ArmarX.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
SynchronousNJointController NJointController
IceUtil::Handle< class RobotUnit > RobotUnitPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx
detail::ControlThreadOutputBufferEntry SensorAndControl
TODO remove, only used by keypoint controllers.
std::vector< const SensorValue1DoFActuatorTorque * > torqueSensors
std::vector< const SensorValue1DoFActuatorPosition * > positionSensors
std::vector< const SensorValue1DoFActuatorVelocity * > velocitySensors