catch_success_rate — DRIVE 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

(接線成分)のガウス揺らぎ)、:func:swing_up_plan(手元の出発点 `origin)で振り上げ、:func:catch_plan_ballistic` で皿を運ぶ。

計画: `planner="staged"(既定、:func:catch_plan_staged: hold → carry → absorb、absorb=False` で着地で下げない)か

"plane"(:func:catch_plan_ballistic、`clearance つき)。lift 既定 None = :func:swing_up_lift`(技ごとに頂点が皿の

h_c + 0.9 r_b 上)。`contact(hand, p) → 隙間` を渡すとけん玉に触れた試行は "hit_ken" で失敗。

知覚: 既定は :func:noisy_perceiver(noise_pos [m]、noise_vel [m/s]; 0 なら真値)。`perceiver_factory(i) → perceive` を

渡すとそれを使う(試行 i ごとに新しい知覚: :func: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` は

:func:swing_up_plan / :func:catch_plan_ballistic へ(既定 = 手元を糸穴の側(−y)へ 10 cm 逃がし、玉が大皿の縁より上に出てから

皿を戻す: 玉がけん玉を突き抜けない構え。逃がさない (0, 0, 0)・False だと 20 試行すべてで玉が皿胴を突き抜けた —— 測って退けた。

+y へ逃がすとカメラ 2 から見てけんが玉の手前に来て玉を隠し、画像の予測の横ずれが 0.14 → 2.8 mm に増えた)。`keep_runs=True で各試行の :func:kendama_simulate` の返り値と

知覚を `"runs" / "perceivers"` に残す。n ≤ 0 は 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.