WSF
WsfStandardSensorErrorModel.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2017 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSTANDARDSENSORERRORMODEL_HPP
13#define WSFSTANDARDSENSORERRORMODEL_HPP
14
15#include "wsf_export.h"
16
17#include <memory>
18
20
21namespace wsf
22{
23
26{
28
29 SphericalMeasurementErrors(double aAzError, double aElError, double aRangeError, double aRangeRateError)
30 : mAzError(aAzError)
31 , mElError(aElError)
32 , mRangeError(aRangeError)
33 , mRangeRateError(aRangeRateError)
34 {
35 }
36
37 double mAzError{0.0};
38 double mElError{0.0};
39 double mRangeError{0.0};
40 double mRangeRateError{0.0};
41};
42
46class WSF_EXPORT StandardSensorErrorModel : public SensorErrorModel<SphericalMeasurementErrors>
47{
48public:
50 struct Sigmas
51 {
52 Sigmas() = default;
53 Sigmas(double aAzErrorStdDev, double aElErrorStdDev, double aRangeErrorStdDev, double aRangeRateErrorStdDev);
54
55 double mAzErrorStdDev{0.0};
56 double mElErrorStdDev{0.0};
57 double mRangeErrorStdDev{0.0};
59 };
60
61 static std::unique_ptr<SensorErrorModelBase> ObjectFactory(const std::string& aTypeName);
62 StandardSensorErrorModel* Clone() const override;
63 bool ProcessInput(UtInput& aInput) override;
64
65 bool IsStandardModel() const final { return true; }
66
68
69 void SetSigmas(const Sigmas& aSigmas) { mSigmas = aSigmas; }
70 const Sigmas& GetSigmas() const { return mSigmas; }
71
72 void SetAzErrorStdDev(double aAzErrorStdDev) { mSigmas.mAzErrorStdDev = aAzErrorStdDev; }
73 void SetElErrorStdDev(double aElErrorStdDev) { mSigmas.mElErrorStdDev = aElErrorStdDev; }
74 void SetRangeErrorStdDev(double aRangeErrorStdDev) { mSigmas.mRangeErrorStdDev = aRangeErrorStdDev; }
75 void SetRangeRateErrorStdDev(double aRangeRateErrorStdDev) { mSigmas.mRangeRateErrorStdDev = aRangeRateErrorStdDev; }
77
78 std::unique_ptr<SphericalMeasurementErrors> ComputeMeasurementErrors(WsfSensorResult& aResult) const override;
79 void ApplyMeasurementErrors(const SphericalMeasurementErrors& aErrors, WsfSensorResult& aResult) override;
80
81 virtual SphericalMeasurementErrors GetSphericalErrorStdDev(ut::Random& aRandom,
82 WsfSensorResult& aResult,
83 const Sigmas& aSigmas) const;
84
85private:
86 Sigmas mSigmas;
87};
88
89} // namespace wsf
90
91#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfSensorResult.hpp:27
This class defines the interface to compute specific measurement errors.
Definition WsfSensorErrorModel.hpp:70
Definition WsfStandardSensorErrorModel.hpp:47
void SetAzErrorStdDev(double aAzErrorStdDev)
Definition WsfStandardSensorErrorModel.hpp:72
void SetRangeRateErrorStdDev(double aRangeRateErrorStdDev)
Definition WsfStandardSensorErrorModel.hpp:75
bool IsStandardModel() const final
Definition WsfStandardSensorErrorModel.hpp:65
void SetSigmas(const Sigmas &aSigmas)
Definition WsfStandardSensorErrorModel.hpp:69
const Sigmas & GetSigmas() const
Definition WsfStandardSensorErrorModel.hpp:70
void SetElErrorStdDev(double aElErrorStdDev)
Definition WsfStandardSensorErrorModel.hpp:73
void SetRangeErrorStdDev(double aRangeErrorStdDev)
Definition WsfStandardSensorErrorModel.hpp:74
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
A standard set of errors associated with single sensor mono-static detections.
Definition WsfStandardSensorErrorModel.hpp:26
double mElError
Definition WsfStandardSensorErrorModel.hpp:38
double mAzError
Definition WsfStandardSensorErrorModel.hpp:37
double mRangeRateError
Definition WsfStandardSensorErrorModel.hpp:40
double mRangeError
Definition WsfStandardSensorErrorModel.hpp:39
SphericalMeasurementErrors(double aAzError, double aElError, double aRangeError, double aRangeRateError)
Definition WsfStandardSensorErrorModel.hpp:29
A set of standard deviations of the mean associated with single sensor monostatic detections.
Definition WsfStandardSensorErrorModel.hpp:51
double mElErrorStdDev
Definition WsfStandardSensorErrorModel.hpp:56
double mRangeErrorStdDev
Definition WsfStandardSensorErrorModel.hpp:57
double mAzErrorStdDev
Definition WsfStandardSensorErrorModel.hpp:55
double mRangeRateErrorStdDev
Definition WsfStandardSensorErrorModel.hpp:58
Copyrights Multiple, All Rights Reserved