दामियाओ एजीवी समुदाय और अक्सर पूछे जाने वाले प्रश्न
DBUS प्रोटोकॉल, नेविगेशन, समस्या निवारण और OpenArm के साथ मोबाइल हेरफेर पर अक्सर पूछे जाने वाले प्रश्न। फोरम और समर्थन लिंक.
अक्सर पूछे जाने वाले प्रश्नों
डेमियाओ एजीवी के लिए सटीक सीरियल पोर्ट सेटिंग्स क्या हैं?
AGV फर्मवेयर UART5 (पिन PD2, RX) पर सुनता है 8 डेटा बिट्स, सम समता और 2 स्टॉप बिट्स (8ई2) के साथ 100000 बॉड. पाइसरियल में, पोर्ट को इसके साथ खोलें:
serial.Serial(
port='/dev/ttyUSB0',
baudrate=100000,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_TWO
)
एक बहुत ही सामान्य गलती 8N1 (कोई समता नहीं, 1 स्टॉप बिट) का उपयोग करना है। एजीवी कनेक्ट होता हुआ दिखाई देगा लेकिन सभी फ़्रेमों को चुपचाप अनदेखा कर देगा या गलत तरीके से विभाजित कर देगा। हमेशा प्रयोग करें PARITY_EVEN और STOPBITS_TWO.
18-बाइट डीबीयूएस फ्रेम वेग को कैसे एनकोड करता है?
DBUS फ्रेम लिटिल-एंडियन बिट-पैकिंग का उपयोग करके चार 11-बिट चैनल मान (ch0-ch3) को 0-5 बाइट्स में पैक करता है। प्रत्येक चैनल 1024 को केंद्र (तटस्थ/स्टॉप) के साथ 0-2047 तक सीमित करता है। वेग मानचित्रण है: ch3 = 1024 + vx × amp (आगे), ch2 = 1024 + vy × amp (पार्श्व), ch0 = 1024 + (−vw) × amp (रोटेशन)। बाइट्स 6-15 शून्य माउस/कीबोर्ड फ़ील्ड हैं। बाइट्स 16-17 ch4 को पकड़ें, 1024 पर निश्चित। देखें विशिष्टता संपूर्ण चैनल मानचित्र तालिका के लिए।
एजीवी थोड़ी देर चलती है फिर रुक जाती है - क्या हो रहा है?
यह कमांड टाइमआउट सुरक्षा सुविधा ट्रिगरिंग है। यदि अंदर कोई मूव या स्टॉप कमांड प्राप्त नहीं होता है --cmd-timeout-ms (डिफ़ॉल्ट 300 एमएस), एजेंट स्वचालित रूप से सभी वेग चैनलों को शून्य कर देता है और एजीवी बंद हो जाता है। इसका आमतौर पर मतलब है कि प्लेटफ़ॉर्म पर्याप्त तेज़ी से कमांड नहीं भेज रहा है, या नेटवर्क विलंबता के कारण अंतराल हो रहा है। समाधान: (1) वृद्धि --cmd-timeout-ms 500 उच्च-विलंबता कनेक्शन के लिए, (2) सुनिश्चित करें कि ब्राउज़र टेलोप पैनल सक्रिय रूप से बार-बार भेज रहा है move दिशा बटन दबाए रखते हुए ~10 हर्ट्ज़ पर कमांड करें, (3) प्लेटफ़ॉर्म पर अपने नेटवर्क आरटीटी की जाँच करें।
एजीवी गलत दिशा में चलता है - मैं इसे कैसे ठीक करूं?
एजेंट पर अक्ष उलटा झंडे का उपयोग करें - कोई फर्मवेयर परिवर्तन की आवश्यकता नहीं है:
# Flip forward/backward python3 dami_agent.py --session RC-XXXX --serial-port /dev/ttyUSB0 --invert-x # Flip lateral (left/right) python3 dami_agent.py ... --invert-y # Flip rotation direction python3 dami_agent.py ... --invert-z
यह निर्धारित करने के लिए कि आपके भौतिक इंस्टॉलेशन ओरिएंटेशन के लिए कौन से झंडे की आवश्यकता है, प्रत्येक अक्ष का व्यक्तिगत रूप से परीक्षण करें (उदाहरण के लिए, केवल एक एक्स कमांड भेजें, गति का निरीक्षण करें)।
क्या मैं भौतिक एजीवी के बिना परीक्षण कर सकता हूँ?
हाँ। उत्तीर्ण --mock लॉन्च करते समय dami_agent.py. मॉक मोड में, सीरियल पोर्ट कभी नहीं खोला जाता है। नियंत्रण लूप अभी भी DBUS फ्रेम (मेमोरी में संग्रहीत) को एन्कोड करता है, टेलीमेट्री को प्लेटफ़ॉर्म WebSocket पर अग्रेषित किया जाता है, और सभी कमांड पार्सिंग समान रूप से काम करता है। यह आपको संपूर्ण वेबसॉकेट पाइपलाइन को सत्यापित करने, प्लेटफ़ॉर्म यूआई का परीक्षण करने और हार्डवेयर के बिना सीआई में एकीकृत करने की सुविधा देता है:
python3 dami_agent.py --session RC-XXXX-XXXX --mock
लॉन्च करते समय मुझे pyserial.SerialException मिलता है - मैं क्या जाँचूँ?
पहला: ls /dev/ttyUSB* पुष्टि करने के लिए एडाप्टर प्रकट होता है। यदि ऐसा नहीं होता है, तो यूएसबी-टू-टीटीएल एडाप्टर ड्राइवर लोड नहीं हो सकता है (एक अलग यूएसबी पोर्ट आज़माएं)। यदि पोर्ट दिखाई देता है लेकिन आपको अनुमति त्रुटि मिलती है, तो अपने उपयोगकर्ता को डायलआउट समूह में जोड़ें:
sudo usermod -aG dialout $USER
# Log out and back in, then retry
यदि पोर्ट डिवाइस लिस्टिंग में दिखाई देता है लेकिन एजेंट अभी भी इसे नहीं खोल सकता है, तो किसी अन्य प्रक्रिया में यह खुला हो सकता है (उदाहरण के लिए, पिछले एजेंट का उदाहरण या सीरियल मॉनिटर)। पोर्ट का उपयोग करके अन्य सभी प्रक्रियाएँ बंद करें।
एजेंट कनेक्ट करता है लेकिन प्लेटफ़ॉर्म कोई टेलीमेट्री नहीं दिखाता है - क्या ग़लत है?
पारित सत्र आईडी की पुष्टि करें --session प्लेटफ़ॉर्म UI में अभी भी सक्रिय है. निष्क्रिय होने पर सत्र समाप्त हो सकते हैं. पंजीकरण हैंडशेक प्रतिक्रिया के लिए एजेंट के टर्मिनल आउटपुट की जांच करें - यदि यह "हैंडशेक विफल" प्रिंट करता है या "तैयार" प्रिंट नहीं करता है, तो सत्र समाप्त हो सकता है। प्लेटफ़ॉर्म में एक नया सत्र बनाएं और एजेंट को नई आईडी भेजें। उसका सत्यापन भी करें --backend सही प्लेटफ़ॉर्म WebSocket URL की ओर इंगित करता है।
मैं एजीवी की गति को कैसे समायोजित करूं?
समायोजित --amp पैरामीटर. यह केंद्र (1024) से चैनल ऑफसेट सेट करता है जो मोशन कमांड का प्रतिनिधित्व करता है। डिफ़ॉल्ट 660 है, जो अधिकतम गति का लगभग 64% देता है। आर्म-माउंटेड हेरफेर कार्यों के दौरान धीमे, अधिक नियंत्रित संचालन के लिए, उपयोग करें --amp 400. खुले फर्श पर अधिकतम गति के लिए, तक का उपयोग करें --amp 900. ध्यान दें कि मेकनम पहिये बहुत तेज़ गति पर कुछ पार्श्व दक्षता खो देते हैं - रखें --amp पार्श्व युद्धाभ्यास के लिए 800 से नीचे।
ओपनआर्म के साथ एकीकरण के लिए युक्तियाँ
आर्म माउंट करने से पहले अपने केबल रूटिंग की योजना बनाएं
बांह पर बोल्ट लगाने से पहले बांह के CAN/USB केबल को AGV के आंतरिक केबल प्रबंधन चैनल के माध्यम से रूट करें। एक बार आर्म स्थापित हो जाने के बाद इसे हटाए बिना केबलों को दोबारा रूट करना मुश्किल होता है। कलाई पर 20-30 सेमी अतिरिक्त केबल ढीला छोड़ दें - बांह का कार्यक्षेत्र किनारों और पीछे तक फैला हुआ है, जहां केबल तनाव संयुक्त प्रक्षेप पथ पर अप्रत्याशित प्रतिरोध पैदा कर सकता है।
जब हाथ लगा हो और गति में हो तो निचले --amp का उपयोग करें
एजीवी पर एक रोबोट भुजा द्रव्यमान के केंद्र को ऊपर उठाती है। तीव्र पार्श्व त्वरण के कारण प्लेटफ़ॉर्म हिल सकता है, जो बांह के प्रक्षेप पथ में गड़बड़ी पैदा करता है - विशेष रूप से विस्तारित पहुंच वाले स्थानों पर। के साथ शुरू --amp 400 हाथ संचालन के दौरान आधार गति के लिए और जरूरत पड़ने पर ही वृद्धि करें। टेलीऑपरेशन डेटा संग्रह के लिए, लगातार धीमी आधार गति तेज, झटकेदार गतिविधियों की तुलना में स्वच्छ प्रशिक्षण डेटा उत्पन्न करती है।
दोनों एजेंटों को अलग-अलग --नोड-आईडी मानों के साथ पंजीकृत करें
एक ही प्लेटफ़ॉर्म सत्र में एजीवी एजेंट और आर्म एजेंट को एक साथ चलाते समय, प्रत्येक को एक अलग स्थान दें --node-id. यह सुनिश्चित करता है कि प्लेटफ़ॉर्म अलग-अलग टेलीमेट्री स्ट्रीम प्रदर्शित करता है और एपिसोड JSONL संग्रह प्रत्येक नोड के डेटा को स्वतंत्र रूप से लेबल करता है। अनुशंसित नामकरण परंपरा: damiao-base एजीवी के लिए और openarm-right / openarm-left बांह के नोड्स के लिए.
टेलीपॉप में आधार गति और भुजा गति का समन्वय करें
फियरलेस प्लेटफ़ॉर्म टेलोप पैनल में, दोनों नोड एक साथ दिखाई देते हैं। एक उपयोगी टेलीऑपरेशन पैटर्न है: आधार को रोकें, हाथ को पकड़ने के लिए ले जाएँ, आधार को पुनः स्थिति में लाने के लिए ले जाएँ, दोहराएँ। एपिसोड JSONL संग्रह टाइमस्टैम्प द्वारा सभी नोड्स के टेलीमेट्री को समकालिक रूप से कैप्चर करता है, ताकि डाउनस्ट्रीम नीतियां पूर्ण मोबाइल हेरफेर प्रक्षेपवक्र से सीख सकें। यह बताने के लिए प्लेटफ़ॉर्म के रिकॉर्डिंग मार्करों का उपयोग करने पर विचार करें कि प्रत्येक एपिसोड के भीतर बेस मोशन आर्म मोशन में कहाँ परिवर्तित होता है।
संपर्क-समृद्ध मोबाइल हेरफेर डेटा के लिए Paxini GEN3 सेंसर जोड़ें
पर्वत पैक्सिनी PX-6AX GEN3 ओपनआर्म उंगलियों या अंत प्रभावक पर स्पर्श सेंसर। उसी सत्र में सेंसर ब्रिज को तीसरे नोड के रूप में पंजीकृत करें। प्लेटफ़ॉर्म स्पर्श, बांह के जोड़ और आधार वेग धाराओं को समकालिक रूप से रिकॉर्ड करता है - व्यवहार क्लोनिंग और सुदृढीकरण सीखने के लिए समृद्ध संपर्क-जागरूक मोबाइल हेरफेर डेटासेट बनाता है।
दस्तावेज़ीकरण एवं संबंधित हार्डवेयर
मंच एवं समर्थन
क्या यहां किसी प्रश्न का उत्तर नहीं दिया गया है? एसवीआरसी समुदाय से पूछें या हार्डवेयर सहायता से संपर्क करें।
फ़ोरम पर जाएँ → समर्थन से संपर्क करें →