tactorque op• Datenarten: matrix × matrix → table
• Aufruf: import fullseye as fs; fs.ledger.tactile_dipole_moment(pts, u, form: 'str' = 'divergence', origin='midpoint', weight: 'str' = 'area', area: 'float | None' = None, window=None, rho=None, radius: 'float | None' = None) -> 'dict' (die Implementierung direkt: import tactorque; tactorque.tactile_dipole_moment(pts, u, form: 'str' = 'divergence', origin='midpoint', weight: 'str' = 'area', area: 'float | None' = None, window=None, rho=None, radius: 'float | None' = None) -> 'dict'; aus dem Register: opsdrive.get("tactile_dipole_moment"))
Taktiles Dipolmoment D = Σ_i w ρ_i r_i (2 Komponenten). form: * "divergence" — Paper (arXiv 2404.15626) Gl. 4–8: ρ_i = (∇·u)_i (rho übergeben oder marker_divergence über radius). * "norm_cross" — Baseline des Papers (Gl. 10–11, nach Yamaguchi & Atkeson): ρ_i = |u_i| (die Vektornorm anstelle der Normalkraft). Die Kippkomponente von l_i × f_i ist (l_y|u|, −l_x|u|), also D um 90° gedreht, daher wird sie im selben Fach "1. Moment" zurückgegeben. Bei symmetrischer Kippung nach dem Nullen ist |u| eine gerade Funktion von M und damit identisch 0 (kennt das Vorzeichen nicht; Gate). * "radial" — Variante dieses Moduls: ρ_i = u_i · r̂_i (Radialkomponente). origin: "midpoint" (Gl. 6–7, Mittelpunkt der positiven und negativen Schwerpunkte) / "centre" (Mittel von pts, Konvention der Baseline) / (x0, y0). weight: "area" = Multiplikation mit der Fläche je 1 Punkt area [m²] (vergleichbar mit dem Koeffizienten der geschlossenen Form −(1−2ν)/(2G), Einheit m³) / "mean" = 1/N (Paper). Mit window = (cx, cy, R) werden nur Punkte innerhalb des Radius R verwendet (ein Fenster, das das Auslaufen der Scherung abschneidet; Begründung im Modul-Docstring). Ungültige Punkte (nan) werden ausgeschlossen. Rückgabe D (2,), tau_dir = (−D_y, D_x) (Richtung aus Gl. 9, ohne Koeffizient), origin, n, rho, form, keep. Raises ValueError: unbekanntes form/origin/weight (Tippfehler sind fail-closed), Form von pts/u, "area" ohne area, weniger als 3 verwendbare Punkte.
• 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.