contact_radius_fit — DRIVE tacsim op

• Data kinds: normalmap × matrix × matrix × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.contact_radius_fit(normals, X, Y, R: 'float', pitch: 'float', centre_xy=None) -> 'dict' (to call the implementation directly, import tacsim; tacsim.contact_radius_fit(normals, X, Y, R: 'float', pitch: 'float', centre_xy=None) -> 'dict'; from the registry, opsdrive.get("contact_radius_fit"))

Usage

Reads the contact radius by fitting the Hertz slope model dh/dr(r; a), with 1 parameter a, to the radial slope distribution of the normal field.

Model: inside r/R, outside (2/πR)[r arcsin(a/r) − a √(1 − a²/r²)] (derived; continuous with a/R at r = a). It does not go through height integration, so it is unaffected by the amplitude attenuation of FFT integration, the far field of a finite window, or the height reference (offset). a minimises the SSE (weighted by bin count) over a grid of [0.2, 3] × a rough initial value, refined to sub-grid with a parabola. centre_xy is (x, y)[m]; if omitted, the centroid of the height integrated from the normals.

Returns: a, delta = a²/R, rms (slope residual), r, slope, model (profiles), centre_xy. Raises ValueError: R, pitch ≤ 0, shape mismatch.

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_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py

• poc_tacsim_elastic_membrane — py -3.11 examples/poc_tacsim_elastic_membrane.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 (tacsim)

combined_modulus · hertz_sphere · hertz_force · hertz_cylinder · hertz_surface_uz · hertz_pressure · membrane_indent_sphere · membrane_indent_shape


*Provenance: tacsim.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.