# Фреймворк Робосборщик Фреймворк Робосборщик (Robossembler Framework) предназначен для автоматизации разработки управляющих программ для роботов-манипуляторов, их отладки в виртуальных средах и оценки производительности. Фреймворк состоит из следующих функциональных модулей 1. __Модуль автоматической генерации последовательности сборки__ (`as_generator`) генерирует граф сборки из статической модели изделия с учётом дополнительных опций и ограничений. 2. __Модуль построения технологических карт__ (`pddl_configurator`) использует модели производственного оборудования (робот-манипулятор,3D-принтер) для формирования спецификаций задач в PDDL-совместимом формате для передачи в систему планирования совместно с последовательностью сборки. 3. __Модуль экспорта моделей в виртуальные среды__ (`env_exporter`) (игровые движки, движки физики, системы рендеринга, симуляторы) формирует т.н. ассеты, то есть модели, адаптированные для использования в виртуальных средах (тесселированные или подверженные ретопологии). 4. __Модуль генерации наборов данных__ (`dataset_generator`) аггрегирует данные симуляции для их последующей обработки и машинного обучения с целью развития навыков робота. 5. __Модуль исполнения планов__ управляет движениями и задачами робота в режиме реального времени. Совместимый со стандартом ROS2. Исходный код см. в репозитории [robossembler-ros2](https://gitlab.com/robossembler/robossembler-ros2) 6. __Модуль оценки производительности__ (`benchmark`) агрегирует информацию об эффективности методов получения навыков (вычислительная ресурсоёмкость, размер занимаемого дискового пространства) и эффективности самих навыков (скорость, точность). 7. __Модуль управления виртуальными средами__ управляет запуском подходящих отработки конкретных навыков виртуальных сред. Исходный код см. в репозитории [robossembler-ros2](https://gitlab.com/robossembler/robossembler-ros2) # Генератор последовательности сборки (ASP) Данный программный модуль(cad_parts_adjacency_matrix.py) предназначен для решения задачи планирования сборки. Он формирует граф сборки состоящий из И/ИЛИ и оценивает полученные там решения по набору из 4-ёх формальных правил для проверки сгенерированного графа, давая обратную связь для инженеров-конструкторов. Формальный правила называются предикатами. Модуль ASP предусматривает следующие разновидности предикатов: - __Предикат геометрической осуществимости__. Верен для тех последовательностей сборки, которые удовлетворяют критерию геометрической осуществимости - когда все части графа сборки могут соприкосаться в определенной последовательности без каких либо столконовений. - __Предикат механической осуществимость__. Верна для последовательности сборки, когда инструменты сборки могут осуществлять указанную операцию без каких либо коллизий с изделием. - __Предикат стабильной осуществимости__. Верен для последовательности сборки, когда сборка на каждом из этапов приходит к стабильному состоянию. - __Предикат степеней свободы__. Формируется на основе уже сгенерированных графов/графа сборки. В каких степенях свободы возможно перемещать деталь. # Генерация сцен TODO: составить описание [пример файла описания сцены](docs/scene_generator)