Kaksi ROS 2 -solmua VPN:n vastakkaisissa päissä voivat listata toistensa aiheet ja silti olla toimittamatta yhtään viestiä. Löytäminen ja käyttäjätiedot ovat erillisiä vaihtoja erillisine polkuineen, eikä löytämispalvelin välitä hyötykuormia. Toisen tarkistaminen ja toisen olettaminen on se, miten tiimit päätyvät vaihtamaan väliohjelmistoa, kun tunneli ei yksinkertaisesti koskaan kuljettanut tietoja. Alla oleva menettely erottaa kaksi tulosta ennen kuin mitään vaihdetaan.

Mitä löytämispalvelin todella kuljettaa

Fast DDS:ssä Discovery Server jakaa tietoa päätepisteistä: kuka julkaisee, kuka tilaa ja mitä QoS:ää kukin odottaa. Kun vertaiset tuntevat toisensa, käyttäjätiedot kulkevat suoraan niiden välillä eivätkä tuon palvelimen kautta. Palvelimeen pääseminen todistaa, että esittelyjen välittäjä vastaa, ei muuta. Reititetty VPN tarvitsee yhä toimivan polun molempiin suuntiin vertaisten ilmoittamien osoitteiden välillä.

Tämä ero selittää myös osittaiset viat, joissa olemassa olevat vertaiset vaihtavat edelleen tietoja, kun uusi löytäminen lakkaa toimimasta. Käsittele niitä kahtena erillisenä tutkintana.

Lue RMW, jota solmut todella käyttävät

ROS 2 voi ladata eri väliohjelmistoja, eikä kuoressasi viety muuttuja tavoita muualla käynnistettyjä prosesseja. Kysy käynnissä olevalta järjestelmältä äläkä päätteesi historialta.

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

Asettamaton muuttuja tarkoittaa yleensä asennettua oletusta, joka voi vaihdella saman kokeen koneiden välillä. Raportti nimeää myös jakelun ja käytettävän väliohjelmiston, joten vertaa niitä tunnelin molemmilla puolilla ennen kuin oletat niiden täsmäävän. ROS:n komentorivitaustaprosessi tallentaa tilan välimuistiin, joten käynnistä se uudelleen ympäristön muuttamisen jälkeen sen sijaan, että annat vanhentuneen taustaprosessin vastata vanhasta kokoonpanosta. Kirjoita molempien isäntien jakelu ja RMW testimuistiinpanoihin, kun istunto on auki.

Testaa löytämistä ja tietoja kahtena tuloksena

Valitse vaaraton aihe ja mittaa esittely erikseen toimituksesta. info-komento luettelee päätepisteet ja QoS:n, kun taas echo todistaa, ylittääkö yksi viesti todella linkin.

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

Päätepisteiden ilmestyminen info-tulosteeseen on löytämisen tulos. Viestin saapuminen tilaajalle on siirron tulos, ja vain jälkimmäinen koettelee polun, jonka sovellus tarvitsee. Kun löytäminen toimii ja echo aikakatkaisee, tutki ilmoitettuja osoitteita ja paluupolkua löytämispalvelun sijaan. Suorita molemmat komennot jokaiselta isännältä, koska epäsymmetrinen VPN-reitti paljastuu usein vain yhdeltä puolelta.

Muuta yhtä riippuvuutta kerrallaan

Kun datapolku epäonnistuu, vältä väliohjelmiston, löytämistilan ja viestikoon muuttamista samassa istunnossa, koska sen jälkeen mitään tulosta ei voi kohdistaa. Zenoh RMW on laillinen vaihtoehto, mutta sen reitittimestä tulee uusi riippuvuus, jonka on oltava tavoitettavissa tunnelin kautta.

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

Tuon RMW:n alla reititin kantaa löytämisen Jazzy'n oletusjärjestelyssä, ja multicast-löytäminen on siellä pois käytöstä, joten riippuvuus kuuluu muistiinpanoihisi eikä toisesta väliohjelmistosta lainattuun oletukseen. Pidä työkuorma vakiona, kun muutat yhtä asetusta, toista sitten echo-testi ja kirjaa suunta, viestinopeus ja linkin olosuhteet. Toista vertailu kahdesti, jotta erotat todellisen parannuksen onnekkaasta uudelleenyhdistämisestä. Jos muutos parantaa löytämistä mutta toimitus pysyy samana, olet siirtänyt esittelypalvelua, et datapolkua.

Aiheeseen liittyvät artikkelit