granular op• Data kinds: scalar × scalar × scalar × scalar → table
• Call: import fullseye as fs; fs.ledger.spoon_tilt_dispense(theta_deg: 'float', phi_deg: 'float', L: 'float', h0: 'float', h_wall: 'float | None' = None, lip: 'str' = 'wall') -> 'dict' (implementation को सीधे call करना हो तो import granular; granular.spoon_tilt_dispense(theta_deg: 'float', phi_deg: 'float', L: 'float', h0: 'float', h_wall: 'float | None' = None, lip: 'str' = 'wall') -> 'dict', registry से लेना हो तो opsdrive.get("spoon_tilt_dispense"))
tilt θ पर निकले powder का अनुपात (spoon_tilt_critical जैसा ही 2-D model, सटीक tan(φ − θ))।
• lip="wall": रोका गया अनुप्रस्थ काट A(θ) = ∫₀ᴸ min(x tan(φ − θ), h_wall) dx (h_wall = पिछली दीवार की ऊँचाई, None = अनंत), निकला अंश = 1 − min(A, L h0) / (L h0)। θ ≤ θ_c पर 0, θ ≥ φ पर 1, बीच में एकदिष्ट।
• lip="open": सामने का भाग शुरू से ही विश्राम कोण की ढलान है, पीछे की समतल सतह गहराई h0 पर तल के समांतर रहती है: A(θ) = ∫₀ᴸ min(h0, x tan(φ − θ)) dx, निकला अंश = 1 − A(θ) / A(0)। θ = 0⁺ से गिरना शुरू, θ ≥ φ पर 1 (scoop का tilt_wedge_retained इसे बुलाता है)। h_wall देने पर वह h0 से कम नहीं होना चाहिए (पिछली दीवार समतल सतह को सहारा देती है)।
लौटाता है: fraction, retained_area, initial_area, theta_c_deg, lip। Raises ValueError: तर्कों की सीमा, lip="open" के साथ h_wall < h0।
• 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_granular_heap_repose — py -3.11 examples/poc_granular_heap_repose.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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.