CHANGELOG — libstereo_bolt delivery package ============================================ ## 2026-07-01 v3 — stable OBB-axis ranging summary Current delivery contents: - Model: best_obb_1024.rknn (OBB, imgsz 1024, RKNN) - Precise measurement and ranging share the same OBB model. - Runtime libraries are bundled in lib/: libstereo_bolt.so, OpenCV 4.5.0, librknnrt.so. - No target-board apt install is required for runtime OpenCV. Algorithm: - Ranging now uses left/right OBB-axis pairing before the NCC fallback. - Even-count OBB candidates no longer average two different pair hypotheses. The summary distance chooses the center candidate with the more stable sampled axis disparity, removing the RK3588 1498/1652 mm jump. Performance / validation: - RK3588, distance_153304_403, 21 binned frames: found=21/21, distance mean=1652.360 mm, min=1652.091, max=1652.582, std=0.149 mm, elapsed mean=153.146 ms. - Windows ctest: 22/22 pass. ## 2026-06-30 v2 — OBB model + plane skip optimization Changes vs previous delivery (2026-06-24, v1): ### Model - Previous package used an HBB detector at imgsz 960. - Current package uses best_obb_1024.rknn (OBB, imgsz 1024, YOLOv8 oriented bbox). - OBB model trained on mixed 5MP + 12MP data (2026-06-29) - Auto-detection: library detects OBB vs HBB from RKNN output shape ### Config - yolo.task: "auto" (auto-detect OBB/HBB from model output) - yolo.imgsz: 960 -> 1024 - yolo.conf: 0.5 (unchanged) - measurement.height_from_plane: false (height = top-to-foot along axis) - working_distance.z_min_mm: 1200 -> 900 - working_distance.z_max_mm: 2800 -> 4000 - ranging.z_min_mm: 1300 -> 900 - ranging.z_max_mm: 3600 -> 4000 ### Algorithm - Plane computation skipped when height_from_plane=false (saves 300-550ms per frame on 8-bolt scenes) - OBB auto-detection in RKNN backend - OBB centerline rescue + peer height consensus clamp ### Calibration - Unchanged: stereo_calib_20260621_202857_ascii.xml (baseline 482mm) ### C API - ABI unchanged: c_api.h has zero changes - All function signatures identical - Struct layouts identical - Drop-in .so replacement, no recompile needed for downstream ### Performance (RK3588 board, 8-bolt scene, height_from_plane=false) - Precise: ~400ms/frame (was ~800ms with plane enabled) - Ranging: superseded by v3 benchmark above ### Verified on - RK3588 board (linaro): 0621 dataset 21 frames, 12/21 success - 0627 dataset 10 frames: 10/10 success - 0628 dataset 10 frames: 10/10 success - Windows ctest at the time: 20/20 pass