pegtactile op• 데이터 종류: table × signal × signal × signal × signal × signal → table
• 호출: import fullseye as fs; fs.ledger.contact_state_from_wrench(kp, F, M_g, g, tip, axis, f_air: 'float' = 0.05, tau: 'float' = 0.35, tol: 'float' = 8e-05, geometry: 'bool' = True, tol_l: 'float' = 5e-05) -> 'dict'(구현을 직접 호출하려면 import pegtactile; pegtactile.contact_state_from_wrench(kp, F, M_g, g, tip, axis, f_air: 'float' = 0.05, tau: 'float' = 0.35, tol: 'float' = 8e-05, geometry: 'bool' = True, tol_l: 'float' = 5e-05) -> 'dict', 원장에서 가져오려면 opsdrive.get("contact_state_from_wrench"))
> 이 연산자의 설명은 아직 번역이 없습니다. 원문을 그대로 싣습니다.
接触レンチ(ペグが穴から受ける F と把持点 g まわりの M、世界系)→ 接触状態(学習なしの規則)。
単一の点接触なら、その点まわりのモーメントは 0(点に偶力なし)。幾何的に触れうる候補点 c(:func:contact_candidates)ごとの
正規化残差 e(c) = |M_g − (c − g) × F| / (|F| r) の最小が `tau` 未満なら一点(先端の縁で深さ < W なら面取り)、どの候補でも説明
できず先端と胴の両方に有効な候補があれば二点、|F| < `f_air なら無接触。geometry` なら Whitney の幾何を優先する: 傾き θ で
先端が最狭部から l₂(θ) − `tol_l` より深ければ両側に触れるしかない(二点を強制)。くさびの境目 θ = c/μ では先端の摩擦円錐の縁が
口の接触点を通り(口と先端を結ぶ線の傾き c/θ = μ)、二点のレンチが「口の一点」と区別できない —— レンチだけの規則の原理的な死角。
返り `state(:data:CONTACT_STATES)、e_tip・e_mouth、where`("none" / "tip" / "mouth" / "tip+mouth" / "?")、
`c(当たった点、一点のとき)、Fmag・depth・forced`。Raises ValueError: ベクトルが有限の 3 成分でない、tau ≤ 0。
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py
table 를 입력으로 받는 것)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
pegtactile)pad_params · pad_context · peg_wrench_to_pad_loads · pad_loads_to_peg_wrench · pad_shear_asymmetry · pad_marker_displacement · pad_tactile_frame · pad_tactile_read
*Provenance: pegtactile.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.