kendama op• Data kinds: table → table
• Call: 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' (implementation को सीधे call करना हो तो 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', registry से लेना हो तो opsdrive.get("catch_success_rate"))
बड़े cup की सफलता दर: प्रारंभिक state को n बार बिखेरता है (गेंद pivot (cross-piece का डोरी वाला छेद) से L नीचे लटकी, बगल में σ = jitter_pos और velocity पर σ = jitter_vel (tangential component) के Gaussian perturbations के साथ), swing_up_plan (हाथ का शुरुआती बिंदु origin) से ऊपर झुलाता है, और catch_plan_ballistic से cup ले जाता है।
योजना: planner="staged" (डिफ़ॉल्ट, catch_plan_staged: hold → carry → absorb; absorb=False पर उतरते समय नीचे नहीं किया जाता) या "plane" (catch_plan_ballistic, clearance सहित)। lift डिफ़ॉल्ट None = swing_up_lift (प्रति तकनीक शीर्ष कप के h_c + 0.9 r_b ऊपर)। contact(hand, p) → 隙間 देने पर केंडामा को छूने वाला प्रयास "hit_ken" के साथ विफल होता है।
अनुभूति: डिफ़ॉल्ट noisy_perceiver है (noise_pos [m], noise_vel [m/s]; 0 हो तो वास्तविक मान)। perceiver_factory(i) → perceive देने पर वही उपयोग होता है (प्रत्येक प्रयास i के लिए नई अनुभूति: 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 swing_up_plan / catch_plan_ballistic को दिए जाते हैं (डिफ़ॉल्ट = हाथ को धागा-छिद्र की ओर (−y) 10 cm हटाना, और गेंद के बड़े कप के किनारे से ऊपर निकलने के बाद कप वापस लाना: ऐसी मुद्रा जिसमें गेंद केंडामा को भेदकर पार न करे। न हटाने पर (0, 0, 0) / False से सभी 20 प्रयासों में गेंद कप-बॉडी को भेदकर निकल गई — मापकर अस्वीकार किया। +y की ओर हटाने पर कैमरा 2 से देखने पर ken गेंद के सामने आकर उसे छिपा देता है, और छवि-आधारित भविष्यवाणी का पार्श्व विचलन 0.14 → 2.8 mm बढ़ गया)। keep_runs=True पर प्रत्येक प्रयास के kendama_simulate के रिटर्न मान और अनुभूति "runs" / "perceivers" में रखे जाते हैं। n ≤ 0 पर ValueError।
खाली इनपुट (kp एक खाली dict) पर ValueError उठता है।
• 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 में दिए गए हैं।
• poc_kendama — py -3.11 examples/poc_kendama.py
table को input के रूप में लेते हैं)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 operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.