pegsym op• 数据种类:scalar × scalar × scalar → table
• 调用: import fullseye as fs; fs.ledger.rotation_window(n: 'int', apothem: 'float', clearance: 'float', chamfer: 'float' = 0.0, peg_vertices=None, hole_vertices=None, tol: 'float' = 1e-10, mu: 'float | None' = None) -> 'dict'(要直接调用实现,import pegsym; pegsym.rotation_window(n: 'int', apothem: 'float', clearance: 'float', chamfer: 'float' = 0.0, peg_vertices=None, hole_vertices=None, tol: 'float' = 1e-10, mu: 'float | None' = None) -> 'dict';从台账取用则 opsdrive.get("rotation_window"))
销进入孔(有倒角时为孔口)的旋转窗口。正 n 边形的闭式(推导):中心对齐时,顶点位于距面法线 π/n ∓ φ 的方向,最向外突出的顶点在法线方向的长度 a cos(π/n − |φ|) 不超过 A + δ(+ W)即可进入:φ = π/n − arccos(x),x = (A + δ + W) cos(π/n)/A(若 x ≥ 1,窗口占满半周期 π/n)。arccos 在 1 附近有舍入下限,故写成 atan2(√(1 − x²), x)。若传入 peg_vertices、hole_vertices,还通过对线性规划(polygon_fit_check,平移也自由)的二分法测量正、负方向的窗口(第二实现。带键形状只能用这个)。返回 phi_fit(最窄处而非孔口)、phi_cap(倒角的孔口)、period = 2π/n、M = ⌈period/(2 phi_cap)⌉、lp(plus/minus:传入顶点时,进入孔口的窗口两端 = 包含 0 的连通区间。扫描将半周期分成 360 步,端点用二分法)。
传入 mu 时也返回 因摩擦而停住的极限(推导,45° 倒角): 落在口上的顶点(从面法线起 β = π/n − φ 的方向)要沿倒角滑下, 销必须转动(偶数 n 时相对顶点的横向力相互抵消,不会平移)。绕轴的弹簧较弱时, 接触力绕轴的力矩以 0 平衡: 倒角法线的切向分量 sin β/√2 与阻碍滑动方向(面上向下 + 旋转)的摩擦 μ/√(1 + sin²β) 相等处为界,转动的条件是 s√(1 + s²) > √2 μ(s = sin β),即 s² > (√(1 + 8μ²) − 1)/2 时。phi_friction = π/n − β*、phi_eff = max(phi_fit, min(phi_cap, phi_friction))(不依赖倒角而进入的部分与摩擦无关)。六边形(顶点接近面法线)因摩擦窗口变窄,三角形、四边形由几何决定 —— 已在 MuJoCo 试作中确认(PoC 的 --full)。Raises ValueError: n < 1、apothem ≤ 0、clearance < 0、chamfer < 0、mu < 0、只给出了一侧的顶点。
• 示例数据目录(下载 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 · polygon_two_point_depth · 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.