scoop_volume_read — DRIVE scoop op

• Data kinds: image2d × scalar × scalar × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.scoop_volume_read(side, rim_row: 'int', a_px: 'float', h_px: 'float', pitch: 'float', *, opaque: 'bool' = True, assume_level: 'bool' = False, heap_min_frac: 'float' = 0.005, level_tol: 'float' = 0.01, rim_full_frac: 'float' = 0.95, fit_angle: 'bool' = True) -> 'dict' (implementation को सीधे call करना हो तो import scoop; scoop.scoop_volume_read(side, rim_row: 'int', a_px: 'float', h_px: 'float', pitch: 'float', *, opaque: 'bool' = True, assume_level: 'bool' = False, heap_min_frac: 'float' = 0.005, level_tol: 'float' = 0.01, rim_full_frac: 'float' = 0.95, fit_angle: 'bool' = True) -> 'dict', registry से लेना हो तो opsdrive.get("scoop_volume_read"))

उपयोग

चम्मच की side image से उठाया गया volume पढ़ता है।

• opaque=True (धातु का कटोरा): किनारे के नीचे दिखाई नहीं देता, इसलिए किनारे के ऊपर के ढेर को revolution_volume_side से मापकर समतल-भराव के बंद-रूप (spoon_bowl_volume) में जोड़ता है: V = V_struck + V_above। यदि किनारे के ऊपर कुछ नहीं है, तो बगल से यह भेद नहीं किया जा सकता कि समतल भरा है या कम है —— assume_level=True न हो तो ValueError (चुपचाप समतल नहीं कहता)।

• opaque=False (पारदर्शी कटोरा / अनुप्रस्थ-काट छवि): पूरे को Pappus रूप में समाकलित करता है, और यदि यह समतल-भराव के 1 − level_tol से कम हो तो under के रूप में गहराई को बंद-रूप V_fill(y) के व्युत्क्रम (द्विभाजन) से लौटाता है (समतल चूर्ण-सतह मानकर)।

• fit_angle: यदि ढेर पर्याप्त बड़ा हो (बाएँ-दाएँ 8 या अधिक बिंदु), तो किनारे को ज़मीन मानकर granular के repose_angle_silhouette से ढेर की ढलान का कोण पढ़ता है (विश्राम कोण से मिलान हेतु; छोटे ढेर में None)।

लौटाता है: V, V_struck, V_above, state (heaped / level / under), heap_angle_deg, heap_base_frac (किनारे की पंक्ति पर ढेर की चौड़ाई / किनारे का व्यास), rim_full (heap_base_frac ≥ rim_full_frac: ढेर का निचला सिरा किनारे तक पहुँचता है = कटोरा संभवतः किनारे तक भरा है। जो "बनता हुआ ढेर" वहाँ तक नहीं पहुँचता उसमें किनारे के पास का भाग पूरा नहीं भरता, और अपारदर्शी पठन बंद-रूप जितना अधिक आता है —— MuJoCo में 0.90 पर +9 %, 0.99 पर +1 %), axis_col, fill_depth_px (पारदर्शी होने पर)। Raises ValueError: rim_row छवि के बाहर / किनारे के ऊपर खाली है और assume_level नहीं (अपारदर्शी होने पर) / तर्कों की सीमा।

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

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

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

इसी category के (scoop)

spoon_bowl_volume · scoop_synth_side · revolution_volume_side · two_view_volume · scoop_count · scoop_image_limit · tilt_wedge_retained · tilt_pour_rate


*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.