सॉफ़्टवेयर एवं ड्राइवर सेटअप
पैक्सिनी एसडीके स्थापित करें, पायथन में दबाव डेटा स्ट्रीम करें, संपर्क हीटमैप की कल्पना करें, वैकल्पिक ROS2 एकीकरण जोड़ें, और पूर्ण डेटा संग्रह पाइपलाइनों के लिए अपने रोबोट आर्म के साथ सिंक्रनाइज़ करें।
पैक्सिनी एसडीके स्थापित करें
Paxini Gen3 USB HID पर संचार करता है - किसी कर्नेल मॉड्यूल या विक्रेता ड्राइवर की आवश्यकता नहीं है। पायथन एसडीके निम्न-स्तरीय एचआईडी प्रोटोकॉल को लपेटता है और एक स्वच्छ स्ट्रीमिंग एपीआई को उजागर करता है।
इंस्टॉल सत्यापित करें:
सेंसर का पता लगाना
Gen3 सेंसर को USB-C के माध्यम से अपने कंप्यूटर में प्लग करें। इसकी पहचान की पुष्टि करने के लिए SDK की डिवाइस डिस्कवरी उपयोगिता का उपयोग करें:
मल्टी-सेंसर सेटअप के लिए (उदाहरण के लिए, यूएसबी हब पर पांच उंगलियां):
sudo python -m paxini.install_udev एक बार नियम स्थापित करने के लिए, फिर सेंसर को अनप्लग करें और दोबारा प्लग करें।
पायथन स्ट्रीमिंग एपीआई
कोर एपीआई एक कॉलबैक-आधारित स्ट्रीम है। प्रत्येक फ़्रेम एक प्रदान करता है टैक्टाइलफ़्रेम पूर्ण दबाव सारणी और मेटाडेटा युक्त वस्तु।
सभी सार्वजनिक एपीआई विधियाँ:
| विधि/संपत्ति | विवरण | रिटर्न |
|---|---|---|
| सेंसर.स्टार्ट() | स्ट्रीमिंग शुरू करें; गैर अवरुद्ध | कोई नहीं |
| सेंसर.स्टॉप() | धारा को सफाई से रोकें | कोई नहीं |
| सेंसर.स्ट्रीम() | जेनरेटर कॉन्फ़िगर हर्ट्ज़ पर टैक्टाइलफ़्रेम ऑब्जेक्ट प्रदान करता है | जेनरेटर[टैक्टाइलफ़्रेम] |
| सेंसर.नवीनतम() | अवरोधित किए बिना नवीनतम फ़्रेम लौटाता है | टैक्टाइलफ़्रेम |
| सेंसर.सेट_रेट(हर्ट्ज) | नमूना दर निर्धारित करें (यूएसबी-सी के लिए 50-500 हर्ट्ज, बीएलई के लिए 50-200 हर्ट्ज) | कोई नहीं |
| सेंसर.कैलिब्रेट() | वर्तमान विश्राम भार के विरुद्ध शून्य-ऑफ़सेट अंशांकन | कोई नहीं |
| सेंसर.सीरियल | डिवाइस सीरियल नंबर स्ट्रिंग | एसटीआर |
| सेंसर.वैरिएंट | "उंगलियों की नोक" | "फिंगर-पैड" | "हथेली" | एसटीआर |
स्पर्शनीय डेटा प्रारूप
प्रत्येक टैक्टाइलफ़्रेम रोकना:
| मैदान | प्रकार | विवरण |
|---|---|---|
| फ़्रेम.टाइमस्टैम्प_एनएस | int यहाँ | नैनोसेकंड टाइमस्टैम्प (मोनोटोनिक, होस्ट घड़ी) |
| फ़्रेम.दबाव_मानचित्र | np.ndarray (एच, डब्ल्यू) फ्लोट32 | प्रति टैक्सेल केपीए में दबाव। आकार विभिन्न प्रकार से भिन्न होता है: उंगलियों की नोक 8×8 है, हथेली 16×12 है। |
| फ़्रेम.संपर्क_मास्क | np.ndarray (एच, डब्ल्यू) बूल | सत्य जहां दबाव संपर्क सीमा से अधिक है (डिफ़ॉल्ट: 5 केपीए) |
| फ़्रेम.contact_area_mm2 | तैरना | सक्रिय टैक्सल क्षेत्रों का योग मिमी² में |
| फ्रेम.टोटल_फोर्स_एन | तैरना | न्यूटन में, सभी करों में एकीकृत सामान्य बल |
| फ़्रेम.contact_centroid | (फ्लोट, फ्लोट) | (पंक्ति, स्तंभ) टैक्सेल निर्देशांक में संपर्क क्षेत्र का केन्द्रक |
| फ़्रेम.इन_संपर्क | बूल | यदि total_force_n संपर्क सीमा से अधिक है तो सत्य है (डिफ़ॉल्ट: 0.05 N) |
| फ़्रेम.सेक | int यहाँ | फ़्रेम अनुक्रम संख्या को नीरस रूप से बढ़ाना |
लाइव हीटमैप विज़ुअलाइज़ेशन
SDK एक रेडी-टू-रन लाइव विज़ुअलाइज़र शिप करता है। इसे सीधे कमांड लाइन से चलाएँ:
या का उपयोग करके अपनी स्वयं की स्क्रिप्ट में एम्बेड करें paxini.अर्थात मॉड्यूल:
ROS2 इंटरफ़ेस
ROS2 ब्रिज प्रकाशित करता है सेंसर_संदेश/छवि (दबाव मानचित्र) और एक प्रथा paxini_msgs/TactileFrame प्रति सेंसर विषय। ROS2 विनम्र या जैज़ी की आवश्यकता है।
मल्टी-सेंसर सेटअप के लिए, प्रत्येक डिवाइस अपने सीरियल नंबर के तहत प्रकाशित होता है। आप मानक ROS2 रीमैपिंग का उपयोग करके अपनी लॉन्च फ़ाइल में विषयों को रीमैप कर सकते हैं।
रोबोट आर्म इंटीग्रेशन
रोबोट बांह संयुक्त स्थिति के साथ पैक्सिनी डेटा को सिंक्रनाइज़ करने के लिए, इसका उपयोग करें paxini.sync मॉड्यूल. यह एक साझा घड़ी के विरुद्ध सभी सेंसर फ़्रेमों को टाइमस्टैम्प करता है और एक ब्लॉकिंग एपीआई प्रदान करता है जो सिंक्रनाइज़ (आर्म_स्टेट, टैक्टाइल_फ़्रेम) जोड़े उत्पन्न करता है:
MultiSourceSync जब आर्म और सेंसर की दरें भिन्न होती हैं तो क्लास इंटरपोलेशन को संभालती है।
शीर्ष 3 मुद्दे
सेंसर का पता नहीं चल रहा है. क्रम में जांचें: (1) एक अलग यूएसबी-सी केबल आज़माएं - कुछ केबल केवल चार्ज-चार्ज होते हैं और डेटा नहीं ले जाते हैं। (2) लिनक्स पर चलाएँ sudo python -m paxini.install_udev फिर सेंसर को अनप्लग/रीप्लग करें। (3) पुष्टि करें कि सेंसर एलईडी ठोस है (ब्लिंक नहीं कर रही है) - ब्लिंकिंग का मतलब है कि यह फर्मवेयर अपडेट मोड में है; बाहर निकलने के लिए रीसेट बटन को 5 सेकंड तक दबाए रखें।
सेंसर को अंशांकन की आवश्यकता है या थ्रेशोल्ड बहुत अधिक सेट है। दौड़ना sensor.calibrate() सेंसर अनलोड के साथ (कोई संपर्क नहीं)। यदि समस्या बनी रहती है, तो जांच लें कि सेंसर वैरिएंट आपके माउंट से मेल खाता है - उंगलियों पर स्थापित पाम सेंसर बड़े टैक्सल क्षेत्र के कारण बहुत कम दबाव मान दिखाएगा। फर्मवेयर संस्करण 1.2+ की भी पुष्टि करें python -m paxini.discover.
आर्म इंटरफ़ेस क्लॉक और सेंसर टाइमस्टैम्प में अधिक अंतर हो रहा है max_dt_ms. यह आम तौर पर आर्म एसडीके द्वारा पुरानी संयुक्त स्थिति (उदाहरण के लिए, कम दर पर बफर्ड) लौटाने के कारण होता है। बढ़ोतरी max_dt_ms पहले परीक्षण के रूप में 10.0 तक, फिर जांच करें कि आर्म स्टेट रिफ्रेश दर अपेक्षा से कम क्यों है। यूएसबी आर्म्स के लिए, पुष्टि करें कि पावर प्रबंधन द्वारा यूएसबी पोलिंग दर को कम नहीं किया जा रहा है (sudo powertop लिनक्स पर)।
अभी भी अटके हुए हैं? में पोस्ट करें मंच प्रश्न सूत्र आपके ओएस, एसडीके संस्करण के साथ (paxini.__version__), और सटीक त्रुटि आउटपुट।