heap_scene_mjcf — DRIVE granular op

• Data kinds: scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.heap_scene_mjcf(n_spheres: 'int' = 1200, radius: 'float' = 0.004, *, mu_slide: 'float' = 0.16, mu_roll: 'float' = 0.09, density: 'float' = 2500.0, orifice_d: 'float' = 0.048, orifice_height: 'float' = 0.06, bin_radius: 'float' = 0.05, timestep: 'float' = 0.0015, base_roll: 'float' = 0.01, base_slide: 'float' = 1.0, solver_iterations: 'int' = 50, solver: 'str' = 'CG', cone: 'str' = 'elliptic', condim: 'int' = 6, contact_tc: 'float' = 0.006, seed: 'int' = 0) -> 'dict' (implementation को सीधे call करना हो तो import granular; granular.heap_scene_mjcf(n_spheres: 'int' = 1200, radius: 'float' = 0.004, *, mu_slide: 'float' = 0.16, mu_roll: 'float' = 0.09, density: 'float' = 2500.0, orifice_d: 'float' = 0.048, orifice_height: 'float' = 0.06, bin_radius: 'float' = 0.05, timestep: 'float' = 0.0015, base_roll: 'float' = 0.01, base_slide: 'float' = 1.0, solver_iterations: 'int' = 50, solver: 'str' = 'CG', cone: 'str' = 'elliptic', condim: 'int' = 6, contact_tc: 'float' = 0.006, seed: 'int' = 0) -> 'dict', registry से लेना हो तो opsdrive.get("heap_scene_mjcf"))

उपयोग

समतल तले वाले hopper (चौकोर छेद, भुजा orifice_d) में rigid गोलों के ढेर वाले scene का MJCF string (mujoco आवश्यक नहीं, ledger में दर्ज)।

गोले बेलनाकार bin (त्रिज्या bin_radius, तल-प्लेट की ऊँचाई orifice_height) के अंदर परतों में रखे जाते हैं। वे तल-प्लेट के छेद से नीचे बहकर समतल पर ढेर बनाते हैं (ढेर छेद तक पहुँचने पर रुक जाता है —— वास्तविक hopper के नीचे के ढेर की तरह)। छेद 4 प्लेटों से घिरा वर्ग है (Beverloo का सूत्र गोल छेद का D₀ लेता है; वर्ग की तुलना समतुल्य व्यास से की जाती है)। घर्षण (mu_slide, 0.005, mu_roll·R) है: MuJoCo का लुढ़कन घर्षण गुणांक लंबाई की इकाई में है (बलाघूर्ण / अभिलंब बल), इसलिए DEM के आयामहीन μ_r (Sunday आदि 2020 का 0.09) को त्रिज्या से गुणा किया जाता है। आधार एक खुरदरी मेज़ है (समतल का फिसलन घर्षण base_slide डिफ़ॉल्ट 1.0, लुढ़कन base_roll [m] डिफ़ॉल्ट 0.01; विश्राम कोण के प्रयोगों में तल पर रेगमाल चिपकाने जैसी भूमिका)। चिकनी मेज़ (μ 0.16) पर पहले गिरे गोले लुढ़ककर भाग गए और ढेर नहीं बना (मापा गया: 1,200 गोले 0.15 m त्रिज्या की एक परत में फैल गए)। लुढ़कन प्रतिरोध फिसलन घर्षण की सीमा μ_s g पर संतृप्त होता है (एक गोले का माप: लुढ़कन गुणांक 0.01 हो या 0.1, 1 m/s से 0.32 m चलता है = मंदन 1.6 m/s²), इसलिए आधार को रोकने वाला फिसलन घर्षण है। contact_tc = नरम संपर्क का समय-स्थिरांक [s] (solref)।

इसे कम से कम 2·timestep रखें: 0.004 s पर timestep 2 ms (= सीमा) के साथ, 3.5 mm त्रिज्या के 2,000 गोले अपसारी हो गए (अधिकतम गति 12.6 m/s, मापा गया)। डिफ़ॉल्ट solver CG + दीर्घवृत्तीय शंकु है (Newton में घने ढेर के 700 गोलों पर 280 s से अधिक → रोक दिया गया, मापा गया)।

लौटाता है: xml (string), positions (प्रारंभिक केंद्र (n, 3)), info (n, radius, mu_slide, mu_roll, orifice_d, bin_radius, orifice_height, timestep, mass_each, mass_total, column_top, bulk_density_bin)। Raises ValueError: contact_tc < 2 timestep / छेद bin में नहीं समाता / गोले bin में नहीं समाते / solver या शंकु की वर्तनी गलत।

संदर्भ (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_granular_heap_repose — py -3.11 examples/poc_granular_heap_repose.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (granular)

heap_volume_cone · heap_mass · heap_volume_heightmap · beverloo_rate · beverloo_fit · discharge_synth · dispense_mass_from_video · hopper_discharge_rate


*Provenance: granular.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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