contact_state_from_wrench — DRIVE pegtactile op

• Data kinds: table × signal × signal × signal × signal × signal → table

• Call: 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' (implementation को सीधे call करना हो तो 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', registry से लेना हो तो opsdrive.get("contact_state_from_wrench"))

उपयोग

contact wrench (peg को hole से मिलने वाला F और पकड़ बिंदु g के सापेक्ष M, world frame) → contact state (learning के बिना नियम)।

एकल बिंदु-संपर्क हो तो उस बिंदु के परितः आघूर्ण 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।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (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 operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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