Twa ROS 2-knopen oan wjerskanten fan in VPN kinne elkoars ûnderwerpen listje en dochs gjin inkeld berjocht leverje. Ûntdekking en brûkersgegevens binne aparte útwikselings mei aparte paden, en in ûntdekkingsserver stjoert gjin lading troch. Ien kontrolearje en de oare oannimme is hoe't teams middleware ferwikselje wylst de tunnel de gegevens gewoanwei nea droech. De proseduere hjirûnder skiedt de twa resultaten foardat der wat ferwiksele wurdt.

Wat de ûntdekkingsserver echt ferfiert

Yn Fast DDS ferspriedt in Discovery Server ynformaasje oer einpunten: wa't publisearret, wa't abonnearret en hokker QoS elk ferwachtet. Sadree't peers fan elkoar witte, reizgje brûkersgegevens direkt tusken har yn ynstee fan troch dy server. De server berikke bewiist dat de bemiddeler fan kennismakingen antwurdet, net mear. In rûtearre VPN hat noch hieltyd in wurkjend paad yn beide rjochtingen nedich tusken de adressen dy't de peers oankundigje.

Dat ûnderskied ferklearret ek partiele mislearrings, wêrby't besteande peers gegevens útwikselje bliuwe wylst nije ûntdekking ophâldt te wurkjen. Behannelje dy as twa ûndersiken.

Lês de RMW dy't de knopen echt brûke

ROS 2 kin ferskate middleware lade, en in fariabele dy't yn jo shell eksportearre wurdt, berikt gjin prosessen dy't earne oars start binne. Freegje it draaiende systeem ynstee fan jo terminalhistoarje.

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

In net-ynstelde fariabele betsjut meastentiids de ynstalleare standert, dy't ferskille kin tusken masines yn itselde eksperimint. It rapport neamt ek de distribúsje en de brûkte middleware, fergelykje dy oan beide kanten fan de tunnel foardat jo oannimme dat se oerienkomme. De ROS-kommandorigel-demon bewarret steat yn 'e cache, start him dêrom opnij nei it feroarjen fan 'e omjouwing ynstee fan in ferâldere demon foar de âlde konfiguraasje antwurdzje te litten. Skriuw de distribúsje en RMW fan beide hosts yn 'e testnotysjes wylst de sesje iepen is.

Test ûntdekking en gegevens as twa resultaten

Kies in ûnskeadlik ûnderwerp en mjit kennismaking apart fan levering. It kommando info listet einpunten en QoS, wylst echo bewiist oft ien berjocht de keppeling echt oerstekt.

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

Dat einpunten yn 'e info-útfier ferskine is in ûntdekkingsresultaat. Dat in berjocht by de abonnee oankomt is in transportresultaat, en allinnich it twadde beproevet it paad dat de applikaasje nedich hat. As ûntdekking wurket en echo troch de tiid giet, ûndersykje dan de oankundige adressen en de weromrûte ynstee fan 'e ûntdekkingsstsjinst. Rin beide kommando's fan elke host, want in asymmetryske VPN-rûte iepenbieret him faak mar fan ien kant.

Feroarje ien ôfhinklikheid per kear

As it datapad mislearret, mije dan it feroarjen fan middleware, ûntdekkingsmodus en berjochtgrutte yn deselde sesje, om't dêrnei gjin resultaat taskreaun wurde kin. De Zenoh RMW is in legitime alternatyf, mar syn router wurdt noch in ôfhinklikheid dy't fia de tunnel berikber wêze moat.

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

Under dy RMW draacht de router ûntdekking yn 'e standert Jazzy-yndieling, en multicast-ûntdekking is dêr útskeakele, dus de ôfhinklikheid heart yn jo notysjes ynstee fan yn in oanname liend fan oare middleware. Hâld de wurklêst fêst wylst jo ien ynstelling feroarje, werhelje dan de echo-test en registrearje rjochting, berjochtsnelheid en keppelingsbetingsten. Rin de fergeliking twa kear om in echte ferbettering fan in gelokkich werferbinen te skieden. As in feroaring ûntdekking ferbetteret wylst levering itselde bliuwt, hawwe jo de kennismakingsstsjinst ferpleatst, net it datapad.

Relatearre artikelen