Susi Server

Varjo HMD

Node ID: varjoHmd · Role: Filter · Realtime config: no

Description

Bidirectional ZMQ bridge to the LPVR Varjo Base plugin. Receives IMU samples from the Varjo HMD (with hardware calibration applied in the plugin) and forwards FusedPose back to Varjo Base for rendering. Includes gyro autocalibration.

Inputs / Outputs

Config aliases

varjoHmd, VarjoHmd, varjo

Required feature

varjo_hmd

Properties

The following fields are exposed in the node’s Properties panel in the UI. Types map to UI widgets (e.g. string → text input, number → numeric, boolean → toggle, select → dropdown, json → JSON editor).

KeyLabelTypeDefaultDescription / Notes
imuEndpointPlugin IMU Endpointstringtcp://127.0.0.1:9930
fusedPoseEndpointFusedPose Publish Endpointstringtcp://*:9931
senderIdSender IDstringvarjo_hmd
enableGyroAutocalibrationEnable Gyro Autocalibrationbooleantrue
nSamplesForSteadyAutocal: Samples for Steadynumber256
nSamplesForAutocalibrationAutocal: Samples for Calibrationnumber1500
steadyThresholdAverageAutocal: Steady Threshold (deg/s)number2.0
steadyThresholdRmsAutocal: Steady RMS Thresholdnumber2.0
noiseRmsLimitAutocal: Noise RMS Limitnumber0.2

Example node definition

A full node definition in config.json looks like the block below. Paste it under the sinks key of your config, keyed by the node’s instance name (any identifier; it doesn’t have to match the node ID).

{
  "sinks": {
    "varjoHmd": {
      "dataEndpoint": "inproc://varjoHmd_data",
      "inputEndpoints": [
        "inproc://fusedPose_data"
      ],
      "inputDataFilter": [
        "FusedPose"
      ],
      "settings": {
        "enableGyroAutocalibration": true,
        "fusedPoseEndpoint": "tcp://*:9931",
        "imuEndpoint": "tcp://127.0.0.1:9930",
        "nSamplesForAutocalibration": 1500,
        "nSamplesForSteady": 256,
        "noiseRmsLimit": 0.2,
        "senderId": "varjo_hmd",
        "steadyThresholdAverage": 2.0,
        "steadyThresholdRms": 2.0
      }
    }
  }
}

Field reference

FieldPurpose
dataEndpointEndpoint this node binds to publish its output. Omit to let the runtime generate one.
inputEndpointsList of upstream endpoints this node connects to (outEndpoint / dataEndpoint values from upstream nodes).
inputDataFilterOptional whitelist of data types. Messages whose type isn’t in the list are dropped at the subscriber.
settingsAll user-configurable fields — see the Properties table above.

Connections can also be declared at the top-level connections array when settings.explicitConnections is true, as an alternative to filling inputEndpoints on each node.

Loading documentation…