tactorque op• Data kinds: matrix × matrix × scalar × scalar × scalar → table
• Call: import fullseye as fs; fs.ledger.torque_decompose(pts, u, area: 'float', G: 'float', nu: 'float', a: 'float | None' = None, window=None, radius: 'float | None' = None, coef: 'float | None' = None, P: 'float | None' = None, mu: 'float | None' = None, torsion_model: 'str' = 'partial_slip') -> 'dict' (implementation को सीधे call करना हो तो import tactorque; tactorque.torque_decompose(pts, u, area: 'float', G: 'float', nu: 'float', a: 'float | None' = None, window=None, radius: 'float | None' = None, coef: 'float | None' = None, P: 'float | None' = None, mu: 'float | None' = None, torsion_model: 'str' = 'partial_slip') -> 'dict', registry से लेना हो तो opsdrive.get("torque_decompose"))
marker field को 3 यांत्रिक मात्राओं में बाँटता है: translation = window के अंदर औसत displacement (shear Q, एक-दिशीय घटक), omega = rigid rotation कोण (rigid_rotation_fit) → torsion Mz (a आवश्यक; omega_curl = औसत curl/2 संदर्भ के लिए), D = divergence dipole (area-weighted) → tilt M1 = D / coef (coef default = half-space का closed form −(1−2ν)/(2G), असली hardware पर calibrated मान दें), tau = (−M1_y, M1_x)। औसत displacement घटाने पर divergence और curl नहीं बदलते (स्थिरांक का derivative 0), इसलिए क्रम से फ़र्क नहीं पड़ता। window (cx, cy, R) contact वृत्त तक सीमित है (half-space में pure shear पूरी window पर divergence dipole बनाता है, module docstring देखें)। radius = divergence के लिए पड़ोस त्रिज्या (आवश्यक)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
ねじり: 無滑りの関係(Reissner–Sagoci)M = (16Ga³/3)ω を Mz_no_slip に残す。★torsion_model="partial_slip"(既定、2026-10-06 から) では、Hertz 接触(法線力 P、摩擦 mu、接触半径 a)の部分滑りの数値解(cuttouch.torsion_partial_slip の contact と from_no_slip_read)で直した値を Mz に返す —— Hertz 接触のねじりは縁から必ず滑るので、無滑りの関係のままだと M を過大に読む(全滑りまでの比 0.5 で +33 %、0.8 で +85 %)。Mz_ratio(全滑りまでの比)、Mz_c_over_a(固着円の半径 / a)、Mz_readable(全滑りでなく、固着円が当てはめの窓の半径を含む —— 偽なら数は返すが当てにならない。窓が無ければ偽)も返す。a を渡して P か mu が無いと補正できないので ValueError(黙って無滑りの値を返さない)。"no_slip" は 0.4.0 までの値(Mz = Mz_no_slip)—— 平頭押し込み子(全滑りの 8/(3π) 倍まで無滑りが厳密)や接着した円盤の場合。Raises ValueError: area, G ≤ 0、ν が [0, 0.5] の外、点の形、radius 無し、窓内の点が 3 未満、torsion_model の綴り違い、partial_slip で a があるのに P・mu が正の有限でない。
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_tactile_dipole_torque — py -3.11 examples/poc_tactile_dipole_torque.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
tactorque)punch_pressure · punch_surface_uz · hertz_pressure_shifted · ellipse_pressure_shifted · pressure_first_moment · boussinesq_kernel · boussinesq_surface_displacement · surface_divergence_closed_form
*Provenance: tactorque.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.