scoop op• Data kinds: scalar × scalar → table
• Call: import fullseye as fs; fs.ledger.scoop_scene_mjcf(n_spheres: 'int' = 500, radius: 'float' = 0.002, *, a: 'float' = 0.03, h: 'float' = 0.012, rim_height: 'float' = 0.1, mu_slide: 'float' = 0.16, mu_roll: 'float' = 0.09, density: 'float' = 2500.0, bowl_mu: 'float' = 0.5, tile: 'float' = 0.006, drop_gap: 'float' = 0.0003, timestep: 'float' = 0.0015, contact_tc: 'float' = 0.006, solver_iterations: 'int' = 50, solver: 'str' = 'CG', cone: 'str' = 'elliptic', condim: 'int' = 6, seed: 'int' = 0) -> 'dict' (implementation को सीधे call करना हो तो import scoop; scoop.scoop_scene_mjcf(n_spheres: 'int' = 500, radius: 'float' = 0.002, *, a: 'float' = 0.03, h: 'float' = 0.012, rim_height: 'float' = 0.1, mu_slide: 'float' = 0.16, mu_roll: 'float' = 0.09, density: 'float' = 2500.0, bowl_mu: 'float' = 0.5, tile: 'float' = 0.006, drop_gap: 'float' = 0.0003, timestep: 'float' = 0.0015, contact_tc: 'float' = 0.006, solver_iterations: 'int' = 50, solver: 'str' = 'CG', cone: 'str' = 'elliptic', condim: 'int' = 6, seed: 'int' = 0) -> 'dict', registry से लेना हो तो opsdrive.get("scoop_scene_mjcf"))
scene की MJCF string जिसमें spherical cap वाले कटोरे (किनारे की त्रिज्या a, गहराई h, किनारे की ऊँचाई rim_height) को पतली plate की tile से बनाया जाता है, और n_spheres rigid गोले कटोरे के अंदर grid पर रखकर ठीक ऊपर से छोड़े जाते हैं (mujoco आवश्यक नहीं, ledger में दर्ज)।
कटोरा 2 mm मोटी प्लेटों से बना है जो गोलाकार भीतरी सतह (त्रिज्या R = (a² + h²) / 2h) को स्पर्श करती हैं, और हर अक्षांश-वलय में दिगंश दिशा में सजाई जाती हैं (tile = प्लेट की अनुमानित भुजा, खाली जगह न बने इसलिए 1.35 गुना ओवरलैप)। गोले तली से एकांतर (staggered) ग्रिड में परतों में रखे जाते हैं (कटोरे की भीतरी सतह से r + drop_gap दूर), और किनारे के ऊपर किनारे के बेलन के भीतर रखे जाते हैं —— छोड़ने पर किनारे के ऊपर का स्तंभ ढहकर ढेर बनता है, और बाहर निकले गोले किनारे से लुढ़ककर फ़र्श (ऊँचाई 0) पर बिखर जाते हैं। ऊपर से गिराने पर वे उछलते थे और कटोरे की सामग्री तक बाहर उछल जाती थी (500 में से केवल 172 बचे और ढेर नहीं बना, मापा गया), इसलिए यह कलछी से उठाने के तुरंत बाद की शांत अवस्था का अनुकरण करता है। घर्षण की परिपाटी granular के heap_scene_mjcf के समान है (लुढ़कन घर्षण = विमाहीन μ_r × त्रिज्या)। लौटाता है: xml, positions (प्रारंभिक केंद्र), info (n, radius, a, h, R, rim_height, bottom_height, mass_each, timestep, n_tiles, V_struck)। Raises ValueError: contact_tc < 2 timestep / h > a / वर्तनी की गलती / गोले समा नहीं पाते।
• 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_powder_scoop_pour — py -3.11 examples/poc_powder_scoop_pour.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
scoop)spoon_bowl_volume · scoop_synth_side · revolution_volume_side · two_view_volume · scoop_volume_read · scoop_count · scoop_image_limit · tilt_wedge_retained
*Provenance: scoop.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.