runtime/env_manager/docs/about/index.ru.md

55 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Модуль управления виртуальными средами
---
При управлении роботами в симуляторе Gazebo через фреймворк ROS2 возникает необходимость конфигурировать не только робота-манипулятора, но и саму сцену. Однако стандартный подход, основанный на конфигурационных файлах Gazebo, зачастую оказывается избыточным и недостаточно гибким для динамических сценариев, к которым относится обучение с подкреплением.
**env_manager** — это пакет, предназначенный для конфигурирования сцен в симуляторе Gazebo, предоставляющий более удобный и гибкий подход к созданию и настройке симуляционных сред.
## Возможности пакета
С последнего обновления модуль был полностью переработан. Если ранее его функции ограничивались указанием объектов, находящихся в среде, для работы в ROS2, то теперь он предоставляет инструменты для:
- полного конфигурирования сцены,
- настройки объектов наблюдения для ROS2.
Конфигурация осуществляется с использованием **датаклассов** или **YAML-файлов**, что соответствует декларативному подходу описания сцены. Это делает процесс настройки интуитивно понятным и легко масштабируемым. Пример файла описания сцены, а также файл с конфигурацией по умолчанию доступны [здесь](https://gitlab.com/solid-sinusoid/env_manager/-/blob/b425a1b012bc8320bba7b68e5481da187d64d76e/rbs_runtime/config/default-scene-config.yaml).
## Возможности конфигурации
Модуль поддерживает добавление различных типов объектов в сцену, включая:
- **Модель**
- **Меш**
- **Бокс**
- **Цилиндр**
- **Сферу**
Различие между "моделью" и "мешем" заключается в том, находится ли объект в библиотеке **rbs_assets_library** (подробнее о ней см. [соответствующий раздел](https://robossembler.org/docs/software/ros2#rbs_assets_library)). Дополнительно поддерживается **рандомизация объектов**, позволяющая случайным образом изменять их цвет и положение в сцене.
Помимо объектов, с помощью пакета можно настраивать:
- **Источники света**
- **Сенсоры**
- **Роботов**
- **Рабочие поверхности**
Каждый тип объекта обладает как параметрами размещения, так и параметрами рандомизации. Для камер предусмотрены настройки публикации данных:
- изображения глубины
- цветного изображения
- облаков точек.
Параметры рандомизации могут включать в себя положение, ориентацию в заданных пользователем пределах, а также. Для рабочей поверхности также включается возможность рандомизации текстуры, а для робота имеется возможность рандомизировать его положения, в том числе конфигурацию и расположение базы робота.
## Архитектура и спецификации
Основная структура модуля включает обертки для добавления объектов в сцену. Полная спецификация доступных параметров и взаимосвязей между классами представлена в папке конфигураций. Для каждой категории объектов используются отдельные датаклассы, что упрощает организацию и модификацию параметров.
Диаграмма классов конфигурации сцены представлена ниже:
![scene_class_diagramm](./img/scene_data_class_diagram-9c873943a7c4492b3254a24973e1fac2.png)
*Диаграмма классов конфигурации сцены*
## Примеры
Ниже представлены различные сцены, созданные с использованием возможностей **env_manager**:
| **Сценарий 1** | **Сценарий 2** | **Сценарий 3** |
|-----------------|-----------------|-----------------|
| ![one](./img/ar_textured_ground-1f72b8d6cb977cdca352bd6e81a3cd7d.png) | ![two](./img/ar_textured_ground2-79b89f8247de2d0e663dad39e151eeac.png) | ![three](./img/rbs_texture_ground_and_spawned_objects-38c103bb6197006d9decdb54fec2404f.png) |