TransformLinkTimes Struct Reference

Times the links of a transform chain were evaluated at: the query time (or the latest common time) for an interpolated link, the time of the pose used for a held or non-interpolated link. More...

#include <RobotAPI/libraries/armem_robot_state/common/localization/types.h>

Public Member Functions

armarx::core::time::Duration spread () const
 How far apart in time the links of the chain are (newest - oldest).
 

Public Attributes

bool anyLinkHeld = false
 True if at least one link was held at its newest pose because the query time lies past it (e.g.
 
bool anyLinkInterpolated = false
 True if at least one link was interpolated between its poses right before and after the evaluation time, i.e.
 
armarx::core::time::Duration largestPoseGap = armarx::core::time::Duration()
 The largest time between the poses right before and after the query time, among the links whose poses around the query time were used (zero if there are none, e.g.
 
armarx::core::time::DateTime newest = armarx::core::time::DateTime::Invalid()
 The time the result is valid for, and its header timestamp: the query time (or the latest common time) if any link was interpolated or matched it exactly, else the time of the newest pose used (e.g.
 
armarx::core::time::DateTime oldest = armarx::core::time::DateTime::Invalid()
 

Detailed Description

Times the links of a transform chain were evaluated at: the query time (or the latest common time) for an interpolated link, the time of the pose used for a held or non-interpolated link.

Static links (TransformHeader::isStatic, and world -> map) are valid at any time and are not included. If all links are static, oldest and newest are the query time (or the latest common time).

Member Function Documentation

◆ spread()

armarx::core::time::Duration spread ( ) const
inline

How far apart in time the links of the chain are (newest - oldest).

Member Data Documentation

◆ anyLinkHeld

bool anyLinkHeld = false

True if at least one link was held at its newest pose because the query time lies past it (e.g.

a slow map -> odom at Clock::Now(); never with TransformTimePolicy::LatestCommonTime). Such a result is provisional: the same query can give a different result once that link's next pose has arrived (it is then interpolated or, without interpolation, may use a newer pose before the query time). False results are final, assuming each link is written in time order. Static links (TransformHeader::isStatic, and world -> map) are valid until replaced and never count as held.

◆ anyLinkInterpolated

bool anyLinkInterpolated = false

True if at least one link was interpolated between its poses right before and after the evaluation time, i.e.

its pose was computed rather than recorded. False if every link used a recorded pose as it is (exact match, held, static, or TransformQuery::interpolate = false).

◆ largestPoseGap

The largest time between the poses right before and after the query time, among the links whose poses around the query time were used (zero if there are none, e.g.

at an exact match or when all links are held).

◆ newest

The time the result is valid for, and its header timestamp: the query time (or the latest common time) if any link was interpolated or matched it exactly, else the time of the newest pose used (e.g.

at Clock::Now(), when links are held).

◆ oldest


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