Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

ROS2 + DDS:Полевое руководство по взаимодействию

Хотя ROS 2 спроектирован так, чтобы использовать DDS в качестве инфраструктуры подключения (дополнительную информацию см. В моем предыдущем сообщении в блоге - ROS 2 + DDS:When Ecosystems Merge), процесс интеграции имеет несколько особенностей, которые необходимо учитывать, чтобы получить чистую систему DDS. для беспрепятственного взаимодействия с системой ROS 2. Этот блог служит практическим руководством по совместимости и охватывает некоторые из известных проблем, связанных с выпуском ROS 2 «Bouncy Bolson» (июль 2018 г.), и способы их решения.

Обновления с ROS 2

ROS 2 - это развивающийся проект. В будущих выпусках ROS 2 могут быть изменения, которые еще больше повлияют на совместимость. При этом всегда помните, что при использовании rmw_connext_cpp слой под ROS 2 - это все еще Connext DDS. Мощность и гибкость, присущие библиотекам Connext, по-прежнему доступны с использованием тех же методов, что и в реализации без ROS. Вы контролируете свою систему.

Вот список настроек, которые могут повлиять на совместимость между чистыми системами DDS и ROS 2 (ROS 2 «Bouncy Bolson», если не указано иное):

Имена тем и разделы

ROS 2 идентифицирует пространство имен данных темы, кодируя его в имени или разделе DDS темы. Темы пользовательских данных будут в пространстве имен «rt» (тема ROS), закодированном в DDS как:

Типы данных тем

При использовании уровня Connext RMW в ROS2 вы могли заметить, что все темы ROS2 «rt / *» сообщаются во время обнаружения как имеющие один и тот же тип данных:

Этот тип определения вставляется слоем ROS2 rmw_connext_cpp для представления сериализации данных темы, даже если данные темы не изменились. При попытке установить соединение с темой DDS с использованием исходного типа данных произойдет несоответствие QoS, препятствующее подключению.

Самым простым решением является подавление этого объявления кода типа от участников ROS2. Это можно сделать, добавив файл USER_QOS_PROFILES.xml в каталог, используемый для запуска участников ROS2. Этот файл содержит настройки QoS для подавления совместного использования кода типа и типа объекта, например:

Обратите внимание, что в этом файле также устанавливается надежность «Best Effort» - это только пример отправной точки.

Также обратите внимание, что этот файл QoS влияет только на участников ROS2, которые были запущены для того же каталога, что и файл QoS. При необходимости каждый участник ROS2 может иметь свой собственный файл QoS в отдельном каталоге.

Выбор транспорта

Подключение системы DDS к системе ROS2 может привести к появлению предупреждений о неадресуемых локаторах / транспортных средствах, которые не установлены. Это результат того, что участники имеют разные списки доступных транспортов, например, участник A (udpv4) обнаруживает участника B (udpv4, udpv6); Будет выдано предупреждение о том, что участник A не сможет подключиться с помощью udpv6.

Выбор транспорта с помощью Connext RMW под ROS2 использует те же методы, что и в системе, состоящей только из Connext:

  1. Установите разрешенные транспорты в файле USER_QOS_PROFILES.xml, добавив в раздел , например:

    UDPV4 | SHMEM

  2. Установите начальные одноранговые узлы (и включите / отключите многоадресную рассылку), добавив файл «NDDS_DISCOVERY_PEERS» в каталог, используемый для запуска приложения. Текстовый файл должен содержать разделенный запятыми список желаемых одноранговых узлов для обнаружения, например: localhost, 192.168.1.12, shmem:// (в этом примере отключается многоадресное обнаружение)

Выбор RMW в ROS2

Обязательно установите переменную среды, чтобы выбрать Connext в качестве уровня RMW в ROS2:

RMW_IMPLEMENTATION =rmw_connext_cpp

Это также можно передать в командной строке при запуске приложений ROS2, например:

RMW_IMPLEMENTATION =rmw_connext_cpp ros2 запустить demo_nodes_cpp Talker

Безграничная поддержка

В некоторых темах ROS2 используются неограниченные последовательности и строки. Приложения DDS, которые стремятся к взаимодействию с использованием этих тем, должны будут включить «неограниченную поддержку» в генераторе кода DDS.

Взгляд в будущее с RTI

Следите за новостями в следующей статье из этой серии, которая покрывает важный (хотя и временный) пробел в линейке ROS2:запись и воспроизведение тематических данных.

Если вы готовы начать работу с командой RTI и улучшить свои системы связи, свяжитесь с нами сегодня. Наши специалисты готовы вам помочь.


Интернет вещей

  1. Руководство по лазерной маркировке
  2. Open DDS против программного обеспечения RTI DDS
  3. ROS2 + DDS:сыграйте снова
  4. Интеграция ROS2 + DDS:при слиянии экосистем | RTI
  5. Робот ROS
  6. Руководство по быстрому производству
  7. В пути с IoT
  8. Руководство для покупателей промышленных платформ Интернета вещей
  9. Руководство по элементам жесткости для печатных плат
  10. Ваше руководство по обслуживанию и ремонту тяжелой техники на месте