kendama op• 資料種類:table → table
• 呼叫: import fullseye as fs; fs.ledger.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict'(要直接呼叫實作,import kendama; kendama.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict';從台帳取用則 opsdrive.get("catch_success_rate"))
大皿的成功率:將初始狀態散布 n 次(球掛在支點(皿胴的穿繩孔)下方 L 處,橫向加 σ = jitter_pos、速度加 σ = jitter_vel(切向分量)的高斯擾動),用 swing_up_plan(手端出發點 origin)上擺,用 catch_plan_ballistic 移動皿。
計畫: planner="staged"(預設,catch_plan_staged: hold → carry → absorb,absorb=False 則著地時不下降)或 "plane"(catch_plan_ballistic,附 clearance)。lift 預設 None = swing_up_lift(依招式使頂點在皿的 h_c + 0.9 r_b 之上)。傳入 contact(hand, p) → 隙間 時,碰到劍玉的試行以 "hit_ken" 判為失敗。
感知: 預設為 noisy_perceiver(noise_pos [m]、noise_vel [m/s];0 則為真值)。傳入 perceiver_factory(i) → perceive 則使用它(每次試行 i 都是新的感知: 以 kendamaworld.camera_perceiver 僅從影像預測的閉迴路)。初始狀態的擾動與感知無關,由 seed 決定(同一 seed 則真值與影像的試行成對)。回傳值 {"rate", "n", "caught_list", "mean_lateral", "catch_times", "end_reasons", "laterals", "starts"} (mean_lateral = 接到的試行在接球時橫向偏移的平均,若無則為 nan。starts = 各試行的 (p0, v0))。dodge / clearance 傳給 swing_up_plan / catch_plan_ballistic(預設 = 將手邊往繩孔那側(−y)避開 10 cm,等球高出大皿的緣之後
再把皿移回: 不讓球穿過劍玉的架式。不避開 (0, 0, 0)、False 時 20 次試行全部都是球穿過皿胴 —— 經實測後否決。往 +y 避開時,從攝影機 2 看去劍會位於球的前方而遮住球,影像預測的橫向偏移從 0.14 → 2.8 mm 增加)。keep_runs=True 時將各試行 kendama_simulate 的回傳值與感知保留於 "runs" / "perceivers"。n ≤ 0 為 ValueError。
空輸入(kp 為空 dict)會引發 ValueError。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• poc_kendama — py -3.11 examples/poc_kendama.py
table 作為輸入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
kendama)kendama_params · elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_plan
*Provenance: kendama.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.