ros2_control - kilted
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
ros2_control::MovingAverageStatistics Class Reference

#include <statistics_types.hpp>

Public Types

using StatisticData = libstatistics_collector::moving_average_statistics::StatisticData
 

Public Member Functions

double get_average () const
 
double get_max () const
 
double get_min () const
 
double get_standard_deviation () const
 
const StatisticData & get_statistics_const_ptr () const
 
StatisticData get_statistics () const
 
const double & get_current_measurement_const_ptr () const
 
double get_current_measurement () const
 
void reset ()
 
void reset_current_measurement ()
 
virtual void add_measurement (const double item)
 
uint64_t get_count () const
 

Detailed Description

A class for calculating moving average statistics. This operates in constant memory and constant time. Note: reset() must be called manually in order to start a new measurement window.

The statistics calculated are average, maximum, minimum, and standard deviation (population). All are calculated online without storing the observation data. Specifically, the average is a running sum and the variance is obtained by Welford's online algorithm (reference: https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford%27s_online_algorithm) for standard deviation.

When statistics are not available, e.g. no observations have been made, NaNs are returned.

Member Function Documentation

◆ add_measurement()

virtual void ros2_control::MovingAverageStatistics::add_measurement ( const double  item)
inlinevirtual

Observe a sample for the given window. The input item is used to calculate statistics. Note: any input values of NaN will be discarded and not added as a measurement.

Parameters
itemThe item that was observed

◆ get_average()

double ros2_control::MovingAverageStatistics::get_average ( ) const
inline

Returns the arithmetic mean of all data recorded. If no observations have been made, returns NaN.

Returns
The arithmetic mean of all data recorded, or NaN if the sample count is 0.

◆ get_count()

uint64_t ros2_control::MovingAverageStatistics::get_count ( ) const
inline

Return the number of samples observed

Returns
the number of samples observed

◆ get_current_measurement_const_ptr()

const double & ros2_control::MovingAverageStatistics::get_current_measurement_const_ptr ( ) const
inline

Get the current measurement value. This is the last value added to the statistics collector.

Returns
The current measurement value, or NaN if no measurements have been made.

◆ get_max()

double ros2_control::MovingAverageStatistics::get_max ( ) const
inline

Returns the maximum value recorded. If size of list is zero, returns NaN.

Returns
The maximum value recorded, or NaN if size of data is zero.

◆ get_min()

double ros2_control::MovingAverageStatistics::get_min ( ) const
inline

Returns the minimum value recorded. If size of list is zero, returns NaN.

Returns
The minimum value recorded, or NaN if size of data is zero.

◆ get_standard_deviation()

double ros2_control::MovingAverageStatistics::get_standard_deviation ( ) const
inline

Returns the standard deviation (population) of all data recorded. If size of list is zero, returns NaN.

Variance is obtained by Welford's online algorithm, see https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford%27s_online_algorithm

Returns
The standard deviation (population) of all data recorded, or NaN if size of data is zero.

◆ get_statistics_const_ptr()

const StatisticData & ros2_control::MovingAverageStatistics::get_statistics_const_ptr ( ) const
inline

Return a StatisticData object, containing average, minimum, maximum, standard deviation (population), and sample count. For the case of no observations, the average, min, max, and standard deviation are NaN.

Returns
StatisticData object, containing average, minimum, maximum, standard deviation (population), and sample count.

◆ reset()

void ros2_control::MovingAverageStatistics::reset ( )
inline

Reset all calculated values. Equivalent to a new window for a moving average.


The documentation for this class was generated from the following file: