contact_radius_ring — DRIVE tacsim op

• Data kinds: image2d × scalar → table

• Call: import fullseye as fs; fs.ledger.contact_radius_ring(h, pitch: 'float', n_az: 'int' = 72, step_px: 'float' = 0.25, r_max_px: 'float | None' = None) -> 'dict' (implementation को सीधे call करना हो तो import tacsim; tacsim.contact_radius_ring(h, pitch: 'float', n_az: 'int' = 72, step_px: 'float' = 0.25, r_max_px: 'float | None' = None) -> 'dict', registry से लेना हो तो opsdrive.get("contact_radius_ring"))

उपयोग

height field से contact radius a बिना model के पढ़ता है: contact edge r = a वह ring है जहाँ radial slope |∂h/∂r| अधिकतम है (Hertz में अंदर r/R से बढ़ता है और बाहर √ से तेज़ी से गिरता है, cusp)। azimuth में n_az radial lines के साथ |∇h| को step_px steps में bilinear interpolate करता है, हर line के peak को parabolic interpolation से subpixel बनाता है → 72 बिंदुओं पर measure.fit_circle (2nd implementation) और त्रिज्याओं का median।

रिटर्न: a (माध्यिका × pitch) [m], a_circle (वृत्त-फ़िटिंग की त्रिज्या × pitch), r_px, cy, cx, rms_px (वृत्त), radii_px (प्रति दिगंश-कोण शिखर त्रिज्या), centre (केंद्रक (cy, cx)), bias_px_per_a (विभेदन-सीमा का अनुमान = −0.7 px / a; द्विरेखीय अंतर्वेशन cusp को लगभग 1 px चिकना करता है, इसलिए a 14 px हो तो −5 %, 21 px हो तो −3 % भीतर आता है — मापित मान, मॉडल न होने की क़ीमत)। सीमा-पट्टी का केंद्रक (प्रोटोटाइप v1) 9 % भीतर खिसक गया था, इस सबक से पट्टी के बजाय शिखर-स्थिति उपयोग की जाती है, और त्रिज्यीय ढलान h के द्विरेखीय नमूनों के 1 px अंतराल के अंतर से ली जाती है (np.gradient के 2 px से कम चिकनाई)। डिफ़ॉल्ट (r_max_px=None) खिड़की के किनारे − 2 px तक खोजता है। झिल्ली की तलहटी के बाहर अलग शिखर (पड़ोसी संपर्क, किनारे की छाया) वाली वास्तविक मशीन की छवियों में r_max_px स्पष्ट रूप से दें। Raises ValueError: कोई गड्ढा नहीं, pitch ≤ 0, खोज-त्रिज्या 2 px से कम (गड्ढा खिड़की के किनारे के बहुत पास)।

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

• poc_tacsim_elastic_membrane — py -3.11 examples/poc_tacsim_elastic_membrane.py

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

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

इसी category के (tacsim)

combined_modulus · hertz_sphere · hertz_force · hertz_cylinder · hertz_surface_uz · hertz_pressure · membrane_indent_sphere · membrane_indent_shape


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

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