Add camera calibration toolchain and armor pose solver
- capture_calib: capture calibration images (MindVision / USB) with a live quality gate (Laplacian sharpness, 3x3 coverage, board auto-detect) - calibrate: batch intrinsics from calib_images/, writes configs/camera.yaml - camera_calib: CameraCalib loader (intrinsics + distortion, cached undistort remap) and solvePose() via IPPE with a reprojection gate - configs/camera.yaml: MV-SUA131GC intrinsics, RMS 0.483 px over 31 images, ruler-verified distance error < 2% - xmake: three targets sharing an rm_deps rule, C++17 - gitignore: keep calibration photos/videos and generated compile_commands.json out of the repo
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
%YAML:1.0
|
||||
---
|
||||
# ============================================================
|
||||
# 相机标定与内参配置(27RM)
|
||||
# 本文件由 ./build/.../calibrate 生成,也可手工维护
|
||||
# ⚠️ M12 镜头的【对焦环位置】会改变有效焦距:
|
||||
# 一旦调焦,必须重新标定并重新做卷尺距离验证!
|
||||
# ============================================================
|
||||
camera_name: "MV-SUA131GC"
|
||||
lens: "MV-LD-M12-2.8MM-C"
|
||||
sensor: "1/3\" CMOS, 3.75um pixel"
|
||||
resolution: "1280x1024"
|
||||
calib_date: "2026-09-15"
|
||||
board_spec: "10x7 inner corners, square=20.0mm"
|
||||
calib_images: "31 (old_run 12 + new 19)"
|
||||
distance_verify: "ruler 700mm -> computed 687~697mm, error <2%"
|
||||
notes: "refocus invalidates this calibration; must re-verify with ruler"
|
||||
|
||||
camera_matrix: !!opencv-matrix
|
||||
rows: 3
|
||||
cols: 3
|
||||
dt: d
|
||||
data: [ 657.47392591548282, 0., 625.64119358041364, 0.,
|
||||
658.25468859263844, 509.00483710801581, 0., 0., 1. ]
|
||||
dist_coeffs: !!opencv-matrix
|
||||
rows: 1
|
||||
cols: 5
|
||||
dt: d
|
||||
data: [ -0.0012152502343767638, -0.058463444062878803,
|
||||
-0.0022603001279860352, 0.0018169600148664874,
|
||||
0.040233970225725772 ]
|
||||
image_width: 1280
|
||||
image_height: 1024
|
||||
square_mm: 20.
|
||||
board_cols: 10
|
||||
board_rows: 7
|
||||
rms: 0.48277734002307909
|
||||
Reference in New Issue
Block a user