General Concepts¶

Przyjrzyjrzyjniemy się systemowi ROS z bardzo wysokiego poziomu. Nie musisz się martwić, jak działa którykolwiek z poniższych elementów, zajmiemy się tym później.

ROS zaczyna się od ROS Master. Master pozwala wszystkim innym elementom oprogramowania ROS (Nodes) znaleźć się i rozmawiać ze sobą. Dzięki temu nie musimy nigdy konkretnie mówić „Wyślij dane z tego czujnika do tego komputera pod adresem 127.0.0.1.Możemy po prostu powiedzieć Node 1, aby wysyłał wiadomości do Node 2.

Jak Nodes to robią? Publikując i subskrybując Tematy.

Powiedzmy, że mamy kamerę na naszym robocie. Chcemy mieć możliwość oglądania obrazów z kamery, zarówno na samym robocie, jak i na innym laptopie.

W naszym przykładzie mamy Węzeł Kamery, który zajmuje się komunikacją z kamerą, Węzeł Przetwarzania Obrazu na robocie, który przetwarza dane obrazu, oraz Węzeł Wyświetlania Obrazu, który wyświetla obrazy na ekranie. Na początek wszystkie węzły zarejestrowały się w Masterze, czyli w tablicy, do której wszystkie węzły trafiają, aby dowiedzieć się, gdzie dokładnie mają wysyłać wiadomości.

W rejestracji w ROS Masterze węzeł Kamera stwierdza, że będzie publikował temat o nazwie /image_data (na przykład).Oba pozostałe węzły rejestrują, że są subskrybowane do tematu /image_data.

Tak więc, gdy Camera Node otrzyma jakieś dane z kamery, wysyła wiadomość /image_data bezpośrednio do pozostałych dwóch węzłów. (Poprzez to, co jest zasadniczo TCP/IP)

Teraz możesz się zastanawiać, co jeśli chcę, aby węzeł przetwarzania obrazu zażądał danych z węzła kamery w określonym czasie? Aby to zrobić, ROS implementuje usługi.

Węzeł może zarejestrować konkretną usługę w ROS Master, tak jak rejestruje swoje wiadomości.W poniższym przykładzie, węzeł przetwarzania obrazu najpierw żąda /image_data, węzeł kamery zbiera dane z kamery, a następnie wysyła odpowiedź.

.