> For the complete documentation index, see [llms.txt](https://ritka.gitbook.io/translate-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ritka.gitbook.io/translate-book/untitled-7.md).

# 4.13 ROS повторение

Поскольку, возможно, прошло уже некоторое время с тех пор, как вы делали [учебники для начинающих](http://wiki.ros.org/ROS/Tutorials) и [tf](http://wiki.ros.org/tf/Tutorials) [Tutorials](/translate-book/4.8-rabota-s-official-ros-tutorials.md), вот краткий обзор основных концепций ROS. Основная сущность в ROS называется узлом. Узел-это обычно небольшая программа, написанная на Python или C++, которая выполняет какую-то относительно простую задачу или процесс. Узлы могут запускаться и останавливаться независимо друг от друга, и они взаимодействуют, передавая сообщения. Узел может публиковать сообщения по определенным темам или предоставлять услуги другим узлам.&#x20;

Например, узел издателя может передавать данные с датчиков, подключенных к микроконтроллеру вашего робота. Сообщение в теме /head\_sonar со значением 0,5 будет означать, что датчик в данный момент обнаруживает объект на расстоянии 0,5 метра. (Помните, что ROS использует метры для измерения расстояния и радианы для угловых измерений.) Любой узел, который хочет знать показания этого датчика, должен только подписаться на тему /head\_sonar. Чтобы использовать эти значения, узел подписчика определяет функцию обратного вызова, которая выполняется всякий раз, когда новое сообщение поступает в подписанный раздел. Как часто это происходит, зависит от скорости, с которой узел издателя обновляет свои сообщения.&#x20;

Узел также может определять одну или несколько служб. Служба ROS производит некоторое поведение или отправляет ответ при отправке запроса с другого узла. Простым примером может служить сервис, который включает или выключает светодиод. Более сложным примером может служить сервис, который возвращает навигационный план для мобильного робота при задании местоположения цели и начальной позы робота.&#x20;

Узлы ROS более высокого уровня будут подписываться на ряд тем и сервисов, объединять результаты полезным образом и, возможно, публиковать сообщения или предоставлять собственные сервисы. Например, узел отслеживания объектов, который мы будем развивать далее в книге, подписывается на сообщения камеры по набору видео-тем и публикует команды движения по другой теме, которые считываются базовым контроллером робота для перемещения робота в соответствующем направлении.
