Class goal_acq_metrics

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() returns TRUE.

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:

exp_status.

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.

Public Members

bool is_exploring = {false}
bool is_true = {false}