Class fs_output_manager

Inheritance Relationships

Base Types

  • public rmetrics::fs_output_manager

  • public rer::client< fs_output_manager >

Class Documentation

class fs_output_manager : public rmetrics::fs_output_manager, public rer::client<fs_output_manager>

Manager class for handling all of the metrics which can be generated by COSM on the ARGoS platform.

Public Functions

fs_output_manager(const rmconfig::metrics_config *mconfig, const fs::path &output_root)
~fs_output_manager(void) override = default
void collect_from_arena(const carena::base_arena_map *map)

Collect metrics from the arena. Currently this includes:

  • specs::blocks::kMotion

  • specs::blocks::kDistributor

  • specs::blocks::kClusters (from each block cluster in the arena)

void collect_from_block(const crepr::sim_block3D *block)

Collect metrics from a 3D block right before it is dropped in the nest. Currently this includes:

  • specs::blocks::kTransportee

void collect_from_controller(const ccontroller::base_controller2D *controller)

Collect metrics from 2D controllers. Currently this includes:

  • specs::spatial::kDistPosition2D

  • specs::spatial::kMovement

  • specs::spatial::kInterferenceCounts

  • specs::spatial::kInterferenceLocs2D

  • specs::sensors::kBattery

void collect_from_controller(const ccontroller::base_controller3D *controller)

Collect metrics from 3D controllers. Currently this includes:

  • spatial::DistPosition3D

  • spatial::kMovement

  • spatial::kInterferenceCounts

  • spatial::InterferenceLocs3D

void collect_from_controller(const ccontroller::base_controllerQ3D *controller)

Collect metrics from Q3D controllers. Currently this includes:

  • spatial::DistPosition3D

  • spatial::kMovement

  • spatial::kInterferenceCounts

  • spatial::InterferenceLocs3D

Protected Functions

void register_kinematics(const rmconfig::metrics_config *mconfig, size_t n_robots)

Register metrics collectors for tracking kinematics.

  • kinematics/avg -> ckmetrics::kinematics_metrics

  • kinematics/dist -> ckmetrics::kinematics_metrics

void register_with_arena_dims2D(const rmconfig::metrics_config *mconfig, const rmath::vector2z &dims)

Register metrics collectors that require the 2D arena dimensions to construct.

  • spatial/dist/pos2D -> csmetrics::dist2D_metrics

  • spatial/interference/locs2D -> csmetrics::interference_metrics

  • blocks/acq/explore_locs2D -> csmetrics::goal_acq_metrics

  • blocks/acq/locs2D -> csmetrics::goal_acq_metrics

  • blocks/acq/vector_locs2D csmetrics::goal_acq_metrics

void register_with_arena_dims3D(const rmconfig::metrics_config *mconfig, const rmath::vector3z &dims)

Register metrics collectors that require the 3D arena dimensions to construct.

  • spatial/dist/pos3D -> csmetrics::dist3D_metrics

  • spatial/interference/locs3D -> csmetrics::interference_metrics

  • blocks/acq/explore_locs3D -> csmetrics::goal_acq_metrics

  • blocks/acq/vector_locs3D -> csmetrics::goal_acq_metrics

void register_with_n_block_clusters(const rmconfig::metrics_config *mconfig, size_t n_block_clusters)

Register metrics collectors that require the # of block clusters in the arena.

  • blocks/clusters -> cfmetrics::block_cluster_metrics