Настройка сети ROS позволяет осуществлять связь между различными устройствами. Все эти участники или узлы регистрируются в мастере ROS для обмена информацией. Каждая сеть ROS имеет только один, уникальный мастер. Каждый узел обычно является отдельным устройством, хотя одно устройство может иметь несколько работающих узлов. MATLAB® действует как один из этих узлов при обмене данными в существующей сети ROS.
Все устройства должны быть подключены к одной фактической или виртуальной сети для работы подключений ROS. Можно создать новый мастер ROS в MATLAB или подключиться к существующему мастеру ROS, работающему на другом устройстве. При подключении к внешнему мастеру необходимо знать IP-адрес или имя хоста устройства. Начальное главное соединение ROS создается вызовом rosinit
. Для получения дополнительной информации о настройке и использовании сети ROS, смотрите Подключение к сети и Исследования.
Узлы взаимодействуют путем отправки сообщений с помощью сущностей, называемых издателями, подписчиками и службами. Издатели отправляют данные, используя имена тем, которые подписчики затем получают по сети. Службы используют клиенты для запроса информации с сервера. Для получения дополнительной информации о отправке сообщений см. раздел «Издатели и подписчики».
Сеть ROS представляет собой набор узлов, которые все соединяются с ведущим узлом ROS. Размер числа узлов может быть довольно большим в зависимости от вашего приложения и устройств. Узлы, зарегистрированные в ведущем узле, могут обмениваться данными со всеми другими зарегистрированными узлами. Каждый узел регистрирует различных издателей, подписчиков и сервисов на хозяине ROS, чтобы отправлять и получать информацию между узлами. Несмотря на то, что все узлы в сети ROS зарегистрированы в основной системе, обмен данными осуществляется непосредственно между узлами. Следующий рисунок показывает размещение сети ROS с двумя узлами ROS. Все узлы должны иметь двунаправленные соединения для совместного использования данных по сети. Проверка этих соединений важна во время настройки.
Каждый узел регистрирует свой собственный URI узла в ведущем узле. Другие участники сети ROS будут использовать этот URI для связи с узлом. Снова, этот URI должен быть достижим каждым другим узлом в сети ROS. Чтобы создать узел в MATLAB, вызовите rosinit
. Если хозяин ROS уже настроен, MATLAB обнаруживает его и соответствующим образом устанавливает URI узла. В противном случае создается мастер ROS и подключенный узел.
По умолчанию каждый образец MATLAB имеет один global узел. Узел имеет случайным образом сгенерированное имя, присвоенное ему для уникальности. На этом глобальном узле работают все издатели, подписчики, сервисные клиенты и сервисные серверы.