schema_version: slac.imu_lidar_rotation/v0.1
method: angular_rate_alignment/v0.1
solver_status: converged
policy_status: pass
policy_reasons:
- every rotation axis is estimated and held-out windows detect every control
calibrated_dofs:
- roll
- pitch
- yaw
- time_offset
- gyro_bias_x
- gyro_bias_y
- gyro_bias_z
rotation_quat_xyzw:
- -0.000696015127897287
- 0.001215741172701319
- -0.0013476044235809597
- 0.9999981107475455
time_offset_s: 0.009819330640031654
gyro_bias_rps:
- 0.015584243593181531
- -0.0024535071974934736
- 0.0016707707647081948
dofs:
- name: roll
  unit: deg
  value: -0.07994530955429022
  std_analytic: 0.024981709571349944
  std_jackknife: 0.01969760609125981
  std_reported: 0.024981709571349944
  status: estimated
  reference_value: 0.0
  error_to_reference: -0.07994530955429023
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 869.5161316764279
    detected: true
- name: pitch
  unit: deg
  value: 0.1392060686043933
  std_analytic: 0.023947594519660696
  std_jackknife: 0.01618771173341241
  std_reported: 0.023947594519660696
  status: estimated
  reference_value: 0.0
  error_to_reference: 0.1392060686043933
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 1023.9682189168816
    detected: true
- name: yaw
  unit: deg
  value: -0.1545214079098229
  std_analytic: 0.03093830382854515
  std_jackknife: 0.01879906071576783
  std_reported: 0.03093830382854515
  status: estimated
  reference_value: 0.0
  error_to_reference: -0.15452140790982294
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 642.7544084712208
    detected: true
- name: time_offset
  unit: s
  value: 0.009819330640031654
  std_analytic: 2.9179083526531902e-05
  std_jackknife: 2.9424480379377683e-05
  std_reported: 2.9424480379377683e-05
  status: estimated
  known_bad_control:
    amount: 0.01
    unit: s
    holdout_delta_chi2: 36916.66644113188
    detected: true
- name: gyro_bias_x
  unit: rad/s
  value: 0.015584243593181531
  std_analytic: 8.962864755831614e-05
  std_jackknife: 0.00023061441462544774
  std_reported: 0.00023061441462544774
  status: estimated
- name: gyro_bias_y
  unit: rad/s
  value: -0.0024535071974934736
  std_analytic: 9.035608184285277e-05
  std_jackknife: 6.07987320021804e-05
  std_reported: 9.035608184285277e-05
  status: estimated
- name: gyro_bias_z
  unit: rad/s
  value: 0.0016707707647081948
  std_analytic: 8.892787565235584e-05
  std_jackknife: 0.00011954175697470246
  std_reported: 0.00011954175697470246
  status: estimated
options:
  holdout_every: 3
  jackknife_groups: 8
  rotation_control_deg: 1.0
  time_control_s: 0.01
  detection_delta_chi2: 9.0
  window_duration_s: 10.0
  local_map_scans: 5
  deskew_iterations: 1
  gyro_deskew_passes: 5
  deskew_convergence_sigma: 0.25
  feedback_check_deg: 2.0
  model: preintegrated
  pair_steps:
  - 1
  rate_sigma_floor_rps: 0.01
  rate_sigma_fraction: 0.02
  observable_rotation_std_deg: 0.1
  observable_time_offset_std_s: 0.002
windows:
  scans_read: 9216
  odometry_segments: 1
  unreliable_registrations: 0
  windows: 88
  rate_intervals: 8543
  imu_samples: 175191
train_windows: 59
holdout_windows: 29
jackknife_fits: 8
train_median_rate_residual_rps: 0.0117957330106645
holdout_median_rate_residual_rps: 0.012156754083564201
reference: 'Livox MID360 manual: IMU axes aligned with the LiDAR frame'
deskew_passes:
- deskew: lidar_constant_velocity
  policy_status: inconclusive
  time_offset_s: 0.010035496486606276
  holdout_median_rate_residual_rps: 0.08023412357816365
  rotation_rpy_deg:
  - -0.4730992611625034
  - 0.5277659704536278
  - -1.3858263491792362
- deskew: gyro
  policy_status: pass
  time_offset_s: 0.009952266784640782
  holdout_median_rate_residual_rps: 0.012571897391910978
  rotation_rpy_deg:
  - -0.19854197957756048
  - 0.15591007529679587
  - -0.4318852877507643
- deskew: gyro
  policy_status: pass
  time_offset_s: 0.009883272073126228
  holdout_median_rate_residual_rps: 0.012084044880031381
  rotation_rpy_deg:
  - -0.11384697758267859
  - 0.13727730595415757
  - -0.21370715250745892
- deskew: gyro
  policy_status: pass
  time_offset_s: 0.009837589377959647
  holdout_median_rate_residual_rps: 0.011936438998024499
  rotation_rpy_deg:
  - -0.08557396154348204
  - 0.13448149397579015
  - -0.15236217388946965
- deskew: gyro
  policy_status: pass
  time_offset_s: 0.009819330640031654
  holdout_median_rate_residual_rps: 0.012156754083564201
  rotation_rpy_deg:
  - -0.07994530955429022
  - 0.1392060686043933
  - -0.1545214079098229
- deskew: gyro_feedback_check
  policy_status: pass
  time_offset_s: 0.009851595236750072
  holdout_median_rate_residual_rps: 0.012865983215295841
  rotation_rpy_deg:
  - 0.12981194685960581
  - 0.3190080670365781
  - 0.12899658415012266
deskew_feedback_ratio: 0.1976319334805203
limitations:
- The reference rotation is the MID360 design value (IMU axes aligned with the LiDAR);
  it is not a measurement.
- Mean angular rates over one LiDAR period approximate the rotation increment; the
  second-order error grows with the rotation per period.
- The translation of T_lidar_imu is not estimated by this method.
provenance:
  generator: calibrex.evaluation.imu_lidar_rotation
  generator_version: 0.4.1
  git_commit: d219035
  command:
  - calibrex
  - imu-lidar
  - livox
  - --profile
  - rtk-slam
  - stadtgarten_seq2
  dataset_family: rtk_slam
  sequence_ids:
  - stadtgarten_seq2
  stream_profile: rtk-slam
  input_sha256: 982633678ad25547864db63e53b9d0749c59d97ece79b8b28b3c1e734c93417f
  input_digest_scope: bag metadata.yaml in full; bag databases by size and first 64
    MiB
  dataset_license: see https://huggingface.co/datasets/Willyzw/rtk-slam-dataset
  created_at: '2026-09-29T17:46:57.841658+00:00'
