27 #include <VirtualRobot/VirtualRobot.h>
31 #include <ArmarXCore/interface/observers/VariantBase.h>
35 #include <RobotAPI/interface/core/RobotState.h>
36 #include <RobotAPI/interface/core/RobotStateObserverInterface.h>
37 #include <RobotAPI/interface/units/KinematicUnitInterface.h>
51 defineOptionalProperty<std::string>(
54 "comma seperated list of nodesets' endeffectors, which poses and velocities that "
55 "should be reported. * for all, empty for none");
72 virtual public RobotStateObserverInterface
77 void onInitObserver()
override;
78 void onConnectObserver()
override;
87 return "RobotStateObserver";
91 void updateNodeVelocities(
const NameValueMap& jointVel,
long timestampMicroSeconds);
94 void updateVelocityDatafields(
const FramedDirectionMap& tcpTranslationVelocities,
95 const FramedDirectionMap& tcpOrientationVelocities);
100 std::string robotNodeSetName;
103 std::vector<std::pair<VirtualRobot::RobotNodePtr, std::string>> nodesToReport;
104 std::recursive_mutex dataMutex;
109 void getPoseDatafield_async(
const AMD_RobotStateObserverInterface_getPoseDatafieldPtr& amd,
110 const std::string& nodeName,
111 const Ice::Current&)
const override;