Témy ROS 1 cez VPN: nasledujte ohlásený koncový bod
Registrácia v masteri ROS 1 neprenáša údaje tém. Prečítajte si ohlásené URI uzla, urobte tú adresu smerovateľnou a potom povoľte port vydavateľa.
Vaša pracovná stanica dosiahne master ROS 1 cez tunel a napriek tomu zobrazuje prázdny zoznam tém. Tento vzor je bežný, pretože registrácia v masteri a prenos tém sú dve rôzne konverzácie, a iba prvá prechádza masterom. Kontrolný zoznam nižšie prechádza druhou konverzáciou: koncový bod, ktorý vydavateľ ohlasuje, adresa, na ktorú sa musí odberateľ dostať, a oprávnenie, ktoré dvojici umožní hovoriť. Všetko tu sa týka len staršieho ROS 1, ktorého okno podpory Noetic sa skončilo v máji 2025.
Krok 1: dokážte, že spojenie s masterom nie je spojenie s témou
Začnite tým, že oddelíte, čo funguje, od toho, čo nefunguje. Úspešný rostopic list dokazuje, že váš shell dosiahne port XMLRPC mastera a že master o témach vie; nič nehovorí o tom, či sa odberateľ dostane k vydavateľovi. Tri príkazy nižšie tento rozdiel zviditeľňujú a všetky sú iba na čítanie.
echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter
Výstup rostopic info uvádza URI uzla vydavateľa, čo je adresa XMLRPC na hostiteľovi vydavateľa. Túto adresu bude váš odberateľ volať ako ďalšiu, takže musí byť dostupná odkiaľkoľvek, kde odberateľ beží. Ak ukazuje na rozhranie, ktoré existuje len v LAN samotného robota, vyhľadanie v masteri uspeje a údaje nikdy nedorazia.
Krok 2: prečítajte si ohlásený koncový bod zo samotného uzla
ROS 1 volí svoju ohlásenú identitu hostiteľa z ROS_IP alebo ROS_HOSTNAME, keď je jeden z nich nastavený, a inak sa vracia k vlastnému prekladu mien hostiteľa. Prezrite si prostredie procesu, ktorý bol skutočne spustený, pretože jednotka systemd, kontajner alebo druhý terminál môžu niesť inú hodnotu než shell, v ktorom váš test fungoval.
echo "$ROS_IP" "$ROS_HOSTNAME"
rosnode info /talker
getent hosts robot-host
Ohlásenie názvu hostiteľa funguje iba vtedy, keď každý partner preloží tento názov na zamýšľanú dostupnú adresu. Ak sa tento názov prekladá len vnútri vlastnej siete robota, pracovná stanica na druhej strane tunela ho nemôže použiť, a VPN, ktorá neposiela žiadnu príponu DNS, nezrovnalosť ešte zhoršuje. Nastavenie ROS_IP na adresu tunela je menšia zmena, keď je topológia smerovaná. Čokoľvek si vyberiete, zaznamenajte to pre oba konce, pretože vydavateľ a odberateľ, ktorí sa nezhodnú na identite, budú vyjednávať a potom sa nepripoja.
Zastavte sa tu, ak ohlásené URI používa adresu, na ktorú žiadny partner nedokáže smerovať. Žiadna práca s firewallom neopraví názov, ktorý sa prekladá na nesprávne rozhranie.
Krok 3: urobte ohlásenú adresu preložiteľnou a smerovanou
S URI v ruke testujte dostupnosť z hostiteľa odberateľa, nie z robota. Port TCPROS sa volí počas vyjednávania, takže užitočný skorý test je port XMLRPC a užitočný neskorý test je nadviazaný socket. Trasa, ktorá existuje len jedným smerom, je častá porucha na smerovaných VPN a spiatočná cesta je rovnako dôležitá ako cesta tam.
ip route get 10.70.0.2
nc -vz 10.70.0.2 33911
ss -tnp dst 10.70.0.2
Smerované rozhranie TUN prenáša tieto IP konverzácie bez rozšírenia segmentu Ethernet robota, čo zvyčajne chce vzdialený operátor. Ak niečo v zásobníku závisí namiesto toho od broadcastu alebo multicastu, táto požiadavka sa musí posúdiť samostatne; premena tunela na TAP, aby sa vyhovelo jednému nástroju, rozširuje sieť pre každého účastníka.
Zastavte sa tu, ak chýba trasa alebo spiatočná cesta. Vydavateľ, ktorý odpovedá na svojom hostiteľovi, ale nie je dosiahnuteľný z pracovnej stanice, má problém so smerovaním, nie problém s ROS.
Krok 4: povoľte konverzáciu partnerov a sledujte jednu tému
Otvorte iba porty, ktoré vyjednaná konverzácia potrebuje, a každé pravidlo obmedzte na deklarovaných účastníkov. Poslucháč mastera nie je preposielač obsahu tém, takže povolenie iba jeho necháva koncový bod vydavateľa zatvorený. Držte poslucháčov ROS na hranici súkromnej VPN, namiesto toho, aby ste ich vystavili verejnému internetu.
rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker
Sledujte jednu neškodnú tému od skutočného vydavateľa k skutočnému odberateľovi a potvrďte ohlásený koncový bod aj spiatočnú cestu. Jedna správa dokazuje, že cesta funguje; stabilná frekvencia dokazuje, že zostáva otvorená. Riadenie akčných členov a bezpečnostné kontroly držte mimo tohto testu týkajúceho sa len siete, pretože fungujúca téma nepotvrdzuje fungujúceho robota. Zaznamenajte verziu ROS a dvojicu koncových bodov, ktorú ste pozorovali, aby ďalší človek mohol rozlíšiť zmenu topológie od regresie.
Kontrolný zoznam je hotový, keď je ohlásené URI dostupné z odberateľa, vyjednaný port je otvorený len pre tohto partnera, jedna deklarovaná téma prúdi a hodnoty prostredia sú zapísané pre oboch hostiteľov. Starší ROS 1 nedostane v tejto oblasti opravy, takže záznam je tá časť, ktorá pokračuje v práci po výmene ľudí.