మీ వర్క్స్టేషన్ సొరంగం ద్వారా 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 సంభాషణలను మోసుకెళుతుంది, ఇది సాధారణంగా దూర ఆపరేటరు కోరుకునేది. స్టాక్లో ఏదైనా దానికి బదులుగా broadcast లేదా multicastపై ఆధారపడితే, ఆ అవసరం విడిగా మూల్యాంకనం చేయాలి; ఒక సాధనాన్ని సంతృప్తపరచడానికి సొరంగాన్ని TAPగా మార్చడం ప్రతి భాగస్వామికి నెట్వర్క్ను విస్తరిస్తుంది.

మార్గం లేదా తిరిగి వచ్చే మార్గం లేకపోతే ఇక్కడ ఆపండి. తన హోస్ట్లో సమాధానమిచ్చే కానీ వర్క్స్టేషన్ నుండి చేరుకోలేని ప్రచురణకర్తకు మార్గనిర్దేశన సమస్య ఉంది, ROS సమస్య కాదు.

దశ 4: సహచర సంభాషణను అనుమతించి ఒక అంశాన్ని గమనించండి

చర్చలు జరిపిన సంభాషణకు అవసరమైన పోర్టులనే తెరవండి, మరియు ప్రతి నియమాన్ని ప్రకటించిన భాగస్వాములకు పరిమితం చేయండి. master యొక్క శ్రోత అంశాల పేలోడ్కు రిలే కాదు, కాబట్టి దానికి మాత్రమే అనుమతి ఇస్తే ప్రచురణకర్త ముగింపు బిందువు మూసివేయబడి ఉంటుంది. ROS శ్రోతలను పబ్లిక్ ఇంటర్నెట్కు గురిచేయకుండా ప్రైవేట్ VPN సరిహద్దులో ఉంచండి.

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

నిజమైన ప్రచురణకర్త నుండి నిజమైన చందాదారు వరకు ఒక హానిచేయని అంశాన్ని గమనించి, ప్రకటించిన ముగింపు బిందువు మరియు సమాధాన మార్గం రెండింటినీ నిర్ధారించండి. ఒక సందేశం మార్గం పనిచేస్తుందని నిరూపిస్తుంది; స్థిరమైన రేటు అది తెరిచే ఉంటుందని నిరూపిస్తుంది. యాక్చుయేటర్ నియంత్రణ మరియు భద్రతా తనిఖీలను ఈ నెట్వర్క్ మాత్రమే పరీక్ష వెలుపల ఉంచండి, ఎందుకంటే పనిచేసే అంశం పనిచేసే రోబోట్కు ధృవపత్రం కాదు. మీరు గమనించిన ROS సంస్కరణ మరియు ముగింపు బిందువుల జోడీని నమోదు చేయండి, తద్వారా తదుపరి వ్యక్తి టోపాలజీ మార్పును తిరోగమనం నుండి వేరు చేయగలరు.

ప్రకటించిన URI చందాదారు నుండి చేరుకోగలిగేదిగా ఉన్నప్పుడు, చర్చలు జరిపిన పోర్టు ఆ సహచరుడికి మాత్రమే తెరిచి ఉన్నప్పుడు, ప్రకటించిన ఒక అంశం ప్రవహిస్తున్నప్పుడు, మరియు రెండు హోస్ట్లకు పర్యావరణ విలువలు నమోదు చేయబడినప్పుడు తనిఖీ జాబితా పూర్తవుతుంది. పాత ROS 1 ఈ రంగంలో సవరణలు పొందదు, కాబట్టి ప్రజలు మారిన తర్వాత కూడా పనిచేస్తూ ఉండే భాగం నమోదే.

సంబంధిత వ్యాసాలు