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)) (implementation को सीधे call करना हो तो 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)), registry से लेना हो तो opsdrive.get("swing_up_plan"))

उपयोग

हाथ (cross-piece का केंद्र; डोरी का pivot और बड़ा cup उससे kp के offset जितने हटे हुए हैं और साथ चलते हैं) की open-loop trajectory: origin से ठीक ऊपर lift जितना T_lift seconds में उठाता है, फिर स्थिर। return value t → (3,) function है (t ≤ 0 पर origin, t ≥ T_lift पर origin + lift·ẑ पर स्थिर)।

kind="bang": T/2 तक त्वरण a = 4·lift/T², T/2 तक मंदन −a (वेग त्रिभुज)। 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 गेंद के बड़े कप के किनारे से ऊपर निकलने के बाद वापस लाता है।

खाली इनपुट (kp एक खाली dict) पर ValueError उठता है।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_kendama — py -3.11 examples/poc_kendama.py

वे अगले ops जिनसे type जुड़ता है (any को input के रूप में लेते हैं)

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

इसी 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. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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