General Concepts¶

Lássuk a ROS rendszert egy nagyon magas szintű nézőpontból. Nem kell aggódnunk, hogy a következők közül mi hogyan működik, azt később tárgyaljuk.

A ROS a ROS Masterrel kezdődik. A Master lehetővé teszi az összes többi ROS szoftverdarab (Node) számára, hogy megtalálják egymást és beszéljenek egymással. így soha nem kell külön megmondanunk, hogy “Küldd el ezt az érzékelőadatot annak a 127.0.0.0.1 számítógéppel rendelkező számítógépnek.” Egyszerűen megmondhatjuk a Node 1-nek, hogy küldjön üzeneteket a Node 2-nek.

Hogyan csinálják ezt a Node-ok? Azáltal, hogy közzéteszik és feliratkoznak a témákra.

Tegyük fel, hogy van egy kameránk a robotunkon. Szeretnénk, ha a kamera képeit mind magán a Roboton, mind egy másik laptopon láthatnánk.

Példánkban van egy Camera Node, amely a kamerával való kommunikációt végzi, egy Image Processing Node a Roboton, amely a képadatokat dolgozza fel,és egy Image Display Node, amely a képeket egy képernyőn jeleníti meg. Kezdetben minden csomópont regisztrált a Masterrel.Gondoljunk a Masterre úgy, mint egy keresőtáblára, ahová az összes csomópont megy, hogy megtalálja, pontosan hova küldjön üzeneteket.

A ROS Masterrel való regisztráció során a Kamera csomópont kijelenti, hogy egy /image_data nevű Topicot fog közzétenni (például).Mindkét másik csomópont regisztrálja, hogy feliratkozott a /image_data témára.

Így, amint a kameracsomópont kap néhány adatot a kamerától, a /image_data üzenetet közvetlenül elküldi a másik két csomópontnak. (Lényegében a TCP/IP-en keresztül)

Most talán arra gondol, hogy mi van, ha azt akarom, hogy a képfeldolgozó csomópont egy adott időpontban adatokat kérjen a kameracsomóponttól? Ehhez a ROS szolgáltatásokat valósít meg.

Egy csomópont regisztrálhat egy adott szolgáltatást a ROS Masterrel, ahogyan az üzeneteit is regisztrálja.

Az alábbi példában a Képfeldolgozó csomópont először /image_data-t kér, a Kamera csomópont összegyűjti az adatokat a kamerától, majd elküldi a választ.