.vscode | ||
server | ||
ui | ||
web_p | ||
.DS_Store | ||
.gitignore | ||
.prettierrc | ||
p.json | ||
README.md |
Веб-сервис Robossembler
Сервис для сопровождении процесса/жизненного цикла разработки программ сборки изделий роботами и интеграции программных модулей Фреймворка Робосборщик.
Мотивация
Для корректной работы фреймворка необходима согласованная работа разнообразных программный модулей – результаты работы одних модулей должны передаваться через стандартизированные интерфейсы другим модулям. Результатами работы программных модулей являются исполняемые файлы программ, файлы 3D-моделей в форматах STL, FBX, Collada/DAE, OBJ, PLY и т.п., конфигурационные файлы в форматах yaml, json, ini, txt, веса нейронных сетей, описания роботов/сцен в форматах URDF, SDF, MJCF и т.д.
Состав модулей сервиса
Каждая фаза жизненного цикла имеет своё представление в виде страницы в веб-сервисе:
- Создание проекта сборки, загрузка CAD-проекта изделия - "Проекты", вкладки "Детали", "Сборки"
- Подготовка и генерация датасета для навыков машинного зрения - Вкладка "Датасеты"
- Конфигурация сцены - Scene Builder - Вкладка "Сцена"
- Создание дерева поведения из навыков - Вкладка "Поведение"
- Просмотр результатов симуляции - Вкладка "Симуляция"
- Оценка производительности навыков Вкладка "Анализ"
Веб-сервис написан на языке TypeScript для среды исполнения NodeJS. Для хранения артефактов используется база данных MongoDB. Исходный код проекта разработан в соответствии с концепцией «Чистой архитектуры», описанной Робертом Мартином в одноимённой книге. Данный подход позволяет систематизировать код, отделить бизнес-логику от остальной части приложения.
Установка
Требования
- Node.js
- MongoDB
- BlenderProc (для генерации датасетов)
Клонирование проекта
git clone https://gitlab.com/robossembler/webservice
Настройка переменных окружения
Для работы Генератора Датасетов нужно задать следующие переменные в окружении bash
export PYTHON_BLENDER="/путь_к_директории_с_файлами_из/rcg_pipeline"
export PYTHON_BLENDER_PROC="/путь_к_генератору_датасетов_/renderBOPdataset.py"
export PYTHON_EDUCATION="absolute_path/webp/education.py"
Запуск сервера
Из директории server
в корне репозитория
npm run dev
Сборка и запуск UI
Из директории ui
в корне репозитория
npm i && npm run build && npm run deploy