kendama op• Datenarten: table → any
• Aufruf: 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) (die Implementierung direkt: 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); aus dem Register: opsdrive.get("catch_plan_ballistic"))
Plan, der aus (p, v) der erschlafften Kugel mit der geschlossenen Form der Parabel den Zielpunkt der Schale bestimmt. Rückgabewert plan(t, p, v, cup_state) → dict.
> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.
捕球の判定は「玉が皿の窓の上端(縁の面 + 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 計画し直すので消える)。
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• (noch keine)
any als Eingabe)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 Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.