schema_version: slac.ins_lidar_hand_eye/v0.1
method: joint_trajectory_hand_eye/v0.1
solver_status: converged
policy_status: inconclusive
policy_reasons:
- 'not constrained by the data or a prior, so not calibrated: yaw, x, y, z'
calibrated_dofs:
- roll
- pitch
- time_offset
- reference_scale
transform:
  parent_frame: ins
  child_frame: lidar
  translation_m:
  - 0.8705963836467454
  - -0.24311279026153806
  - 0.575798565065507
  rotation_quat_xyzw:
  - -0.008496210714824919
  - 0.0005075991139274156
  - -0.0018355920654321563
  - 0.999962092955727
time_offset_s: 0.003982649816137711
reference_scale: 1.0001488256190982
dofs:
- name: roll
  unit: deg
  value: -0.9737112362275916
  std_analytic: 0.06182321999437694
  std_jackknife: 0.03755414959158454
  std_reported: 0.06182321999437694
  status: estimated
  reference_value: -0.8493269379538104
  error_to_reference: -0.12438429827378121
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 17.503015557666913
    detected: true
- name: pitch
  unit: deg
  value: 0.05637725652031869
  std_analytic: 0.07236666695967711
  std_jackknife: 0.06475365550894635
  std_reported: 0.07236666695967711
  status: estimated
  reference_value: 0.11664432400332657
  error_to_reference: -0.060267067483007884
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 148.87397397199425
    detected: true
- name: yaw
  unit: deg
  value: -0.21083015632358235
  std_analytic: 0.08424814355509751
  std_jackknife: 0.5137554161345149
  std_reported: 0.5137554161345149
  status: unobservable
  reference_value: 0.04327600301885539
  error_to_reference: -0.25410615934243774
  known_bad_control:
    amount: 1.0
    unit: deg
    holdout_delta_chi2: 93.76963500430884
    detected: true
- name: x
  unit: m
  value: 0.8705963836467454
  std_analytic: 0.04489087260202984
  std_jackknife: 0.6369653589752505
  std_reported: 0.6369653589752505
  status: unobservable
  reference_value: 0.8105439720319256
  error_to_reference: 0.06005241161481978
  known_bad_control:
    amount: 0.1
    unit: m
    holdout_delta_chi2: 3.767574401106458
    detected: false
- name: y
  unit: m
  value: -0.24311279026153806
  std_analytic: 0.04482107528685035
  std_jackknife: 0.40775084020752583
  std_reported: 0.40775084020752583
  status: unobservable
  reference_value: -0.30705437225086085
  error_to_reference: 0.06394158198932279
  known_bad_control:
    amount: 0.1
    unit: m
    holdout_delta_chi2: -7.348793043595151
    detected: false
- name: z
  unit: m
  value: 0.575798565065507
  std_analytic: 0.5206414565919566
  std_jackknife: 3.5997563679082383
  std_reported: 3.5997563679082383
  status: unobservable
  reference_value: 0.8027239945583536
  error_to_reference: -0.22692542949284666
  known_bad_control:
    amount: 0.1
    unit: m
    holdout_delta_chi2: -0.6942891576518377
    detected: false
- name: time_offset
  unit: s
  value: 0.003982649816137711
  std_analytic: 0.00153146980853528
  std_jackknife: 0.0019013376614310715
  std_reported: 0.0019013376614310715
  status: estimated
  known_bad_control:
    amount: 0.02
    unit: s
    holdout_delta_chi2: 100.88480317118115
    detected: true
- name: reference_scale
  unit: ratio
  value: 1.0001488256190982
  std_analytic: 0.001447666454649071
  std_jackknife: 0.004248958952699192
  std_reported: 0.004248958952699192
  status: estimated
options:
  step_frames:
  - 5
  - 10
  - 20
  holdout_every: 3
  rotation_control_deg: 1.0
  translation_control_m: 0.1
  time_control_s: 0.02
  detection_delta_chi2: 9.0
  estimate_time_offset: true
  estimate_reference_scale: true
  rotation_sigma_rad: 0.0017453292519943296
  translation_sigma_floor_m: 0.01
  translation_sigma_per_m: 0.02
  observable_rotation_std_deg: 0.1
  observable_translation_std_m: 0.02
  observable_time_offset_std_s: 0.005
  priors: []
odometry:
  frame_count: 597
  missing_frames:
  - 2011_09_26_drive_0009_sync/177
  - 2011_09_26_drive_0009_sync/178
  - 2011_09_26_drive_0009_sync/179
  - 2011_09_26_drive_0009_sync/180
  registration_count: 595
  converged_registrations: 595
  median_correspondences: 7872.0
  median_registration_rmse_m: 0.10864032511719358
block_duration_s: 5.0
train_blocks:
- 0
- 1
- 100000
- 100001
- 100003
- 100004
- 100006
- 100007
- 100009
holdout_blocks:
- 2
- 100002
- 100005
- 100008
jackknife_fits: 9
train:
  motion_count: 107
  rotation_rmse_deg: 0.12422232377292829
  translation_rmse_m: 0.16773624442886706
  rotation_median_deg: 0.08962024672012474
  translation_median_m: 0.10666383021659172
holdout:
  motion_count: 58
  rotation_rmse_deg: 0.11945934855427935
  translation_rmse_m: 0.13798252655908702
  rotation_median_deg: 0.08938808094691526
  translation_median_m: 0.07941759262054036
reference_calibration: KITTI calib_imu_to_velo.txt (inverted to T_imu_velo)
limitations:
- Velodyne sweeps are registered as rigid snapshots; motion within a sweep is not
  compensated.
- The KITTI calib_imu_to_velo reference is itself an estimate, not independent metrology;
  differences to it are not accuracy errors.
- OXTS positions come from a Mercator projection of GNSS/INS output and their timestamps
  are logging times; a reference scale and clock offset are estimated as nuisance
  parameters for that reason.
- Vehicle motion is close to planar, so the translation along the vertical rotation
  axis cannot be observed without a prior.
provenance:
  generator: calibrex.evaluation.ins_lidar_hand_eye
  generator_version: 0.4.1
  git_commit: 5e010f9
  command:
  - calibrex
  - ins-lidar
  - kitti
  - 2011_09_26/2011_09_26_drive_0005_sync
  - 2011_09_26/2011_09_26_drive_0009_sync
  - --output
  - kitti_ins_lidar_2011_09_26.yaml
  dataset_family: kitti_raw
  drive_ids:
  - 2011_09_26_drive_0005_sync
  - 2011_09_26_drive_0009_sync
  input_sha256: 040516bf559e14525dc27eb1c1a106d6ecd0521bfa661560310e1f48405f7180
  dataset_license: CC BY-NC-SA 3.0
  created_at: '2026-09-29T10:41:39.175383+00:00'
