MCPcopy Create free account
hub / github.com/TUC-ProAut/libRSF / AverageMeasurement

Function AverageMeasurement

src/Resampling.cpp:65–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63 }
64
65 Data AverageMeasurement(const std::vector<Data> &Input)
66 {
67 Data Output;
68
69 /** catch empty vectors */
70 if(Input.empty())
71 {
72 PRINT_ERROR("There is no Measurement!");
73 return Output;
74 }
75
76 /** return single element vectors directly */
77 if(Input.size() == 1)
78 {
79 return Input.at(0);
80 }
81
82 /** create vectors */
83 double Time = 0;
84 Vector Mean (Input.front().getMean().size());
85 Mean.setZero();
86 Vector Info (Input.front().getCovarianceDiagonal().size());
87 Info.setZero();
88 for (const Data & Measurement : Input)
89 {
90 Time += Measurement.getTimestamp();
91 Mean += Measurement.getMean();
92 Info += Measurement.getCovarianceDiagonal().cwiseInverse();
93 }
94 Mean /= Input.size();
95 Time /= Input.size();
96
97 Output = Input.back();
98 Output.setTimestamp(Time);
99 Output.setMean(Mean);
100 Output.setCovarianceDiagonal(Info.cwiseInverse());
101
102 return Output;
103 }
104
105}

Callers 1

SampleMeasurementsDownFunction · 0.85

Calls 7

emptyMethod · 0.80
getCovarianceDiagonalMethod · 0.80
getTimestampMethod · 0.80
setTimestampMethod · 0.80
getMeanMethod · 0.45
setMeanMethod · 0.45
setCovarianceDiagonalMethod · 0.45

Tested by

no test coverage detected