Перейти к основному содержимому

Fast DDS и работа сети ROS 2

Архитектура ROS 2 позволяет объединять несколько устройств в единую сеть. В этом режиме ноды, запущенные на разных компьютерах, могут обмениваться данными так, как будто они работают в одной системе.

Например, вы можете подключить свой компьютер к BRover-E5 и:

  • получать данные с сенсоров
  • управлять движением
  • запускать визуализацию (RViz)
  • выполнять вычисления на более мощном ПК
примечание

В этой инструкции предполагается, что на вашем компьютере установлены:

  • Ubuntu 24.04
  • ROS 2 Jazzy

Для подключения внешнего компьютера к ROS 2-сети ровера нужен сетевой доступ к BRover-E5. Это может быть обычная Wi-Fi-сеть, Wi-Fi fallback или прямое Ethernet-подключение.


Что такое DDS

В основе сетевого взаимодействия в ROS 2 лежит технология DDS (Data Distribution Service).

DDS — это промышленный стандарт передачи данных в распределённых системах, который отвечает за:

  • обнаружение узлов в сети
  • доставку сообщений между ними
  • управление качеством связи (QoS)

Когда одна нода публикует сообщение, DDS автоматически находит всех подписчиков и доставляет данные без дополнительной настройки со стороны пользователя.

ROS 2 поддерживает несколько реализаций DDS, наиболее распространённые:

  • Fast DDS (по умолчанию в ROS 2 Jazzy)
  • Cyclone DDS

На BRover-E5 используется Fast DDS — реализация с открытым исходным кодом от компании eProsima.


Режимы обнаружения узлов

Fast DDS поддерживает два основных режима обнаружения (discovery):

  • Simple Discovery
  • Discovery Server

Они определяют, каким образом ноды находят друг друга в сети.


Simple Discovery

примечание

Режим по умолчанию в ROS 2.

Принцип работы:

  • каждая нода рассылает multicast-пакеты в сеть
  • другие ноды принимают эти пакеты
  • соединение устанавливается автоматически

Преимущества:

  • не требует настройки
  • подходит для быстрого старта
  • удобно для работы на одном компьютере

Ограничения:

  • нестабильная работа в Wi-Fi сетях
  • multicast может блокироваться роутером
  • создаёт лишний сетевой трафик
  • возможны конфликты при работе нескольких роботов

Discovery Server

Альтернативный режим, обеспечивающий более стабильную работу.

Принцип работы:

  • один узел выступает в роли сервера обнаружения
  • все остальные подключаются к нему как клиенты
  • обмен служебной информацией идёт через сервер

Преимущества:

  • стабильная работа по Wi-Fi
  • отсутствие multicast-трафика
  • изоляция устройств друг от друга
  • предсказуемое поведение сети

Ограничения:

  • требует настройки
  • необходим адрес сервера

Какой режим используется в BRover-E5

В BRover-E5 по умолчанию используется режим Discovery Server.

Бортовой компьютер ровера выполняет роль сервера, а все ноды подключаются к нему как клиенты.

Это обеспечивает:

  • стабильную работу в беспроводной сети
  • корректное подключение внешних устройств
  • отсутствие конфликтов между несколькими роверами

Для штатной работы с ровером рекомендуется использовать именно Discovery Server. Режим Simple Discovery лучше рассматривать как вариант для локальной или экспериментальной отладки.


Когда использовать разные режимы

РежимКогда использовать
Simple Discoveryлокальная отладка, один компьютер
Discovery Serverработа с ровером по Wi-Fi, несколько устройств