Skip to content

Native screw accelerometer derivative development

These complete slac.continuous_time_lidar_imu_joint/v0.1 artifacts retain all three already-spent synthetic seeds used for the reliability study. This is a correctness and development record. It makes no execution-speed, independent accuracy, or general convergence claim.

Correctness change

The fitter previously omitted trajectory-knot columns from accelerometer factors, although the residual depends on the trajectory's body kinematics. It now differentiates the existing clamped three-sample model analytically. The sparse assembly includes the union of all three samples' supporting knots, including segment crossings and dense nonuniform grids. The lever-arm Jacobian also applies the accelerometer scale after the mounting rotation.

All 45 regression checks fail against the previous source and pass after the correction. They compare against independent all-knot finite differences, test nonunit scale with and without mounting rotation, inspect the actual sparse assembly and weighted objective gradients, and solve an acceleration-driven trajectory update with every calibration state fixed. The residual model, weights, iteration limits, quality gates and artifact schemas are unchanged.

Frozen source and complete outcomes

The numerical source is commit 11cd1ca4e71779505ba071711eb2486b8f4f90d8. All 401 Python source modules were hashed with normalized LF text before and after the runs and remained unchanged. The receipt, receipt schema, source manifest and original launcher retain the commands, source and result bindings. Runtime: Python 3.12.10, NumPy 2.3.4, SciPy 1.17.1, Pydantic 2.12.5. OpenBLAS/MKL/OMP limits were one; concurrent host activity was allowed.

The previous results below are the existing measurement-weight correction records, source 634751653d1be1411b801f26ca50ce83a14d8b75, rather than a new control run. All three generated input problems and solver options were also checked for exact canonical JSON equality with the archived development inputs.

Seed Previous fit / iterations Corrected fit / iterations Previous policy Corrected policy Complete result
20261010 converged / 28 converged / 29 pass pass JSON
20261011 max_iterations / 31 converged / 22 fail pass JSON
20261012 converged / 23 converged / 25 pass pass JSON

Every result retains calibration errors, covariance-derived uncertainty, training and holdout residuals, all 32 signed known-bad controls, separability, and seed/command/source provenance. All controls are detected in each case.

Seed Gyro holdout RMSE, previous → corrected (rad) Maximum translation error, previous → corrected (m) Maximum rotation error, previous → corrected (deg)
20261010 0.000505911 → 0.000488303 0.00650239 → 0.00585998 0.175275 → 0.163572
20261011 0.000356604 → 0.000341163 0.00800098 → 0.00699457 0.0950941 → 0.0972515
20261012 0.000424025 → 0.000423084 0.00716335 → 0.00634399 0.121820 → 0.126098

The policy improves from two passes and one failure to three passes. Some rotation maxima increase slightly, so these results do not establish uniform accuracy improvement. The holdout oracle evaluates truth calibration on the fitted trajectory and therefore changes when that trajectory changes. For seed 20261011 its gyro RMSE changes from 0.000235692 to 0.000245887 rad; the corrected holdout is below 1.5 times that value.

The native converged label can result from a small accepted damped step; it does not by itself establish a small undamped gradient. Clock and gyro derivatives, correlated-prior whitening, and convergence remain explicit audit work before the fixed-budget comparison. Earlier failures remain unchanged in their original records.

Reproduce

Using the pinned numerical source and the thread limits above, run all three commands separately. Retain every outcome; floating-point and platform differences can affect convergence. Provenance timestamps and output paths will differ on replay.

calibrex trajectory recover-lidar-imu-joint --trajectory screw_linear --seed 20261010 --output replay-20261010.json --json
calibrex trajectory recover-lidar-imu-joint --trajectory screw_linear --seed 20261011 --output replay-20261011.json --json
calibrex trajectory recover-lidar-imu-joint --trajectory screw_linear --seed 20261012 --output replay-20261012.json --json

Integrity

Artifact SHA-256
seed-20261010.json 54b1b181283fe825912d6564f3220027a95f460e6a849df3708dd656692f8233
seed-20261011.json 24d24beb478bbb98d46adc3d2f5c309f9ef649cde152474ab76583af534c6137
seed-20261012.json bd64c2b734f8211bd03690a0d8e0471af9e474e7761b3649b2ea1c912879d19d
source-manifest.json 789c677a7cd8a5211055086d75f0ae8dea6b40fb7130690db164a4dd3f6f21d0
generator.py.txt 36aa2f6721f05939e63a15150790cbd30a9a2529280b89a8fb9173d8eafa97a7

Maintained tests verify the full declared cohort, native schemas, byte hashes, source/seed provenance, signed controls, and the receipt's bindings.