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.