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.
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
onslow_pose
topic, but it is only used as a fallback. - Asynchronously reads
imu_raw
onimu_raw
topic. - Asynchronously reads
pose_type
ontrue_pose
topic, but it is only used if the client asks for the true pose. - Asynchronously reads
time_type
onvsync_estimate
topic. This tellspose_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
onvsync_estimate
topic. This tellspose_lookup
what time to lookup.
Details Code
vkdemo
INFO NEEDED
Topic details:
- Calls
pose_prediction
- Calls
vulkan::display_provider
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.