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 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_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
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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.