rally_simulate — DRIVE racket op

• 資料種類:table × table × table → table

• 呼叫: import fullseye as fs; fs.ledger.rally_simulate(bp: 'dict', rp: 'dict', tp: 'dict', *, perceive=None, strategies=None, retries: 'int' = 6, x_racket: 'float' = 1.55, hit_height=(0.05, 0.45), T_flight: 'float' = 0.42, target_x: 'float' = 0.75, max_hits: 'int' = 60, dt: 'float' = 0.0002, fps: 'float' = 100.0, seed: 'int' = 0, y_jitter: 'float' = 0.25, plan_spin: 'bool' = True, table_ip=None, replan_every: 'int' = 5) -> 'dict'(要直接呼叫實作,import racket; racket.rally_simulate(bp: 'dict', rp: 'dict', tp: 'dict', *, perceive=None, strategies=None, retries: 'int' = 6, x_racket: 'float' = 1.55, hit_height=(0.05, 0.45), T_flight: 'float' = 0.42, target_x: 'float' = 0.75, max_hits: 'int' = 60, dt: 'float' = 0.0002, fps: 'float' = 100.0, seed: 'int' = 0, y_jitter: 'float' = 0.25, plan_spin: 'bool' = True, table_ip=None, replan_every: 'int' = 5) -> 'dict';從台帳取用則 opsdrive.get("rally_simulate"))

用法

2 支球拍(位於 x = −x_r 與 +x_r,拍面朝向對方)相互對打。

每格(1/fps)接球方的感知 perceive(t, p, v, ω) 回傳球的狀態,據此以運動方程式 + 球桌彈跳預測抵達自己平面 x = ±x_r 的抵達點與時刻,並移動球拍(有上限)。球抵達平面時,瞄準在 T_flight 內落在對方球桌 (∓target_x, y*) 的速度擊球(y* 為亂數;若 plan_spin 則瞄準時納入擊球後的旋轉)。strategies = (side 0 的策略, side 1 的策略)(None 則雙方皆為 strategy_feeder)。若 retries > 0,則擊球前以 shot_is_legal 預判,會失誤的瞄準會被回溯,改以別的瞄準(重新抽取策略)重來。回傳值 {"hits", "end_reason", "shots": [...], "t", "p" (N,3), "racket_pos" (N,2,3), "hit_times", "rewinds"}。

空輸入(bp 為空的 dict)會引發 ValueError。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py

• poc_table_tennis_rally_loop — py -3.11 examples/poc_table_tennis_rally_loop.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

同類別(racket)

racket_params · racket_impact · racket_hit_check · aim_velocity · racket_plan · racket_move · strategy_attacker · strategy_feeder


*Provenance: racket.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.