|
|
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.
| 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. |
| 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.