rotation_window — DRIVE 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, 꼭짓점을 한쪽만 넘김.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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