robossembler.org/docs/technologies/assembly-sequence-planning-overview.md

291 lines
31 KiB
Markdown
Raw Normal View History

---
id: ASP-overview
title: 'Планирование последовательности сборки'
---
## Введение
Сборка - узкое место в жизненном цикле многих продуктов. Предполагаемое время сборки занимает 20-50 % от общего времени производства, в то время как стоимость сборки составляет около 20-30 % от общей стоимости (Xu et al., 2012). Планирование последовательности сборки имеет решающее значение для обеспечения успеха продукта, особенно для сложных продуктов, таких как автомобили, корабли и аэрокосмическая продукция (Hou et al., 2018).
В данной статье рассмотрены актуальные исследования по автоматическому планированию последовательности сборки (Assembly Sequence Planning, ASP).
## Основные методы
На базе статьи __A review on assembly sequence generation and its automation__ - Bahubalendruni, Biswal (India) 2016
Множества и подмножества сборочных последовательностей:
* __Liaison-based__ - множества, построенные на графах(матрицах смежности для них) отношений(соединений) деталей. В вершинах графа - детали, в рёбрах - наличие соединения и иногда дополнительная информация о соединении (тип соединения и т.д.)
![](img/liaison-graph.jpg)
* __Feasible__ - геометрически доступные множества. Основаны на т.н. `feasible predicate` - условии, при котором выбранная сборка доступна в геометрическом или механическом смысле. Геометрически доступной считается подсборка, все детали которой могут быть соединены без коллизий. К каждой из подсборок liaison-множества применяется некая функция, которая отвечает в формате Да/Нет на вопрос о возможности той или иной сборки. Таким образом из liasion-матрицы формируется interference-матрица, которая отражает наличие или отсутствие коллизий между отдельными деталями.
* __Stable__ - множества устойчивых (не разваливающихся) подсборок. Могут разделяться на нестабильные, частично стабильные, полностью стабильные.
* __Optimal__ - оптимальные по отношению к целевой функции (стоимость, энергоёмкость, смены инструмента, операции). Часто инженеру нужно выбрать между несколькими допустимыми и стабильными последовательностями сборки, поэтому применяется алгоритм оптимизации. Сущестует множество типов алгоритмов оптимизации (ACO: Ant Colony Optimization, GA: Genetic Algorithm, PSO: Particle Swarm Optimization, MA: Memetic Algorithm, IA: Immune Algorithm, NN: Neural Networks, GSA: Genetic Simulated Annealing, FF: Firefly Algorithm, FW: Fireworks, MILP: Mixed Integer Linear Programming, MIP: Mixed Integer Programming), которые применяются в сочетании с различными входными данными (геометрические отношения, ограничения приоритета, информация о приспособлениях и подсборках) и целевыми функциями. Полная таблица исследований приведена в таблице 3 из работы (_Bahubalendruni, Biswal '2016_). Там же приводится статистика самых популярных:
* входных данных - `Liaison` и `Geometrical feasibility` матрицы
* алгоритмов оптимизации - Генетические алгоритмы в 40% исследований
* целевых функций - минимизация стоимости и количества изменений направлений сборки.
Отношения вложенности между указанными выше сборочными последовательностями
![](img/assembly-sequence-sets.jpg)
Современные CAD-системы позволяют получать следующие данные:
* liaison data - связи между деталями
* assembly cutsets - наборы разрезов
* questions to generate precedence relations - вопросы для создания отношений приоритета
* interference free matrix/interference data - данные о помехах
* assembly mating conditions - условия сопряжения сборки
* feasible assembly sequence(s) - геометрически допустимые сборочные последовательности
* optimal/near optimal feasible assembly sequence - оптимальные и близкие к оптимальным последовательности
2021-12-16 14:57:48 +03:00
Большинство методов планирования последовательностей сборки (Assembly Sequence Planning, ASP) основаны на графах. На иллюстрации ниже показаны пример сборки (a) и соответствующие ему `blocking-граф` (b), `AND/OR-граф` или [and-or tree](https://en.wikipedia.org/wiki/And%E2%80%93or_tree) (c), `liaison-граф` (d). Граф Liaison часто применяется как входной в ASP-систем.
![](img/assembly_graph_types.jpg)
## Обзор актуальных исследований
### 3D Model-Based Assembly Sequence Optimization using Insertionable Properties of Parts - 2020
Kento Tariki, Takuya Kiyokawa, Gustavo Alfonso Garcia Ricardez, Jun Takamatsu, Tsukasa Ogasawara (Japan)
http://dx.doi.org/10.1109/SII46433.2020.9026210
__Исходные данные__: 3D-модель в формате STEP
__Алгоритм__: генетический алгоритм с двумя типами функций оценки (Fitness Functions). Также применяется Insertion Matrix (матрица вставки, IM), где подразделяются детали по признаку папа/мама. Insertion Matrix вычисляется из CAD-модели с помощью функций библиотеки `PythonOCC`:
* Функция `BRepAdaptor_Surface` извлекает информацию о поверхности детали и показывает её тип (плоскость, цилиндр, конус)
* Деталь классифицируется по признаку мама/папа
* В координате центра отверстия детали типа "мама" создаётся маленький куб и если какая-либо деталь имеет с ней общую точку (это вычисляется с помощью функции `BRepAlgoAPI_Common`), то она помещается в IM
* Функция `brepgprop_VolumeProperties` используется, чтобы определить, что общий объём больше нуля. И если она возвращает True, то деталь помещается в IM.
На рисунке ниже показан пример создания IM. Красная деталь типа "мама", зелёный куб находится в координате центра отверстия детали типа "мама", жёлтая деталь типа "папа".
![](img/insertion_matrix_gen.jpg)
__Полевые испытания__: использовались робот COBOTTA и ROS/MoveIt. Для примера использовалась в том числе модель из `World Robot Summit Assembly Challenge 2018`.
### Assembly Sequence Planning for Motion Planning - 2016
Weiwei Wan, Kensuke Harada, Kazuyuki Nagata
https://arxiv.org/pdf/1609.03108.pdf
__Исходные данные__: mesh-модель манипулятора, mesh-модели деталей, относительные позиции между деталями в сборке, целевая позиция сборки
__Алгоритм__: формируются все возможные подсборки и для каждой вычисляются:
* стабильность (stability)
* хватабельность (graspability) - число доступных способов захвата данным приспособлением
* собираемость (assemblability).
![](img/wan_ASP_algorithm.jpg)
Алгоритм позволяет найти некоторые оптимальные порядки и направления сборки, которые
1. Стабильны после окончания каждого этапа сборки
2. Имеют множество доступных захватов и гибки к кинематическим ограничениям роботов
3. Устойчивы к ошибкам сборки.
__Результат__:
* Порядок сборки (Assembly order): Какие детали собирать первыми
* Направление сборки (Assembly direction): Как накладывать или вставлять детали
* Доступные способы захвата (Accessible grasps): Как захватывать объекты в ходе сборки
__Полевые испытания__: собрали промышленный переключатель (switch).
### Optimal assembly sequence based on design for assembly (DFA) rules - 2020
Ine Melckenbeeckb, Sofie Burggraevea, Bart Van Donincka, Jeroen Vancraena, Albert Rosicha (EU)
__Исходные данные__: STEP-модель
__Алгоритм__: совместно применяются `AND/OR` и `liaison` графы в сочетании с практиками `Design for Assembly` (DFA).
Для измерения DFA используется метод оценки локального (_local motion_) и глобального (_global or extended motion_) движения. Локальное движение рассматривает зону физического контакта детали; глобальное движение оценивает также пересечения с деталями, не находящимися в зоне контакта, поэтому более трудоёмкое для вычислений. В алгоритме предложен метод двух-этапной оценки возможностей сборки - сначала оценивается локальное движение, а затем для направлений, в которых гарантируется локальное движение, оценивается глобальное движение.
1. Оценка локальных движений (`S-local` DFA score, %) производится с помощью `функций геометрического ядра CAD`, исходя из геометрических свойств деталей.
2. Оценка глобальных движений (`S-global` DFA score, %) производится с помощью рендеринга в `игровом движке Unity 3D`. Алгоритм получает на входе перечень возможных направлений, выявленных в ходе оценки локального движения.
Из локальной и глобальной возможности сборки выводится оценка для использования при генерации последовательности сборки.
Результатом проверки локального движения является `пространство допустимых направлений`. Объем этого пространства представляет собой количество возможных направлений сборки и, следовательно, является показателем простоты сборки. Чтобы использовать это значение в качестве оценки, нормализованный объем подается в непрерывную функцию оценки так, что невозможные сборки приравниваются к 0%, а неограниченная ничем сборка - 100%. С другой стороны, глобальная возможность сборки равна либо 0, либо 1, в которой 1 является сборкой, а 0 - нет.
Общее значение оценки `C-alg` вычисляется как `1/(S-local * S-global)`.
Порядок определения последовательности сборки:
1. STEP-файл
2. Программно генерируется `liaison`-граф, как пространство вершин разных деталей, расстояние между которыми ниже определённого значения (tolerance value)
3. Частичный AND/OR граф
4. Оценка DFA (возможен возврат к п.3). Для уменьшения количество обращений к DFA, разработаны три специальных ad-hoc правила:
* Локальная оценка возможности сборки на определённом шаге не меняется, если добавляемая к подсборке деталь или другая подсборка не соприкасаются с ней. К примеру, мы собрали две подсборки вместе, определив для них local score. Далее, если мы добавим к одной из подсборок деталь, которая не имеет соприкосновений с другой подсборкой, то на данном local score это не отразится;
* Невыполнимый этап сборки никогда не станет выполнимым путем добавления деталей в любой из узлов сборки
* (инверсия предыдущего правила) Выполнимый этап сборки никогда не станет невыполнимым при удалении деталей из любого узла сборки.
5. Последовательность сборки
Пункты 3-4 формируют т.н. алгоритм поиска оптимальной последовательности.
__Полевые испытания__: не проводились
### A System Architecture for Constraint-Based Robotic Assembly with CAD Information - 2018
Mathias Hauan Arbo, Yudha Pane†, Erwin Aertbeliën† and Wilm Decré (EU)
http://dx.doi.org/10.1109/COASE.2018.8560450
__Исходные данные__: CAD-модель с пользовательскими метаданными, в работе не было задачи автоматизации генерации последовательности сборки
__Архитектура__:
![](img/constrained_based_sequence_planner_architecture.jpg)
* `Application Layer` - для `FreeCAD` создана `Task Library`, где имплементированы классы `Положить`, `Вставить`, `Вкрутить`, которые сопоставляются рёбрам `liaison-графа`
* `Process Layer` - `Tasks` (задачи) сопоставляются с `Skills` (навыками). Навыки делятся на `Composed` и `Atomic`. В итоге каждой детали сопоставляются тип задачи из Application Layer, навык (например, `grasp_and_insert`), набор атомарных навыков (move_cartesian gripper, guarded_cartesian, cylinder_insert) и инструмент (gripper). В контексте работы Task - это задача, а Skill - это возможность производства.
* `Control Layer` - реализован на базе [eTaSL](https://etasl.pages.gitlab.kuleuven.be/intro.html) - язык спецификации задач для реактивного управления роботами + [Orocos](https://docs.orocos.org/) - [ROS-совместимый](https://github.com/orocos/rtt_ros2_integration) набор инструментов для управления роботами.
__Полевые испытания__: Собран компрессор с помощью 7-DOF KUKA LBR iiwa 14, pneumatic SCHUNK RH940 parallel gripper.
### Flexible Assembly through Integrated Assembly Sequence Planning and Grasp Planning - 2015
Ulrike Thomas, Theodoros Stouraitis, Maximo A. Roa (Germany)
__Исходные данные__: CAD-модель + база данных захватов для каждой детали в сборке
__Алгоритм__:
![](img/integrated_ASP_and_Grasp_Planning.jpg)
Сначала создаются карты для тестирования геометрической осуществимости (maps for the geometric feasibility tests) или `disassembly maps` по методу `Stereographical Projections of C-Space Obstacles` (стереографических проекций пространственных ограничений) автора U.Thomas, изложенному в [статье](https://ieeexplore.ieee.org/document/1217194) и уже применённой в исследовании 2010 года. Далее генерируются три типа графов: connectivity(liaison), force, hierarchy, из которых выводится AND/OR-граф. Далее `Grasp Planner` использует заранее подготовленную __базу данных захватов для каждой отдельной детали__ и фильтрует те вершины и рёбра `AND/OR-графа`, которые отсутствуют в доступных позициях захвата.
__Полевые испытания__: не проводились. Для симуляций применялся фреймворк `OpenRave` и конструкции из профилей.
### A novel Geometric feasibility method to perform assembly sequence planning through oblique orientations - 2021
Gulivindala Anil Kumar, M.V.A.Raju Bahubalendruni, V.S.S. Vara Prasad, Dara Ashok, K. Sankaranarayanasamy (India)
__Исходные данные__: CAD-модель
__Алгоритм__: акцент делается на методе получения матрицы геометрической доступности после liaison и stability матриц. Алгоритм называется `NASPM`:
![](img/geometric-feasibility-method-2012.jpg)
__Полевые испытания__: нет данных
### ASPW-DRL: assembly sequence planning for workpieces via a deep reinforcement learning approach - 2018
Minghui Zhao, Xian Guo, Xuebo Zhang and Yongchun Fang (China)
По мнению авторов часто используемые классы алгоритмов имеют следующие недостатки:
* Graph search - AND/OR - комбинаторный взрыв по мере увеличения количества деталей, специфичны к задаче и плохо обобщаются
* Knowledge-based - Domain/Problem Ontology - чувствительны к качеству базы знаний, плохо обобщаются
* Heuristic intelligent methods - Simulated annealing, Genetic algorithms, Neural nets - плохо обобщаются
__Исходные данные__: Подготовленная сцена в Gazebo
__Алгоритм__:
![](img/ASPW-DRL.jpg)
__Полевые испытания__: нет данных. Игрушечные модели в Gazebo
### Optimizing assembly sequence planning using precedence graph-based assembly subsets prediction method - 2019
Nan Zhang, Zhenyu Liu and Chan Qiu, Weifei Hu, Jianrong Tan (China)
В работе хорошее введение истории решения проблемы со ссылками.
__Исходные данные__: CAD-модель + `precedence graph` (граф приоритета), который как-то составляется инженером и задаёт приоритеты в порядке сборки деталей; подробности о precedence-графах изложены в работе Yong Wang, De Tian "[A weighted assembly precedence graph for assembly sequence planning](https://link.springer.com/article/10.1007/s00170-015-7565-5)"
__Алгоритм__: [Fireworks](https://en.wikipedia.org/wiki/Fireworks_algorithm)
__Полевые испытания__: нет данных. Замер эффективности алгоритма проводился по модели промышленного образца.
## Доступные программные реализации ASP
2022-12-17 14:54:56 +03:00
https://github.com/atulmishrachdi/AutomatedAssemblyPlanner
### Assembly Planning and Task Planning — Two Prerequisites for Automated Robot Programming - 2010 Во-первых, данные САПР сегментируются на
__Исходные данные__: CAD-модел
__Алгоритм__: Графа на основе примитивов поверхности. После этого генерируется граф формирования контактов, основанный на топологических контактах между
такими поверхностными примитивами.Граф связности. На этом графике узлы представляют объекты; онисчитаются связанными, если расстояние между двумя объектами меньше заданного порогового значения.
После построения этих графов, задача уходит к инженерам проектировщикам, которые в интерфейсе выбирают как обьеденить детали.
__Полевые испытания__: Установить розетку питания на направляющую цилиндра
### A review on assembly sequence generation and its automation - April 2015
Обзор 80 самых значимых статей, по теме планирования сборки. Подвод статистических исследований в этих статьях. Авторы делят проблему всех этих исследований на две глобальные проблемы.
Первое ограничиность методов ИИ. Который не справляется с локальным поиском. Имеет большое время вычислений. Не проверяет все доступные последовательности. А значит что полученная ИИ последовательность, является близко
оптимальной а не глобально оптимизированной.
Второе предикаты снижают количество входных данных. Но сильно влияют на пространство поиска. И иногда приводят к неверным последовательностям.
2022-12-20 14:22:44 +03:00
### Assemble Them All: Physics-Based Planning for Generalizable Assembly by Disassembly (2022)
2022-12-17 14:54:56 +03:00
YUNSHENG TIAN, MIT CSAIL, JIE XU, MIT CSAIL, YICHEN LI, MIT CSAIL, JIELIANG LUO, Autodesk Research, SHINJIRO SUEDA, Texas A&M University, HUI LI, Autodesk Research, KARL D.D. WILLIS, Autodesk Research, WOJCIECH MATUSIK, MIT CSAIL
Основанный на физике подход к планированию сборки. Используется метод сборки-разборки, и моделирование на основе физики для эффективного изучения ограниченного прострастранства поиска.
2022-12-20 14:22:44 +03:00
__Исходные данные__: CAD-модель
2022-12-17 14:54:56 +03:00
__Полевые испытания__: тысячи сборок из витрины Fusion360.
__Алгоритм__: формируется граф, сборки по принципу сборки-разборки. Для каждой новой детали которая участвует в подсборке. Формируются векторы, разборки. Основанные на [ степенях свободы ](https://en.wikipedia.org/wiki/Degrees_of_freedom_(physics_and_chemistry)). Из них получаются вектора разборки. Которые реверсируются, из них получаются вектора сборки.
![ ](img/physics_based_approach_to_finding_vectors.jpg)
## Доступные программные реализации ASP
https://github.com/yunshengtian/Assemble-Them-All
2022-12-20 14:22:44 +03:00
### An integration of neural network and rule-based systems for design and planning of mechanical assemblies (1993)
Авторы предлагают загрузить в нейронную сеть, данные о ранее созданных сборках и их технологических картах. Что бы нейронная сеть обучилась на этих данных и исходя из них. Составляла план сборки.
Так же внедрить нейронную сеть в CAD. Что бы она помогала проектировать такие изедлия которые были бы максимально автоматизированы для сборки.
### On the generation of robotic assembly sequences based on separability and assembly motion stability (1994)
C.K. Shin and H.S.Cho
Метод автоматического создания
последовательностей сборки роботов на основе проверки
разборчивости разбираемой детали. Чтобы получить
возможность разборки детали-кандидата, мы сначала делаем
вывод о направлениях сборки без столкновений, извлекая
разделяемые направления для детали и вычисляя отделимость,
которая дает информацию о том, как легко отделить части из частей.
### A three-stage integrated approach for assembly sequence planning using neural networks (2008)
На первом этапе используется график над графиком и правила преобразования для создания
корректного графа разнесения модели сборки; два графика можно
использовать для представления правильных геометрических зависимостей
между деталями сборки. На втором этапе разрабатывается трехуровневая
реляционная модель для создания полного графа реляционной модели и
матрицы инцидентности. Граф реляционной модели можно дополнительно
преобразовать в диаграмму предшествования сборки (APD), которая
используется для описания отношений предшествования сборки деталей
На третьем этапе используется нейросеть для оптимизации сборки.
проводится тематическое исследование электроприборов для оценки
осуществимости предложенной модели с точки зрения различий основных
характеристик сборки и создания почти оптимальной последовательности
сборки в соответствии с определенными критериями производительности.
__Исходные данные__: CAD-модель(несколько моделей электро приборов)
__Полевые испытания__: Несколько вырабатанных моделей для электро приборов.
### Using memetic algorithms with controlled local search to solve assembly.(2007)
Hwai-En Tseng, Wen-Pai Wang, Hsun-Yi Shih
Сравнение Меметического алгоритма с ГА.
__Алгоритм__: [Мемотический алгоритм](https://en.wikipedia.org/wiki/Memetic_algorithm), Генерация графа сборки основанная на знаниях о соедениях деталей в изделии.
__Полевые испытания__: не известно
__Исходные данные__: идеальнее заранее готовые модели
### A Multi-Agent Evolutionary algorIthm for Connector-Based Assembly Sequence Planning(2011)
Сравнивают Многоагентный эволюционный алгоритм, с други алгоритмами оптимизации.
__Алгоритм__: [Многоагентный эволюционный алгоритм](https://deepai.org/publication/massively-concurrent-agent-based-evolutionary-computing), Генерация графа сборки основанная на знаниях о соедениях деталей в изделии.
__Исходные данные__: идеальнее заранее готовые модели
__Полевые испытания__: не известно