|
|
Collects the gaze residual on the control side and reports it on a topic. More...
#include <armarx/view_selection/gaze_controller/status_reporting.h>
Public Member Functions | |
| void | report (const GazeControllerStatusListenerPrx &topic) |
| Publishes the current residual, rate limited. | |
| void | setTarget (std::int64_t targetId, const std::string &targetName) |
| Called from updateConfig(), so a report can name the target it is about. | |
| void | update (std::int64_t targetId, const GazeResidual &residual, bool targetReachable) |
| Called from the control side, at whatever rate it computes the residual. | |
Collects the gaze residual on the control side and reports it on a topic.
Shared by both controller variants, which differ only in where they can compute the residual: atan2 does it in rtRun, gaze_ik in its non-RT IK task. Both hand it over through atomics.
The controller deliberately does not decide whether the gaze counts as fixed on the target – it only says how far off it is. The gaze scheduler applies the thresholds, since it is the part that knows which target is active and who asked for it. That is also why nothing here touches the memory: this runs inside the RobotUnit.
Definition at line 27 of file status_reporting.h.
| void report | ( | const GazeControllerStatusListenerPrx & | topic | ) |
Publishes the current residual, rate limited.
Call from onPublish().
| topic | May be null before the controller is connected; then nothing is sent. |
Definition at line 38 of file status_reporting.cpp.
Here is the call graph for this function:| void setTarget | ( | std::int64_t | targetId, |
| const std::string & | targetName ) |
Called from updateConfig(), so a report can name the target it is about.
Definition at line 29 of file status_reporting.cpp.
| void update | ( | std::int64_t | targetId, |
| const GazeResidual & | residual, | ||
| bool | targetReachable ) |
Called from the control side, at whatever rate it computes the residual.
Definition at line 15 of file status_reporting.cpp.