tactorque op• Datenarten: matrix × matrix × scalar × scalar × scalar → table
• Aufruf: 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' (die Implementierung direkt: 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'; aus dem Register: opsdrive.get("torque_decompose"))
Zerlegt das Markierungsfeld in 3 mechanische Größen: translation = mittlere Verschiebung im Fenster (Scherung Q, gleichgerichtete Komponente), omega = Starrkörperdrehwinkel (rigid_rotation_fit) → Torsion Mz (benötigt a; omega_curl = mittleres curl/2 nur zur Referenz), D = Divergenzdipol (flächengewichtet) → Kippung M1 = D / coef (coef standardmäßig = geschlossene Halbraumform −(1−2ν)/(2G); an realer Hardware den kalibrierten Wert übergeben), tau = (−M1_y, M1_x). Divergenz und curl ändern sich nicht, wenn die mittlere Verschiebung abgezogen wird (die Ableitung einer Konstanten ist 0), daher ist die Reihenfolge egal. Das Fenster (cx, cy, R) ist auf den Kontaktkreis beschränkt (weil im Halbraum reine Scherung im ganzen Fenster einen Divergenzdipol erzeugt; siehe Modul-Docstring). radius = Nachbarschaftsradius für die Divergenz (erforderlich).
> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.
ねじり: 無滑りの関係(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 が正の有限でない。
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• poc_tactile_dipole_torque — py -3.11 examples/poc_tactile_dipole_torque.py
table als Eingabe)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. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.