ROS 2 DDS -toteutusten latenssivertailu
Pyykkönen, Henri (2020)
Pyykkönen, Henri
2020
Teknisten tieteiden kandidaattiohjelma - Bachelor's Programme in Engineering Sciences
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-11-17
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202011097882
https://urn.fi/URN:NBN:fi:tuni-202011097882
Tiivistelmä
Työn tarkoituksena on etsiä suorituskykyisintä avoimen lähdekoodin Data-Distribution Service (DDS) -toteutusta Robot Operating System 2 (ROS 2):lle. DDS-toteutusten suo-rituskyvyn mittaamisessa rajoitutaan käsittelemään keskimääräistä latenssia sekä mak-similatenssia. Keskimääräinen latenssi on mielenkiintoinen toteutuksen yleisen suoritus-kyvyn kannalta, kun taas maksimilatenssia voidaan pitää reaaliaikaisuuden mittarina (worst-case latency).
Viiveen mittaamiseen käytetään ennalta luotuja testitapauksia, joita on neljä kappaletta. Valittu testi rajaa testattavat toteutukset CycloneDDS:n, FastRTPS:n sekä OpenDDS:n. Jokainen mittaus suoritetaan kolme kertaa, joiden keskiarvo muodostaa yhden datapis-teen. Ensimmäisessä testitapauksessa keskitytään DDS-toteutusten latenssieroihin viestityypeittäin. Toisessa testitapauksessa mitataan tilaajien määrän vaikutusta viivee-seen. Kolmannessa testitapauksessa havainnoidaan julkaisufrekvenssin vaikutusta la-tenssiin ja neljännessä DDS:n Quality of Service (QoS) asetusten vaikutusta latenssiin. Kaikkia QoS-asetuksia ei kuitenkaan testata vaan keskitytään ainoastaan RELIABILITY asetukseen. Datapisteet kootaan lopuksi kuvaajiin testitapauksittain, joista toteutusten vertailu on helpompaa.
Lopputuloksena saatiin, että jokaisessa testitapauksessa CycloneDDS:n keskimääräi-nen latenssi sekä maksimilatenssi olivat alhaisimmat verrattuna muihin. Sen latenssin käyttäytyminen oli myös ennalta arvattavampaa sekä luotettavampaa kuin muiden, joka teki siitä selkeästi suorituskykyisimmän valinnan. Toiseksi tuli FastRTPS, jonka latenssi oli myös kohtuullisen alhainen, mutta suorituskyvyltään heikompi kuin CycloneDDS. Kol-manneksi ja viimeiseksi päätyi OpenDDS, minkä suorituskyky oli heikko sekä vaikeasti ennakoitava. Heikon suorituskyvyn syyksi epäillään OpenDDS:n optimoinnin puutetta ROS 2:lle. Toinen mahdollinen syy eroavaisuuksiin on, että CycloneDDS sekä FastRTPS tulevat oletuksena ROS 2:n mukana.
Viiveen mittaamiseen käytetään ennalta luotuja testitapauksia, joita on neljä kappaletta. Valittu testi rajaa testattavat toteutukset CycloneDDS:n, FastRTPS:n sekä OpenDDS:n. Jokainen mittaus suoritetaan kolme kertaa, joiden keskiarvo muodostaa yhden datapis-teen. Ensimmäisessä testitapauksessa keskitytään DDS-toteutusten latenssieroihin viestityypeittäin. Toisessa testitapauksessa mitataan tilaajien määrän vaikutusta viivee-seen. Kolmannessa testitapauksessa havainnoidaan julkaisufrekvenssin vaikutusta la-tenssiin ja neljännessä DDS:n Quality of Service (QoS) asetusten vaikutusta latenssiin. Kaikkia QoS-asetuksia ei kuitenkaan testata vaan keskitytään ainoastaan RELIABILITY asetukseen. Datapisteet kootaan lopuksi kuvaajiin testitapauksittain, joista toteutusten vertailu on helpompaa.
Lopputuloksena saatiin, että jokaisessa testitapauksessa CycloneDDS:n keskimääräi-nen latenssi sekä maksimilatenssi olivat alhaisimmat verrattuna muihin. Sen latenssin käyttäytyminen oli myös ennalta arvattavampaa sekä luotettavampaa kuin muiden, joka teki siitä selkeästi suorituskykyisimmän valinnan. Toiseksi tuli FastRTPS, jonka latenssi oli myös kohtuullisen alhainen, mutta suorituskyvyltään heikompi kuin CycloneDDS. Kol-manneksi ja viimeiseksi päätyi OpenDDS, minkä suorituskyky oli heikko sekä vaikeasti ennakoitava. Heikon suorituskyvyn syyksi epäillään OpenDDS:n optimoinnin puutetta ROS 2:lle. Toinen mahdollinen syy eroavaisuuksiin on, että CycloneDDS sekä FastRTPS tulevat oletuksena ROS 2:n mukana.
Kokoelmat
- Kandidaatintutkielmat [8430]