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