Настройка файла конфигурации 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>
)
- использовать раздел DDS с именем "rt" (устанавливается в файле 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, запускаемые из этого каталога.