25#include <VirtualRobot/VirtualRobot.h>
27#include <ArmarXCore/interface/observers/ObserverInterface.h>
32#include <armarx/control/common/control_law/aron/HandStatus.aron.generated.h>
33#include <armarx/control/interface/HandShapeControllerInterface.h>
37 namespace law = armarx::control::common::control_law;
65 hand::HandShapeControllerInterfacePrx
ctrl;
96 const VirtualRobot::RobotNodeSetPtr& robotNodeSet,
120 std::map<std::string, HandPtr>
hands;
A simple triple buffer for lockfree comunication between a single writer and a single reader.
void rtPostDeactivate(HandConfigDict &cfgToUpdate)
void onPublish(const DebugObserverInterfacePrx &debugObs)
std::unique_ptr< HandData > HandPtr
void getConfig(HandConfigDict &cfgToUpdate)
law::arondto::HandStatus HandConfig
void nonRtActivateController()
std::map< std::string, HandPtr > hands
void updateRTStatus(double deltaT)
void limbPublish(HandPtr &hand, const DebugObserverInterfacePrx &debugObs)
HandControlBase(const RobotUnitPtr &robotUnit, const VirtualRobot::RobotPtr &rtRobot, const HandConfigDict &cfg)
std::map< std::string, HandConfig > HandConfigDict
void reinitBuffer(HandConfigDict &cfgToUpdate)
void updateConfig(const HandConfigDict &cfg)
std::shared_ptr< class Robot > RobotPtr
This file is part of ArmarX.
This file is part of ArmarX.
std::shared_ptr< HandControlBase > HandControlPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceUtil::Handle< class RobotUnit > RobotUnitPtr
TripleBuffer< HandConfig > bufferUserToNonRT
float deltaJointValueThreshold
hand::HandShapeControllerInterfacePrx ctrl
std::string kinematicChainName
names
std::vector< std::string > jointNames
void validate()
----------------------------------— HandData ------------------------------------------—
TripleBuffer< HandConfig > bufferConfigNonRTToUser
HandConfig prevTargetNonRT
TripleBuffer< HandConfig > bufferConfigNonRTToOnPublish
Eigen::VectorXf jointLimMax
std::map< std::string, float > desiredJointPositionMap
Eigen::VectorXf jointLimMin
double nonRTAccumulateTime
TripleBuffer< RTStatus > bufferRTToNonRT
HandData(const RobotUnitPtr &robotUnit, const VirtualRobot::RobotNodeSetPtr &robotNodeSet, const HandConfig &cfg)