|
WSF
|
#include <WsfDefaultFusion.hpp>


Public Member Functions | |
| WsfDefaultFusion (const WsfScenario &aScenario, bool aIsWeightedAverage=false) | |
| ~WsfDefaultFusion () override=default | |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (WsfTrackManager *aTrackManagerPtr) override |
| Perform any necessary initialization. | |
| WsfFusionStrategy * | Clone () const override |
| Create a clone of "this" object. | |
| bool | UpdateLocalTrackFromNonLocalTrack (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateLocalResultFromNonLocalResult (double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult) override |
| void | ReviewTrack (WsfLocalTrack &aLocalTrack) override |
| bool | UpdateNonKinematicData (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| Public Member Functions inherited from WsfFusionStrategy | |
| ~WsfFusionStrategy () override=default | |
| bool | ProcessInput (UtInput &aInput) override |
| Process input from a common source. | |
| virtual bool | Initialize (WsfProcessor *aProcessorPtr) |
| Perform any necessary initialization. | |
| virtual bool | DebugEnabled () const |
| Return whether debug is enabled for this instance. | |
| virtual bool | InitializeLocalTrackFromNonLocalTrack (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) |
| virtual bool | InitializeLocalResultFromNonLocalResult (double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult) |
| WsfSimulation * | GetSimulation () const |
| double | GetSimTime () |
| WsfPlatform * | GetPlatform () const |
| WsfTrackManager & | GetTrackManager () |
| Return a reference to the track manager being accessed internally by this object. | |
| const WsfTrackManager & | GetTrackManager () const |
| WsfProcessor & | GetProcessor () |
| Return a reference to the processor being accessed internally by this object. | |
| Public Member Functions inherited from WsfObject | |
| WsfObject () | |
| This is the constructor for the WsfObject class. | |
| ~WsfObject () override | |
| This is the destructor for the WsfObject class. | |
| const char * | GetScriptClassName () const override |
| const std::string & | GetType () const |
| WsfStringId | GetTypeId () const |
| Get the string ID of the 'type' of the object. | |
| void | SetType (WsfStringId aType) |
| const std::string & | GetBaseType () const |
| WsfStringId | GetBaseTypeId () const |
| const TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (const WsfObject &aRhs) |
| Assignment operator. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Static Public Member Functions | |
| static void | ReviewTrack (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack) |
| Static Public Member Functions inherited from WsfFusionStrategy | |
| static bool | UpdateNonKinematicData (double aSimTime, WsfTrackManager &aTracManager, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) |
Protected Member Functions | |
| WsfDefaultFusion (const WsfDefaultFusion &aSrc) | |
| WsfDefaultFusion & | operator= (const WsfDefaultFusion &)=delete |
| bool | UpdateIFF_Status (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateSide (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateType (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateSpatialDomain (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateTrackQuality (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateSignalToNoise (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateSignalList (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| bool | UpdateAuxData (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override |
| void | SetWeightedAverage (bool aIsWeightedAverage) |
| void | PerformMirrorTrackUpdate (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) |
| bool | PerformStandardTrackUpdate (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) |
| Protected Member Functions inherited from WsfFusionStrategy | |
| WsfFusionStrategy () | |
| WsfFusionStrategy (const WsfFusionStrategy &aSrc) | |
| WsfFusionStrategy & | operator= (const WsfFusionStrategy &)=delete |
| void | SetTrackManager (WsfTrackManager &aTrackManager) |
| Set the track manager reference. | |
| void | SetProcessor (WsfProcessor &aProcessor) |
| Set the processor reference. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
Static Protected Member Functions | |
| static void | ReviewIFF (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack) |
| static void | ReviewTrackQuality (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack) |
| Static Protected Member Functions inherited from WsfFusionStrategy | |
| static void | FuseEstimates (const UtMatrixd &aEstimate1, const UtMatrixd &aEstimate2, const UtMatrixd &aCovar1, const UtMatrixd &aCovar2, UtMatrixd &aEstimateOut, UtMatrixd &aCovarOut) |
| static void | NormalizeAzRangeEstimate (const UtMatrixd &aEstimate, const UtMatrixd &aCovar, const double &aElevation, UtMatrixd &aNormEstimate, UtMatrixd &aNormCovar) |
| static void | NormalizeElRangeEstimate (const UtMatrixd &aEstimate, const UtMatrixd &aCovar, const double &aAzimuth, UtMatrixd &aNormEstimate, UtMatrixd &aNormCovar) |
Additional Inherited Members | |
| Public Types inherited from WsfFusionStrategy | |
| using | FusionStrategyTypes = WsfObjectTypeList<WsfFusionStrategy> |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
The wsf standard implementation of WsfFusionStratgey for track fusion. This class implements a series of standard algorithms for fusion of similar and complementary information. The one option for use of these algorithms is whether to use "replacement" or "weighted average" fusion. These choices are relevant when fusing location-based state data. For replacement fusion, a track update replaces the location data, whereas for weighted-average fusion, the location data are computed using the "weight" of the inverse covariance matrix.
| WsfDefaultFusion::WsfDefaultFusion | ( | const WsfScenario & | aScenario, |
| bool | aIsWeightedAverage = false ) |
|
overridedefault |
|
protected |
References WsfDefaultFusion(), and WsfFusionStrategy::WsfFusionStrategy().
|
inlineoverridevirtual |
Create a clone of "this" object.
Implements WsfFusionStrategy.
Reimplemented in WsfMTT_Fusion, and WsfOrbitDeterminationFusion.
References WsfDefaultFusion(), and WsfFusionStrategy::WsfFusionStrategy().
|
overridevirtual |
Perform any necessary initialization.
Reimplemented from WsfFusionStrategy.
Reimplemented in WsfMTT_Fusion, and WsfOrbitDeterminationFusion.
References WsfFusionStrategy::GetSimulation(), WsfFusionStrategy::GetTrackManager(), WsfFusionStrategy::Initialize(), and ok.
Referenced by WsfMTT_Fusion::Initialize().
|
protecteddelete |
References ReviewIFF(), ReviewTrackQuality(), and WsfDefaultFusion().
|
protected |
|
protected |
The track will be marked as non-3d to prevent weighted-average fusion (the covariance matrix cannot be computed from sensor errors).
References WsfLocalTrack::ClearMirrorTrack(), WsfFusionStrategy::DebugEnabled(), WsfObject::GetName(), WsfTrack::GetOriginatorNameId(), WsfFusionStrategy::GetPlatform(), WsfLocalTrack::GetRawTrackIds(), WsfTrack::GetResidualCovariance(), WsfTrack::GetUpdateCount(), WsfTrack::GetUpdateTime(), WsfTrack::Is3D(), WsfTrack::KinematicUpdate(), WsfTrack::Set3D(), WsfTrack::SetResidualCovariance(), WsfTrack::SetUpdateCount(), WsfPlatform::Update(), WsfTrack::Update(), and UpdateNonKinematicData().
Referenced by UpdateLocalTrackFromNonLocalTrack().
|
overridevirtual |
Process input from a generic source.
Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfOrbitDeterminationFusion.
Referenced by WsfOrbitDeterminationFusion::ProcessInput().
|
staticprotected |
Determine whether IFF values are either all "friend" or "foe;" If so, set the value as the current IFF value.
References WsfTrack::cIFF_AMBIGUOUS, WsfTrack::cIFF_FOE, WsfTrack::cIFF_FRIEND, WsfTrack::cIFF_UNKNOWN, WsfTrack::GetIFF_Status(), WsfTrackManager::GetRawTrack(), WsfLocalTrack::GetRawTrackIds(), and WsfTrack::SetIFF_Status().
Referenced by operator=(), ReviewTrack(), ReviewTrack(), WsfOrbitDeterminationFusion::ReviewTrack(), WsfOrbitDeterminationFusion::ReviewTrack(), and UpdateIFF_Status().
|
overridevirtual |
Review a track, adjusting parameters based on available information. Usually these are IFF and track quality. This review is usually performed after a track de-correlation.
Implements WsfFusionStrategy.
Reimplemented in WsfOrbitDeterminationFusion.
References WsfFusionStrategy::GetTrackManager(), ReviewIFF(), ReviewTrackQuality(), and WsfLocalTrack::UpdateSignalList().
|
static |
References ReviewIFF(), ReviewTrackQuality(), and WsfLocalTrack::UpdateSignalList().
|
staticprotected |
Determine the best track quality among a local track's raw tracks, and replace it as the local track's quality indicator.
References WsfTrackManager::GetRawTrack(), WsfLocalTrack::GetRawTrackIds(), WsfTrack::GetTrackId(), WsfTrack::GetTrackQuality(), WsfLocalTrack::SetHighestTrackQualityId(), and WsfTrack::SetTrackQuality().
Referenced by operator=(), ReviewTrack(), ReviewTrack(), WsfOrbitDeterminationFusion::ReviewTrack(), and WsfOrbitDeterminationFusion::ReviewTrack().
|
inlineprotected |
Referenced by WsfOrbitDeterminationFusion::Initialize().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfFusionStrategy::GetTrackManager(), and WsfTrackManager::UpdateAuxData().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfTrack::cIFF_AMBIGUOUS, WsfTrack::cIFF_FOE, WsfTrack::cIFF_FRIEND, WsfTrack::cIFF_UNKNOWN, WsfTrack::GetIFF_Status(), WsfFusionStrategy::GetTrackManager(), ReviewIFF(), and WsfTrack::SetIFF_Status().
|
overridevirtual |
Fuse a non-local result with an existing local result.
The result will be marked as non-3d to prevent weighted-average fusion (the covariance matrix cannot be computed from sensor errors).
Implements WsfFusionStrategy.
Reimplemented in WsfOrbitDeterminationFusion.
References WsfFusionStrategy::DebugEnabled(), WsfObject::GetName(), WsfObject::GetNameId(), WsfEM_XmtrRcvr::GetPlatform(), WsfFusionStrategy::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfMeasurement::KinematicUpdate(), WsfSensorResult::mMeasurement, WsfLocalSensorResult::mMeasurementCount, WsfMeasurement::Update(), and WsfPlatform::Update().
|
overridevirtual |
Fuse a non-local track with an existing local track.
Implements WsfFusionStrategy.
Reimplemented in WsfMTT_Fusion, and WsfOrbitDeterminationFusion.
References WsfLocalTrack::IsMirrorTrack(), PerformMirrorTrackUpdate(), and PerformStandardTrackUpdate().
|
overridevirtual |
A general-purpose method for updating the "non-kinematic" fields of the track (frequency, side, type, iff, track quality). TODO At some point we may want to break these out as individual, script-able methods, but only for default fusion.
Reimplemented from WsfFusionStrategy.
References WsfFusionStrategy::UpdateNonKinematicData().
Referenced by PerformStandardTrackUpdate().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfTrack::GetSignalList(), WsfTrack::MergeSignalLists(), and WsfLocalTrack::UpdateSignalList().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfTrack::GetSignalToNoise(), WsfTrack::SetSignalToNoise(), and WsfTrack::SignalToNoiseValid().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfMeasurement::GetSpatialDomain(), WsfMeasurement::SetSpatialDomain(), and WSF_SPATIAL_DOMAIN_UNKNOWN.
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.
References WsfTrack::GetTrackId(), WsfTrack::GetTrackQuality(), WsfLocalTrack::SetHighestTrackQualityId(), and WsfTrack::SetTrackQuality().
|
overrideprotectedvirtual |
Reimplemented from WsfFusionStrategy.