balltrack op• Data kinds: any → table
• Call: import fullseye as fs; fs.ledger.spin_from_marker_sequence(dirs, dt: 'float', *, lag: 'int' = 4, max_angle: 'float' = 0.5) -> 'dict' (implementation को सीधे call करना हो तो import balltrack; balltrack.spin_from_marker_sequence(dirs, dt: 'float', *, lag: 'int' = 4, max_angle: 'float' = 0.5) -> 'dict', registry से लेना हो तो opsdrive.get("spin_from_marker_sequence"))
frames के क्रम की marker दिशाओं dirs[k] ((M_k, 3) unit vectors, जिन frames में नहीं मिला वहाँ None) से angular velocity पढ़ता है (2 stages)।
चरण 1: पड़ोसी फ़्रेमों के बीच, जिन चिह्नों की दिशाएँ max_angle [rad] के भीतर निकटतम हैं उन्हें जोड़कर Kabsch (spin_from_markers) लगाया जाता है, और उनका माध्यिका मान ω₁ होता है। चरण 2: lag फ़्रेम दूर के युग्मों को, पिछले फ़्रेम को ω₁ से घुमाकर प्राप्त अनुमान के सबसे निकट चिह्न (max_angle/2 के भीतर) से जोड़कर फिर से फ़िट किया जाता है —— घूर्णन कोण lag गुना हो जाने से चिह्न-स्थिति त्रुटि का प्रभाव 1/lag रह जाता है। ★एक फ़्रेम का घूर्णन कोण max_angle से काफ़ी छोटा होना चाहिए (वरना चिह्न आपस में गड़बड़ा जाते हैं), और lag फ़्रेम का घूर्णन π से छोटा होना चाहिए (Kabsch सबसे छोटा घूर्णन लौटाता है)। लौटाया गया मान {"omega", "omega_stage1", "n_pairs", "per_pair" (N, 3)} (ω, dirs के समान निर्देशांक तंत्र में)। यदि एक भी युग्म न हो तो ω NaN है। जिन दिशाओं में चिह्न दिखे उनके युग्म चाहिए, इसलिए हर फ़्रेम में 2 या अधिक चिह्न चाहिए।
खाली इनपुट (dirs में 0 प्रविष्टियाँ) पर ValueError उठता है।
• 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 में दिए गए हैं।
• poc_table_tennis_bounce — py -3.11 examples/poc_table_tennis_bounce.py
• poc_table_tennis_spin — py -3.11 examples/poc_table_tennis_spin.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
balltrack)ball_detect · ball_track · kalman_ca · triangulate_dlt · track_triangulate · bounce_detect · marker_direction · spin_from_markers
*Provenance: balltrack.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.