OST Calibration
Node ID: ostCalibration · Role: Sink · Realtime config: no
Description
SPAAM-style optical see-through display calibration for the LPVIZ driver. The user aligns a tracked stylus tip with crosshairs at known pixel positions on the display; the solve recovers per-eye projection FOV, IPD, and the head-to-tracker pose. Wire the stylus optical stream and, preferably, the HMD body’s raw optical stream (HMD Optical) - it drops out visibly when tracking is lost, so stale poses are rejected instead of silently captured. The FusedPose input is an alternative when no raw stream is available.
Inputs / Outputs
- Inputs:
Optical- Stylus,HmdOptical(Optical) - HMD Optical,HmdPose(FusedPose) - HMD Pose - Outputs: (none)
Properties
Each row shows the setting’s label in the node’s Properties panel and, in code, its key in the node’s settings object in the config file. A setting omitted from the config file uses the default shown here.
| Property | Type | Default | Description |
|---|---|---|---|
Stylus Tip Offset tipOffset | vector3 | {"x":0.0,"y":0.0,"z":0.0} | Offset from the tracked stylus body origin to its physical tip, in the body frame (m). Solve it with the pivot calibration in the Point Alignment view. |
Example node definition
A minimal entry in config.json looks like the block below. Paste it under the sinks key, keyed by an instance name of your choice. All settings are optional: anything not listed under settings uses the default from the Properties table above. See The configuration file for how the sections and endpoint wiring work.
{
"sinks": {
"ostCalibration": {
"inputEndpoints": [
"inproc://optical_data",
"inproc://hmdOptical_data",
"inproc://hmdPose_data"
],
"inputDataFilter": [
"Optical",
"Optical",
"FusedPose"
],
"settings": {}
}
}
}