Подключение через Simple Discovery
Режим Simple Discovery — это стандартный способ обнаружения узлов в ROS 2.
В этом режиме устройства автоматически находят друг друга по сети при совпадении значения ROS_DOMAIN_ID.
Принцип работы
- все узлы рассылают multicast-запросы
- устройства автоматически обнаруживают друг друга
- соединение устанавливается без дополнительной настройки
Ключевым параметром является:
ROS_DOMAIN_ID
Если значение совпадает на роботе и компьютере — они работают в одной ROS-сети.
Настройка робота
-
Подключитесь к роверу по SSH
-
Откройте файл настроек:
cd ~
sudo nano .ros_params
- Найдите строку:
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml
- Закомментируйте её:
# export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml
- Найдите параметр:
export ROS_DOMAIN_ID=10
Запомните его значение (по умолчанию — 10).
- Сохраните файл и перезагрузите ровер:
sudo reboot
Настройка компьютера
-
Откройте терминал
-
Установите такое же значение
ROS_DOMAIN_ID, как на ровере:
export ROS_DOMAIN_ID=10
- Если ранее использовался Discovery Server — очистите переменные:
unset ROS_DISCOVERY_SERVER
unset ROS_SUPER_CLIENT
unset FASTRTPS_DEFAULT_PROFILES_FILE
Проверка подключения
Выполните команду:
ros2 topic list
Если всё настроено правильно, вы увидите список топиков ровера.
Если список пуст или не обновляется:
ros2 daemon stop
ros2 daemon start
Важные особенности
- все устройства с одинаковым
ROS_DOMAIN_IDвидят друг друга - при работе нескольких роверов возможны конфликты
- multicast-трафик может работать нестабильно в Wi-Fi сетях
Когда использовать
Simple Discovery подходит, если:
- в сети используется один ровер
- подключён один компьютер
- сеть не перегружена
Рекомендации
- используйте уникальный
ROS_DOMAIN_IDдля каждого ровера - рекомендуемый диапазон значений: от
1до101 - значение
0лучше не использовать (используется по умолчанию в ROS 2)