Class robot_metrics_manager

Inheritance Relationships

Base Types

  • public rer::client< robot_metrics_manager >

  • public rmetrics::network_output_manager

Class Documentation

class robot_metrics_manager : public rer::client<robot_metrics_manager>, public rmetrics::network_output_manager

Manager class for handling all of the metrics which can be generated by COSM on robots running ROS.

Public Functions

robot_metrics_manager(const cros::topic &robot_ns, const rmconfig::metrics_config *mconfig)
~robot_metrics_manager(void) override = default
void collect_from_block(const crepr::base_block3D *block)

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

  • cmspecs::blocks::kTransportee

void collect_from_controller(const ccontroller::base_controller2D *controller)

Collect metrics from 2D controllers. Currently this includes:

  • cmspecs::spatial::kMovement

  • cmspecs::spatial::kInterferenceCounts

  • cmspecs::sensors::kBattery

Protected Functions

void register_standard(const rmconfig::metrics_config *mconfig)

Register metrics collectors that do not require extra arguments.

  • cmspecs::spatial::kInterferenceCounts -> csmetrics::interference_metrics

  • cmspecs::blocks::kTransporter -> cfsm::metrics::block_transporter_metrics

  • cmspecs::blocks::kTransportee -> cfmetrics::block_transportee_metrics

  • cmspecs::blocks::kAcqCounts -> 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.

  • cmspecs::blocks::kClusters -> cfmetrics::block_cluster_metrics

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