Sen API
Sen Libraries
Loading...
Searching...
No Matches
sen::util::DeadReckoner< T > Class Template Reference

Enables the user to predict an object’s position and movement at any future time applying dead reckoning. It adheres to the algorithms specified in IEEE 1278_1:2012, Annex E. More...

#include <dead_reckoner.h>

Inheritance diagram for sen::util::DeadReckoner< T >:

Public Types

using Parent = DeadReckonerTemplateBase<T>
using SpatialVariant = typename Parent::SpatialVariant
using StaticSpatial = typename Parent::StaticSpatial
using FpsSpatial = typename Parent::FpsSpatial
using RpsSpatial = typename Parent::RpsSpatial
using RvsSpatial = typename Parent::RvsSpatial
using FvsSpatial = typename Parent::FvsSpatial
using RprLocation = typename Parent::RprLocation
using RprOrientation = typename Parent::RprOrientation
using RprVelocity = typename Parent::RprVelocity
using RprAcceleration = typename Parent::RprAcceleration
using RprAngularVelocity = typename Parent::RprAngularVelocity
using SituationProcessor = std::function<Situation(sen::TimeStamp)>
using GeodeticSituationProcessor = std::function<GeodeticSituation(sen::TimeStamp)>

Public Member Functions

 DeadReckoner (const T &object, DrConfig config={})
 Constructor for the DeadReckoner where an object inheriting from rpr::BaseEntity is inputted as a reference. This is the easiest version of the API to instantiate a DeadReckoner.
 ~DeadReckoner () override=default
Situation situation (sen::TimeStamp timeStamp) override
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
GeodeticSituation geodeticSituation (sen::TimeStamp timeStamp) override
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
T & getObject () noexcept
 Provides direct mutable access to the internal object managed by this instance of the DeadReckoner.
void updateSituation (const Situation &value)
 Updates the last known real time Situation. A valid timestamp is needed inside the Situation provided as argument.
void updateGeodeticSituation (const GeodeticSituation &value)
 Updates the last known real time GeodeticSituation. A valid timestamp is needed inside the GeodeticSituation provided as argument.
const DrConfiggetConfig () const noexcept
void setConfig (const DrConfig &config)

Static Public Member Functions

static Situation toSituation (const SpatialVariant &spatial, sen::TimeStamp timeStamp={})
 Translates a SpatialVariant to a Situation struct.
static GeodeticSituation toGeodeticSituation (const SpatialVariant &spatial, sen::TimeStamp timeStamp={})
 Translates a SpatialVariant to a GeodeticSituation struct.

Protected Member Functions

const SituationgetSmoothSituation () const noexcept
void smooth (const Situation &update)
void invalidateCache ()
bool isSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedSituation (const Situation &situation)
const SituationgetCachedSituation () const noexcept
bool isGeodeticSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedGeodeticSituation (const GeodeticSituation &situation)
const GeodeticSituationgetCachedGeodeticSituation () const noexcept

Static Protected Member Functions

static Situation extrapolate (const SpatialVariant &spatial, sen::TimeStamp time, sen::TimeStamp lastTimeStamp)
 Returns the extrapolated situation of the RPR Entity given its Spatial field and two timestamps that define a time delta for the extrapolation.

Detailed Description

template<typename T>
class sen::util::DeadReckoner< T >

Enables the user to predict an object’s position and movement at any future time applying dead reckoning. It adheres to the algorithms specified in IEEE 1278_1:2012, Annex E.

Template Parameters
Trpr::BaseEntityInterface or a subclass of it

Member Typedef Documentation

◆ Parent

template<typename T>
using sen::util::DeadReckoner< T >::Parent = DeadReckonerTemplateBase<T>

◆ SpatialVariant

template<typename T>
using sen::util::DeadReckoner< T >::SpatialVariant = typename Parent::SpatialVariant

◆ StaticSpatial

template<typename T>
using sen::util::DeadReckoner< T >::StaticSpatial = typename Parent::StaticSpatial

◆ FpsSpatial

template<typename T>
using sen::util::DeadReckoner< T >::FpsSpatial = typename Parent::FpsSpatial

◆ RpsSpatial

template<typename T>
using sen::util::DeadReckoner< T >::RpsSpatial = typename Parent::RpsSpatial

◆ RvsSpatial

template<typename T>
using sen::util::DeadReckoner< T >::RvsSpatial = typename Parent::RvsSpatial

◆ FvsSpatial

template<typename T>
using sen::util::DeadReckoner< T >::FvsSpatial = typename Parent::FvsSpatial

◆ RprLocation

template<typename T>
using sen::util::DeadReckoner< T >::RprLocation = typename Parent::RprLocation

◆ RprOrientation

template<typename T>
using sen::util::DeadReckoner< T >::RprOrientation = typename Parent::RprOrientation

◆ RprVelocity

template<typename T>
using sen::util::DeadReckoner< T >::RprVelocity = typename Parent::RprVelocity

◆ RprAcceleration

template<typename T>
using sen::util::DeadReckoner< T >::RprAcceleration = typename Parent::RprAcceleration

◆ RprAngularVelocity

template<typename T>
using sen::util::DeadReckoner< T >::RprAngularVelocity = typename Parent::RprAngularVelocity

◆ SituationProcessor

template<typename T>
using sen::util::DeadReckoner< T >::SituationProcessor = std::function<Situation(sen::TimeStamp)>

◆ GeodeticSituationProcessor

template<typename T>
using sen::util::DeadReckoner< T >::GeodeticSituationProcessor = std::function<GeodeticSituation(sen::TimeStamp)>

Constructor & Destructor Documentation

◆ DeadReckoner()

template<typename T>
sen::util::DeadReckoner< T >::DeadReckoner ( const T & object,
DrConfig config = {} )
inlineexplicit

Constructor for the DeadReckoner where an object inheriting from rpr::BaseEntity is inputted as a reference. This is the easiest version of the API to instantiate a DeadReckoner.

◆ ~DeadReckoner()

template<typename T>
sen::util::DeadReckoner< T >::~DeadReckoner ( )
overridedefault

Member Function Documentation

◆ situation()

template<typename T>
Situation sen::util::DeadReckoner< T >::situation ( sen::TimeStamp timeStamp)
inlinenodiscardoverridevirtual

Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:

  • World position: ECEF coordinates
  • Orientation: Euler angles of the body reference system (x forward, y right, z down) with respect to ECEF
  • Velocity: In world coordinates for world-centered DR algorithms and in body coordinates for body-centered algorithms
  • Acceleration: In world coordinates for world-centered DR algorithms and in body coordinates for body-centered algorithms
  • AngularVelocity: In body coordinates.
  • AngularAcceleration: In body coordinates.

Reimplemented from sen::util::DeadReckonerBase.

◆ geodeticSituation()

template<typename T>
GeodeticSituation sen::util::DeadReckoner< T >::geodeticSituation ( sen::TimeStamp timeStamp)
inlinenodiscardoverridevirtual

Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:

  • World position: Geodetic Latitude, Longitude and Altitude
  • Orientation: Euler angles of the body reference system (x forward, y right, z down) with respect to NED
  • Velocity: In NED coordinates for world-referenced algorithms, in body coordinates for body-referenced algorithms.
  • Acceleration: In NED coordinates for world-referenced algorithms, in body coordinates for body-referenced algorithms.
  • AngularVelocity: In body coordinates.
  • AngularAcceleration: In body coordinates.

Reimplemented from sen::util::DeadReckonerBase.

◆ getObject()

template<typename T>
T & sen::util::DeadReckoner< T >::getObject ( )
inlinenodiscardnoexcept

Provides direct mutable access to the internal object managed by this instance of the DeadReckoner.

◆ toSituation()

template<typename T>
Situation sen::util::DeadReckoner< T >::toSituation ( const SpatialVariant & spatial,
sen::TimeStamp timeStamp = {} )
inlinestaticnodiscard

Translates a SpatialVariant to a Situation struct.

◆ toGeodeticSituation()

template<typename T>
GeodeticSituation sen::util::DeadReckoner< T >::toGeodeticSituation ( const SpatialVariant & spatial,
sen::TimeStamp timeStamp = {} )
inlinestaticnodiscard

Translates a SpatialVariant to a GeodeticSituation struct.

◆ extrapolate()

template<typename T>
Situation sen::util::DeadReckonerTemplateBase< T >::extrapolate ( const SpatialVariant & spatial,
sen::TimeStamp time,
sen::TimeStamp lastTimeStamp )
inlinestaticnodiscardprotectedinherited

Returns the extrapolated situation of the RPR Entity given its Spatial field and two timestamps that define a time delta for the extrapolation.

◆ updateSituation()

void sen::util::DeadReckonerBase::updateSituation ( const Situation & value)
inherited

Updates the last known real time Situation. A valid timestamp is needed inside the Situation provided as argument.

◆ updateGeodeticSituation()

void sen::util::DeadReckonerBase::updateGeodeticSituation ( const GeodeticSituation & value)
inherited

Updates the last known real time GeodeticSituation. A valid timestamp is needed inside the GeodeticSituation provided as argument.

◆ getConfig()

const DrConfig & sen::util::DeadReckonerBase::getConfig ( ) const
nodiscardnoexceptinherited

◆ setConfig()

void sen::util::DeadReckonerBase::setConfig ( const DrConfig & config)
inherited

◆ getSmoothSituation()

const Situation & sen::util::DeadReckonerBase::getSmoothSituation ( ) const
nodiscardprotectednoexceptinherited

◆ smooth()

void sen::util::DeadReckonerBase::smooth ( const Situation & update)
protectedinherited

◆ invalidateCache()

void sen::util::DeadReckonerBase::invalidateCache ( )
inlineprotectedinherited

◆ isSituationCached()

bool sen::util::DeadReckonerBase::isSituationCached ( sen::TimeStamp timeStamp) const
inlinenodiscardprotectednoexceptinherited

◆ setCachedSituation()

void sen::util::DeadReckonerBase::setCachedSituation ( const Situation & situation)
inlineprotectedinherited

◆ getCachedSituation()

const Situation & sen::util::DeadReckonerBase::getCachedSituation ( ) const
inlinenodiscardprotectednoexceptinherited

◆ isGeodeticSituationCached()

bool sen::util::DeadReckonerBase::isGeodeticSituationCached ( sen::TimeStamp timeStamp) const
inlinenodiscardprotectednoexceptinherited

◆ setCachedGeodeticSituation()

void sen::util::DeadReckonerBase::setCachedGeodeticSituation ( const GeodeticSituation & situation)
inlineprotectedinherited

◆ getCachedGeodeticSituation()

const GeodeticSituation & sen::util::DeadReckonerBase::getCachedGeodeticSituation ( ) const
inlinenodiscardprotectednoexceptinherited

The documentation for this class was generated from the following file: