fit_spin — DRIVE ball op

• Data kinds: signal × points × table → table

• Call: import fullseye as fs; fs.ledger.fit_spin(t, p, bp: 'dict', *, omega0=None, omega_max: 'float' = 1000.0, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict' (implementation को सीधे call करना हो तो import ballistics; ballistics.fit_spin(t, p, bp: 'dict', *, omega0=None, omega_max: 'float' = 1000.0, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict', registry से लेना हो तो opsdrive.get("fit_spin"))

उपयोग

मुड़ने के ढंग से spin पढ़ता है: trajectory (t_i, p_i) (बिना उछाल वाला अंतराल) पर drag + Magnus के गति समीकरणों को (p₀, v₀, ω) के 9 parameters से Gauss–Newton द्वारा fit करता है (aerodynamic coefficients bp के मान = ज्ञात माने जाते हैं)।

मैग्नस बल ω × v है, इसलिए ω का v के समांतर घटक कोई बल उत्पन्न नहीं करता और प्रक्षेप-पथ से निर्धारित नहीं होता (गति की दिशा को अक्ष मानकर घूर्णन = साइडस्पिन का एक भाग)। उड़ान के दौरान v की दिशा बदलती है, इसलिए यह पूर्णतः अनिर्धार्य नहीं, पर कमज़ोर रूप से ही निर्धारित है। लौटाए गए मान में omega_perp = प्रारंभिक वेग के लंबवत घटक (पढ़ने योग्य भाग), cond = जैकोबियन की प्रतिबंध संख्या, omega_axial_sensitivity = समांतर घटक को 1 rad/s हिलाने पर पथ में परिवर्तन का rms [m] (जितना छोटा, उतना कम पढ़ने योग्य)। लौटाया गया मान {"p0", "v0", "omega", "omega_perp", "rms", "cond", "omega_axial_sensitivity", "iters", "t0"}। वास्तविक पथ देने पर 1e-3 rad/s तक वापस मिलता है (गेट)। यह पैटर्न से मापे गए कोणीय वेग (balltrack.spin_from_markers) से स्वतंत्र दूसरा मापन-तरीका है।

omega_max [rad/s] = घूर्णन के परिमाण की ऊपरी सीमा (हर चरण के बाद इस गोले पर प्रक्षेपित)। ★स्पिन-अनुपात मॉडल C_L = 1/(2 + 1/S) बड़े घूर्णन पर 0.5 पर संतृप्त हो जाता है, इसलिए बल को अपर्याप्त मानने वाला फ़िट |ω| को असीमित रूप से बड़ा कर सकता है (परिमाण निर्धारित नहीं होता)। छोटे और शोर-प्रधान पथ पर यह 1e5 rad/s तक भाग गया (2026-09-30)। डिफ़ॉल्ट 1000 rad/s ≈ 160 चक्कर/सेकंड (ज़ोरदार प्रहार की ऊपरी सीमा से ऊपर)। लौटाए गए मान में at_bound True हो तो यह सीमा से चिपका है = परिमाण पढ़ा नहीं जा सका।

संदर्भ (sample data, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_table_tennis_spin — py -3.11 examples/poc_table_tennis_spin.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (ball)

ball_params · impact_params · flight_vacuum · flight_ode · flight_simulate · flight_state_at · magnus_lift_coefficient · drag_coefficient_sphere


*Provenance: ballistics.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.