Susi Server

LPVISION HeadPose

Node ID: lpvisionHeadPose · Role: Source · Realtime config: no

Description

LPVISION head pose tracking using a Stereolabs ZED camera over UVC. Runs the HeadPoseTracker internally and outputs 6-DOF optical pose. No ZED SDK or CUDA required. For the camera IMU, add a separate ZED IMU node.

Inputs / Outputs

Config aliases

LpvisionSource, lpvisionHeadPose, lpvisionZedSdk

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).

KeyLabelTypeDefaultOptionsDescription / Notes
_zed_headingZED CameraheadingSection header — groups the ZED camera settings below.
resolutionResolutionselectHD720VGA, HD720, HD1080, HD2KZED capture resolution. Higher resolutions cost more GPU and yield fewer FPS.
fpsFPSnumber60Camera frame rate
grayscaleGrayscaletogglefalseRun the tracker on grayscale frames. Faster but reduces robustness in low-texture scenes.
cameraInterfaceCamera Interfacenumber0OS video capture index of the ZED UVC device
baselineBaselinenumber120.0Stereo baseline in millimetres
directShowBrightnessDirectShow Brightnessnumberhidden in UI
directShowContrastDirectShow Contrastnumberhidden in UI
directShowSaturationDirectShow Saturationnumberhidden in UI
directShowGainDirectShow Gainnumberhidden in UI
directShowExposureDirectShow Exposurenumberhidden in UI
_tracker_headingHead Pose TrackerheadingSection header — groups the head-pose tracker settings below.
showPosesShow PosestoggletrueOverlay the estimated poses on a debug window for visual inspection.
filterPoseFilter PosetoggletrueApply a smoothing filter to the output pose.
filterLandmarksFilter LandmarkstoggletrueApply smoothing to the detected 2D landmarks before pose estimation.
_pose_headingHead Tracking OutputheadingSection header — groups the optical pose output settings below.
senderIdSender IDstringheadTrackingStream identifier for the optical pose output
axisPresetOpticalAxis Preset (Optical)selectsteamvridentity, steamvrCoordinate-system preset applied to the optical pose output. ‘steamvr’ matches SteamVR’s convention; ‘identity’ leaves the raw frame.
positionOffsetXPosition Offset Xnumber0.0metres
positionOffsetYPosition Offset Ynumber0.0metres
positionOffsetZPosition Offset Znumber0.0metres
_adv_headingAdvancedheadingSection header — groups advanced settings below.
logLevelLog Levelselecterrordebug, info, warn, error
autoCalibrationAuto Calibrationtoggletrue
cameraSerialCamera Serialstring""Optional ZED serial number. Empty = auto-detect from local Stereolabs SDK cache.
configFileConfig Filefilepath""Path to an LPVISION JSON config file. When set, all settings above are ignored.

Example node definition

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

{
  "sources": {
    "lpvisionHeadPose": {
      "outEndpoint": "inproc://lpvisionHeadPose_data",
      "settings": {
        "autoCalibration": true,
        "axisPresetOptical": "steamvr",
        "baseline": 120.0,
        "cameraInterface": 0,
        "cameraSerial": "",
        "configFile": "",
        "directShowBrightness": null,
        "directShowContrast": null,
        "directShowExposure": null,
        "directShowGain": null,
        "directShowSaturation": null,
        "filterLandmarks": true,
        "filterPose": true,
        "fps": 60,
        "grayscale": false,
        "logLevel": "error",
        "positionOffsetX": 0.0,
        "positionOffsetY": 0.0,
        "positionOffsetZ": 0.0,
        "resolution": "HD720",
        "senderId": "headTracking",
        "showPoses": true
      }
    }
  }
}

Field reference

FieldPurpose
outEndpointZMQ / inproc endpoint this source binds to publish its output. The runtime auto-generates one if omitted.
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…