Är Aarbechtsstatioun erreecht de ROS 1-Master duerch den Tunnel an weist trotzdem eng eidel Lëscht vun Themen. Dëst Muster ass heefeg, well Masterregistréierung an Themtransport zwee verschidde Gespréich sinn, an nëmmen dat éischt geet duerch de Master. D’Checklëscht hei drënner geet dat zweet Gespréich duerch: den Endpunkt, deen e Verëffentlecher annoncéiert, d’Adress, déi en Abonnent muss kënne erreechen, an d’Erlaabnes, déi dem Paar erlaabt ze schwätzen. Alles hei betrëfft nëmmen den ale ROS 1, deem seng Noetic-Supportfenster am Mee 2025 opgehalen huet.

Schrëtt 1: beweist, datt d’Masterverbindung net d’Themverbindung ass

Fänkt domat un, ze trennen, wat funktionéiert, vun deem, wat net funktionéiert. En erfollegräichen rostopic list beweist, datt Är Shell de XMLRPC-Port vum Master erreecht an datt de Master Themen kennt; et seet näischt doriwwer, ob en Abonnent de Verëffentlecher erreeche kann. Déi dräi Kommandoen hei drënner maachen den Ënnerscheed sichtbar, an all si just liesend.

echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter

D’Ausgab vum rostopic info nennt d’Node-URI vum Verëffentlecher, also eng XMLRPC-Adress um Host vum Verëffentlecher. Dës Adress ass déi, déi Ären Abonnent als nächstes oprifft, also muss se vun iwwerall erreechbar sinn, wou den Abonnent leeft. Wann se op eng Schnëttstell weist, déi nëmmen am eegene LAN vum Roboter existéiert, geléngt d’Mastersich, an d’Daten komme ni un.

Schrëtt 2: liest den annoncéierten Endpunkt vum Node selwer

ROS 1 wielt seng annoncéiert Hostidentitéit aus ROS_IP oder ROS_HOSTNAME, wann eng dovun gesat ass, a fällt soss op d’Namensopléisung vum Host selwer zréck. Préift d’Ëmfeld vum Prozess, deen tatsächlech gestart gouf, well eng systemd-Eenheet, e Container oder en zweeten Terminal en anere Wäert droe kann wéi d’Shell, an där Ären Test funktionéiert huet.

echo "$ROS_IP" "$ROS_HOSTNAME"
rosnode info /talker
getent hosts robot-host

Eng Hostnumm-Annonce funktionéiert nëmme wann all Peer dësen Numm op déi virgesinn erreechbar Adress opléist. Wann dësen Numm nëmmen am eegene Netzwierk vum Roboter opgeléist gëtt, huet eng Aarbechtsstatioun op der anerer Säit vum Tunnel keng Méiglechkeet, en ze benotzen, an eng VPN, déi keen DNS-Suffix dréckt, mécht den Ënnerscheed nach méi schlëmm. ROS_IP op d’Tunneladress ze setzen ass déi méi kleng Ännerung, wann d’Topologie geroutet ass. Wat Dir och wielt, hält et fir béid Enden fest, well e Verëffentlecher an en Abonnent, déi sech iwwer d’Identitéit net eens sinn, verhandelen an dann net kënne verbannen.

Hält hei un, wann den annoncéierten URI eng Adress benotzt, déi keen Peer route kann. Keng Firewall-Aarbecht reparéiert en Numm, deen op déi falsch Schnëttstell opgeléist gëtt.

Schrëtt 3: maacht déi annoncéiert Adress opléisbar a geroutet

Mat der URI an der Hand test d’Erreechbarkeet vum Host vum Abonnent amplaz vum Roboter. Den TCPROS-Port gëtt wärend der Verhandlung gewielt, also ass den nëtzlechen fréien Test de XMLRPC-Port an den nëtzlechen spéiden Test dee opgebauten Socket. Eng Route, déi nëmmen an eng Richtung existéiert, ass e heefege Feeler op gerouteten VPNen, an de Réckwee zielt esou vill wéi de Wee no vir.

ip route get 10.70.0.2
nc -vz 10.70.0.2 33911
ss -tnp dst 10.70.0.2

Eng geroutet TUN-Schnëttstell dréit dës IP-Gespréicher, ouni den Ethernet-Segment vum Roboter auszebreeden, wat en Uwendungsbedreiwer aus der Ferne normalerweis wëllt. Wann eppes am Stack amplaz vum Broadcast oder Multicast ofhängeg ass, muss dës Ufuerderung separat bewäert ginn; den Tunnel an TAP ëmzewandelen, fir een eenzegt Geschier ze befriddigen, verbreet d’Netzwierk fir all Participanten.

Hält hei un, wann d’Route oder de Réckwee fehlt. E Verëffentlecher, deen op sengem eegene Host äntwert, awer vun der Aarbechtsstatioun net erreechbar ass, huet e Routingproblem, net e ROS-Problem.

Schrëtt 4: erlaabt d’Peer-Gespréich a beobacht eng Them

Maacht nëmmen déi Porten op, déi dat verhandelt Gespréich brauch, a begrenzt all Regel op déi erkläert Participanten. Den Nolauschterer vum Master ass keen Iwwerdroer fir Themennotzlaascht, also léisst d’Erlaabnes just dofir den Endpunkt vum Verëffentlecher zou. Hält d’ROS-Nolauschterer op der Grenz vun der privater VPN amplaz se dem ëffentlechen Internet auszesetzen.

rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker

Beobacht eng harmlos Them vum richtege Verëffentlecher bis zum richtege Abonnent a bestätegt souwuel den annoncéierten Endpunkt wéi och de Réckwee. Eng eenzeg Noriicht beweist, datt de Wee funktionéiert; eng stabil Taux beweist, datt en op bleift. Hält d’Aktuatorsteierung an d’Sécherheetsprüfungen aus dësem rengen Netzwierktest eraus, well eng funktionéierend Them keen funktionéierende Roboter zertifizéiert. Notéiert d’ROS-Versioun an d’Endpunktpaar, dat Dir observéiert hutt, sou datt déi nächst Persoun eng Topologieännerung vun enger Regressioun ka ënnerscheeden.

D’Checklëscht ass fäerdeg, wann den annoncéierten URI vum Abonnent erreechbar ass, de verhandelte Port nëmmen fir deen Peer op ass, eng erkläert Them fléisst, an d’Ëmfeldwäerter fir béid Hosten notéiert sinn. Den ale ROS 1 kritt keng Korrekturen an dësem Beräich, also ass d’Notiz deen Deel, deen no engem Wiessel vun de Leit weider funktionéiert.

Ähnlech Artikelen