polygon_two_point_depth — DRIVE pegsym op

• 数据种类:matrix × matrix × scalar → table

• 调用: import fullseye as fs; fs.ledger.polygon_two_point_depth(peg_vertices, hole_vertices, theta: 'float', tilt_dir: 'float' = 0.0, depth_max: 'float' = 0.05, tol: 'float' = 1e-10) -> 'dict'(要直接调用实现,import pegsym; pegsym.polygon_two_point_depth(peg_vertices, hole_vertices, theta: 'float', tilt_dir: 'float' = 0.0, depth_max: 'float' = 0.05, tol: 'float' = 1e-10) -> 'dict';从台账取用则 opsdrive.get("polygon_two_point_depth"))

用法

精确求倾斜多边形销的两点接触深度 l₂ [m] (从最窄处 z = 0 到先端中心):深度 l 时位于 z ≤ 0 的销部分,是先端面顶点与侧面棱线穿过 z = 0 的点的凸包。孔是竖直的棱柱,因此只要这些顶点的水平投影能通过平移放入孔(polygon_fit_check)就能进入,l 加深后便放不进 —— 用二分法求其边界。tilt_dir = 倾斜的水平方向 [rad] (世界坐标系,与销截面相同的坐标系)。用于比较的圆的公式(Whitney,pegsim 的 3-D 圆柱精确式 (2R − r(cos θ + sec θ))/tan θ)以内切圆(r = A,R = A + δ)和外接圆(r = A/cos(π/n),R = (A + δ)/cos(π/n))返回(circle_in、circle_out)。正方形绕平行于面的轴倾斜时的小角极限为 Goli 等 2024 的式 (2.28) φ = (v − v′)/h,即 l₂ tan θ → 2δ(goli_small_angle = 2δ/tan θ)。奇数 n(三角形)面的对面是顶点,因此在任何方向都比内切圆公式更深。偶数 n 在面法线方向与内切圆公式一致(正方形为 1e-11 m)。有的组合会超出内切圆一侧达 0.03 %(倾斜 6°、距面 15°)。返回 l2、circle_in、circle_out、goli_small_angle(δ 为边心距之差的平均,n 为顶点数)。Raises ValueError:θ ≤ 0 或 ≥ 30°、竖直也进不去、直到 depth_max 都不发生两点接触。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_peg_symmetry_search — py -3.11 examples/poc_peg_symmetry_search.py

类型可衔接的下一个算子(可接受 table 作为输入)

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

同类别(pegsym)

polygon_peg · polygon_offset · polygon_fit_check · rotation_window · polygon_coverage_image · plane_topview · polygon_yaw_read · relative_yaw_from_images


*Provenance: pegsym.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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