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

Allows the user to get the extrapolated situation of an object and to set the Spatial when the error of the extrapolation exceeds a configurable threshold. More...

#include <settable_dead_reckoner.h>

Inheritance diagram for sen::util::SettableDeadReckoner< 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

Public Member Functions

 SettableDeadReckoner (T &object, DrThreshold thresholds={})
 ~SettableDeadReckoner () override=default
T & object () noexcept
 Returns a mutable reference to the RPR object whose position is extrapolated.
const T & object () const noexcept
 Returns a constant reference to the RPR object whose position is extrapolated.
void setSpatial (const Situation &situation)
 Updates the spatial property of the object if the update period is exceeded or if the extrapolation error exceeds the threshold.
void setSpatial (const GeodeticSituation &situation)
 Updates the spatial property of the object from a Geodetic Situation input if the update period is exceeded or if the extrapolation error exceeds the threshold.
void setFrozen (sen::TimeStamp timeStamp, bool value)
 Directly sets the frozen state of the object's spatial to true/false. The timestamp is needed to coherently apply the new frozen state to the current extrapolated situation.
virtual Situation situation (sen::TimeStamp timeStamp)
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
virtual GeodeticSituation geodeticSituation (sen::TimeStamp timeStamp)
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
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)

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::SettableDeadReckoner< T >

Allows the user to get the extrapolated situation of an object and to set the Spatial when the error of the extrapolation exceeds a configurable threshold.

Template Parameters
Trpr::BaseEntityBase or a subclass of it

Member Typedef Documentation

◆ Parent

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

◆ SpatialVariant

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

◆ StaticSpatial

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

◆ FpsSpatial

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

◆ RpsSpatial

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

◆ RvsSpatial

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

◆ FvsSpatial

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

◆ RprLocation

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

◆ RprOrientation

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

◆ RprVelocity

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

◆ RprAcceleration

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

◆ RprAngularVelocity

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

Constructor & Destructor Documentation

◆ SettableDeadReckoner()

template<typename T>
sen::util::SettableDeadReckoner< T >::SettableDeadReckoner ( T & object,
DrThreshold thresholds = {} )
inlineexplicit

◆ ~SettableDeadReckoner()

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

Member Function Documentation

◆ object() [1/2]

template<typename T>
T & sen::util::SettableDeadReckoner< T >::object ( )
inlinenodiscardnoexcept

Returns a mutable reference to the RPR object whose position is extrapolated.

◆ object() [2/2]

template<typename T>
const T & sen::util::SettableDeadReckoner< T >::object ( ) const
inlinenodiscardnoexcept

Returns a constant reference to the RPR object whose position is extrapolated.

◆ setSpatial() [1/2]

template<typename T>
void sen::util::SettableDeadReckoner< T >::setSpatial ( const Situation & situation)
inline

Updates the spatial property of the object if the update period is exceeded or if the extrapolation error exceeds the threshold.

◆ setSpatial() [2/2]

template<typename T>
void sen::util::SettableDeadReckoner< T >::setSpatial ( const GeodeticSituation & situation)
inline

Updates the spatial property of the object from a Geodetic Situation input if the update period is exceeded or if the extrapolation error exceeds the threshold.

◆ setFrozen()

template<typename T>
void sen::util::SettableDeadReckoner< T >::setFrozen ( sen::TimeStamp timeStamp,
bool value )
inline

Directly sets the frozen state of the object's spatial to true/false. The timestamp is needed to coherently apply the new frozen state to the current extrapolated situation.

◆ 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.

◆ situation()

virtual Situation sen::util::DeadReckonerBase::situation ( sen::TimeStamp timeStamp)
nodiscardvirtualinherited

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 in sen::util::DeadReckoner< T >.

◆ geodeticSituation()

virtual GeodeticSituation sen::util::DeadReckonerBase::geodeticSituation ( sen::TimeStamp timeStamp)
nodiscardvirtualinherited

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 in sen::util::DeadReckoner< T >.

◆ 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: