Базовые понятия ROS

Основные термины

Мастер (Master), Мастер-Нода

Мастер выполняет роль сервера имен для возможности подключения между собой различных нод. Команда roscore запускает сервер мастера, и после этого к нему могут подключиться и зарегистрироваться ноды ROS. Связь между нодами (обмен сообщениями) невозможна без наличия запущенного мастера.

При запуске ROS roscore мастер будет запущен по адресу URI, установленном в переменной окружения ROS_MASTER_URI. По умолчанию адрес использует IP-адрес локального ПК и номер порта 11311

Нода (Node)

Понятие ноды относится к наименьшей "рабочей" единице, используемой в ROS. Можно провести аналогию с одной исполняемой программой. ROS рекомендует создать одну ноду для каждой задачи, что позволить легче использовать ее в других проектах.

При запуске нода регистрирует информацию о себе на мастере (название ноды, типы обрабатываемых сообщений). Зарегистрированная нода может взаимодействовать с другими нодами (получать и отправлять запросы). Важно отметить, что обмен сообщениями между нодами работает без участия мастера (соединение между нодами происходит на прямую). Мастер обеспечивает только единое пространство имен для решения вопроса, куда подключиться к конкретной ноде. Адрес запуска ноды берётся из переменной окружения ROS_HOSTNAME, которая должна быть определенна до запуска. Порт устанавливается на произвольное уникальное значение.

Пакет (Package)

Пакет является основной единицей ROS. Любое приложение ROS оформляется в пакет, в котором определяются: конфигурация пакета, ноды, необходимые для работы пакета, зависимости от других пакетов ROS.

Работа с пакетами ROS очень похожа на работу с пакетами linux. Пакет ROS можно поставить готовым из репозитория пакетов или скачать и скомпилировать из исходных кодов.

Поиск доступных пакетов ROS возможен на странице http://wiki.ros.org/

Last updated