balltrack op• 資料種類:points × points → table
• 呼叫: import fullseye as fs; fs.ledger.spin_from_markers(dirs0, dirs1, dt: 'float') -> 'dict'(要直接呼叫實作,import balltrack; balltrack.spin_from_markers(dirs0, dirs1, dt: 'float') -> 'dict';從台帳取用則 opsdrive.get("spin_from_markers"))
由標記方向對(前 (M, 3)、後 (M, 3),單位向量)求角速度向量 ω [rad/s]。
M ≥ 2 時用 Kabsch(SVD)擬合旋轉 R,由旋轉角 θ 和軸求 ω = θ/dt·軸(輸入按已知 ω 旋轉的方向,可在 1e-9 內還原 = 門)。M = 1 時回傳 d₀ → d₁ 的最小旋轉(軸 = d₀ × d₁)("full" = False):繞標記方向的分量原理上無法確定, 幀間旋轉角較大時,作為 ω 正交分量的近似也會失準(標記繞 ω 軸畫小圓,與最小旋轉的大圓不同)。
老實說:想由一個標記求 ω,應把 dt 取小(旋轉角 ≪ 1 rad),即便如此,繞軸的分量仍需另一個標記。回傳值 {"omega", "angle", "axis", "R", "full", "rms"}。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py
table 作為輸入)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_marker_sequence
*Provenance: balltrack.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.