Базовые понятия 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