Добавлены модули создания проектов сборки и подготовки датасетов

This commit is contained in:
IDONTSUDO 2024-04-23 10:32:43 +00:00 committed by Igor Brylyov
parent 40b9b116c1
commit f57438b404
173 changed files with 6750 additions and 1857 deletions

View file

@ -1,15 +1,21 @@
# Веб-сервис для отладки Robossembler Framework
# Веб-сервис Robossembler
Необходимость разработки сервиса хранения и просмотра пакетов обусловлена тем, что для корректной работы фреймворка «Робосборщик» необходима согласованная работа разнообразных программный модулей результаты работы одних модулей должны передаваться через стандартизированные интерфейсы другим модулям. Как правило, результатами работы программных модулей являются исполняемые файлы программ, файлы 3D-моделей в форматах STL, FBX, Collada/DAE, OBJ, PLY и т.п., конфигурационные файлы в форматах yaml, json, ini, txt, веса нейронных сетей, описания роботов/сцен в форматах URDF, SDF, MJCF и т.д.. При этом необходимо соблюсти условие соответствия данных файлов/документов друг другу, иметь возможность формировать и отслеживать цепочки вычислений (конвейер, pipeline), которые их порождают.
Сервис для сопровождении процесса/жизненного цикла разработки программ сборки изделий роботами и интеграции программных модулей [Фреймворка Робосборщик](https://gitlab.com/robossembler/framework).
Данный веб-сервис выполняет следующие функции:
## Мотивация
- Создание процессов (process) команд, запускающих определённые вычисления
- Создание триггеров (trigger) событий, запускающихся по завершении процесса
- Создание конвейеров вычислений (pipeline) цепочек из процессов
- Создание проектов (project) набора конвейеров для выполнения прикладных задач
- Хранение и просмотр артефактов, порождаемых процессами, а также отслеживание их жизненного цикла
- Запуск процессов/конвейеров и отслеживание их состояния
Для корректной работы фреймворка необходима согласованная работа разнообразных программный модулей результаты работы одних модулей должны передаваться через стандартизированные интерфейсы другим модулям. Результатами работы программных модулей являются исполняемые файлы программ, файлы 3D-моделей в форматах STL, FBX, Collada/DAE, OBJ, PLY и т.п., конфигурационные файлы в форматах yaml, json, ini, txt, веса нейронных сетей, описания роботов/сцен в форматах URDF, SDF, MJCF и т.д.
## Состав модулей сервиса
Каждая фаза жизненного цикла имеет своё представление в виде страницы в веб-сервисе:
1. Создание проекта сборки, загрузка CAD-проекта изделия - "Проекты", вкладки "Детали", "Сборки"
2. Подготовка и генерация датасета для навыков машинного зрения - Вкладка "Датасеты"
3. Конфигурация сцены - Scene Builder - Вкладка "Сцена"
4. Создание дерева поведения из навыков - Вкладка "Поведение"
5. Просмотр результатов симуляции - Вкладка "Симуляция"
6. Оценка производительности навыков Вкладка "Анализ"
Веб-сервис написан на языке TypeScript для среды исполнения NodeJS. Для хранения артефактов используется база данных MongoDB. Исходный код проекта разработан в соответствии с концепцией «Чистой архитектуры», описанной Робертом Мартином в одноимённой книге. Данный подход позволяет систематизировать код, отделить бизнес-логику от остальной части приложения.
@ -19,11 +25,35 @@
- Node.js
- MongoDB
- BlenderProc (для генерации датасетов)
## Сборка UI
## Клонирование проекта
- `cd ui && npm i && npm run build && npm run deploy`
```bash
git clone https://gitlab.com/robossembler/webservice
```
# Запуск сервиса
## Настройка переменных окружения
- `cd server && npm run dev`
Для работы Генератора Датасетов нужно задать следующие переменные в окружении `bash`
```bash
export PYTHON_BLENDER="путь_к_директории_сайлами_из_rcg_pipeline"
export PYTHON_BLENDER_PROC="путь_к_генераторуатасетов_renderBOPdataset.py"
```
## Запуск сервера
Из директории `server` в корне репозитория
```bash
npm run dev
```
## Сборка и запуск UI
Из директории `ui` в корне репозитория
```bash
npm i && npm run build && npm run deploy
```