Сервис для сопровождения процесса/жизненного цикла разработки программ сборки изделий роботами и интеграции программных модулей Фреймворка Робосборщик
Find a file
2024-08-21 16:15:54 +03:00
.vscode alexander 2024-08-21 16:15:54 +03:00
server alexander 2024-08-21 16:15:54 +03:00
ui alexander 2024-08-21 16:15:54 +03:00
web_p alexander 2024-08-21 16:15:54 +03:00
.DS_Store deleted unnecessary files 2024-04-09 16:31:25 +03:00
.gitignore alexander 2024-05-02 17:36:44 +03:00
.prettierrc progress 2024-04-15 18:24:44 +03:00
README.md alexander 2024-08-21 16:15:54 +03:00

Веб-сервис Robossembler

Сервис для сопровождении процесса/жизненного цикла разработки программ сборки изделий роботами и интеграции программных модулей Фреймворка Робосборщик.

Мотивация

Для корректной работы фреймворка необходима согласованная работа разнообразных программный модулей результаты работы одних модулей должны передаваться через стандартизированные интерфейсы другим модулям. Результатами работы программных модулей являются исполняемые файлы программ, файлы 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 (для генерации датасетов)

Клонирование проекта

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"
export PYTHON_ROBOT_BUILDER="/путь_к_генераторуатасетов_/robot_builder.py"
export GET_INTERFACES="/путь_к_директории_WEB_P/get_interfaces.py"

Запуск сервера

Из директории server в корне репозитория

npm run dev

Сборка и запуск UI

Из директории ui в корне репозитория

npm i && npm run build && npm run deploy