Zwee ROS 2-Kniet op géigesäitege Säiten vun enger VPN kënnen d'Themae vum aneren oplëschten an trotzdem keen eenzegen Noriicht leweren. Entdecken a Benotzerdaten sinn getrennt Austausch mat getrennte Weeër, an en Entdeckungsserver leet keng Notzlaascht weider. Dat ee kontrolléieren an dat anert unhuelen ass wéi d'Ekippen dozou kommen, de Middleware auszetauschen, wärend den Tunnel d'Daten einfach niëmol gedroen huet. D'Prozedur hei drënner trennt déi zwou Resultater ier eppes ausgetauscht gëtt.

Wat den Entdeckungsserver wierklech dréit

An Fast DDS verdeelt en Discovery Server Informatiounen iwwer Endpunkten: wien publizéiert, wien abonnéiert a wéi eng QoS jiddereen erwaart. Soubal d'Peeren sech kennen, reesen d'Benotzerdaten direkt tëschent hinnen amplaz duerch dee Server. De Server z'erreechen beweist datt de Vermëttler vun den Viruwendungen äntwert, an näischt méi. Eng geroutet VPN brauch nach ëmmer en funktionéierende Wee a béide Richtungen tëschent den Adressen, déi d'Peeren annoncéieren.

Dee Ënnerscheed erkläert och deelweis Ausfäll, wou bestoend Peeren Daten ausgetauschen weider, wärend nei Entdecken ophält ze funktionéieren. Behandelt déi als zwou getrennte Enquêten.

Liest d'RMW déi d'Kniet wierklech benotzen

ROS 2 kann ënnerschiddlech Middleware lueden, an eng Variabel, déi an Ärer Shell exportéiert gëtt, erreecht keng Prozesser, déi soss anzwuersch gestart goufen. Frot d'System dat leeft amplaz vun Ärer Terminalhistorie.

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

Eng net gesat Variabel bedeit normalerweis den installéierten Default, dee sech tëschent Maschinnen am selwechten Experiment ënnerscheede kann. De Rapport nennt och d'Distributioun an de Middleware, deen benotzt gëtt, also vergläicht se op béide Säiten vum Tunnel ier Dir unhëlt datt se iwwerenee stëmmen. Den Demone vun der ROS-Kommandozeil cachet de State, also start en nei nodeems Dir d'Ëmwelt geännert hutt, amplaz en ale Demone fir déi al Konfiguratioun äntweren ze loossen. Schreift d'Distributioun an d'RMW vun béide Wirten an d'Testnotizen, wärend d'Sessioun op ass.

Test d'Entdecken an d'Date wéi zwou Resultater

Wielt en harmlost Theema a messt d'Viruwendung getrennt vun der Liwwerung. D'Kommando info lëscht Endpunkten a QoS op, wärend echo beweist ob eng Noriicht wierklech d'Verbindung iwwerquiert.

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

Datt Endpunkten an der info-Ausgab erschéngen ass en Entdeckungsresultat. Datt eng Noriicht beim Abonné ukommt ass en Transportresultat, an nëmmen déi zweet probéiert de Wee deen d'Applikatioun brauch. Wann d'Entdecken funktionéiert an echo an d'Zäit leeft, iwwerpréift déi annoncéiert Adressen an de Retourwee amplaz vum Entdeckungsservice. Fuert béid Kommandos vun all Wiert aus, well eng asymmetresch VPN-Route sech dacks nëmmen vun enger Säit weist.

Ännert eng Ofhängegkeet op eemol

Wann den Datespad feelt, vermeit Middleware, Entdeckungsmodus a Noriichtgréisst an der selwechter Sessioun ze änneren, well duerno kee Resultat méi kann zougeschriwwe ginn. Den Zenoh RMW ass eng legitim Alternativ, awer säin Router gëtt eng aner Ofhängegkeet, déi duerch den Tunnel erreechbar muss sinn.

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

Ënner deem RMW dréit de Router d'Entdecken an der Standard-Jazzy-Uerdnung, an do ass Multicast-Entdecken ausgeschalt, dofir gehéiert d'Ofhängegkeet an Är Notizen amplaz an eng Annahm, déi vun anerer Middleware geléint ass. Halt d'Aarbechtslaascht fest, wärend Dir eng Astellung ännert, widderholl dann den echo-Test a notéiert Richtung, Noriichtrat an Verbindungsbedéngungen. Fuert de Verglach zweemol aus fir eng richteg Verbesserung vun enger glécklecher Reconnectioun ze trennen. Wann eng Ännerung d'Entdecken verbessert wärend d'Liwwerung d'selwecht bleift, hutt Dir den Introduktiounsservice verréckelt, net den Datespad.

Ähnlech Artikelen