ROS 2 fuq VPN: l-iskoperta mhix il-mogħdija tad-data
Li l-iskoperta ssib il-pari ma jipprovax li l-payloads jaslu. Iċċekkja l-RMW, il-punti tat-tarf imħabbra u xogħol wieħed qabel ma tibdel DDS jew iżżid router.
Żewġ nodi ROS 2 fuq trufijiet opposti ta' VPN jistgħu jelenkaw it-temi ta' xulxin u xorta waħda ma jwasslu ebda messaġġ wieħed. L-iskoperta u d-data tal-utent huma skambji separati b'mogħdijiet separati, u server tal-iskoperta ma jgħaddix il-payloads. Li tiċċekkja wieħed u tassumi l-ieħor huwa kif it-timijiet jispiċċaw jissostitwixxu l-middleware meta t-tunnel sempliċement qatt ma ġarr id-data. Il-proċedura hawn taħt tissepara ż-żewġ riżultati qabel ma jinbidel xejn.
X'inġorr tassew is-server tal-iskoperta
Fi Fast DDS, Discovery Server iqassam informazzjoni dwar il-punti tat-tarf: min jippubblika, min jabbona u liema QoS jistenna kull wieħed. Ladarba l-pari jafu lil xulxin, id-data tal-utent tivvjaġġa direttament bejniethom minflok ma tgħaddi minn dak is-server. Li tasal għas-server jipprova li l-intermedjarju tal-preżentazzjonijiet iwieġeb, u xejn aktar. VPN irroutjat għad għandu bżonn mogħdija li taħdem fiż-żewġ direzzjonijiet bejn l-indirizzi li jħabbru l-pari.
Dik id-distinzjoni tispjega wkoll fallimenti parzjali, fejn il-pari eżistenti jkomplu jiskambjaw data waqt li l-iskoperta l-ġdida tieqaf taħdem. Ittrattahom bħala żewġ investigazzjonijiet.
Aqra l-RMW li n-nodi tassew jużaw
ROS 2 jista' jgħabbi middleware differenti, u varjabbli esportat fil-shell tiegħek ma jasalx għal proċessi li nbdew xi mkien ieħor. Staqsi lis-sistema li qed taħdem minflok l-istorja tat-terminal tiegħek.
printenv RMW_IMPLEMENTATION
ros2 doctor --report | head -n 20Varjabbli mhux stabbilit normalment ifisser id-default installat, li jista' jvarja bejn magni fl-istess esperiment. Ir-rapport isemmi wkoll id-distribuzzjoni u l-middleware li qed jintużaw, għalhekk qabbelhom fuq iż-żewġ naħat tat-tunnel qabel ma tassumi li jaqblu. Id-daemon tal-linja tal-kmand ROS jaħżen l-istat fil-cache, għalhekk erġa' ibdah wara li tbiddel l-ambjent minflok ma tħalli daemon skadut iwieġeb għall-konfigurazzjoni l-qadima. Ikteb id-distribuzzjoni u l-RMW taż-żewġ hosts fin-noti tat-test sakemm is-sessjoni tkun miftuħa.
Ittestja l-iskoperta u d-data bħala żewġ riżultati
Agħżel tema li ma tagħmilx ħsara u kejjel il-preżentazzjoni separatament mill-kunsinna. Il-kmand info jelenka l-punti tat-tarf u l-QoS, filwaqt li echo jipprova jekk messaġġ wieħed jaqsamx verament il-link.
ros2 topic info /chatter --verbose
ros2 topic echo /chatter --onceId-dehra tal-punti tat-tarf fl-output ta' info hija riżultat tal-iskoperta. Il-wasla ta' messaġġ għand l-abbonat hija riżultat tat-trasport, u t-tieni wieħed biss jeżerċita l-mogħdija li l-applikazzjoni teħtieġ. Meta l-iskoperta taħdem u echo jiskadi, eżamina l-indirizzi mħabbra u r-rotta tar-ritorn minflok is-servizz tal-iskoperta. Mexxi ż-żewġ kmandi minn kull host, għax rotta VPN asimmetrika spiss turi ruħha biss minn naħa waħda.
Biddel dipendenza waħda kull darba
Meta l-mogħdija tad-data tfalli, evita li tbiddel middleware, mod tal-iskoperta u daqs tal-messaġġ fl-istess sessjoni, għax wara ebda riżultat ma jista' jiġi attribwit. L-RMW Zenoh huwa alternattiva leġittima, imma r-router tiegħu jsir dipendenza oħra li trid tkun aċċessibbli mit-tunnel.
export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohdTaħt dak l-RMW ir-router iġorr l-iskoperta fl-arranġament default ta' Jazzy, u l-iskoperta multicast hija diżattivata hemmhekk, għalhekk id-dipendenza tappartjeni lin-noti tiegħek u mhux għal suppożizzjoni mislufa minn middleware ieħor. Żomm ix-xogħol fiss waqt li tbiddel setting wieħed, imbagħad erġa' għamel it-test echo u rreġistra d-direzzjoni, ir-rata tal-messaġġi u l-kundizzjonijiet tal-link. Mexxi l-paragun darbtejn biex tissepara titjib reali minn rikonnessjoni xortik tajba. Jekk bidla ttejjeb l-iskoperta waqt li l-kunsinna tibqa' l-istess, iktar ċaqlaqt is-servizz tal-preżentazzjoni, mhux il-mogħdija tad-data.