tacsim op• 数据种类:image2d × scalar → table
• 调用: 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'(要直接调用实现,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';从台账取用则 opsdrive.get("contact_radius_ring"))
从高度场无模型读取接触半径 a:接触边缘 r = a 是径向斜率 |∂h/∂r| 最大的圆环(Hertz 中内侧按 r/R 增大,外侧按 √ 急剧下降,形成尖点)。沿方位角方向 n_az 条径向线以 step_px 步长双线性插值 |∇h|,用抛物线插值将各线的峰值细化到亚像素 → 对 72 个点调用 measure.fit_circle(第 2 实现)并取半径的中位数。
返回: 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, 双线性插值会将尖点平滑约 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(凹陷过于靠近窗口边缘)。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• 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 作为输入)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 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.