diff --git a/source/Navigation/libraries/core/events.h b/source/Navigation/libraries/core/events.h index 29797d345cf540123bd95491cdf01c3eb0940cce..4c288c40077d81f44cdec8ecd8c5d08f684b32fb 100644 --- a/source/Navigation/libraries/core/events.h +++ b/source/Navigation/libraries/core/events.h @@ -11,35 +11,61 @@ namespace armarx::nav::core { + /** + * @brief Event describing that the targeted goal was successfully reached. + */ struct GoalReachedEvent { core::Pose pose; }; + /** + * @brief Event describing that a user-defined waypoint was successfully reached. + */ struct WaypointReachedEvent { core::Pose pose; int waypointId; }; + /** + * @brief Event desciribing that a significant safety throttling factor was reached. + * + * Can be configured. + */ struct SafetyThrottlingTriggeredEvent { core::Pose pose; + + /** + * @brief Ratio of throttled velocity divided by desired velocity. + * + * Value between 0 and 1 where 0 means full stop and 1 full desired velocity without any throttling. + */ float throttlingFactor = 1.0; // TODO: Direction where safety-critical obstacle is (or range or whatever...). }; + /** + * @brief Event describing that for security reasons, the robot was stopped completely. + */ struct SafetyStopTriggeredEvent { core::Pose pose; // TODO: Direction where safety-critical obstacle is (or range or whatever...). }; + /** + * @brief Event describing that the user aborted the current execution. + */ struct UserAbortTriggeredEvent { core::Pose pose; }; + /** + * @brief Event describing the occurance of an internal unhandled error. + */ struct InternalErrorEvent { core::Pose pose;