contact_state_from_wrench — DRIVE 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(contact_candidates), 若正規化殘差 e(c) = |M_g − (c − g) × F| / (|F| r) 的最小值小於 tau 則為一點(在前端邊緣且深度 < W 則為倒角),任何候選都無法解釋且前端與胴部都有有效候選則為二點,|F| < f_air 則為無接觸。若 geometry,則優先採用 Whitney 的幾何: 傾斜 θ 時前端若比最窄處深 l₂(θ) − tol_l 以上,就只能兩側都接觸(強制二點)。在楔形的分界 θ = c/μ,前端摩擦錐的邊緣通過口部的接觸點(連接口部與前端之線的斜率 c/θ = μ),二點的力旋量與「口部一點」無法區分 —— 這是僅用力旋量之規則在原理上的死角。回傳 state(CONTACT_STATES)、e_tip、e_mouth、where("none" / "tip" / "mouth" / "tip+mouth" / "?")、c(接觸到的點,一點時)、Fmag、depth、forced。Raises ValueError: 向量不是有限的 3 分量、tau ≤ 0。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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