Skip to content

Struct ILLIXR::data_format::pose::head_pose_type

ClassList > ILLIXR > data_format > pose > head_pose_type

Pose and velocity data for the head / HMD , with a timestamp.More...

  • #include <head_pose.hpp>

Inherits the following classes: ILLIXR::switchboard::event, ILLIXR::data_format::pose::head_pose_data

Public Attributes

Type Name
Eigen::Vector3f angular_velocity
Angular velocity in rad/s; zero if unavailable.
bool angular_velocity_valid
True when the runtime supplied a valid angular velocity.
Eigen::Vector3f linear_velocity
Linear velocity in m/s; zero if unavailable.
bool linear_velocity_valid
True when the runtime supplied a valid linear velocity.
time_point sensor_time
Recorded time of sensor data ingestion.

Public Attributes inherited from ILLIXR::data_format::pose::pose_base

See ILLIXR::data_format::pose::pose_base

Type Name
float confidence
Confidence in the pose estimate in [0, 1], where 1 is highest confidence.
Eigen::Quaternionf orientation
Rotation component of the pose as a unit quaternion.
Eigen::Vector3f position
Translation component of the pose (x, y, z)
bool valid
Whether this pose contains valid, usable data.

Public Functions

Type Name
head_pose_type ()
Default constructor. Pose invalid; velocities zero and invalid.
head_pose_type (time_point sensor_time_, Eigen::Vector3f & position_, Eigen::Quaternionf & orientation_, Eigen::Vector3f linear_velocity_=Eigen::Vector3f::Zero(), Eigen::Vector3f angular_velocity_=Eigen::Vector3f::Zero(), bool linear_velocity_valid_=false, bool angular_velocity_valid_=false, bool valid_=true, const float confidence_=0.)
Construct from explicit components (mutable reference overload).
head_pose_type (time_point sensor_time_, const Eigen::Vector3f & position_, const Eigen::Quaternionf & orientation_, Eigen::Vector3f linear_velocity_=Eigen::Vector3f::Zero(), Eigen::Vector3f angular_velocity_=Eigen::Vector3f::Zero(), bool linear_velocity_valid_=false, bool angular_velocity_valid_=false, bool valid_=true, const float confidence_=0.)
Construct from explicit components (const reference overload).
head_pose_type (time_point sensor_time_, head_pose_data & other)
Construct from a head_pose_data with no velocity information.

Public Functions inherited from ILLIXR::switchboard::event

See ILLIXR::switchboard::event

Type Name
void serialize (Archive & ar, const unsigned int version)
virtual ~event () = default

Public Functions inherited from ILLIXR::data_format::pose::head_pose_data

See ILLIXR::data_format::pose::head_pose_data

Type Name
head_pose_data () = default
Default constructor. Produces an invalid, zero-translation, identity-rotation pose.
head_pose_data (Eigen::Vector3f position_, Eigen::Quaternionf orientation_, bool valid_=true, const float confidence_=0.)

Public Functions inherited from ILLIXR::data_format::pose::pose_base

See ILLIXR::data_format::pose::pose_base

Type Name
pose_base ()
Default constructor. Produces an invalid, zero-translation, identity-rotation pose.
pose_base (Eigen::Vector3f position_, Eigen::Quaternionf orientation_, float confidence_=0.f, bool valid_=true)
Construct a pose from explicit components.
void update (Eigen::Vector3f position_, Eigen::Quaternionf orientation_)

Detailed Description

Extends head_pose_data with linear and angular velocity reported by the OpenXR runtime via XrSpaceVelocity. Each velocity component carries its own validity flag because the runtime may provide one without the other.

Velocities are expressed in the same reference space as the pose (local space by convention in this plugin) and in SI units: * linear_velocity — metres per second * angular_velocity — radians per second (axis-angle, right-hand rule)

Public Attributes Documentation

variable angular_velocity

Angular velocity in rad/s; zero if unavailable.

Eigen::Vector3f ILLIXR::data_format::pose::head_pose_type::angular_velocity;


variable angular_velocity_valid

True when the runtime supplied a valid angular velocity.

bool ILLIXR::data_format::pose::head_pose_type::angular_velocity_valid;


variable linear_velocity

Linear velocity in m/s; zero if unavailable.

Eigen::Vector3f ILLIXR::data_format::pose::head_pose_type::linear_velocity;


variable linear_velocity_valid

True when the runtime supplied a valid linear velocity.

bool ILLIXR::data_format::pose::head_pose_type::linear_velocity_valid;


variable sensor_time

Recorded time of sensor data ingestion.

time_point ILLIXR::data_format::pose::head_pose_type::sensor_time;


Public Functions Documentation

function head_pose_type [1/4]

Default constructor. Pose invalid; velocities zero and invalid.

inline ILLIXR::data_format::pose::head_pose_type::head_pose_type () 


function head_pose_type [2/4]

Construct from explicit components (mutable reference overload).

inline ILLIXR::data_format::pose::head_pose_type::head_pose_type (
    time_point sensor_time_,
    Eigen::Vector3f & position_,
    Eigen::Quaternionf & orientation_,
    Eigen::Vector3f linear_velocity_=Eigen::Vector3f::Zero(),
    Eigen::Vector3f angular_velocity_=Eigen::Vector3f::Zero(),
    bool linear_velocity_valid_=false,
    bool angular_velocity_valid_=false,
    bool valid_=true,
    const  float confidence_=0.
) 

Parameters:

  • sensor_time_ Timestamp associated with this data
  • position_ Positional part of the pose
  • orientation_ Rotational part of the pose
  • linear_velocity_ Linear velocity in m/s, defaults to zero
  • angular_velocity_ Angular velocity in rad/s, defaults to zero
  • linear_velocity_valid_ Whether linear_velocity_ contains valid data
  • angular_velocity_valid_ Whether angular_velocity_ contains valid data
  • valid_ Pose validity, defaults to true
  • confidence_ Confidence in [0, 1], defaults to 0

function head_pose_type [3/4]

Construct from explicit components (const reference overload).

inline ILLIXR::data_format::pose::head_pose_type::head_pose_type (
    time_point sensor_time_,
    const Eigen::Vector3f & position_,
    const Eigen::Quaternionf & orientation_,
    Eigen::Vector3f linear_velocity_=Eigen::Vector3f::Zero(),
    Eigen::Vector3f angular_velocity_=Eigen::Vector3f::Zero(),
    bool linear_velocity_valid_=false,
    bool angular_velocity_valid_=false,
    bool valid_=true,
    const  float confidence_=0.
) 

Parameters:

  • sensor_time_ Timestamp associated with this data
  • position_ Positional part of the pose
  • orientation_ Rotational part of the pose
  • linear_velocity_ Linear velocity in m/s, defaults to zero
  • angular_velocity_ Angular velocity in rad/s, defaults to zero
  • linear_velocity_valid_ Whether linear_velocity_ contains valid data
  • angular_velocity_valid_ Whether angular_velocity_ contains valid data
  • valid_ Pose validity, defaults to true
  • confidence_ Confidence in [0, 1], defaults to 0

function head_pose_type [4/4]

Construct from a head_pose_data with no velocity information.

inline ILLIXR::data_format::pose::head_pose_type::head_pose_type (
    time_point sensor_time_,
    head_pose_data & other
) 

Parameters:

  • sensor_time_ Timestamp associated with the pose
  • other Pose to copy; velocities will be zero and invalid


The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/illixr_release/ILLIXR/include/illixr/data_format/poses/head_pose.hpp