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

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, несколько устройств