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 के मान = ज्ञात माने जाते हैं)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

マグヌスの力は ω × 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)と独立な第 2 の測り方になる。

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.