तुमचे वर्कस्टेशन बोगद्यातून ROS 1 master पर्यंत पोहोचते, तरीही विषयांची यादी रिकामी दिसते। हा नमुना सामान्य आहे कारण master नोंदणी आणि विषय वाहतूक या दोन वेगळ्या संभाषणा आहेत, आणि master मधून फक्त पहिलीच जाते। खालील तपासणी सूची दुसऱ्या संभाषणातून जाते: प्रकाशक घोषित करतो तो एंडपॉइंट, ग्राहकाने पोहोचलेच पाहिजे असा पत्ता, आणि दोघांना बोलण्यास अनुमती देणारी परवानगी। इथले सर्व फक्त जुन्या ROS 1 साठी आहे, ज्याची Noetic समर्थन कालावधी मे 2025 मध्ये संपली।

पायरी 1: master कनेक्शन हे विषय कनेक्शन नाही हे सिद्ध करा

काय चालते आणि काय चालत नाही हे वेगळे करून सुरुवात करा। यशस्वी rostopic list सिद्ध करते की तुमचा शेल master च्या XMLRPC पोर्टपर्यंत पोहोचू शकतो आणि master ला विषयांची माहिती आहे; ग्राहक प्रकाशकापर्यंत पोहोचू शकतो का याबद्दल ते काहीच सांगत नाही। खालील तीन आदेश हा फरक दृश्यमान करतात, आणि ते सर्व फक्त वाचनासाठी आहेत।

echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter

rostopic info चे आउटपुट प्रकाशकाच्या नोड URI चे नाव देते, जो प्रकाशकाच्या होस्टवरचा XMLRPC पत्ता आहे। तोच पत्ता तुमचा ग्राहक पुढे कॉल करेल, त्यामुळे ग्राहक जिथूनही चालेल तिथून तो पोहोचण्यायोग्य असला पाहिजे। जर तो फक्त रोबोटच्या स्वतःच्या LAN वर असलेल्या इंटरफेसकडे निर्देश करत असेल, तर master शोध यशस्वी होतो आणि डेटा कधीच पोहोचत नाही।

पायरी 2: घोषित एंडपॉइंट नोडमधूनच वाचा

ROS 1 आपली घोषित होस्ट ओळख ROS_IP किंवा ROS_HOSTNAME मधून निवडते, जेव्हा त्यांपैकी एक सेट असते, अन्यथा होस्टच्या स्वतःच्या नाव-निराकरणाकडे परत जाते। प्रत्यक्षात सुरू केलेल्या प्रक्रियेचे वातावरण तपासा, कारण systemd युनिट, कंटेनर किंवा दुसरे टर्मिनल तुमची चाचणी ज्या शेलमध्ये चालली त्यापेक्षा वेगळे मूल्य घेऊन जाऊ शकते।

echo "$ROS_IP" "$ROS_HOSTNAME"
rosnode info /talker
getent hosts robot-host

होस्टनाव घोषणा तेव्हाच चालते जेव्हा प्रत्येक पीअर ते नाव इच्छित पोहोचण्यायोग्य पत्त्यावर निराकरण करते। जर ते नाव फक्त रोबोटच्या स्वतःच्या नेटवर्कमध्ये निराकरण होत असेल, तर बोगद्याच्या पलीकडच्या वर्कस्टेशनकडे ते वापरण्याचा कोणताही मार्ग नाही, आणि कोणताही DNS प्रत्यय न ढकलणारा VPN ती विसंगती अधिक बिघडवतो। टोपोलॉजी राउट केलेली असेल तेव्हा ROS_IP बोगद्याच्या पत्त्यावर सेट करणे हा लहान बदल आहे। तुम्ही जे निवडाल ते दोन्ही टोकांसाठी नोंदवा, कारण ओळखीबद्दल असहमत प्रकाशक आणि ग्राहक वाटाघाटी करतील आणि नंतर जोडू शकणार नाहीत।

घोषित URI ज्या पत्त्यावर कोणताही पीअर राउट करू शकत नाही असा पत्ता वापरत असेल तर इथे थांबा। चुकीच्या इंटरफेसवर निराकरण होणारे नाव कोणतेही फायरवॉल काम सुधारणार नाही।

पायरी 3: घोषित पत्ता निराकरणयोग्य आणि राउट केलेला करा

URI हातात घेऊन, पोहोचण्यायोग्यता रोबोटकडून नव्हे तर ग्राहकाच्या होस्टकडून तपासा। TCPROS पोर्ट वाटाघाटीदरम्यान निवडला जातो, त्यामुळे उपयुक्त सुरुवातीची चाचणी XMLRPC पोर्ट आहे आणि उपयुक्त नंतरची चाचणी प्रस्थापित सॉकेट आहे। फक्त एका दिशेने असलेला मार्ग राउट केलेल्या VPN वर सामान्य बिघाड आहे, आणि परतीचा मार्ग पुढच्या मार्गाइतकाच महत्त्वाचा आहे।

ip route get 10.70.0.2
nc -vz 10.70.0.2 33911
ss -tnp dst 10.70.0.2

राउट केलेला TUN इंटरफेस रोबोटचा Ethernet विभाग न वाढवता ही IP संभाषणे वाहून नेतो, जे सहसा दूरस्थ ऑपरेटरला हवे असते। जर स्टॅकमधले काही त्याऐवजी ब्रॉडकास्ट किंवा multicast वर अवलंबून असेल, तर ती आवश्यकता स्वतंत्रपणे मूल्यांकन केली पाहिजे; एक साधन समाधानासाठी बोगदा TAP मध्ये बदलल्यास प्रत्येक सहभागीसाठी नेटवर्क रुंदावते।

मार्ग किंवा परतीचा मार्ग नसेल तर इथे थांबा। स्वतःच्या होस्टवर उत्तर देणारा पण वर्कस्टेशनवरून पोहोचता न येणारा प्रकाशक राउटिंग समस्या घेऊन आहे, ROS समस्या नाही।

पायरी 4: पीअर संभाषण अनुमत करा आणि एक विषय पहा

वाटाघाटी झालेल्या संभाषणाला आवश्यक असलेले पोर्टच खोला, आणि प्रत्येक नियम घोषित सहभागींपुरता मर्यादित करा। master चा श्रोता विषय पेलोडसाठी रिले नाही, त्यामुळे फक्त त्याला अनुमती दिल्यास प्रकाशकाचा एंडपॉइंट बंदच राहतो। ROS श्रोत्यांना सार्वजनिक इंटरनेटवर उघड करण्याऐवजी खाजगी VPN सीमेवर ठेवा।

rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker

खऱ्या प्रकाशकाकडून खऱ्या ग्राहकापर्यंत एक निरुपद्रवी विषय पहा आणि घोषित एंडपॉइंट व उत्तरेचा मार्ग दोन्ही पुष्टी करा। एक संदेश मार्ग चालतो हे सिद्ध करतो; स्थिर दर तो उघडाच राहतो हे सिद्ध करतो। अॅक्च्युएटर नियंत्रण आणि सुरक्षा तपासण्या या फक्त-नेटवर्क चाचणीबाहेर ठेवा, कारण चालणारा विषय चालणाऱ्या रोबोटचे प्रमाणपत्र नाही। तुम्ही पाहिलेली ROS आवृत्ती आणि एंडपॉइंटची जोडी नोंदवा, जेणेकरून पुढची व्यक्ती टोपोलॉजी बदल आणि रिग्रेशन वेगळे ओळखू शकेल।

घोषित URI ग्राहकाकडून पोहोचण्यायोग्य झाला, वाटाघाटी झालेला पोर्ट फक्त त्या पीअरसाठी उघडा आहे, एक घोषित विषय वाहत आहे, आणि दोन्ही होस्टसाठी वातावरण मूल्ये नोंदवली आहेत तेव्हा तपासणी सूची पूर्ण होते। जुने ROS 1 या क्षेत्रात दुरुस्त्या मिळवणार नाही, त्यामुळे नोंद हाच तो भाग आहे जो लोक बदलल्यानंतरही चालू राहतो।

संबंधित लेख