tacsim opnormalmap × matrix × matrix × scalar × scalar → tableimport fullseye as fs; fs.ledger.contact_radius_fit(normals, X, Y, R: 'float', pitch: 'float', centre_xy=None) -> 'dict' (実装を直接呼ぶなら import tacsim; tacsim.contact_radius_fit(normals, X, Y, R: 'float', pitch: 'float', centre_xy=None) -> 'dict'、台帳から引くなら opsdrive.get("contact_radius_fit"))法線場の半径方向スロープ分布に Hertz のスロープ模型 dh/dr(r; a) を 1 パラメータ a で当てて接触半径を読む。
模型: 内側 r/R、外側 (2/πR)[r arcsin(a/r) − a √(1 − a²/r²)] (導出、r = a で a/R に連続)。高さの積分を通らないので
FFT 積分の振幅減衰・有限窓の遠方場・高さの基準(オフセット)の影響を受けない。a は [0.2, 3] × 粗い初期値の格子で SSE
(ビンの個数で重み)を最小化し、放物線で副格子に詰める。centre_xy は (x, y)[m]、省略なら法線から高さを積分して重心。
返り: a、delta = a²/R、rms(スロープの残差)、r・slope・model(分布)、centre_xy。
Raises ValueError: R, pitch ≤ 0、形が合わない。
py -3.11 examples/poc_peg_insertion_tactile.pypy -3.11 examples/poc_tacsim_elastic_membrane.pytable を入力に取れる)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.