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.
bool setSpatial (const Situation &situation)
 Updates the spatial property of the object when the extrapolation error exceeds the threshold. Returns true if the spatial was updated.
bool setSpatial (const GeodeticSituation &situation)
 Updates the spatial property of the object from a Geodetic Situation input when the extrapolation error exceeds the threshold. Returns true if the spatial was updated.
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 DrConfig & getConfig () const noexcept
void setConfig (const DrConfig &config)

Protected Member Functions

const Situation & getSmoothSituation () const noexcept
void smooth (const Situation &update)
const Situation & smoothIfEnabled (const Situation &update)
 Smooths the update when configured to and returns what to publish. With smoothing off the walk is skipped and the returned reference is the argument itself.
void invalidateCache ()
bool isSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedSituation (const Situation &situation)
const Situation & getCachedSituation () const noexcept
bool isGeodeticSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedGeodeticSituation (const GeodeticSituation &situation)
const GeodeticSituation & getCachedGeodeticSituation () 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>
bool sen::util::SettableDeadReckoner< T >::setSpatial ( const Situation & situation)
inline

Updates the spatial property of the object when the extrapolation error exceeds the threshold. Returns true if the spatial was updated.

◆ setSpatial() [2/2]

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

Updates the spatial property of the object from a Geodetic Situation input when the extrapolation error exceeds the threshold. Returns true if the spatial was updated.

◆ 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

◆ smoothIfEnabled()

const Situation & sen::util::DeadReckonerBase::smoothIfEnabled ( const Situation & update)
nodiscardprotectedinherited

Smooths the update when configured to and returns what to publish. With smoothing off the walk is skipped and the returned reference is the argument itself.

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