contact_radius_fit — DRIVE tacsim op

• データ種: normalmap × matrix × matrix × scalar × scalar → table

• 呼び出し: import 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、形が合わない。

参考(サンプルデータ・文献)

• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。

• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。

• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。

実行できる例(この 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

型が繋がる次の op(table を入力に取れる)

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.