occlusion_reveal_distance — DRIVE traffic op

• Data kinds: any → scalar

• Call: import fullseye as fs; fs.ledger.occlusion_reveal_distance(ego_xy, ego_heading: 'float', parked_box, emerge_xy) -> 'float' (implementation को सीधे call करना हो तो import drivetraffic; drivetraffic.occlusion_reveal_distance(ego_xy, ego_heading: 'float', parked_box, emerge_xy) -> 'float', registry से लेना हो तो opsdrive.get("occlusion_reveal_distance"))

उपयोग

सड़क किनारे खड़े वाहन (दिशा वाला box) के पीछे छिपा बिंदु emerge_xy अपने वाहन की आँख से पहली बार दिखने के समय की longitudinal दूरी।

अपने वाहन की आँख p(s) = ego_xy + s h (h = (cos ψ, sin ψ), s ≥ 0 = आगे बढ़ी दूरी) पर चलती है। यदि दृष्टि-रेखा = रेखाखंड p(s) → e बॉक्स के भीतरी भाग से नहीं गुज़रती, तो e दिखता है। बॉक्स उत्तल है, इसलिए "न दिखने वाले s" एक अंतराल बनाते हैं, जिसके सिरे वहाँ हैं जहाँ दृष्टि-रेखा बॉक्स के कोने को छूती हुई निकलती है या जहाँ पथ बॉक्स की भुजा को काटता है। प्रत्येक कोने c के लिए रेखा e + λ(c − e) और पथ का प्रतिच्छेद s_c 2×2 युगपत समीकरण से हल किया जाता है (संवृत रूप); उम्मीदवार {0, s_c, पथ और भुजाओं के प्रतिच्छेद} को छोटे से बड़े क्रम में दृश्यता के लिए जाँचा जाता है, और पहले दिखने वाले s* पर d = h · (e − p(s*)) लौटाया जाता है।

अक्ष-समांतर उदाहरण (पथ y = 0, +x दिशा, छाया बनाने वाला कोना c, e बॉक्स के उस पार): d = (e_x − c_x) · e_y / (e_y − c_y)।

parked_box = (cx, cy, length, width, yaw) (केंद्र, कुल लंबाई, कुल चौड़ाई, दिशा)। यदि शुरू से दिखता हो तो s* = 0 पर अनुदैर्ध्य दूरी; कितना भी आगे बढ़ें न दिखे (e बॉक्स के भीतर) तो inf। ऋणात्मक d (दिखने तक e पहले ही पार हो चुका) भी जैसा है वैसा लौटाया जाता है। कोने को छूती दृष्टि-रेखा "दिखने वाली" मानी जाती है (बॉक्स को सापेक्ष 1e-9 छोटा करके निर्णय किया जाता है, ताकि फ़्लोटिंग-पॉइंट के उतार-चढ़ाव से निर्णय न बँटे)।

Raises ValueError: आकार, अपरिमित, आयाम ≤ 0।

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

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

spin_from_marker_sequence · carla_transform_matrix · carla_pose_to_world · carla_camera_pose · carla_xy_yaw · carla_scene_load · town_chain · osm_parse

इसी category के (traffic)

idm_accel · idm_equilibrium_gap · idm_platoon_simulate · driver_style · lateral_wobble · ou_estimate · social_force_step · pedestrian_crossing


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

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