add env_manager folder
This commit is contained in:
parent
2d8c7217fe
commit
0a868b5163
135 changed files with 18342 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 508 KiB |
Binary file not shown.
After Width: | Height: | Size: 243 KiB |
Binary file not shown.
After Width: | Height: | Size: 267 KiB |
Binary file not shown.
After Width: | Height: | Size: 602 KiB |
55
env_manager/docs/about/index.ru.md
Normal file
55
env_manager/docs/about/index.ru.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
# Модуль управления виртуальными средами
|
||||
---
|
||||
|
||||
При управлении роботами в симуляторе 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)). Дополнительно поддерживается **рандомизация объектов**, позволяющая случайным образом изменять их цвет и положение в сцене.
|
||||
|
||||
Помимо объектов, с помощью пакета можно настраивать:
|
||||
- **Источники света**
|
||||
- **Сенсоры**
|
||||
- **Роботов**
|
||||
- **Рабочие поверхности**
|
||||
|
||||
Каждый тип объекта обладает как параметрами размещения, так и параметрами рандомизации. Для камер предусмотрены настройки публикации данных:
|
||||
- изображения глубины
|
||||
- цветного изображения
|
||||
- облаков точек.
|
||||
|
||||
Параметры рандомизации могут включать в себя положение, ориентацию в заданных пользователем пределах, а также. Для рабочей поверхности также включается возможность рандомизации текстуры, а для робота имеется возможность рандомизировать его положения, в том числе конфигурацию и расположение базы робота.
|
||||
|
||||
## Архитектура и спецификации
|
||||
|
||||
Основная структура модуля включает обертки для добавления объектов в сцену. Полная спецификация доступных параметров и взаимосвязей между классами представлена в папке конфигураций. Для каждой категории объектов используются отдельные датаклассы, что упрощает организацию и модификацию параметров.
|
||||
|
||||
Диаграмма классов конфигурации сцены представлена ниже:
|
||||
|
||||

|
||||
*Диаграмма классов конфигурации сцены*
|
||||
|
||||
## Примеры
|
||||
|
||||
Ниже представлены различные сцены, созданные с использованием возможностей **env_manager**:
|
||||
|
||||
| **Сценарий 1** | **Сценарий 2** | **Сценарий 3** |
|
||||
|-----------------|-----------------|-----------------|
|
||||
|  |  |  |
|
48
env_manager/docs/getting_started/getting_started.ru.md
Normal file
48
env_manager/docs/getting_started/getting_started.ru.md
Normal file
|
@ -0,0 +1,48 @@
|
|||
# Начало работы с rbs_gym
|
||||
|
||||
Пакет входит в проект Robossembler. Для установки пакета необходимо произвести установку всего проекта по [инструкции](https://gitlab.com/robossembler/robossembler-ros2/-/blob/b109c97b5c093e665135179668cb2091e6708387/docs/ru/installation.md)
|
||||
|
||||
## Запуск тестовой среды
|
||||
|
||||
Для запуска тестовой среды необходимо выполнить команду
|
||||
|
||||
```sh
|
||||
ros2 launch rbs_gym test_env.launch.py base_link_name:=base_link ee_link_name:=gripper_grasp_point control_space:=task control_strategy:=effort interactive:=false
|
||||
```
|
||||
|
||||
Это продемонстрирует что все установилось и работает адекватно. Для визуализации можно воспользоваться графическим клиентом Gazebo в новом терминале:
|
||||
```sh
|
||||
ign gazebo -g
|
||||
```
|
||||
|
||||
## Запуск обучения тестовой среды
|
||||
|
||||
Запуск обучения производится следующей командой:
|
||||
|
||||
```sh
|
||||
ros2 launch rbs_gym train.launch.py base_link_name:=base_link ee_link_name:=gripper_grasp_point control_space:=task control_strategy:=effort interactive:=false
|
||||
```
|
||||
|
||||
Команда запустит обучения алгоритмом SAC. Полный перечень аргументов можно посмотреть общим флагом `--show-args` применимым ко всем файлам запуска запускаемым посредством команды `ros2 launch`.
|
||||
|
||||
```sh
|
||||
ros2 launch rbs_gym train.launch.py --show-args
|
||||
```
|
||||
|
||||
Метрики качества обучения можно наблюдать в папке `logs`, которая автоматически создастся в том месте откуда Вы запускали обучение агента. Для этого надо перейти в эту директорию и выполнить команду
|
||||
|
||||
```sh
|
||||
cd logs
|
||||
aim up
|
||||
```
|
||||
|
||||
Это выведет в консоль ссылку на веб интерфейс [Aim](https://aimstack.io/) который необходимо открыть в браузере.
|
||||
|
||||
## Модификация сцены
|
||||
|
||||
Обычно среда всегда прочно связана со сценой. Поэтому для модификации сцены часто также необходимо вносить правки и в среду
|
||||
|
||||
Сцена задается как конфигурация [`env_manager`](../about/index.ru.md) пример конфигурации для сцены можно подглядеть [тут](../../rbs_gym/rbs_gym/envs/__init__.py) для тестовой среды
|
||||
|
||||
В настоящий момент функционал активно разрабатывается в дальнейшем появится более удобный способ модификации сцены и модификации параметров среды с использованием [Hydra](https://hydra.cc/)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue