Kituo chako cha kazi kinafika master ya ROS 1 kupitia handaki na bado kinaonyesha orodha tupu ya mada. Mchoro huu ni wa kawaida kwa sababu usajili wa master na usafirishaji wa mada ni mazungumzo mawili tofauti, na ni ya kwanza tu inayopita kwenye master. Orodha ya ukaguzi hapa chini inapitia mazungumzo ya pili: kituo cha mwisho ambacho mchapishaji hutangaza, anwani ambayo msajili lazima afikie, na idhini inayowaruhusu wawili kuzungumza. Kila kitu hapa kinahusu ROS 1 ya zamani tu, ambayo kipindi chake cha msaada wa Noetic kiliisha Mei 2025.

Hatua 1: thibitisha kuwa muunganisho wa master si muunganisho wa mada

Anza kwa kutenganisha kinachofanya kazi na kisichofanya kazi. rostopic list iliyofanikiwa inathibitisha kuwa shell yako inafikia mlango wa XMLRPC wa master na kwamba master inajua mada; haisemi chochote kuhusu kama msajili anaweza kumfikia mchapishaji. Amri tatu hapa chini zinaonyesha tofauti hiyo, na zote ni za kusoma tu.

echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter

Matokeo ya rostopic info yanataja URI ya nodi ya mchapishaji, ambayo ni anwani ya XMLRPC kwenye mwenyeji wa mchapishaji. Anwani hiyo ndiyo ambayo msajili wako ataita ijayo, kwa hiyo lazima ifikike kutoka popote msajili anafanya kazi. Ikielekeza kwenye kiolesura kinachopatikana tu kwenye LAN ya roboti yenyewe, utafutaji wa master unafanikiwa na data haifiki kamwe.

Hatua 2: soma kituo cha mwisho kilichotangazwa kutoka kwenye nodi yenyewe

ROS 1 huchagua utambulisho wake wa mwenyeji uliotangazwa kutoka ROS_IP au ROS_HOSTNAME wakati mmoja wao umewekwa, na vinginevyo hurudi kwenye utatuzi wa majina wa mwenyeji mwenyewe. Kagua mazingira ya mchakato uliozinduliwa kwa kweli, kwa sababu kitengo cha systemd, kontena au terminal ya pili inaweza kubeba thamani tofauti na ile ya shell ambayo jaribio lako lilifanya kazi.

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

Tangazo la jina la mwenyeji hufanya kazi tu ikiwa kila mshirika hutatua jina hilo kwenye anwani inayofikika iliyokusudiwa. Ikiwa jina hilo linatatuliwa tu ndani ya mtandao wa roboti yenyewe, kituo cha kazi upande wa pili wa handaki hakina njia ya kulitumia, na VPN isiyosukuma kiambishi chochote cha DNS inafanya kutokulingana kuwa kubaya zaidi. Wakati topolojia imeelekezwa, kuweka ROS_IP kwenye anwani ya handaki ni mabadiliko madogo. Chochote unachochagua, kiandike kwa pande zote mbili, kwa sababu mchapishaji na msajili wasiokubaliana kuhusu utambulisho watajadiliana kisha washindwe kuunganisha.

Simama hapa ikiwa URI iliyotangazwa inatumia anwani ambayo hakuna mshirika anayeweza kuielekeza. Hakuna kazi ya ukuta wa moto itakayorekebisha jina linalotatuliwa kwenye kiolesura kisicho sahihi.

Hatua 3: fanya anwani iliyotangazwa iweze kutatuliwa na kuelekezwa

Ukiwa na URI mkononi, jaribu ufikikaji kutoka kwa mwenyeji wa msajili badala ya kutoka kwa roboti. Mlango wa TCPROS huchaguliwa wakati wa majadiliano, kwa hiyo jaribio la mapema lenye manufaa ni mlango wa XMLRPC, na jaribio la baadaye lenye manufaa ni soketi iliyoanzishwa. Njia inayopatikana kwa upande mmoja tu ni hitilafu ya kawaida kwenye VPN zinazoelekezwa, na njia ya kurudi ina thamani sawa na njia ya kwenda.

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

Kiolesura cha TUN kilichoelekezwa hubeba mazungumzo haya ya IP bila kupanua sehemu ya Ethernet ya roboti, ambayo kwa kawaida ndiyo anayotaka mwendeshaji wa mbali. Ikiwa kitu kwenye mrundikano kinategemea broadcast au multicast badala yake, hitaji hilo linapaswa kutathminiwa kando; kubadilisha handaki kuwa TAP ili kutosheleza chombo kimoja kunapanua mtandao kwa kila mshiriki.

Simama hapa ikiwa njia au njia ya kurudi haipo. Mchapishaji anayejibu kwenye mwenyeji wake lakini hafikiki kutoka kwenye kituo cha kazi ana tatizo la uelekezaji, si tatizo la ROS.

Hatua 4: ruhusu mazungumzo ya washirika na uangalie mada moja

Fungua milango inayohitajika na mazungumzo yaliyojadiliwa tu, na uweke kikomo cha kila sheria kwa washiriki waliotangazwa. Msikilizaji wa master si kipitishaji cha mzigo wa mada, kwa hiyo kuruhusu yeye peke yake kunaacha kituo cha mwisho cha mchapishaji kimefungwa. Weka wasikilizaji wa ROS kwenye mpaka wa VPN ya faragha badala ya kuwaweka wazi kwenye intaneti ya umma.

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

Angalia mada moja isiyo na madhara kutoka kwa mchapishaji halisi hadi kwa msajili halisi na uthibitisha kituo cha mwisho kilichotangazwa na njia ya majibu. Ujumbe mmoja unathibitisha kuwa njia inafanya kazi; kiwango thabiti kinathibitisha kuwa inabaki wazi. Weka udhibiti wa vifaa vya kuendesha na ukaguzi wa usalama nje ya jaribio hili la mtandao pekee, kwa sababu mada inayofanya kazi haithibitishi roboti inayofanya kazi. Andika toleo la ROS na jozi ya vituo vya mwisho uliyoona, ili mtu anayefuata aweze kutofautisha mabadiliko ya topolojia na kurudi nyuma.

Orodha ya ukaguzi inakamilika wakati URI iliyotangazwa inafikika kutoka kwa msajili, mlango uliojadiliwa umefunguliwa kwa mshirika huyo pekee, mada moja iliyotangazwa inatiririka, na thamani za mazingira zimeandikwa kwa wenyeji wote wawili. ROS 1 ya zamani haitapata marekebisho katika eneo hili, kwa hiyo rekodi ndiyo sehemu inayoendelea kufanya kazi baada ya watu kubadilika.

Makala zinazohusiana