# Веб-сервис Robossembler Сервис для сопровождении процесса/жизненного цикла разработки программ сборки изделий роботами и интеграции программных модулей [Фреймворка Робосборщик](https://gitlab.com/robossembler/framework). ## Мотивация Для корректной работы фреймворка необходима согласованная работа разнообразных программный модулей – результаты работы одних модулей должны передаваться через стандартизированные интерфейсы другим модулям. Результатами работы программных модулей являются исполняемые файлы программ, файлы 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. Исходный код проекта разработан в соответствии с концепцией «Чистой архитектуры», описанной Робертом Мартином в одноимённой книге. Данный подход позволяет систематизировать код, отделить бизнес-логику от остальной части приложения. # Установка ## Требования - Node.js - MongoDB - BlenderProc (для генерации датасетов) ## Клонирование проекта ```bash git clone https://gitlab.com/robossembler/webservice ``` ## Настройка переменных окружения Для работы Генератора Датасетов нужно задать следующие переменные в окружении `bash` ```bash export PYTHON_BLENDER="/путь_к_директории_с_файлами_из/rcg_pipeline" export PYTHON_BLENDER_PROC="/путь_к_генератору_датасетов_/renderBOPdataset.py" export PYTHON_EDUCATION="absolute_path/webp/education.py" export PYTHON_ROBOT_BUILDER="/путь_к_генератору_датасетов_/robot_builder.py" export GET_INTERFACES="/путь_к_директории_WEB_P/get_interfaces.py" ``` ## Запуск сервера Из директории `server` в корне репозитория ```bash npm run dev ``` ## Сборка и запуск UI Из директории `ui` в корне репозитория ```bash npm i && npm run build && npm run deploy ```