My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
Measurement.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_MEASUREMENT_H
9#define HOLISTIC_FUSION_MEASUREMENT_H
10
11#include <Eigen/Eigen>
12#include <string>
13
14namespace holistic_fusion {
15
16// Enum that contains 2 possible measurement types
18
19// Enum that defines whether robust norm should be used
21
28struct RobustNorm {
31
32 // Syntactic Sugar for Constructor
38
39 // Getters
40 [[nodiscard]] const RobustNormEnum& robustNormEnum() const { return robustNormEnum_; }
41 [[nodiscard]] const double& robustNormConstant() const { return robustNormConstant_; }
42
43 private:
44 // Standard Members
47};
48
56 public:
76
77 // Destructor
78 virtual ~Measurement() = default;
79
80 // Getters
82 [[nodiscard]] const std::string& measurementName() const { return measurementName_; }
83 [[nodiscard]] const std::string& sensorFrameName() const { return sensorFrameName_; }
84 [[nodiscard]] const std::string& sensorFrameCorrectedName() const { return sensorFrameCorrectedName_; }
86 [[nodiscard]] int measurementRate() const { return measurementRate_; }
87 [[nodiscard]] const RobustNorm& robustNorm() const { return robustNorm_; }
88 [[nodiscard]] const RobustNormEnum& robustNormEnum() const { return robustNorm_.robustNormEnum(); }
89 [[nodiscard]] const double& robustNormConstant() const { return robustNorm_.robustNormConstant(); }
90
91 // Setters
94
95 // Pure Virtual Class
97
98 protected:
99 // Standard Members
100 std::string measurementName_;
102 std::string sensorFrameName_;
104
105 // Enum
108};
109
110} // namespace holistic_fusion
111
112#endif // HOLISTIC_FUSION_MEASUREMENT_H
MeasurementTypeEnum measurementTypeEnum_
void setSensorFrameName(std::string sensorFrameName)
Definition Measurement.h:93
const std::string & sensorFrameName() const
Definition Measurement.h:83
const std::string & sensorFrameCorrectedName() const
Definition Measurement.h:84
const RobustNormEnum & robustNormEnum() const
Definition Measurement.h:88
void setMeasurementName(std::string measurementName)
Definition Measurement.h:92
virtual ~Measurement()=default
std::string sensorFrameCorrectedName_
const double & robustNormConstant() const
Definition Measurement.h:89
int measurementRate() const
Rest.
Definition Measurement.h:86
virtual const MeasurementTypeEnum & measurementTypeEnum()=0
const std::string & measurementName() const
Names.
Definition Measurement.h:82
const RobustNorm & robustNorm() const
Definition Measurement.h:87
Measurement(const std::string &measurementName, const int measurementRate, const std::string &sensorFrameName, const std::string &sensorFrameCorrectedName, const RobustNorm &robustNorm, const MeasurementTypeEnum &measurementTypeEnum)
Constructor to create a unary measurement.
Definition Measurement.h:68
Class to represent a robust norm for a measurement.
Definition Measurement.h:28
static RobustNorm Tukey(const double &robustNormConstant)
Definition Measurement.h:36
const double & robustNormConstant() const
Definition Measurement.h:41
static RobustNorm GemanMcClure(const double &robustNormConstant)
Definition Measurement.h:37
static RobustNorm None()
Definition Measurement.h:33
const RobustNormEnum & robustNormEnum() const
Definition Measurement.h:40
RobustNorm(const RobustNormEnum &robustNormEnum, const double &robustNormConstant)
Definition Measurement.h:29
static RobustNorm Cauchy(const double &robustNormConstant)
Definition Measurement.h:35
RobustNormEnum robustNormEnum_
Definition Measurement.h:45
static RobustNorm Huber(const double &robustNormConstant)
Definition Measurement.h:34