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

Подключение через Discovery Server

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

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

Это позволяет:

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

Настройка робота для работы с Discovery Server

Основные настройки находятся в файле /home/pi/.ros_params. К настройке работы по сети относятся несколько переменных окружения:

# Установка ROS_DOMAIN_ID для режима Simple Discovery
export ROS_DOMAIN_ID=10

# Подключение файла конфигурации для режима Discovery Server
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml

# Определение типа DDS
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

Если установлено значение FASTRTPS_DEFAULT_PROFILES_FILE, то робот работает в режиме Discovery Server. Если эту строчку закомментировать, робот будет работать в режиме Simple Discovery.

Настройка подключения (быстрый способ)

  1. Определите IP-адрес ровера (см. раздел SSH-подключения)

  2. Откройте терминал на компьютере

  3. Выполните команды:

export ROS_DISCOVERY_SERVER="<IP-адрес ровера>:11811"
export ROS_SUPER_CLIENT=TRUE

где:

  • <IP-адрес ровера> — адрес вашего устройства
  • 11811 — стандартный порт Discovery Server

Проверка подключения

Выполните команду:

ros2 topic list

Если всё настроено правильно, вы увидите список топиков ровера.

Если список пуст или не обновляется:

ros2 daemon stop
ros2 daemon start
подсказка

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

Чтобы применять их автоматически, добавьте в файл ~/.bashrc:

echo 'export ROS_DISCOVERY_SERVER="<IP-адрес ровера>:11811"' >> ~/.bashrc
echo 'export ROS_SUPER_CLIENT=TRUE' >> ~/.bashrc

Затем выполните:

source ~/.bashrc

Альтернативный способ: через XML-конфигурацию

Этот способ подходит для более гибкой настройки Fast DDS.

  1. Скачайте конфигурационный файл:
cd ~
wget https://raw.githubusercontent.com/voltbro/turtlebro2/refs/heads/jazzy/extra/fastdds_superclient.xml

  1. Откройте файл в любом текстовом редакторе:
nano fastdds_superclient.xml

Ключевые параметры, которые нужно понимать:

  • Тег <discovery_protocol>SUPER_CLIENT</discovery_protocol> — определяет роль вашего компьютера в сети. Значение SUPER_CLIENT означает, что ваш компьютер будет подключаться к Discovery Server как привилегированный клиент, который видит все топики и сервисы. Обычный CLIENT видит только те узлы, с которыми он обменивается данными напрямую.
  • Тег <leaseDuration> — задаёт время аренды (в секундах и наносекундах), в течение которого сервер считает клиента активным. По умолчанию установлено 60 секунд. Если клиент не отправляет сигналы в течение этого времени, сервер считает его отключённым.
  • Блок <RemoteServer> — содержит адрес и порт Discovery Server, к которому нужно подключиться.
  1. Замените адрес сервера:
<address>127.0.0.1</address>

на IP-адрес ровера:

<address>192.168.1.41</address>
  1. Примените конфигурацию:
export FASTRTPS_DEFAULT_PROFILES_FILE=$(pwd)/fastdds_superclient.xml
  1. Проверьте подключение:
ros2 topic list

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

Discovery Server рекомендуется использовать:

  • при работе по Wi-Fi
  • при наличии нескольких роверов
  • для стабильной работы ROS-сети