General Concepts¶

Laten we eens kijken naar het ROS systeem vanuit een zeer hoog niveau. U hoeft zich geen zorgen te maken over hoe iets van het volgende werkt, dat zullen we later behandelen.

ROS begint met de ROS Master. De Master zorgt ervoor dat alle andere ROS stukjes software (Nodes) elkaar kunnen vinden en met elkaar kunnen praten.Op die manier hoeven we nooit specifiek te zeggen “Stuur deze sensor data naar die computer op 127.0.0.1”.We kunnen gewoon tegen Node 1 zeggen dat hij berichten naar Node 2 moet sturen.

Hoe doen Nodes dit? Door Topics te publiceren en erop in te schrijven.

Laten we zeggen dat we een camera op onze Robot hebben. We willen de beelden van de camera kunnen zien, zowel op de Robot zelf, als op een andere laptop.

In ons voorbeeld hebben we een Camera Node die zorgt voor de communicatie met de camera, een Image Processing Node op de Robot die beeldgegevens verwerkt, en een Image Display Node die de beelden op een scherm weergeeft. Om te beginnen hebben alle Nodes zich geregistreerd bij de Master.Zie de Master als een opzoektabel waar alle nodes naartoe gaan om uit te zoeken waar ze precies berichten naartoe moeten sturen.

Bij het registreren bij de ROS Master geeft de Camera Node aan dat hij een Topic zal publiceren met de naam /image_data (bijvoorbeeld).Beide andere knooppunten registreren dat zij zijn geabonneerd op het Topic /image_data.

Dus zodra de Camera Node gegevens van de camera ontvangt, zendt hij het bericht /image_data rechtstreeks naar de andere twee knooppunten. (Via wat in wezen TCP/IP is)

Nu zult u misschien denken, wat als ik wil dat de beeldverwerkingsnode op een specifiek tijdstip gegevens opvraagt van de camera-node? Om dit te doen, implementeert ROS Services.

Een Node kan een specifieke service registreren bij de ROS Master, net zoals hij zijn berichten registreert.In het onderstaande voorbeeld vraagt de Image Processing Node eerst /image_data op, de Camera Node verzamelt gegevens van de Camera, en verstuurt vervolgens het antwoord.