My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
UnaryMeasurementXD.h
Go to the documentation of this file.
1/*
2Copyright 2024 by Julian Nubert, Robotic Systems Lab, ETH Zurich.
3All rights reserved.
4This file is released under the "BSD-3-Clause License".
5Please see the LICENSE file that has been included as part of this package.
6 */
7
8#ifndef HOLISTIC_FUSION_UNARYMEASUREMENTXD_H
9#define HOLISTIC_FUSION_UNARYMEASUREMENTXD_H
10
12
13namespace holistic_fusion {
14
24template <class MEASUREMENT_TYPE, int DIM>
25class UnaryMeasurementXD : public virtual UnaryMeasurement {
26 public:
45
46 // Destructor
47 ~UnaryMeasurementXD() override = default;
48
49 // Summary for printout
50 std::string summary() const override {
51 std::stringstream ss;
52 std::string summary = UnaryMeasurement::summary();
53 ss << summary << "Measurement: " << std::endl; // << unaryMeasurement_ << std::endl;
54 return ss.str();
55 }
56
57 // Overload << operator
58 friend std::ostream& operator<<(std::ostream& os, const UnaryMeasurementXD& unaryMeasurementXD) {
59 os << unaryMeasurementXD.summary();
60 return os;
61 }
62
63 // Accessors
64 const MEASUREMENT_TYPE& unaryMeasurement() const { return unaryMeasurement_; }
65 MEASUREMENT_TYPE& unaryMeasurement() { return unaryMeasurement_; }
66 const Eigen::Matrix<double, DIM, 1>& unaryMeasurementNoiseDensity() const { return unaryMeasurementNoiseDensity_; }
67 const Eigen::Matrix<double, DIM, 1>& unaryMeasurementNoiseVariances() const { return unaryMeasurementNoiseVariances_; }
68 const Eigen::Matrix<double, DIM, DIM> unaryMeasurementNoiseCovariance() const { return unaryMeasurementNoiseVariances_.asDiagonal(); }
69
70 // Modifiers
71 MEASUREMENT_TYPE& lv_unaryMeasurement() { return unaryMeasurement_; }
72
73 protected:
74 MEASUREMENT_TYPE unaryMeasurement_;
75 Eigen::Matrix<double, DIM, 1> unaryMeasurementNoiseDensity_; // StdDev
76 Eigen::Matrix<double, DIM, 1> unaryMeasurementNoiseVariances_; // Variances
77};
78
79} // namespace holistic_fusion
80
81#endif // HOLISTIC_FUSION_UNARYMEASUREMENTXD_H
const std::string & sensorFrameName() const
Definition Measurement.h:83
const std::string & sensorFrameCorrectedName() const
Definition Measurement.h:84
int measurementRate() const
Rest.
Definition Measurement.h:86
const std::string & measurementName() const
Names.
Definition Measurement.h:82
const RobustNorm & robustNorm() const
Definition Measurement.h:87
friend std::ostream & operator<<(std::ostream &os, const UnaryMeasurementXD &unaryMeasurementXD)
std::string summary() const override
const Eigen::Matrix< double, DIM, 1 > & unaryMeasurementNoiseDensity() const
Eigen::Matrix< double, DIM, 1 > unaryMeasurementNoiseVariances_
const MEASUREMENT_TYPE & unaryMeasurement() const
const Eigen::Matrix< double, DIM, 1 > & unaryMeasurementNoiseVariances() const
UnaryMeasurementXD(const std::string &measurementName, const int measurementRate, const std::string &sensorFrameName, const std::string &sensorFrameCorrectedName, const RobustNorm robustNorm, const double timeStamp, const double covarianceViolationThreshold, const MEASUREMENT_TYPE &unaryMeasurement, const Eigen::Matrix< double, DIM, 1 > &unaryMeasurementNoiseDensity)
Constructor to create an absolute unary measurement.
Eigen::Matrix< double, DIM, 1 > unaryMeasurementNoiseDensity_
~UnaryMeasurementXD() override=default
const Eigen::Matrix< double, DIM, DIM > unaryMeasurementNoiseCovariance() const
UnaryMeasurement(const std::string &measurementName, const int measurementRate, const std::string &sensorFrameName, const std::string &sensorFrameCorrectedName, const RobustNorm robustNorm, const double timeStamp, const double covarianceViolationThreshold)
Constructor to create a unary measurement.
virtual std::string summary() const
Class to represent a robust norm for a measurement.
Definition Measurement.h:28