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_typeonslow_posetopic, but it is only used as a fallback. - Asynchronously reads
imu_rawonimu_rawtopic. - Asynchronously reads
pose_typeontrue_posetopic, but it is only used if the client asks for the true pose. - Asynchronously reads
time_typeonvsync_estimatetopic. This tellspose_predictwhat 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_pointonvsync_estimatetopic. This tellspose_lookupwhat 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.