diff --git a/docs/papers/auto-assembly.md b/docs/papers/auto-assembly.md new file mode 100644 index 0000000..64ec122 --- /dev/null +++ b/docs/papers/auto-assembly.md @@ -0,0 +1,33 @@ +--- +id: auto-assembly +title: 'Фреймворк Auto-Assembly' +--- + +*Оригинал: [Auto-Assembly'2023](https://arxiv.org/pdf/2301.02643.pdf)* + +![](img/autoassembly_arch.png) + +## Генерация артефактов (Artifacts generation) + +Состоит из следующих этапов +- _Анализ конструкции (design analysis)_. Из CAD экспортируется два дизайн-файла: + - Детали целевой сборки и их соединения (joints). Крепёжные детали помечаются специальными ярлыками. + - Та же сборка уже с позициями захватных устройств, приспособлений, кондукторов. В работе используется Fusion API (при этом говорится о CAD-agnostic; наверное, подразумевается, что все другие CAD'ы это API поддерживают). Из этой сборки экспортируется информация о позициях захватных устройств, кондукторов и отвёрток (с их типами) относительно деталей, которые они удерживают и помещается в Tooling Database. +- _Генерация последовательности сборки (assembly sequence generation)_ (В работе используется подход из работы 2012 года - [Assembly planning with automated retrieval of assembly sequences from CAD model information](https://www.researchgate.net/publication/235296802_Assembly_planning_with_automated_retrieval_of_assembly_sequences_from_CAD_model_information)) + - Генерация матрицы смежности + - Генерация последовательности на базе матрицы + - Вычисление геометрической осуществимости по модели сборки +- _Генерация спецификации процесса сборки (bill-of-process, BOP)_. Сначала описание роботизированной ячейки передаётся одновременно как в симулятор, так и в рантайм. Потом происходит сверка заданий на сборку и имеющимся в сцене инструментарием. Если нет подходящих инструментов, то задание не выполняется. Каждая последовательность сборки проходит проверку на согласованность с моделью роботизированной ячейкой, в результате чего формируется валидный bill-of-process, BOP +- _Преобразование BOP в управляющий программный код_ - PL-script, который исполняется сначала в симуляторе, а потом и в runtime. + +## Развёртывание (Deploy) + +Реализует исполнение кода для сборки даталей в физической среде. Ключевым компонентом в этой части является высокоуровневый язык описания процессов (Process language, PL), где описаны функции для взаимодействия с различными сервисами в runtime: +- _Motion Planner_ - осуществляет планирование траекторий движения +- _Robot Controller_ - управление роботом на низком уровне (уровень звеньев и углов поворота) +- _Jig Controller_ - возвращает позицию детали относительно позиции кондуктора или приспособления для захвата +- _Assembly Service_ - предоставляет информацию о крепеже и итоговые позиции деталей относительно начала координат робоячейки +- _Transform Service_ - сервис, возвращающий позицию любого объекта в внутри робоячейки относительно любых других объектов в ней. +- _3D Simulator_ - загружает объекты в из описания робоячейки и визуализирует её состояние +- _Database and Message Bus_ - шина данных для публикации JSON сообщений и хранилище публикация и их хранилище. +Взаимодействие осуществляется в соответствии со входящей в фреймворк схемой данных Factory Control Model (FCM). diff --git a/docs/papers/img/autoassembly_arch.png b/docs/papers/img/autoassembly_arch.png new file mode 100644 index 0000000..a50f481 Binary files /dev/null and b/docs/papers/img/autoassembly_arch.png differ diff --git a/docs/robossembler-framework.md b/docs/robossembler-framework.md index 2e72d3e..5d0c8c2 100755 --- a/docs/robossembler-framework.md +++ b/docs/robossembler-framework.md @@ -75,9 +75,11 @@ title: Фреймворк Робосборщик ## Аналоги -Похожим проектом является фреймворк [ConnTact](https://github.com/swri-robotics/ConnTact), созданный при поддержке Национального института стандартов и технологий США (NIST). Этому фреймворку присущи следующие недостатки: +[ConnTact](https://github.com/swri-robotics/ConnTact). Создан при поддержке Национального института стандартов и технологий США (NIST). Этому фреймворку присущи следующие недостатки: - Акцент на контактных операциях, что существенно ограничивает спектр его применения для прикладных задач - Поддерживаются только роботы с датчиками силы, нет других источников обратной связи в роботизированной системе - Не имеет инструментов интеграции с CAD-системами и системами планирования. Последовательность сборки задаётся вручную - Не поддерживает ROS2 - Не поддерживает алгоритмы машинного обучения. + +__AutoAssembly__. Разрабатывается командой робототехников из компании Arrival, известного производителя электромобилей с R&D командой из Санкт-Петербурга. Фреймворк предназначен для автоматической роботизированной сборки напрямую из CAD. В научной публикации с описанием фреймворка представлена практическая реализация на примере двух манипуляторов Universal Robotics. Исходный код проекта не публикуется; многие технические решения (спецификации, схемы данных, описания языков, тип базы данных) неизвестны. Более подробный обзор см. по [ссылке](docs/papers/auto-assembly). \ No newline at end of file