सॉफ़्टवेयर एवं ड्राइवर सेटअप
यूएसबी सीडीसी ड्राइवर स्थापित करें, पायथन में 64-नोड दबाव डेटा स्ट्रीम करें, संपर्क हीटमैप्स की कल्पना करें, और ओर्का हैंड रिकॉर्डिंग पाइपलाइनों के साथ एकीकृत करें।
ज्यूकियाओ-ग्लव पैकेज स्थापित करें
दस्ताना यूएसबी सीडीसी सीरियल पर संचार करता है - कोई कर्नेल मॉड्यूल नहीं, कोई कस्टम ड्राइवर नहीं। पायथन पैकेज रैप्स पाइसरियल और बाइनरी फ्रेम प्रोटोकॉल को संभालता है।
इंस्टॉल सत्यापित करें:
यूएसबी पोर्ट का पता लगा रहा है
1.5 मीटर यूएसबी-सी केबल के माध्यम से दस्ताने को प्लग इन करें। डिवाइस सीडीसी-एसीएम सीरियल पोर्ट के रूप में गणना करता है।
| OS | विशिष्ट पोर्ट नाम | टिप्पणियाँ |
|---|---|---|
| लिनक्स | /dev/ttyACM0 | उपयोगकर्ता को इसमें जोड़ें डायल करें यदि अनुमति अस्वीकृत हो तो समूह बनाएं |
| मैक ओएस | /dev/tty.usbmodem* | उपयोग ls /dev/tty.usb* सटीक नाम खोजने के लिए |
| खिड़कियाँ | COM3 (भिन्न होता है) | डिवाइस मैनेजर की जाँच करें → पोर्ट (COM और LPT) |
पायथन से दस्ताने का स्वतः पता लगाएं:
या पोर्ट को स्पष्ट रूप से निर्दिष्ट करें:
पायथन स्ट्रीमिंग एपीआई
दस्ताना 200 हर्ट्ज़ पर प्रवाहित होता है। प्रत्येक फ्रेम में 64-तत्व दबाव सरणी (16-बिट एडीसी, सामान्यीकृत 0.0-1.0) और एक टाइमस्टैम्प होता है।
फ़्रेम ऑब्जेक्ट संदर्भ
| गुण | प्रकार | विवरण |
|---|---|---|
| फ़्रेम.टाइमस्टैम्प | तैरना | होस्ट-साइड प्राप्त समय (सेकंड, यूनिक्स युग) |
| फ्रेम.दबाव | np.ndarray (64,) | प्रति नोड सामान्यीकृत दबाव, 0.0 (कोई नहीं) से 1.0 (अधिकतम) |
| फ़्रेम.दबाव_कच्चा | np.ndarray (64,) | रॉ 16-बिट एडीसी गणना (0-65535) |
| फ़्रेम.संपर्क_मास्क | np.ndarray (64,) बूल | सत्य जहां दबाव सीमा से अधिक है (डिफ़ॉल्ट 0.05) |
| फ़्रेम.संपर्क_नोड्स | सूची[int] | वर्तमान में संपर्क में नोड्स के सूचकांक |
| फ़्रेम.grasp_region | str या कोई नहीं | अनुमानी क्षेत्र: "हथेली", "अँगूठा", "अनुक्रमणिका", "मध्य", "अँगूठी", "पिंकी", कोई नहीं |
| फ़्रेम.अनुक्रम | int यहाँ | फ़्रेम काउंटर (65535 पर लपेटता है); गिरे हुए फ़्रेम का पता लगाने के लिए उपयोग करें |
64-नोड सेंसर लेआउट
64 टैक्सल्स को एक बुने हुए फाइबर मैट्रिक्स के रूप में व्यवस्थित किया गया है जो हथेली और सभी पांच अंगुलियों के खंडों को कवर करता है। नोड सूचकांक एक सुसंगत पृष्ठीय-दृश्य पंक्ति-प्रमुख क्रम का पालन करते हैं।
दबाव हीटमैप विज़ुअलाइज़ेशन
The [अर्थात्] अतिरिक्त अंशांकन और डिबगिंग के लिए उपयोगी एक लाइव मैटप्लोटलिब हीटमैप रेंडरर स्थापित करता है।
बिना सोचे-समझे वातावरण या डेटा समीक्षा के लिए, फ़्रेम को वीडियो के रूप में सहेजें:
ROS2 इंटरफ़ेस
The juqiao_glove_ros2 पैकेज एक कस्टम प्रकाशित करता है TactileArray 200 हर्ट्ज पर संदेश. ROS2 हंबल और आयरन के साथ संगत।
ड्राइवर नोड लॉन्च करें:
प्रकाशित विषय:
| विषय | संदेश प्रकार | दर | विवरण |
|---|---|---|---|
| /juqiao_glove/tactile_array | juqiao_glove_ros2/TactileArray | 200 हर्ट्ज | पूर्ण 64-नोड दबाव सारणी |
| /juqiao_glove/contact_mask | std_msgs/UInt8MultiArray | 200 हर्ट्ज | प्रति नोड बाइनरी संपर्क (0 या 1) |
| /juqiao_glove/grasp_region | std_msgs/स्ट्रिंग | 200 हर्ट्ज | सक्रिय क्षेत्र अनुमानी या खाली स्ट्रिंग |
| /juqiao_glove/status | डायग्नोस्टिक_एमएसजीएस/डायग्नोस्टिकस्टेटस | 1 हर्ट्ज | फ़र्मवेयर संस्करण, फ़्रेम ड्रॉप दर |
संयुक्त ओर्का हैंड + ग्लव लॉन्च
सिंक्रनाइज़ रिकॉर्डिंग के लिए ओर्का हैंड के साथ दस्ताने का उपयोग करते समय:
बेसलाइन अंशांकन
फ़ैक्टरी अंशांकन के साथ दस्ताना जहाज। यदि आप बेसलाइन बहाव (आराम पर गैर-शून्य पढ़ने वाले नोड्स) या विस्तारित भंडारण के बाद देखते हैं तो पुन: कैलिब्रेट करें।
रनटाइम पर लोड अंशांकन:
दहलीज ट्यूनिंग
डिफ़ॉल्ट संपर्क सीमा 0.05 (पूर्ण पैमाने का 5%) है। प्रति कार्य समायोजित करें:
सामान्य मुद्दे
sudo usermod -aG dialout $USER फिर लॉग आउट करें और वापस अंदर आएं। वैकल्पिक रूप से: sudo chmod 666 /dev/ttyACM0 (अनप्लग पर रीसेट होता है)।dmesg | tail -20 (लिनक्स) या ls /dev/tty.usb* (macOS) OS को सत्यापित करने के लिए डिवाइस की गणना करता है। एक अलग यूएसबी पोर्ट या केबल आज़माएं (कनेक्टर यूएसबी-सी है लेकिन डेटा केबल होना चाहिए, केवल चार्ज करने के लिए नहीं)।glove.info() फ़र्मवेयर प्रतिक्रिया की पुष्टि करने के लिए। यदि ऐसा होता है, तो जाँच लें कि अंशांकन फ़ाइल अधिक घटाव तो नहीं कर रही है। मिटाना ~/.juqiao_glove_cal.json और दस्तानों को सपाट रखकर पुन: अंशांकित करें।glove.calibrate_baseline(). तापमान परिवर्तन या विस्तारित भंडारण के बाद हो सकता है। यदि ग्लव फ़्लैट के साथ बहाव> 0.4 है, तो सेंसिंग फैब्रिक को प्रतिस्थापन की आवश्यकता हो सकती है (जुकियाओ समर्थन से संपर्क करें)।on_frame कॉलबैक जल्दी लौटता है - एक अलग थ्रेड में भारी प्रोसेसिंग करें।ros2 launch juqiao_glove_ros2 glove.launch.py port:=/dev/ttyACM0. नोड लॉग जांचें: ros2 node info /juqiao_glove_driver. सुनिश्चित करें dialout ROS2 नोड चलाने वाले उपयोगकर्ता पर समूह फिक्स लागू किया गया था।