Susi Server

IMU Source

Node ID: imu · Role: Source · Realtime config: yes

Description

Inertial measurement unit source supporting HID, XREAL Air 2 Ultra, XREAL One Pro, and Stereolabs ZED (ZED-M/ZED2/ZED2i) devices. Outputs ImuData (accelerometer, gyroscope, quaternion orientation).

Inputs / Outputs

Config aliases

ImuSource, imuSource, imu

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.

PropertyTypeDefaultDescription
Sender ID idstringimuStream identifier that downstream nodes use to subscribe to this source’s IMU data.

Subtypes

ValueDisplay nameExtra properties
hidHID IMU8 field(s)
xreal_air2_ultraXREAL Air 2 Ultra7 field(s)
xreal_one_proXREAL One Pro12 field(s)
zedZED IMU5 field(s)

Subtype: hid — HID IMU

PropertyTypeDefaultDescription
Accelerometer Axis Config axisConfigAccstring+X+Y+ZPer-axis sign/swizzle for the accelerometer, e.g. ‘+X+Y+Z’ or ‘-Y+X+Z’. Used to rotate raw sensor axes into the expected body frame.
Gyroscope Axis Config axisConfigGyrostring+X+Y+ZPer-axis sign/swizzle for the gyroscope, same format as the accelerometer axis config.
Enable Gyro Autocalibration enableGyroAutocalibrationbooleantrue

Gyro Autocalibration

PropertyTypeDefaultDescription
Steady motion threshold (deg/s) steadyThresholdAveragenumber1.5
Steady RMS gate steadyThresholdRmsnumber1.0
Noise RMS limit noiseRmsLimitnumber0.02
Steady-detection samples nSamplesForSteadynumber256
Calibration samples nSamplesForAutocalibrationnumber500

Subtype: xreal_air2_ultra — XREAL Air 2 Ultra

PropertyTypeDefaultDescription
Sender ID idstringheadsetImuStream identifier for the Xreal Air 2 Ultra IMU output.
Enable Gyro Autocalibration enableGyroAutocalibrationbooleantrue

Gyro Autocalibration

PropertyTypeDefaultDescription
Steady motion threshold (deg/s) steadyThresholdAveragenumber2.0
Steady RMS gate steadyThresholdRmsnumber1.0
Noise RMS limit noiseRmsLimitnumber0.02
Steady-detection samples nSamplesForSteadynumber256
Calibration samples nSamplesForAutocalibrationnumber500

Subtype: xreal_one_pro — XREAL One Pro

PropertyTypeDefaultDescription
Sender ID idstringheadsetImuStream identifier for the Xreal One Pro IMU output.
Device IP ipstring169.254.2.1IPv4 address of the Xreal One Pro device.
Device Port portnumber52998UDP port on the Xreal One Pro device for the IMU stream.
Connect timeout (ms) connectTimeoutMsnumber1000Timeout when opening the connection to the device, in milliseconds.
Receive timeout (ms) recvTimeoutMsnumber1000Timeout on each receive call, in milliseconds.
IMU Tilt (deg) imuTiltDegnumber30.0Mechanical tilt of the IMU inside the headset, in degrees; applied to the raw samples.
Enable Gyro Autocalibration enableGyroAutocalibrationbooleantrue

Gyro Autocalibration

PropertyTypeDefaultDescription
Steady motion threshold (deg/s) steadyThresholdAveragenumber2.0
Steady RMS gate steadyThresholdRmsnumber1.0
Noise RMS limit noiseRmsLimitnumber0.02
Steady-detection samples nSamplesForSteadynumber256
Calibration samples nSamplesForAutocalibrationnumber500

Subtype: zed — ZED IMU

PropertyTypeDefaultDescription
Sender ID idstringzedImuStream identifier that downstream nodes use to subscribe to this source’s IMU data.
Camera Serial cameraSerialstring""Optional ZED serial number. Empty = first ZED MCU found.
Accelerometer Axis Config axisConfigAccstring+Z+Y-X
Gyroscope Axis Config axisConfigGyrostring+Z+Y-X
Enable Gyro Autocalibration enableGyroAutocalibrationbooleantrue

Example node definition

A minimal entry in config.json looks like the block below. Paste it under the sources 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.

{
  "sources": {
    "imu": {
      "outEndpoint": "inproc://imu_data",
      "type": "hid",
      "settings": {}
    }
  }
}
Loading documentation…