VPN యొక్క వ్యతిరేక చివరల్లో ఉన్న రెండు ROS 2 నోడ్లు ఒకదానికొకటి అంశాలను జాబితా చేయగలవు మరియు అయినప్పటికీ ఒక్క సందేశాన్ని కూడా అందించలేవు. ఆవిష్కరణ మరియు వినియోగదారు డేటా వేర్వేరు మార్గాలతో వేర్వేరు మార్పిడులు, మరియు ఆవిష్కరణ సర్వర్ పేలోడ్లను రిలే చేయదు. ఒకదాన్ని తనిఖీ చేసి మరొకటి ఊహించడం వల్లనే, టన్నెల్ డేటాను ఎప్పుడూ తీసుకెళ్లనప్పుడు బృందాలు మిడిల్వేర్ను మార్చడం ప్రారంభిస్తాయి. క్రింది విధానం ఏదైనా మార్చడానికి ముందు రెండు ఫలితాలను వేరు చేస్తుంది.

ఆవిష్కరణ సర్వర్ నిజంగా ఏమి మోస్తుంది

Fast DDSలో Discovery Server ముగింపు పాయింట్ల గురించి సమాచారాన్ని పంపిణీ చేస్తుంది: ఎవరు ప్రచురిస్తారు, ఎవరు సభ్యత్వం తీసుకుంటారు మరియు ప్రతి ఒక్కరు ఏ QoS ఆశిస్తారు. తోటివారు ఒకరినొకరు తెలుసుకున్న తర్వాత, వినియోగదారు డేటా ఆ సర్వర్ ద్వారా కాకుండా నేరుగా వారి మధ్య ప్రయాణిస్తుంది. సర్వర్ను చేరుకోవడం పరిచయాల బ్రోకర్ ప్రతిస్పందిస్తుందని మాత్రమే నిరూపిస్తుంది. రూట్ చేసిన VPN ఇప్పటికీ తోటివారు ప్రకటించే చిరునామాల మధ్య రెండు దిశలలో పనిచేసే మార్గాన్ని కోరుతుంది.

ఈ భేదం పాక్షిక వైఫల్యాలను కూడా వివరిస్తుంది, ఇక్కడ ఇప్పటికే ఉన్న తోటివారు డేటాన్ని మార్పిడి చేసుకుంటూనే ఉంటారు కానీ కొత్త ఆవిష్కరణ పనిచేయడం ఆగిపోతుంది. వాటిని రెండు ప్రత్యేక పరిశోధనలుగా పరిగణించండి.

నోడ్లు నిజంగా ఉపయోగించే RMWను చదవండి

ROS 2 వివిధ మిడిల్వేర్లను లోడ్ చేయగలదు, మరియు మీ షెల్లో ఎగుమతి చేసిన వేరియబుల్ మరెక్కడో ప్రారంభించిన ప్రక్రియలను చేరుకోదు. మీ టెర్మినల్ చరిత్రకు బదులుగా నడుస్తున్న సిస్టమ్ను అడగండి.

printenv RMW_IMPLEMENTATION
ros2 doctor --report | head -n 20

సెట్ చేయని వేరియబుల్ సాధారణంగా ఇన్స్టాల్ చేసిన డిఫాల్ట్ను సూచిస్తుంది, అది ఒకే ప్రయోగంలో యంత్రాల మధ్య భిన్నంగా ఉండవచ్చు. నివేదిక ఉపయోగించిన పంపిణీ మరియు మిడిల్వేర్ను కూడా పేర్కొంటుంది, కాబట్టి అవి సరిపోతాయని ఊహించే ముందు టన్నెల్ రెండు వైపులా వాటిని పోల్చండి. ROS కమాండ్-లైన్ డీమన్ స్థితిని కాష్లో నిల్వ చేస్తుంది, కాబట్టి పర్యావరణాన్ని మార్చిన తర్వాత దాన్ని పునఃప్రారంభించండి, పాత కాన్ఫిగరేషన్ కోసం పాత డీమన్ సమాధానం ఇవ్వనివ్వండి. సెషన్ తెరిచి ఉన్నప్పుడు రెండు హోస్ట్ల పంపిణీ మరియు RMWను పరీక్ష నోట్లలో రాయండి.

ఆవిష్కరణను మరియు డేటాను రెండు ఫలితాలుగా పరీక్షించండి

హానికరం కాని అంశాన్ని ఎంచుకోండి మరియు పరిచయాన్ని డెలివరీ నుండి విడిగా కొలవండి. info ఆదేశం ముగింపు పాయింట్లు మరియు QoSను జాబితా చేస్తుంది, echo ఒక సందేశం నిజంగా లింక్ను దాటుతుందో లేదో నిరూపిస్తుంది.

ros2 topic info /chatter --verbose
ros2 topic echo /chatter --once

info అవుట్పుట్లో ముగింపు పాయింట్లు కనిపించడం ఆవిష్కరణ ఫలితం. సందేశం చందాదారుకు చేరుకోవడం రవాణా ఫలితం, మరియు రెండవది మాత్రమే అప్లికేషన్కు అవసరమైన మార్గాన్ని పరీక్షిస్తుంది. ఆవిష్కరణ పనిచేసి echo సమయం ముగిసినప్పుడు, ఆవిష్కరణ సేవకు బదులుగా ప్రకటించిన చిరునామాలు మరియు తిరిగి వచ్చే మార్గాన్ని పరిశీలించండి. ప్రతి హోస్ట్ నుండి రెండు ఆదేశాలను అమలు చేయండి, ఎందుకంటే అసమాన VPN మార్గం తరచుగా ఒక వైపు నుండి మాత్రమే బయటపడుతుంది.

ఒకసారికి ఒక ఆధారపడటాన్ని మార్చండి

డేటా మార్గం విఫలమైనప్పుడు, అదే సెషన్లో మిడిల్వేర్, ఆవిష్కరణ మోడ్ మరియు సందేశ పరిమాణాన్ని మార్చడాన్ని నివారించండి, ఎందుకంటే తర్వాత ఏ ఫలితాన్ని ఆపాదించలేము. Zenoh RMW చట్టబద్ధమైన ప్రత్యామ్నాయం, కానీ దాని రౌటర్ టన్నెల్ ద్వారా చేరుకోగలిగే మరో ఆధారపడటం అవుతుంది.

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

ఆ RMW కింద రౌటర్ Jazzy యొక్క డిఫాల్ట్ అమరికలో ఆవిష్కరణను మోస్తుంది, అక్కడ మల్టీకాస్ట్ ఆవిష్కరణ నిలిపివేయబడింది, కాబట్టి ఈ ఆధారపడటం మరొక మిడిల్వేర్ నుండి అరువు తెచ్చుకున్న ఊహలో కాదు, మీ నోట్లలో ఉండాలి. ఒక సెట్టింగ్ను మార్చేటప్పుడు వర్క్లోడ్ను స్థిరంగా ఉంచండి, తర్వాత echo పరీక్షను పునరావృతం చేసి దిశ, సందేశ రేటు మరియు లింక్ పరిస్థితులను నమోదు చేయండి. నిజమైన మెరుగుదలను అదృష్ట పునఃకనెక్షన్ నుండి వేరు చేయడానికి పోలికను రెండుసార్లు అమలు చేయండి. ఒక మార్పు ఆవిష్కరణను మెరుగుపరిచి డెలివరీ అలాగే ఉంటే, మీరు పరిచయ సేవను కదిలించారు, డేటా మార్గాన్ని కాదు.

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