swing_up_plan — DRIVE kendama op

• Data kinds: table → any

• Call: import fullseye as fs; fs.ledger.swing_up_plan(kp: 'dict', *, lift: 'float' = 0.265, T_lift: 'float' = 0.15, kind: 'str' = 'bang', origin=(0.0, 0.0, 0.0), dodge=(0.0, 0.0, 0.0)) (to call the implementation directly, import kendama; kendama.swing_up_plan(kp: 'dict', *, lift: 'float' = 0.265, T_lift: 'float' = 0.15, kind: 'str' = 'bang', origin=(0.0, 0.0, 0.0), dodge=(0.0, 0.0, 0.0)); from the registry, opsdrive.get("swing_up_plan"))

Usage

Open-loop trajectory of the hand (center of the cross-piece; the string's pivot and the big cup are offset from it by kp's offsets and move with it): lifts straight up from origin by lift in T_lift seconds, then stays still. Returns a function t → (3,) (origin for t ≤ 0, at rest at origin + lift·ẑ for t ≥ T_lift).

> The detailed description below is the original text — the summary and the headings are translated.

kind="bang": 加速 a = 4·lift/T² を T/2、減速 −a を T/2(速度三角形)。kind="trap": 加速・等速・減速を T/3 ずつ(速度台形、a = 9·lift/(2T²))。玉が昇るには減速の加速度が g を超える必要がある(swing_up_apex が閉形式で答える)。既定 lift = 0.265 m、T = 0.15 s(a = 47 m/s² ≈ 4.8 g、手元の最高速 3.5 m/s)で玉の頂点は大皿の縁の 4.9 cm 上(ひもの有効長 0.42 m、大皿の縁は手元の 35 mm 上: swing_up_apex)。

dodge (3,)(水平): 減速に入って玉が離れた後(bang: T/2 → T、trap: 2T/3 → T)に手元を横へ dodge だけ逃がす(S 字の bang-bang)。玉は皿胴の糸穴の真下から真っ直ぐ昇るので、逃がさないと皿胴・小皿を突き抜ける(物理は玉とけん玉の衝突を解かない —— kendamaworld.kendama_clearance で数える)。逃がした分は catch_plan_ballistic の clearance が玉が大皿の縁より上に出てから戻す。

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_kendama — py -3.11 examples/poc_kendama.py

Ops the type connects to (they accept any as input)

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

Same category (kendama)

kendama_params · elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_apex


*Provenance: kendama.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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