catch_plan_ballistic — DRIVE kendama op

• 資料種類:table → any

• 呼叫: import fullseye as fs; fs.ledger.catch_plan_ballistic(kp: 'dict', *, v_max: 'float' = 2.0, a_max: 'float' = 20.0, g: 'float' = None, v_target: 'float' = 0.5, v_rel_max: 'float' = 1.0, n_planes: 'int' = 12, plane_step: 'float' = 0.02, clearance: 'bool' = False, margin: 'float' = 0.002)(要直接呼叫實作,import kendama; kendama.catch_plan_ballistic(kp: 'dict', *, v_max: 'float' = 2.0, a_max: 'float' = 20.0, g: 'float' = None, v_target: 'float' = 0.5, v_rel_max: 'float' = 1.0, n_planes: 'int' = 12, plane_step: 'float' = 0.02, clearance: 'bool' = False, margin: 'float' = 0.002);從台帳取用則 opsdrive.get("catch_plan_ballistic"))

用法

> 該運算子的說明尚無譯文,以下照原文給出。

弛んだ玉の (p, v) から放物線の閉形式で皿の到達点を出す計画。返り値は `plan(t, p, v, cup_state) → dict`。

捕球の判定は「玉が皿の窓の上端(縁の面 + h_c + 1.5 r_b)に相対速さ ≤ v_rel_max で下向きに入る」瞬間に起きるので、

窓の上端に玉が速さ `v_target` で届く面を選ぶ: 頂点 z_a = z + v_z²/(2g) から z_c = z_a − (h_c + 1.5 r_b) − v_target²/(2g)。

到達時刻は z + v_z τ − ½ g τ² = z_c + h_c + 1.5 r_b の遅い方の根(下降)τ = (v_z + √(v_z² − 2g(z_c + h_c + 1.5 r_b − z)))/g、

目標の xy = (x + v_x τ, y + v_y τ)。皿が bang-bang で τ までに届かなければ(閉形式の移動時間: 静止から 2√(d/a) または

d/v + v/a、動いていれば現在の速さ込み)面を `plane_step ずつ下げて n_planes` 段まで探す(下げるほど時間は増え、

到達速さは増える)。どの面にも間に合わなければ 最上段を返し `feasible=False`(到達速さが最小の面に賭ける。

「最下段へ逃げる」と到達の直前に τ → 0 で必ず不可判定になり皿が 20 cm 沈んで落とす —— 測って退けた)。

返り値 `{"target" (皿の中心), "t_hit", "z_plane", "v_ball_hit", "speed_hit", "feasible", "travel", "apex"}`。

`clearance=True: 玉の下端が縁の面(+ margin`)より上に出る時刻 τ_up までは皿を横に動かさない(高さだけ面へ)——

大皿の縁はけん玉のいちばん高い所なので、玉が縁の面より上なら xy がどこでもぶつからない。間に合うかは τ − τ_up で判定し、

玉が縁の面を越えない面は不可。返り値に `"landing"(落下点 = 最終の目標)と "wait"`(τ_up、0 = 待たない)を足す。

制限(正直に): 皿は目標で静止して待つ(到達時の相対速さ = 玉の速さ)。間に合わない面での「玉に合わせて皿を下げる」

速度合わせは実装していない —— v_rel_max に頼る。抗力は無視(60 mm の玉の ≤ 0.5 s の飛翔で数 mm、毎 step 計画し直すので消える)。

參考(範例資料・文獻)

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

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

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

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

• (尚無)

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

course_crank · course_s_curve · course_turnaround · course_slope · course_intersection · course_parallel_parking · course_crossing · course_road

同類別(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.