Class goal_acq_metrics
Defined in File goal_acq_metrics.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public rmetrics::base_metrics
Class Documentation
-
class goal_acq_metrics : public virtual rmetrics::base_metrics
Interface defining what metrics that should be collected from FSMs as they attempt to acquire a goal (site/object of interest) in SOME way (driving to it directly, exploring for it, etc).
Public Types
-
using goal_type = rtypes::named_type<int, struct goal_type_tag>
A strong named type representing the goal the robot is currently trying to acquire. A -1 value is used to indicate that no goal is currently being acquired.
Public Functions
-
goal_acq_metrics(void) = default
-
~goal_acq_metrics(void) override = default
-
virtual goal_type acquisition_goal(void) const = 0
Return the type of acq that is currently being performed.
- Returns:
The acq type, or -1 if no acquisition is currently in progress.
-
virtual boost::optional<rmath::vector3z> acquisition_loc3D(void) const = 0
When goal_acquired() returns
TRUE
, then this should return the location of the goal that was acquired.
-
virtual rtypes::type_uuid entity_acquired_id(void) const = 0
Return the UUID of the entity the robot THINKS it has acquired, once goal_acquired() returns
TRUE
. Only valid while goal_acquired() returnsTRUE
.If the acquisition was not for an entity, but a location within the arena (or something else), then this function should return rtypes::constants::kNoUUID.
-
virtual boost::optional<rmath::vector3z> explore_loc3D(void) const = 0
When is_exploring_for_goal() returns
TRUE
, then this should return the robot’s current position as it explores for its goal. If the robot is only moving in 3D, then the Z component should always be 0.
-
virtual bool goal_acquired(void) const = 0
If
TRUE
, then the robot has arrived at its goal, and is waiting for some sort of signal from the simulation so that it can start executing the next part of its current FSM as part of its current task.
-
virtual exp_status is_exploring_for_goal(void) const = 0
Output only defined if goal_type is not -1.
- Returns:
-
virtual bool is_vectoring_to_goal(void) const = 0
Output only defined if goal_type is not -1. If
TRUE
, then the robot is vectoring towards its goal (i.e., it knows where it is).
-
virtual boost::optional<rmath::vector3z> vector_loc3D(void) const = 0
When is_vectoring_to_goal() returns
TRUE
, then this should return the robot’s current discrete position as it vectors to its goal. If the robot is only moving in 3D, then the Z component should always be 0.
-
struct exp_status
A pair of booleans, with the first one indicating that the robot is exploring for its goal, and the second one (only valid if the first is
TRUE
) indicating if it is a “true” exploration (i.e. the robot truly does not know of any instances of its target goal type), as opposed to exploring because all of the known instances of its goal type are deemed unsuitable for whatever reason.
-
using goal_type = rtypes::named_type<int, struct goal_type_tag>