Skip to content

ILLIXR Services

This page details the structure of ILLIXR's services and how they interact with each other.

fauxpose

An alternate tracking implementation that simply generates "fast_pose" data from a simple mathematical algorithm (circular movement). The intent is for use when debugging other plugins and the developer wants a known pose trajectory without having to configure actual tracking.

Topic details: - Provides fast_pose_type - Asynchronously reads time_type from vsync_estimate topic.

  Details    Code

pose_prediction

Uses the latest IMU value to predict a pose for a future point in time. Implements the pose_prediction service, so poses can be served directly to other plugins.

Topic details:

  • Asynchronously reads pose_type on slow_pose topic, but it is only used as a fallback.
  • Asynchronously reads imu_raw on imu_raw topic.
  • Asynchronously reads pose_type on true_pose topic, but it is only used if the client asks for the true pose.
  • Asynchronously reads time_type on vsync_estimate topic. This tells pose_predict what time to estimate for.

  Details    Code

pose_lookup

Implements the pose_predict service, but uses ground truth from the dataset. The plugin peeks "into the future" to determine what the exact pose will be at a certain time.

Topic details:

  • Asynchronously reads time_point on vsync_estimate topic. This tells pose_lookup what time to lookup.

  Details    Code

vkdemo

INFO NEEDED

Topic details:

  Details    Code

Dataflow image Current dataflow between all plugins and services. Dark blue boxes represent plugins and cyan component boxes represent services. Data types are represented with cylinders and labelled as topic <data_type>. Service data types are represented by octagons. Solid lines point from the plugin/service which publishes them to the data type. Dashed lines point from data types to the plugin/service which reads them synchronously. Dotted lines point from data types to the plugin/service which reads them asynchronously.