thrust_fit — DRIVE ball op

• Data kinds: signal × points × table → table

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

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

trajectory (t_i, p_i) पर "गुरुत्व + drag + स्थिर specific thrust" model को (p₀, v₀, C_d, a_T) के 10 parameters से Levenberg–Marquardt (finite-difference Jacobian, C_d ≥ 0 projection से) द्वारा fit करता है। p या तो (N, 3) world points है या monocular side view से उठाया (N, 2) planar (x, z) track (तब y घटक का न observation है न unknown: 7 parameters, n = 2 × samples)। bp ball_params की table है (mass, frontal area, air density, g; radius केवल frontal area देने के लिए — car के लिए वह r दें जिसका A = πr² frontal area हो)। लौटाता है {"p0", "v0", "cd", "thrust" (3,), "thrust_norm", "rms", "rss", "rss_floor", "n", "k", "dims", "cond", "iters", "t0"}(n = residuals की संख्या, k = हिलाए गए parameters की संख्या; aic_from_rss के input)। thrust वाली ground-truth trajectory से a_T 1e-5 m/s² पर लौटता है; शून्य thrust से बनी trajectory में thrust_norm 1e-5 या कम रहता है (gate)। rss_floor वह ऊपरी सीमा (sum of squares) है जो RK4 grid को sample times पर linear interpolate करने की त्रुटि ≤ a dt²/8 residuals में छोड़ सकती है। dt sample spacing से अधिक नहीं हो सकता (अन्यथा model samples के बीच piecewise linear हो जाता है), iters ≥ 1, और vacuum (rho = 0) में C_d पहचाना नहीं जा सकता — हर एक ValueError।

खाली input (t में 0 elements) पर ValueError आता है।

संदर्भ (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_video_physics_consistency — py -3.11 examples/poc_video_physics_consistency.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.