Du ROS 2-nodoj ĉe kontraŭaj finoj de VPN povas listigi la temojn de la alia kaj tamen malsukcesi transdoni eĉ unu mesaĝon. Malkovro kaj uzantodatenoj estas apartaj interŝanĝoj kun apartaj vojoj, kaj malkovra servilo ne plusendas utilaĵojn. Kontroli unu kaj supozi la alian estas kiel teamoj finas anstataŭigante la mezan programaron kiam la tunelo simple neniam portis la datenojn. La jena proceduro apartigas la du rezultojn antaŭ ol io estas anstataŭigita.

Kion la malkovra servilo vere portas

En Fast DDS Discovery Server disdonas informojn pri finpunktoj: kiu publikigas, kiu abonas kaj kian QoS ĉiu atendas. Post kiam kunuloj konas unu la alian, uzantodatenoj vojaĝas rekte inter ili anstataŭ tra tiu servilo. Atingi la servilon pruvas, ke la peranto de konatiĝoj respondas, kaj nenion pli. Enkursigita VPN ankoraŭ bezonas funkcian vojon en ambaŭ direktoj inter la adresoj, kiujn la kunuloj anoncas.

Tiu distingo ankaŭ klarigas partajn fiaskojn, kie ekzistantaj kunuloj daŭre interŝanĝas datenojn dum nova malkovro ĉesas funkcii. Traktu ilin kiel du apartajn esplorojn.

Legu la RMW, kiun la nodoj vere uzas

ROS 2 povas ŝargi diversajn mezan programarojn, kaj variablo eksportita en via ŝelo ne atingas procezojn lanĉitajn aliloke. Demandu la kurantan sistemon anstataŭ vian terminalan historion.

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

Neagordita variablo kutime signifas la instalitan defaŭlton, kiu povas malsami inter maŝinoj en la sama eksperimento. La raporto ankaŭ nomas la distribuon kaj la uzatan mezan programaron, do komparu ilin ĉe ambaŭ flankoj de la tunelo antaŭ ol supozi, ke ili kongruas. La ROS-komandlinia demono kaŝmemorigas staton, do restartigu ĝin post ŝanĝo de la medio anstataŭ lasi malnovan demonon respondi por la malnova agordo. Notu la distribuon kaj RMW de ambaŭ gastigantoj en la testnotojn dum la sesio estas malfermita.

Testu malkovron kaj datenojn kiel du rezultojn

Elektu sendanĝeran temon kaj mezuru konatiĝon aparte de transdono. La komando info listigas finpunktojn kaj QoS, dum echo pruvas, ĉu unu mesaĝo efektive transiras la ligon.

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

La apero de finpunktoj en la eligo de info estas malkovra rezulto. La alveno de mesaĝo ĉe la abonanto estas transporta rezulto, kaj nur la dua ekzercas la vojon, kiun la aplikaĵo bezonas. Kiam malkovro funkcias kaj echo tempas, ekzamenu la anoncitajn adresojn kaj la revenan vojon anstataŭ la malkovran servon. Rulu ambaŭ komandojn de ĉiu gastiganto, ĉar nesimetria VPN-vojo ofte malkaŝiĝas nur de unu flanko.

Ŝanĝu unu dependaĵon samtempe

Kiam la datvojo fiaskas, evitu ŝanĝi mezan programaron, malkovran reĝimon kaj mesaĝgrandon en la sama sesio, ĉar poste neniu rezulto povas esti atribuita. La Zenoh RMW estas laŭleĝa alternativo, sed ĝia kurserigilo fariĝas alia dependaĵo, kiu devas esti atingebla tra la tunelo.

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

Sub tiu RMW la kurserigilo portas malkovron en la defaŭlta Jazzy-aranĝo, kaj multdissenda malkovro estas malŝaltita tie, do la dependaĵo apartenas al viaj notoj anstataŭ al supozo pruntita de alia meza programaro. Tenu la laborŝarĝon fiksa dum vi ŝanĝas unu agordon, poste ripetu la echo-teston kaj registru direkton, mesaĝrapidecon kaj ligkondiĉojn. Ripetu la komparon dufoje por apartigi realan plibonigon de bonŝanca rekonekto. Se ŝanĝo plibonigas malkovron dum transdono restas la sama, vi movis la konatiĝservon, ne la datvojon.

Rilataj artikoloj