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(: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。

参考(示例数据・文献)

• 示例数据目录(下载 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.