तपाईंको वर्कस्टेशन सुरुङबाट 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 ले यो क्षेत्रमा सुधार पाउनेछैन, त्यसैले अभिलेख नै त्यो भाग हो जो मानिसहरू फेरिएपछि पनि काम गरिरहन्छ।

सम्बन्धित लेखहरू