pegsym opmatrix × matrix × scalar → tableimport 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 を切る点の凸包。穴は鉛直な角柱なので、この頂点の水平の射影が平行移動で穴に入る(:func: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 まで二点接触しない。
py -3.11 examples/poc_peg_symmetry_search.pytable を入力に取れる)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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.