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

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

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


person Vishal Rawat    schedule 03.09.2018    source источник


Ответы (1)


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

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

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

  • If using ROS2 'Ardent':
    • use a DDS partition named "rt" (set in QoS file under <publisher_qos>)
  • If using ROS2 'Bouncy':
    • Prefix the topic names with "rt/"
    • Запретить отправку typeCode (установить в файле QoS в <participant_qos><resource_limits> max_serialized_length для type_code и type_object == 0)
  • For either release:
    • May need to include support for unbounded strings and sequences.
    • Может потребоваться включить UDPv6 и отключить транспорты SHMEM

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

  • To disable multicast in ROS2, create a file named "NDDS_DISCOVERY_PEERS" in a directory from which your ROS2 application(s) will be launched (directory where the ros2 command is entered and run). Place in this file a list of the initial peers for discovery (make sure to exclude multicast and shmem) format as detailed here.
    • My file had: localhost,192.168.1.44
  • Для других настроек QoS поместите в тот же каталог, что и выше, файл «USER_QOS_PROFILES.xml», содержащий настройки QoS, которые вы хотите использовать в ROS2. Эти настройки повлияют на приложения ROS2, запускаемые из этого каталога.
person neil-rti    schedule 05.09.2018
comment
Да, я уже читал настройки QoS, поддерживаемые ROS. Проблема в том, как мне сообщить ROS2, что нельзя использовать многоадресную рассылку или разделяемую память? Я уже применил эти настройки к собственному приложению DDS, но означает ли это, что мне не нужно внедрять их на стороне ROS2? т.е. достаточно настроить только одного участника? - person Vishal Rawat; 06.09.2018
comment
это был точный ответ, который я искал. Спасибо. Я попробую и вернусь к вам снова :) - person Vishal Rawat; 07.09.2018