rally_simulate — DRIVE racket op

• Data kinds: table × table × table → table

• Call: 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' (implementation को सीधे call करना हो तो 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', registry से लेना हो तो opsdrive.get("rally_simulate"))

उपयोग

2 rackets (x = −x_r और +x_r पर, blades प्रतिद्वंद्वी की ओर) आपस में rally करते हैं।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

各コマ(1/fps)で受け手側の知覚 perceive(t, p, v, ω) が球の状態を返し、そこから運動方程式 + 台の跳ねで自分の面 x = ±x_r への到達点・時刻を予測してラケットを動かす(上限つき)。球が面に届いたら、相手コートの (∓target_x, y*) に T_flight で落ちる速度を狙って打つ(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"}。

संदर्भ (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_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

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

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

इसी category के (racket)

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


*Provenance: racket.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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