General Concepts¶

Katsotaan ROS-järjestelmää hyvin korkean tason näkökulmasta. Ei tarvitse huolehtia siitä, miten jokin seuraavista toimii, käsittelemme sitä myöhemmin.

ROS alkaa ROS Masterista. Master mahdollistaa sen, että kaikki muut ROS-ohjelmistot (Node) löytävät toisensa ja keskustelevat keskenään.Näin meidän ei tarvitse koskaan erikseen sanoa: ”Lähetä tämä anturitieto tuohon tietokoneeseen osoitteessa 127.0.0.1.” Voimme yksinkertaisesti käskeä Node 1:tä lähettämään viestejä Node 2:lle.

Miten Node tekee tämän? Julkaisemalla ja tilaamalla aiheita.

Sitotaan, että meillä on kamera robotissamme. Haluamme nähdä kameran kuvat sekä itse robotilla että toisella kannettavalla tietokoneella.

Esimerkissämme meillä on Camera Node, joka huolehtii viestinnästä kameran kanssa, Image Processing Node robotilla, joka käsittelee kuvatietoa,ja Image Display Node, joka näyttää kuvat näytöllä. Aluksi kaikki solmut ovat rekisteröityneet Masteriin.Ajattele Masteria hakutaulukkona, jonne kaikki solmut menevät löytääkseen, minne tarkalleen ottaen lähettää viestejä.

Rekisteröityessään ROS Masteriin Camera Node ilmoittaa, että se julkaisee aiheen nimeltä /image_data (esimerkiksi).Molemmat muut solmut rekisteröivät, että ne ovatSubscribed to the Topic /image_data.

Siten, kun kamerasolmu vastaanottaa jotain dataa kameralta, se lähettää /image_data-viestin suoraan kahdelle muulle solmulle. (Pohjimmiltaan TCP/IP:n kautta)

Voit nyt miettiä, entä jos haluan, että kuvankäsittelysolmu pyytää tietoja kamerasolmulta tiettynä ajankohtana? Tätä varten ROS toteuttaa palvelut.

Solmu voi rekisteröidä tietyn palvelun ROS-masteriin, aivan kuten se rekisteröi viestinsä.

Alla olevassa esimerkissä kuvankäsittelysolmu pyytää ensin /image_data, kamerasolmu kerää dataa kamerasta ja lähettää vastauksen. Kuvankäsittelysolmu lähettää vastauksen.