4#include <experimental/memory>
16#include <VirtualRobot/VirtualRobot.h>
28#include <armarx/view_selection/gaze_controller/ice/GazeControllerStatus.h>
93 void scheduleNextTarget();
106 const std::string& reason,
111 std::optional<armem::MemoryID> gazeTargetIDOf(
const std::string& targetName)
const;
115 void resetRequestedTargets();
117 void visualizeActiveTarget();
125 std::atomic_bool _clearGazeTargets =
false;
126 std::mutex _newGazeTargetsMutex;
127 std::vector<gaze_targets::GazeTarget> _newGazeTargets;
128 using RequestedTargets = std::multiset<gaze_targets::GazeTarget, std::greater<>>;
129 RequestedTargets requestedTargets;
133 std::map<std::string, armem::MemoryID> gazeTargetIDs;
136 std::int64_t currentTargetId = 0;
139 bool reachedEmitted =
false;
140 bool unreachableEmitted =
false;
static DateTime Invalid()
IceUtil::Handle< PeriodicTask< T > > pointer_type
Shared pointer type for convenience.
A simple triple buffer for lockfree comunication between a single writer and a single reader.
Represents a point in time.
Debounces the low-level controller's residual into a "reached" / "unreachable" decision for one contr...
void handleControllerStatus(const gaze_controller::GazeControllerStatus &status)
Feed one report from the low-level controller.
void submitToQueue(gaze_targets::GazeTarget target, armem::MemoryID gazeTargetID)
Queue a request.
Scheduler(const InjectedServices &srv, const Params ¶ms)
void resetPriorityQueue()
void handleTargetUpdate(const gaze_targets::GazeTarget &memoryTarget)
Business Object (BO) class of GazeTarget.
std::shared_ptr< class Robot > RobotPtr
Periodic report of the low-level gaze controller's residual.
Thresholds deciding when the gaze counts as fixed on the active target.
std::experimental::observer_ptr< viz::Client > arviz
std::experimental::observer_ptr< ControllerHandlerInterface > controllerHandler
std::experimental::observer_ptr< StatusPublisherInterface > statusPublisher
std::experimental::observer_ptr< armem::robot_state::VirtualRobotReader > virtualRobotReader
bool visualizeRandomEventTarget
Eigen::Vector3f defaultTarget
std::string gazeOriginFrameName
bool visualizeTaskDrivenGazeTarget
bool visualizeStimulusDrivenTarget
bool visualizeStimulusAndTaskOnly
GazeReachedConfig reached