Skip to main content

IMU (Inertial Measurement Unit)

The IMU API provides real-time access to inertial sensor data including gyroscope, accelerometer, and temperature measurements. This API enables motion tracking, orientation detection, and environmental monitoring for Luniris OS applications.

Gyroscope Calibration

If you notice drifting values or inaccurate rotation measurements from the gyroscope, you can recalibrate it through the system settings:

  1. Go to Settings → System → Calibrate Gyroscope
  2. Place your fursuit head or the Louis's eyes system on a flat, stable surface
  3. Follow the on-screen instructions
  4. The system will automatically apply new calibration offsets

Protocol Buffer Definition

syntax = "proto3";
import "google/protobuf/empty.proto";

service ImuService {
// Streams real-time gyroscope data (angular velocity in rad/s)
rpc StreamGyroscopeValues (google.protobuf.Empty) returns (stream InertialMeasurementValues);

// Streams real-time accelerometer data (acceleration in m/s²)
rpc StreamAccelerometerValues (google.protobuf.Empty) returns (stream InertialMeasurementValues);

// Streams real-time temperature data (°C)
rpc StreamTemperatureValues (google.protobuf.Empty) returns (stream TemperatureValue);
}

// 3-axis sensor measurements
message InertialMeasurementValues {
float x = 1; // X-axis measurement
float y = 2; // Y-axis measurement
float z = 3; // Z-axis measurement
}

// Temperature measurement
message TemperatureValue {
float temperature = 1; // Temperature in degrees Celsius
}