tactorque opmatrix × matrix × scalar × scalar → matriximport fullseye as fs; fs.ledger.punch_pressure(X, Y, a: 'float', P: 'float' = 0.0, M1=(0.0, 0.0), pitch: 'float | None' = None, sub: 'int' = 4) -> 'np.ndarray' (実装を直接呼ぶなら import tactorque; tactorque.punch_pressure(X, Y, a: 'float', P: 'float' = 0.0, M1=(0.0, 0.0), pitch: 'float | None' = None, sub: 'int' = 4) -> 'np.ndarray'、台帳から引くなら opsdrive.get("punch_pressure"))平頭円形押し込み子(半径 a [m])の圧力 [Pa]: p = P/(2πa√(a²−r²)) + 3(M1_x x + M1_y y)/(2πa³√(a²−r²))(r < a、外は 0)。
第 1 項 = Johnson 1985 式 3.34、第 2 項 = ∫ (x, y) p dA = M1 を満たす反対称項(導出はモジュール docstring、門で数値確認)。
pitch を渡すと画素を sub×sub の副標本で平均する(縁の 1/√ 特異点の格子誤差を減らす。4×4 で Σ p h² が P と 0.6 %、実測)。
Raises ValueError: a ≤ 0、P < 0、X と Y の形が違う、|M1| > Pa/3(接触が離れる: 線形の式が成り立たない、fail-closed)。
py -3.11 examples/poc_tactile_dipole_torque.pymatrix を入力に取れる)world_camera · lidar_scan · relative_motion · foe_from_motion · flow_from_depth_motion · ttc_truth · world_materials · mesh_signed_volume
tactorque)punch_surface_uz · hertz_pressure_shifted · ellipse_pressure_shifted · pressure_first_moment · boussinesq_kernel · boussinesq_surface_displacement · surface_divergence_closed_form · tilt_shear_field
Provenance: tactorque.py — DRIVE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.