Skip to main content

Модуль управления виртуальными средами

При управлении роботами в симуляторе Gazebo через фреймворк ROS2 возникает необходимость конфигурировать не только робота-манипулятора, но и саму сцену. Однако стандартный подход, основанный на конфигурационных файлах Gazebo, зачастую оказывается избыточным и недостаточно гибким для динамических сценариев, к которым относится обучение с подкреплением.

env_manager — это пакет, предназначенный для конфигурирования сцен в симуляторе Gazebo, предоставляющий более удобный и гибкий подход к созданию и настройке симуляционных сред.

Возможности пакета

С последнего обновления модуль был полностью переработан. Если ранее его функции ограничивались указанием объектов, находящихся в среде, для работы в ROS2, то теперь он предоставляет инструменты для:

  • полного конфигурирования сцены,
  • настройки объектов наблюдения для ROS2.

Конфигурация осуществляется с использованием датаклассов или YAML-файлов, что соответствует декларативному подходу описания сцены. Это делает процесс настройки интуитивно понятным и легко масштабируемым. Пример файла описания сцены, а также файл с конфигурацией по умолчанию доступны здесь.

Возможности конфигурации

Модуль поддерживает добавление различных типов объектов в сцену, включая:

  • Модель
  • Меш
  • Бокс
  • Цилиндр
  • Сферу

Различие между "моделью" и "мешем" заключается в том, находится ли объект в библиотеке rbs_assets_library (подробнее о ней см. соответствующий раздел). Дополнительно поддерживается рандомизация объектов, позволяющая случайным образом изменять их цвет и положение в сцене.

Помимо объектов, с помощью пакета можно настраивать:

  • Источники света
  • Сенсоры
  • Роботов
  • Рабочие поверхности

Каждый тип объекта обладает как параметрами размещения, так и параметрами рандомизации. Для камер предусмотрены настройки публикации данных:

  • изображения глубины
  • цветного изображения
  • облаков точек.

Параметры рандомизации могут включать в себя положение, ориентацию в заданных пользователем пределах, а также. Для рабочей поверхности также включается возможность рандомизации текстуры, а для робота имеется возможность рандомизировать его положения, в том числе конфигурацию и расположение базы робота.

Архитектура и спецификации

Основная структура модуля включает обертки для добавления объектов в сцену. Полная спецификация доступных параметров и взаимосвязей между классами представлена в папке конфигураций. Для каждой категории объектов используются отдельные датаклассы, что упрощает организацию и модификацию параметров.

Диаграмма классов конфигурации сцены представлена ниже:

scene_class_diagramm
Диаграмма классов конфигурации сцены

Примеры

Ниже представлены различные сцены, созданные с использованием возможностей env_manager:

Сценарий 1Сценарий 2Сценарий 3
onetwothree