balltrack op• 資料種類:any → table
• 呼叫: import fullseye as fs; fs.ledger.spin_from_marker_sequence(dirs, dt: 'float', *, lag: 'int' = 4, max_angle: 'float' = 0.5) -> 'dict'(要直接呼叫實作,import balltrack; balltrack.spin_from_marker_sequence(dirs, dt: 'float', *, lag: 'int' = 4, max_angle: 'float' = 0.5) -> 'dict';從台帳取用則 opsdrive.get("spin_from_marker_sequence"))
由影格序列的標記方向 dirs[k]((M_k, 3) 的單位向量,未找到的影格為 None)讀出角速度(2 段)。
第 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。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• 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 作為輸入)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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.