General Concepts¶

Podívejme se na systém ROS z velmi vysoké úrovně. Není třeba se zabývat tím, jak funguje cokoli z následujícího, tím se budeme zabývat později.

ROS začíná systémem ROS Master. Master umožňuje všem ostatním částem softwaru ROS (uzlům), aby se navzájem našly a komunikovaly spolu. díky tomu nemusíme nikdy výslovně říkat: „Pošlete tato data ze senzorů na tento počítač na adrese 127.0.0.1. Můžeme jednoduše říct uzlu 1, aby posílal zprávy uzlu 2.

Jak to uzly dělají? Tím, že publikují a odebírají témata.

Řekněme, že máme na našem robotovi kameru. Chceme mít možnost zobrazit obrázky z kamery jak na samotném Robotu, tak na jiném notebooku.

V našem příkladu máme uzel Camera Node, který se stará o komunikaci s kamerou, uzel Image Processing Node na Robotu, který zpracovává obrazová data,a uzel Image Display Node, který zobrazuje obrázky na obrazovce. Na začátku se všechny uzly zaregistrovaly u Masteru. představte si Master jako vyhledávací tabulku, kam všechny uzly chodí, aby zjistily, kam přesně mají posílat zprávy.

V registraci u Masteru ROS uzel Camera Node uvádí, že bude publikovat téma s názvem /image_data (například).Oba ostatní uzly se zaregistrují, že jsou přihlášeny k tématu /image_data.

Jakmile tedy uzel Camera obdrží nějaká data z kamery, odešle zprávu /image_data přímo ostatním dvěma uzlům. (Prostřednictvím toho, co je v podstatě TCP/IP)

Teď si možná říkáte, co když chci, aby si uzel pro zpracování obrazu vyžádal data od uzlu kamery v určitém čase? K tomu ROS implementuje služby.

Uzel může zaregistrovat konkrétní službu u ROS Master, stejně jako registruje své zprávy.

V níže uvedeném příkladu uzel zpracování obrazu nejprve požádá o /image_data, uzel kamery shromáždí data z kamery a poté odešle odpověď. .