robossembler.org/docs/software/webservice.md

41 lines
No EOL
6.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

---
title: Веб-сервис Robossembler
---
Исходный код: https://gitlab.com/robossembler/webservice
Основная прикладная задача сервиса - сопровождение процесса/жизненного цикла генерации датасетов для множества деталей. Сервис "связывает" воедино процессы разработки управляющих программ для роботов. Каждая фаза жизненного цикла имеет своё представление в виде страницы в веб-сервисе. Переключение между фазами осуществляется через нажатие соответствующей вкладки.
## Основные функции
- Создание проекта сборки
- Подготовка и генерация датасета
- Конфигурация сцены - Scene Builder
- Создание дерева поведения из навыков
- Просмотр результатов симуляции
- Оценка производительности обучения навыков
## Основные компоненты
Веб-сервис включает в себя серверную и клиентскую части. Серверная часть состоит из NodeJS приложения и документ-ориентированной базы данных MongoDB. Она служит для запуска всех необходимых процессов генерации датасетов или машинного обучения в конвейере подготовки роботизированных программ сборки, хранения и обеспечения доступа к исходным и генерируемым данным. Клиентская часть представляет собой браузерное приложение (веб-интерфейс), написанное на языке TypeScript, которое позволяет создавать, конфигурировать и запускать разнообразные процессы вычисления - генерации синтетических датасетов и обучения. Каждый запущенный процесс вычисления отображается в веб-интерфейсе соответствующим элементом интерфейса типа «карточка» (card), который позволяет с помощью модуля оценки производительности перейти к отображению логов обучения.
## Конфигуратор навыков
Веб-сервис позволяет создавать шаблоны навыков, описывать их параметры и добавлять сколь угодное количество параметризированных навыков для прикладных задач. Каждый навык содержит команды запуска (ros2 launch), параметры конфигурирования и интерфейсы для взаимодействия с ним в ходе исполнения.
![](img/web_create_skill.jpg)
## Запуск процессов вычислений/обучения
Веб-сервис позволяет создавать типы процессов, запускать их экземпляры для конкретных навыков и публиковать результаты в веб-интерфейсе. Например, типом процесса может быть «Обучение навыку обнаружения объектов с помощью YOLOv8» или «Обучение навыку планирования движений робота с помощью алгоритма Soft-Actor-Critic». Для каждого типа процесс задаётся соответствующий набор команд, аргументов/параметров вызова. После сохранения соответствующего типа процесса в интерфейсе для обучения появляется возможность создать конкретный процесс, задав требуемые навыки. Конкретным процессом может быть «Обучение навыку обнаружения детали N с помощью метода YOLOv8», который, будучи запущенным со всеми необходимыми параметрами, запускает вычисления с последующим сохранением результатов в виде логов обучения, файлами моделей весов нейронной сети и т. п. артефактами.
Типы процессов и формы заполнения параметров создаются с помощью Form Builder — специального программного модуля серверной части веб-сервиса, который осуществляет разбор конфигурационного файла формы в json-подобном формате и автоматически создаёт соответствующий ему графический веб-интерфейс для заполнения без необходимости править конфигурационные файлы вручную, что позволяет снизить шансы на ошибку при вводе данных. Для каждого процесса может быть задана мета-модель параметров под названием «context» и сама модель параметров под названием «result». В мета-модели описываются основные типы данных. На снимке экрана ниже представлен пример навыка обнаружения объектов, для которого задаются параметры ITEM, представляющие собой словарь.
![](img/web_formbuilder.png)
## Редактор деревьев поведения
В состав веб-сервиса входит графический редактор деревьев поведения, который предоставляет возможность создать дерево поведения из тех навыков, которые были получены в ходе подготовки и обучения.
![](img/web_bt_builder.jpg)
![](img/web_bt_builder_2.jpg)