27 #include <ArmarXCore/interface/observers/VariantBase.h>
28 #include <RobotAPI/interface/units/KinematicUnitInterface.h>
29 #include <RobotAPI/interface/core/RobotStateObserverInterface.h>
30 #include <RobotAPI/interface/core/RobotState.h>
34 #include <VirtualRobot/VirtualRobot.h>
51 defineOptionalProperty<std::string>(
"TCPsToReport",
"",
"comma seperated list of nodesets' endeffectors, which poses and velocities that should be reported. * for all, empty for none");
68 virtual public RobotStateObserverInterface
73 void onInitObserver()
override;
74 void onConnectObserver()
override;
82 return "RobotStateObserver";
86 void updateNodeVelocities(
const NameValueMap& jointVel,
long timestampMicroSeconds);
89 void updateVelocityDatafields(
const FramedDirectionMap& tcpTranslationVelocities,
const FramedDirectionMap& tcpOrientationVelocities);
93 std::string robotNodeSetName;
96 std::vector<std::pair<VirtualRobot::RobotNodePtr, std::string> > nodesToReport;
97 std::recursive_mutex dataMutex;
102 void getPoseDatafield_async(
103 const AMD_RobotStateObserverInterface_getPoseDatafieldPtr& amd,
104 const std::string& nodeName,
105 const Ice::Current&)
const override;