mindlin_fit — DRIVE tacslip op

• Data kinds: table × matrix × matrix → table

• Call: import fullseye as fs; fs.ledger.mindlin_fit(model: 'dict', pts_px, u_m, n_coarse: 'int' = 101, n_fine: 'int' = 41, rigid: 'bool' = False) -> 'dict' (to call the implementation directly, import tacslip; tacslip.mindlin_fit(model: 'dict', pts_px, u_m, n_coarse: 'int' = 101, n_fine: 'int' = 41, rigid: 'bool' = False) -> 'dict'; from the registry, opsdrive.get("mindlin_fit"))

Usage

Fits (c/a, μP) to marker positions pts_px (M, 2) [px] and displacements u_m (M, 2) [m]: coarse scan over c/a → fine search around the best, with μP solved by linear least squares for each c. Returns c_over_a, q_ratio = 1 − (c/a)³, muP, Q, mu (= μP/P), rms_m, shift_m. rigid=True also frees a rigid shift (tx, ty) — in the prototype this was counterproductive (it degenerates with the 1/r tail of the outer 900 points and shifts c/a by 0.028), so it is off by default. On real hardware, drift should properly be subtracted separately using distant markers outside the contact. Fitting the true displacements gives a c/a error of 0.001; tracking from images gives 0.011 (centroid pixel-locking adds a common mode). Raises ValueError: shape mismatch, fewer than 3 points.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_tacsim_marker_shear — py -3.11 examples/poc_tacsim_marker_shear.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (tacslip)

mindlin_partial_slip · mindlin_traction · hertz_surface_ur · hertzian_tangential_inner · cerruti_kernel · cerruti_surface_displacement · membrane_shear_field · membrane_markers


*Provenance: tacslip.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.