Teme ROS 1 prek VPN: sledite objavljeni končni točki
Registracija v masterju ROS 1 ne prenaša podatkov tem. Preberite objavljeni URI vozlišča, naredite ta naslov usmerljiv in nato dovolite vrata izdajatelja.
Vaša delovna postaja doseže master ROS 1 skozi tunel in vseeno prikazuje prazen seznam tem. Ta vzorec je pogost, ker sta registracija v masterju in prenos tem dva različna pogovora, in le prvi gre skozi master. Kontrolni seznam spodaj prehodi drugi pogovor: končno točko, ki jo izdajatelj objavi, naslov, do katerega mora naročnik priti, in dovoljenje, ki paru omogoči pogovor. Vse tukaj velja le za stari ROS 1, katerega okno podpore za Noetic se je končalo maja 2025.
Korak 1: dokažite, da povezava z masterjem ni povezava s temo
Začnite z ločevanjem tega, kar deluje, od tega, kar ne deluje. Uspešen rostopic list dokaže, da vaša lupina doseže vrata XMLRPC masterja in da master pozna teme; ne pove ničesar o tem, ali lahko naročnik doseže izdajatelja. Trije ukazi spodaj naredijo to razliko vidno, in vsi so samo za branje.
echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter
Izhod rostopic info navede URI vozlišča izdajatelja, to je naslov XMLRPC na gostitelju izdajatelja. Ta naslov bo vaš naročnik poklical naslednji, zato mora biti dosegljiv od koder koli naročnik teče. Če kaže na vmesnik, ki obstaja le v LAN samem robota, iskanje po masterju uspe in podatki nikoli ne prispejo.
Korak 2: preberite objavljeno končno točko iz samega vozlišča
ROS 1 izbere svojo objavljeno identiteto gostitelja iz ROS_IP ali ROS_HOSTNAME, ko je eden od njiju nastavljen, sicer se vrne na lastno razreševanje imen gostitelja. Preglejte okolje procesa, ki je bil dejansko zagnan, ker lahko enota systemd, vsebnik ali drug terminal nosi drugačno vrednost kot lupina, v kateri je vaš test deloval.
echo "$ROS_IP" "$ROS_HOSTNAME"
rosnode info /talker
getent hosts robot-host
Objava imena gostitelja deluje le, če vsak partner to ime razreši na predvideni dosegljivi naslov. Če se to ime razrešuje le znotraj lastnega omrežja robota, delovna postaja na drugi strani tunela nima načina, da bi ga uporabila, in VPN, ki ne potisne nobene pripone DNS, neskladje še poslabša. Nastavitev ROS_IP na naslov tunela je manjša sprememba, ko je topologija usmerjena. Karkoli izberete, zapišite to za oba konca, ker se bosta izdajatelj in naročnik, ki se ne strinjata glede identitete, pogajala in se nato ne bosta mogla povezati.
Ustavite se tukaj, če objavljeni URI uporablja naslov, do katerega noben partner ne more usmerjati. Nobeno delo s požarnim zidom ne popravi imena, ki se razreši na napačen vmesnik.
Korak 3: naredite objavljeni naslov razrešljiv in usmerjen
Z URIjem v roki preizkusite dosegljivost z gostitelja naročnika in ne z robota. Vrata TCPROS se izberejo med pogajanji, zato je koristen zgodnji preizkus vrata XMLRPC, koristen poznejši preizkus pa vzpostavljena vtičnica. Pot, ki obstaja le v eno smer, je pogosta okvara na usmerjenih VPN, in povratna pot šteje prav toliko kot pot naprej.
ip route get 10.70.0.2
nc -vz 10.70.0.2 33911
ss -tnp dst 10.70.0.2
Usmerjen vmesnik TUN prenaša te pogovore IP brez razširitve segmenta Ethernet robota, kar običajno želi oddaljeni operater. Če je kaj v skladu namesto tega odvisno od oddajanja ali multicast, je treba to zahtevo oceniti ločeno; pretvorba tunela v TAP, da bi zadovoljili eno orodje, razširi omrežje za vsakega udeleženca.
Ustavite se tukaj, če manjka pot ali povratna pot. Izdajatelj, ki odgovarja na svojem gostitelju, a ni dosegljiv z delovne postaje, ima težavo z usmerjanjem, ne težave z ROS.
Korak 4: dovolite pogovor partnerjev in opazujte eno temo
Odprite le vrata, ki jih pogajani pogovor potrebuje, in vsako pravilo omejite na objavljene udeležence. Poslušalec masterja ni posredovalnik vsebine tem, zato dovoljenje samo zanj pusti končno točko izdajatelja zaprto. Poslušalce ROS držite na meji zasebnega VPN, namesto da jih izpostavite javnemu internetu.
rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker
Opazujte eno neškodljivo temo od resničnega izdajatelja do resničnega naročnika in potrdite objavljeno končno točko in povratno pot. Eno sporočilo dokaže, da pot deluje; stabilna frekvenca dokaže, da ostane odprta. Upravljanje izvršilnih naprav in varnostne preverbe držite zunaj tega preizkusa, ki se tiče le omrežja, ker delujoča tema ne potrdi delujočega robota. Zapišite različico ROS in opaženi par končnih točk, da bo naslednja oseba lahko ločila spremembo topologije od regresije.
Kontrolni seznam je končan, ko je objavljeni URI dosegljiv z naročnika, pogajana vrata so odprta le za tega partnerja, ena objavljena tema teče in vrednosti okolja so zapisane za oba gostitelja. Stari ROS 1 v tem območju ne bo prejel popravkov, zato je zapis tisti del, ki deluje naprej po menjavi ljudi.