|
Sen API
Sen Libraries
|
Classes | |
| struct | sen::util::DrConfig |
| Length in meters. More... | |
| struct | sen::util::Location |
| World Location struct. More... | |
| struct | sen::util::GeodeticWorldLocation |
| World location in geodetic coordinates. More... | |
| struct | sen::util::Orientation |
| Orientation struct. More... | |
| struct | sen::util::Velocity |
| Velocity struct. More... | |
| struct | sen::util::Acceleration |
| Acceleration struct. More... | |
| struct | sen::util::AngularVelocity |
| AngularVelocity struct. More... | |
| struct | sen::util::AngularAcceleration |
| AngularAcceleration struct. More... | |
| struct | sen::util::Situation |
| Situation structure with the following parameters: More... | |
| struct | sen::util::GeodeticSituation |
| GeodeticSituation structure with the following parameters: More... | |
| 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. More... | |
| class | sen::util::DeadReckonerBase |
| Extrapolates the Situation of an entity at a certain time. The extrapolation is smoothed by default unless the user specifies otherwise. More... | |
| class | sen::util::DeadReckonerTemplateBase< T > |
| Base class for the DeadReckoner and SettableDeadReckoner classes. More... | |
| struct | sen::util::DrThreshold |
| Threshold configuration structure with the position error threshold (maximum distance between extrapolation and data) and the entity dynamics (speed and changes of direction). More... | |
| 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. More... | |
Enumerations | |
| enum class | sen::util::SpatialAlgorithm { sen::util::SpatialAlgorithm::drStatic = 0 , sen::util::SpatialAlgorithm::drFPW = 1 , sen::util::SpatialAlgorithm::drRPW = 2 , sen::util::SpatialAlgorithm::drRVW = 3 , sen::util::SpatialAlgorithm::drFVW = 4 , sen::util::SpatialAlgorithm::drFPB = 5 , sen::util::SpatialAlgorithm::drRPB = 6 , sen::util::SpatialAlgorithm::drRVB = 7 , sen::util::SpatialAlgorithm::drFVB = 8 } |
| Enumeration of the different Spatial algorithms. More... | |
| enum class | sen::util::ReferenceSystem : u32 { sen::util::ReferenceSystem::world , sen::util::ReferenceSystem::body } |
| Enumeration of the reference system: world-centered or body-centered. More... | |
Functions | |
| Situation | sen::util::drFpw (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the FPW algorithm. | |
| Situation | sen::util::drFpb (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the FPB algorithm. The velocity is expressed in body coordinates. | |
| Situation | sen::util::drRpw (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the RPW algorithm. | |
| Situation | sen::util::drRpb (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the RPB algorithm. The input situation should be expressed in body coordinates and the returned situation in world coordinates. | |
| Situation | sen::util::drRvw (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the RVW algorithm. | |
| Situation | sen::util::drRvb (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the RVB algorithm. | |
| Situation | sen::util::drFvw (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the FVW algorithm. | |
| Situation | sen::util::drFvb (const Situation &value, sen::TimeStamp time) noexcept |
| Returns the extrapolated situation using the FVB algorithm. | |
| template<typename T> | |
| T | sen::util::impl::toRpr (const Location &value) |
| Translates a Location struct to a RPR WorldLocation given as template argument. | |
| template<typename T> | |
| T | sen::util::impl::toRpr (const Orientation &value) |
| Translates an Orientation struct to a RPR Orientation given as template argument. | |
| template<typename T> | |
| T | sen::util::impl::toRpr (const Velocity &value) |
| Translates a Velocity struct to a RPR Velocity given as template argument. | |
| template<typename T> | |
| T | sen::util::impl::toRpr (const Acceleration &value) |
| Translates an Acceleration struct to a RPR Acceleration given as template argument. | |
| template<typename T> | |
| T | sen::util::impl::toRpr (const AngularVelocity &value) |
| Translates an AngularVelocity struct to a RPR AngularVelocity given as template argument. | |
| template<typename T> | |
| Location | sen::util::impl::fromRprLocation (const T &value) |
| Translates to a Location struct from a RPR WorldLocation. | |
| template<typename T> | |
| Orientation | sen::util::impl::fromRprOrientation (const T &value) |
| Translates to an Orientation struct from a RPR Orientation. | |
| template<typename T> | |
| Velocity | sen::util::impl::fromRprVelocity (const T &value) |
| Translates to a Velocity struct from a RPR Velocity. | |
| template<typename T> | |
| Acceleration | sen::util::impl::fromRprAcceleration (const T &value) |
| Translates to Acceleration struct from a RPR Acceleration. | |
| template<typename T> | |
| AngularVelocity | sen::util::impl::fromRprAngularVelocity (const T &value) |
| Translates to AngularVelocity struct from a RPR AngularVelocity. | |
| GeodeticWorldLocation | sen::util::impl::toLla (const Location &worldLocation) noexcept |
| Translates from ECEF Location to Geodetic (LatLonAlt) Location. | |
| Location | sen::util::impl::toEcef (const GeodeticWorldLocation &latLonAlt) noexcept |
| Translates from Geodetic (LatLonAlt) to ECEF WorldLocation coordinates. | |
| Orientation | sen::util::impl::ecefToNed (const Orientation &value, const GeodeticWorldLocation &latLonAlt) noexcept |
| Translates the Orientation in euler angles from ECEF to NED using quaternions. | |
| Velocity | sen::util::impl::ecefToNed (const Velocity &value, const GeodeticWorldLocation &geodeticPosition) noexcept |
| Translates Velocity vectors expressed in ECEF coordinates to NED coordinates. | |
| Acceleration | sen::util::impl::ecefToNed (const Acceleration &value, const GeodeticWorldLocation &geodeticPosition) noexcept |
| Translates Acceleration vectors expressed in ECEF coordinates to NED coordinates. | |
| Orientation | sen::util::impl::nedToEcef (const Orientation &value, const GeodeticWorldLocation &latLonAlt) noexcept |
| Translates the Orientation in euler angles from NED to ECEF using quaternions. | |
| Velocity | sen::util::impl::nedToEcef (const Velocity &value, const GeodeticWorldLocation &location) noexcept |
| Translates a Velocity vector from NED to ECEF coordinates. | |
| Acceleration | sen::util::impl::nedToEcef (const Acceleration &value, const GeodeticWorldLocation &location) noexcept |
| Translates an Acceleration vector from NED to ECEF coordinates. | |
| Velocity | sen::util::impl::bodyToNed (const Velocity &value, const Orientation &orientationNed) noexcept |
| Translates Velocity vectors expressed in body coordinates to NED coordinates. | |
| AngularVelocity | sen::util::impl::bodyToNed (const AngularVelocity &value, const Orientation &orientationNed) noexcept |
| Translates AngularVelocity vectors expressed in body coordinates to NED coordinates. | |
| AngularAcceleration | sen::util::impl::bodyToNed (const AngularAcceleration &value, const Orientation &orientationNed) noexcept |
| Translates AngularAcceleration vectors expressed in body coordinates to NED coordinates. | |
| Acceleration | sen::util::impl::bodyToNed (const Acceleration &value, const Orientation &orientationNed) noexcept |
| Translates acceleration vectors expressed in body coordinates to NED coordinates. | |
| void | sen::util::impl::smoothImpl (Situation &situation, const Situation &update, const DrConfig &config) |
| Updates the smoothed situation, both in position and orientation. | |
| LengthMeters | sen::util::impl::computeDistance (const Location &start, const Location &end) |
| Computes the distance between two World locations. | |
| bool | sen::util::impl::isMoving (const Velocity &velocity) |
| Returns true when entity velocity is not null. | |
| bool | sen::util::impl::isAccelerating (const Acceleration &acceleration) |
| Returns true when entity acceleration is not null. | |
| bool | sen::util::impl::isRotating (const AngularVelocity &omega) |
| Returns true when angular velocity acceleration is not null. | |
| AngularVelocity | sen::util::impl::nedToBody (const AngularVelocity &value, const Orientation &nedOrientation) noexcept |
| Translates an AngularVelocity vector from NED to body coordinates. | |
| bool | sen::util::impl::maxDistanceExceeded (const Location &newPosition, const Location &extrapolatedPosition, f64 threshold) |
| Returns true when the distance threshold has been exceeded. | |
| bool | sen::util::impl::maxRotationExceeded (const Orientation &newOrientation, const Orientation &extrapolatedOrientation, f64 threshold) |
| Returns true when the rotation threshold has been exceeded. | |
Variables | |
| constexpr std::array< SpatialAlgorithm, 4U > | sen::util::bodyAlgorithms |
| struct sen::util::DrConfig |
Length in meters.
Velocity in meters per second Acceleration in meters per second squared Angle in radians AngularVelocity in radians per second AngularAcceleration in radians per second squared Latitude in degrees Longitude in degrees Time quantity in seconds Non-dimensional damping coefficient Dead Reckoning configuration.
| Class Members | ||
|---|---|---|
| bool | smoothing = true | If true, the position and orientation of the input data is smoothed removing noise. |
| LengthMeters | maxDistance = 100000.0 | No smoothing is performed for displacements bigger than this distance. |
| Duration | maxDeltaTime {std::chrono::seconds(1)} | No smoothing is performed for time deltas bigger than this duration. |
| Duration | smoothingInterval {std::chrono::milliseconds(20)} | Maximum time interval used to update the smoothed solution. It is used to prevent the smoothed solution from becoming unstable. |
| Duration | positionConvergenceTime {std::chrono::milliseconds(500)} | Convergence time for the smoothed position to match the updated position. |
| DampingCoefficient | positionDamping = 1.0 | Damping coefficient for the smoothed position solution. |
| Duration | orientationConvergenceTime {std::chrono::milliseconds(50)} | Convergence time for the smoothed orientation to match the updated orientation. |
| DampingCoefficient | orientationDamping = 20.0 | Damping coefficient for the smoothed orientation solution. |
| struct sen::util::Location |
World Location struct.
| Class Members | ||
|---|---|---|
| LengthMeters | x | |
| LengthMeters | y | |
| LengthMeters | z | |
| struct sen::util::GeodeticWorldLocation |
| struct sen::util::Orientation |
Orientation struct.
| Class Members | ||
|---|---|---|
| AngleRadians | psi | |
| AngleRadians | theta | |
| AngleRadians | phi | |
| struct sen::util::Velocity |
Velocity struct.
| Class Members | ||
|---|---|---|
| VelocityMetersPerSecond | x | |
| VelocityMetersPerSecond | y | |
| VelocityMetersPerSecond | z | |
| struct sen::util::Acceleration |
Acceleration struct.
| Class Members | ||
|---|---|---|
| AccelerationMetersPerSecondSquared | x | |
| AccelerationMetersPerSecondSquared | y | |
| AccelerationMetersPerSecondSquared | z | |
| struct sen::util::AngularVelocity |
AngularVelocity struct.
| Class Members | ||
|---|---|---|
| AngularVelocityRadiansPerSecond | x | |
| AngularVelocityRadiansPerSecond | y | |
| AngularVelocityRadiansPerSecond | z | |
| struct sen::util::AngularAcceleration |
AngularAcceleration struct.
| Class Members | ||
|---|---|---|
| AngularAccelerationRadiansPerSecondSquared | x | |
| AngularAccelerationRadiansPerSecondSquared | y | |
| AngularAccelerationRadiansPerSecondSquared | z | |
| struct sen::util::Situation |
Situation structure with the following parameters:
| Class Members | ||
|---|---|---|
| bool | isFrozen = false | When true, no extrapolation is performed because the entity is frozen. |
| TimeStamp | timeStamp {} | TimeStamp of the instant when the situation is computed. |
| Location | worldLocation {} | Position in ECEF. |
| Orientation | orientation {} | Orientation of the body reference system (x forward, y right, z down) with respect to ECEF. |
| Velocity | velocityVector {} | Velocity vector with respect to ECEF or body reference system (depending on the reference system of the algorithm extrapolated). |
| AngularVelocity | angularVelocity {} | Angular velocity vector with respect to body reference system. |
| Acceleration | accelerationVector {} | Acceleration vector with respect to ECEF or body reference system (depending on the reference system of the algorithm extrapolated). |
| AngularAcceleration | angularAcceleration {} | Angular acceleration vector with respect to body reference system. |
| struct sen::util::GeodeticSituation |
GeodeticSituation structure with the following parameters:
| Class Members | ||
|---|---|---|
| bool | isFrozen = false | When true, no extrapolation is performed because the entity is frozen. |
| TimeStamp | timeStamp {} | TimeStamp of the instant when the situation is computed. |
| GeodeticWorldLocation | worldLocation {} | World Location in Geodetic (Latitude, Longitude, Altitude). |
| Orientation | orientation {} | Orientation of the body reference system (x forward, y right, z down) with respect to NED (North - East - Down). |
| Velocity | velocityVector {} | Velocity vector with respect to NED. |
| AngularVelocity | angularVelocity {} | Angular velocity vector with respect to body-reference system. |
| Acceleration | accelerationVector {} | Acceleration vector with respect to NED. |
| AngularAcceleration | angularAcceleration {} | Angular acceleration vector with respect to body-reference system. |
| struct sen::util::DrThreshold |
Threshold configuration structure with the position error threshold (maximum distance between extrapolation and data) and the entity dynamics (speed and changes of direction).
| Class Members | ||
|---|---|---|
| LengthMeters | distanceThreshold {1.0} | |
| AngleRadians | orientationThreshold {0.05f} | |
| ReferenceSystem | referenceSystem {ReferenceSystem::world} | |
|
strong |
|
strong |
|
nodiscardnoexcept |
Returns the extrapolated situation using the FPW algorithm.
|
nodiscardnoexcept |
Returns the extrapolated situation using the FPB algorithm. The velocity is expressed in body coordinates.
|
nodiscardnoexcept |
Returns the extrapolated situation using the RPW algorithm.
|
nodiscardnoexcept |
Returns the extrapolated situation using the RPB algorithm. The input situation should be expressed in body coordinates and the returned situation in world coordinates.
|
nodiscardnoexcept |
Returns the extrapolated situation using the RVW algorithm.
|
nodiscardnoexcept |
Returns the extrapolated situation using the RVB algorithm.
|
nodiscardnoexcept |
Returns the extrapolated situation using the FVW algorithm.
|
nodiscardnoexcept |
Returns the extrapolated situation using the FVB algorithm.
|
inlinenodiscard |
Translates a Location struct to a RPR WorldLocation given as template argument.
|
inlinenodiscard |
Translates an Orientation struct to a RPR Orientation given as template argument.
|
inlinenodiscard |
|
inlinenodiscard |
Translates an Acceleration struct to a RPR Acceleration given as template argument.
|
inlinenodiscard |
Translates an AngularVelocity struct to a RPR AngularVelocity given as template argument.
|
inlinenodiscard |
Translates to a Location struct from a RPR WorldLocation.
|
inlinenodiscard |
Translates to an Orientation struct from a RPR Orientation.
|
inlinenodiscard |
|
inlinenodiscard |
Translates to Acceleration struct from a RPR Acceleration.
Translates to Acceleration struct from the rpr::AccelerationVectorStruct type given as template parameter.
|
inlinenodiscard |
Translates to AngularVelocity struct from a RPR AngularVelocity.
Translates to AngularVelocity struct from the rpr::AngularVelocityStruct type given as template parameter.
|
nodiscardnoexcept |
|
nodiscardnoexcept |
Translates from Geodetic (LatLonAlt) to ECEF WorldLocation coordinates.
|
nodiscardnoexcept |
Translates the Orientation in euler angles from ECEF to NED using quaternions.
|
nodiscardnoexcept |
Translates Velocity vectors expressed in ECEF coordinates to NED coordinates.
|
nodiscardnoexcept |
Translates Acceleration vectors expressed in ECEF coordinates to NED coordinates.
|
nodiscardnoexcept |
Translates the Orientation in euler angles from NED to ECEF using quaternions.
|
nodiscardnoexcept |
Translates a Velocity vector from NED to ECEF coordinates.
|
nodiscardnoexcept |
Translates an Acceleration vector from NED to ECEF coordinates.
|
nodiscardnoexcept |
Translates Velocity vectors expressed in body coordinates to NED coordinates.
|
nodiscardnoexcept |
Translates AngularVelocity vectors expressed in body coordinates to NED coordinates.
|
nodiscardnoexcept |
Translates AngularAcceleration vectors expressed in body coordinates to NED coordinates.
|
nodiscardnoexcept |
Translates acceleration vectors expressed in body coordinates to NED coordinates.
| void sen::util::impl::smoothImpl | ( | Situation & | situation, |
| const Situation & | update, | ||
| const DrConfig & | config ) |
Updates the smoothed situation, both in position and orientation.
|
nodiscard |
Computes the distance between two World locations.
|
nodiscard |
Returns true when entity velocity is not null.
|
nodiscard |
Returns true when entity acceleration is not null.
|
nodiscard |
Returns true when angular velocity acceleration is not null.
|
nodiscardnoexcept |
Translates an AngularVelocity vector from NED to body coordinates.
|
nodiscard |
Returns true when the distance threshold has been exceeded.
|
nodiscard |
Returns true when the rotation threshold has been exceeded.
|
constexpr |