granular opscalar × scalar × scalar × scalar → tableimport 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' (実装を直接呼ぶなら 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'、台帳から引くなら opsdrive.get("spoon_tilt_dispense"))傾き θ で出た粉の割合(:func:spoon_tilt_critical と同じ 2 次元模型、厳密な 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。py -3.11 examples/poc_granular_heap_repose.pytable を入力に取れる)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 ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.