28 #include <VirtualRobot/VirtualRobot.h>
33 #include <armarx/control/interface/ConfigurableNJointControllerInterface.h>
34 #include <armarx/view_selection/gaze_controller/hemisphere/aron/ControllerConfig.aron.generated.h>
40 class ControlTarget1DoFActuatorPosition;
50 std::optional<armarx::view_selection::gaze_controller::Target>
target;
66 virtual public armarx::control::ConfigurableNJointControllerInterface
69 using ConfigPtrT = control::ConfigurableNJointControllerConfigPtr;
72 const NJointControllerConfigPtr& config,
78 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
81 getConfig(const ::Ice::Current& = ::Ice::emptyCurrent)
override;
91 std::string
getClassName(
const Ice::Current& = Ice::emptyCurrent)
const override;
111 std::string _rtGazeNodeName;
112 VirtualRobot::RobotNodePtr _rtGazeNode;
113 VirtualRobot::RobotNodePtr _rtYawNode;
114 VirtualRobot::RobotNodePtr _rtHemiANode;
115 VirtualRobot::RobotNodePtr _rtHemiBNode;
116 VirtualRobot::RobotNodePtr _rtCameraNode;
120 armarx::ControlTarget1DoFActuatorPosition* _rtYawCtrlTarget;
121 armarx::ControlTarget1DoFActuatorPosition* _rtHemiACtrlTarget;
122 armarx::ControlTarget1DoFActuatorPosition* _rtHemiBCtrlTarget;
125 float* _rtPitchCtrlPos;
126 float* _rtYawCtrlPos;
129 mutable std::recursive_mutex _tripRt2NonRtMutex;
133 std::atomic<float> _publishCurrentYawAngle = 0.0;
135 std::atomic<float> _publishTargetYawAngle = 0.0;
136 std::atomic<float> _publishPlatformOrientation = 0.0;