Mae eich gweithfan yn cyrraedd master ROS 1 dros y twnnel ac yn dal i ddangos rhestr bynciau wag. Mae’r patrwm hwn yn gyffredin oherwydd bod cofrestriad master a chludo pynciau yn ddwy sgwrs wahanol, a dim ond yr un gyntaf sy’n mynd trwy’r master. Mae’r rhestr wirio isod yn cerdded yr ail sgwrs: y pen draw y mae cyhoeddwr yn ei hysbysebu, y cyfeiriad y mae’n rhaid i danysgrifiwr allu cyrraedd, a’r caniatâd sy’n gadael i’r pâr siarad. Mae popeth yma’n ymwneud â ROS 1 hen yn unig, y daeth ei gyfnod cymorth Noetic i ben ym mis Mai 2025.

Cam 1: profwch nad y cysylltiad master yw’r cysylltiad pwnc

Dechreuwch drwy wahanu’r hyn sy’n gweithio oddi wrth yr hyn nad yw’n gweithio. Mae rostopic list llwyddiannus yn profi y gall eich shell gyrraedd porth XMLRPC y master ac fod y master yn gwybod am bynciau; nid yw’n dweud dim am a all tanysgrifiwr gyrraedd y cyhoeddwr. Mae’r tri gorchymyn isod yn gwneud y gwahaniaeth yn weladwy, ac maent i gyd yn ddarllen yn unig.

echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter

Mae allbwn rostopic info yn enwi URI nod y cyhoeddwr, sef cyfeiriad XMLRPC ar westeiwr y cyhoeddwr. Dyma’r cyfeiriad y bydd eich tanysgrifiwr yn ei alw nesaf, felly rhaid iddo fod yn gyrraeddadwy o ble bynnag y mae’r tanysgrifiwr yn rhedeg. Os yw’n pwyntio at ryngwyneb nad yw’n bodoli ond ar LAN y robot ei hun, bydd chwiliad y master yn llwyddiannus ac ni fydd y data byth yn cyrraedd.

Cam 2: darllenwch y pen draw a hysbysebir o’r nod ei hun

Mae ROS 1 yn dewis ei hunaniaeth westeiwr a hysbysebir o ROS_IP neu ROS_HOSTNAME pan fydd un yn cael ei osod, ac fel arall yn dychwelyd at ddatrysiad enw’r gwesteiwr ei hun. Archwiliwch amgylchedd y broses a lansiwyd mewn gwirionedd, oherwydd gall uned systemd, cynhwysydd neu ail derfynell gario gwerth gwahanol i’r shell lle bu eich prawf yn gweithio.

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

Nid yw hysbyseb enw gwesteiwr yn gweithio oni bai bod pob cymar yn datrys yr enw hwnnw i’r cyfeiriad cyrraeddadwy a fwriadwyd. Os nad yw’r enw hwnnw’n cael ei ddatrys ond o fewn rhwydwaith y robot ei hun, nid oes gan weithfan ar ochr arall y twnnel unrhyw ffordd i’w ddefnyddio, ac mae VPN nad yw’n gwthio unrhyw ôl-ddodiad DNS yn gwneud yr anghysondeb yn waeth. Gosod ROS_IP i gyfeiriad y twnnel yw’r newid llai pan fo’r topoleg yn cael ei llwybro. Pa un bynnag a ddewiswch, cofnodwch ef ar gyfer y ddau ben, oherwydd bydd cyhoeddwr a thanysgrifiwr sy’n anghytuno ar hunaniaeth yn trafod ac yna’n methu â chysylltu.

Stopiwch yma os yw’r URI a hysbysebir yn defnyddio cyfeiriad na all unrhyw gymar ei lwybro. Ni fydd unrhyw faint o waith wal dân yn trwsio enw sy’n datrys i’r rhyngwyneb anghywir.

Cam 3: gwnewch y cyfeiriad a hysbysebir yn ddatrysiadwy ac yn llwyadwy

Gyda’r URI yn eich llaw, profwch gyrraeddadwyedd o westeiwr y tanysgrifiwr yn hytrach nag o’r robot. Dewisir porth TCPROS yn ystod y trafodaethau, felly’r prawf cynnar defnyddiol yw porth XMLRPC a’r prawf diweddarach defnyddiol yw’r soced sefydledig. Mae llwybr sy’n bodoli mewn un cyfeiriad yn unig yn un fethiant cyffredin ar VPNau llwyadwy, ac mae’r llwybr dychwelyd yr un mor bwysig â’r llwybr ymlaen.

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

Mae rhyngwyneb TUN llwyadwy yn cludo’r sgyrsiau IP hyn heb ymestyn segment Ethernet y robot, sef fel arfer yr hyn y mae gweithredwr o bell yn ei eisiau. Os yw rhywbeth yn y stac yn dibynnu ar ddarllediad neu multicast yn lle hynny, rhaid gwerthuso’r gofyniad hwnnw ar ei ben ei hun; mae trosi’r twnnel i TAP i fodloni un offeryn yn lledu’r rhwydwaith i bob cyfranogwr.

Stopiwch yma os yw’r llwybr neu’r llwybr dychwelyd ar goll. Mae gan gyhoeddwr sy’n ateb ar ei westeiwr ei hun ond nad yw’n gyrraeddadwy o’r weithfan broblem llwybro, nid problem ROS.

Cam 4: caniatáu sgwrs y cymar a gwylio un pwnc

Agorwch yn unig y pyrth y mae’r sgwrs a drafodwyd ei hangen, a chwmpaswch bob rheol i’r cyfranogwyr a ddatganwyd. Nid yw gwrandawr y master yn ail-drosglwyddydd ar gyfer llwyth pynciau, felly mae caniatáu hwnnw’n unig yn gadael pen draw’r cyhoeddwr ar gau. Cadwch wrandawyr ROS ar ffin y VPN breifat yn lle eu hamplygu i’r rhyngrwyd cyhoeddus.

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

Gwyliwch un pwnc diniwed o’r cyhoeddwr go iawn i’r tanysgrifiwr go iawn a chadarnhewch y pen draw a hysbysebir a’r llwybr ateb. Mae un neges yn profi bod y llwybr yn gweithio; mae cyfradd gyson yn profi ei fod yn aros ar agor. Cadwch reoli actiwadyddion a gwiriadau diogelwch y tu allan i’r prawf hwn sy’n ymwneud â’r rhwydwaith yn unig, oherwydd nid yw pwnc sy’n gweithio’n ardystio robot sy’n gweithio. Cofnodwch fersiwn ROS a’r pâr pen draw a sylwyd arno, fel y gall yr un nesaf wahaniaethu newid topoleg oddi wrth regres.

Mae’r rhestr wirio wedi’i chwblhau pan fo’r URI a hysbysebir yn gyrraeddadwy o’r tanysgrifiwr, y porth a drafodwyd ar agor i’r cymar hwnnw yn unig, un pwnc a ddatganwyd yn llifo, a gwerthoedd yr amgylchedd wedi’u hysgrifennu ar gyfer y ddau westeiwr. Ni fydd ROS 1 hen yn cael cywiriadau yn y maes hwn, felly’r cofnod yw’r rhan sy’n parhau i weithio ar ôl i’r bobl newid.

Erthyglau cysylltiedig