Настройка файла конфигурации RTI DDS в ROS2

Я взаимодействую с ROS2 с нативным RTI DDS, используя создание приложения xml, т.е. означает, что все настройки QoS находятся в этом файле xml.

Теперь, для собственного приложения DDS, я могу установить этот XML-файл, но как я могу установить аналогичный тип файла конфигурации для функции на основе ROS2?

1 ответ

Решение

Вы просматривали материал по адресу: https://github.com/ros2/ros2/wiki/About-Quality-of-Service-Settings? ROS2 имеет ограниченный набор параметров для настройки QoS.

Вы можете добиться большего успеха, установив политики QoS в приложении DDS в соответствии с настройками в ROS2. (Кстати, это место, где RTI Admin Console значительно упрощает работу; она сразу выявляет любые несоответствия QoS между участниками).

Настройки DDS QoS, которые я использовал для обеспечения взаимодействия DDS/ROS2, включают:

  • При использовании ROS2 'Ardent':
    • использовать раздел DDS с именем "rt" (устанавливается в файле QoS в <publisher_qos>)
  • При использовании ROS2 'Bouncy':
    • Префикс названия темы с "rt/"
    • Подавить отправку typeCode (устанавливается в файле QoS в <participant_qos><resource_limits> max_serialized_length для type_code и type_object == 0)
  • Для любого выпуска:
    • Возможно, потребуется включить поддержку неограниченных строк и последовательностей.
    • Может потребоваться включить UDPv6 и отключить транспорты SHMEM

В коде ROS2 RMW не так много настроек QoS; библиотеки Connext будут искать источник пользовательских настроек QoS, используя обычный порядок поиска ( подробно здесь) - это означает, что вы можете предоставить свои собственные настройки QoS для библиотек Connext под ROS2, используя различные методы. Вот что я сделал:

  • Чтобы отключить многоадресную рассылку в ROS2, создайте файл с именем "NDDS_DISCOVERY_PEERS" в каталоге, из которого будут запускаться ваши приложения ROS2 (каталог, в котором вводится и запускается команда ros2). Поместите в этот файл список начальных одноранговых узлов для формата обнаружения (обязательно исключите многоадресную рассылку и shmem), как подробно описано здесь.
    • Мой файл имел: localhost,192.168.1.44
  • Для других настроек QoS поместите в тот же каталог, что и выше, файл "USER_QOS_PROFILES.xml", содержащий настройки QoS, которые вы хотели бы использовать в ROS2. Эти настройки влияют на приложения ROS2, запускаемые из этого каталога.
Другие вопросы по тегам