Merge remote-tracking branch 'origin/tessellation_intro' into cad2engine
This commit is contained in:
commit
993723a622
8 changed files with 159 additions and 6 deletions
|
@ -40,6 +40,8 @@ title: 'Планирование последовательности сборк
|
|||
|
||||

|
||||
|
||||
## Доступные программные реализации
|
||||
- Python-скрипты для генерации AND/OR-графа - https://github.com/wzl-muenker/AOG-Generation
|
||||
|
||||
## Обзор актуальных исследований
|
||||
|
||||
|
@ -192,7 +194,117 @@ __Алгоритм__: [Fireworks](https://en.wikipedia.org/wiki/Fireworks_algori
|
|||
|
||||
__Полевые испытания__: нет данных. Замер эффективности алгоритма проводился по модели промышленного образца.
|
||||
|
||||
### Assembly Planning and Task Planning — Two Prerequisites for Automated Robot Programming - 2010
|
||||
|
||||
## Доступные программные реализации ASP
|
||||
__Исходные данные__: CAD-модель
|
||||
|
||||
https://github.com/atulmishrachdi/AutomatedAssemblyPlanner
|
||||
__Алгоритм__: Данные САПР сегментируются на примитивы (см. [Формирование графа на основе примитивов поверхностих](https://en.wikipedia.org/wiki/Geometric_primitive)), после чего генерируется граф из топологических контактов между такими поверхностными примитивами - Граф связности, узлами которого являются объекты. Объекты считаются связанными, если расстояние ними меньше заданного порогового значения. После построения этих графов, задача уходит к инженерам проектировщикам, которые в интерфейсе выбирают как объединить детали.
|
||||
|
||||
__Полевые испытания__: Операция по установке розетки питания на направляющую цилиндра
|
||||
|
||||
### A review on assembly sequence generation and its automation - 2015
|
||||
|
||||
Обзор 80 статей по теме планирования последовательности сборки. Подвод статистических исследований в этих статьях. Авторы делят проблему всех этих исследований на две глобальные проблемы:
|
||||
1. Ограниченность методов ИИ, который не справляется с локальным поиском. Метод не проверяет все доступные последовательности, а значит что полученная ИИ последовательность является близко оптимальной, а не глобально оптимальной. Также метод достаточно ресурсоёмкий.
|
||||
2. Предикаты снижают количество входных данных, но сильно влияют на пространство поиска. И иногда приводят к неверным последовательностям.
|
||||
|
||||
### Assemble Them All: Physics-Based Planning for Generalizable Assembly by Disassembly - 2022
|
||||
|
||||
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
|
||||
|
||||
Основанный на физике подход к планированию сборки. Используется метод сборки-разборки и моделирование на основе физики для эффективного изучения ограниченного пространства поиска.
|
||||
|
||||
__Исходные данные__: CAD-модель
|
||||
|
||||
__Полевые испытания__: тысячи сборок из набора Fusion360
|
||||
|
||||
__Алгоритм__: Формируется граф сборки по принципу сборки-разборки. Для каждой новой детали, которая участвует в подсборке, формируются векторы разборки, основанные на [степенях свободы](https://en.wikipedia.org/wiki/Degrees_of_freedom_(physics_and_chemistry)). Из них получаются вектора разборки, которые реверсируются и из них получаются вектора сборки.
|
||||
|
||||

|
||||
|
||||
__Исходный код__: https://github.com/yunshengtian/Assemble-Them-All
|
||||
|
||||
### 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), генерация графа сборки основанная на знаниях о соедениях деталей в изделии.
|
||||
|
||||
__Исходные данные__: идеальнее заранее готовые модели
|
||||
|
||||
__Полевые испытания__: неизвестно
|
||||
|
||||
### Planning Assembly Sequence with Graph Transformer - 2022
|
||||
|
||||
Первым шагом является определение направления системы координат. Основное направление сборки ориентируется согласно большинству выступов блоков, поэтому оно определяется как положительное направление оси Z (по вертикали). Второе направление сборки ориентируется по выступам блоков, занимает второе место после основного направления сборки.
|
||||
|
||||

|
||||

|
||||
|
||||
__Алгоритм__: [Метод грубой силы](https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1%80), формирование ASP из направлений.
|
||||
|
||||
__Исходные данные__: LEGO Studio
|
||||
|
||||
__Полевые испытания__: собрали 100 моделей животных LEGO, созданных и загруженных отдельными пользователями в LEGO Studio, среди которых самая простая состоит из 3 кубиков, а самая сложная — из 44 кубиков
|
||||
|
||||
__Исходный код__: https://github.com/AIR-DISCOVER/ICRA_ASP
|
||||
|
||||
|
||||
### Assembly sequence planning method based on knowledge and ontostep - 2021
|
||||
Jiahui Qian,Zhijing Zhang,Chao Shao,Hanqing Gong
|
||||
|
||||
OntoSTEP используется для поиска контактной поверхности, чтобы проверить выполнимость алгоритма планирования последовательности сборки. Обычно последовательность сборки определяется снизу вверх, изнутри наружу, от сложного к легкому, однако при сложной сборке эти методы не могут количественно оценить приоритет той или иной сборочной операции. Следовательно, необходимо определить приоритет сборки, который может описывать приоритет деталей, подлежащих сборке. Для оценки приоритета используются следующие индикаторы:
|
||||
|
||||
- Индикатор базы. Индикатор равен количеству ситуаций, когда сборка является базой для других деталей. Чем выше значение, тем выше приоритет сборки.
|
||||
- Индикатор соседства. Используется для описания количества частей, соединенных с частью объекта. Теоретически, чем больше целевая часть соединена с другими частями, тем раньше она будет собрана. Если к целевой части подключено более 4 частей, индикатор соседа равен 1.
|
||||
- Индикатор сложности. Время сборки всегда зависит сложности процесса сборки. Сложность сборки самой длинной трудоемкой детали примем равным 1, а показатель сложности остальных деталей оговорим по пропорциональной зависимости времени сборки от самой сложной.
|
||||
- Индикатор точности. Этот индикатор используется для отображения влияния требований к точности сборки на приоритеты сборки. Как правило, чем выше требуется точность сборки, тем более высокий приоритет имеет деталь. Соотношение между требованием точности и показателем точности 1:4 означает
|
||||
конкретное требуемое значение точности (мкм).
|
||||
- Индикатор симметрии. Представляет собой номер объекта сборки, симметричного относительно трех плоскостей симметрии x.y, y.z и x.z. Например, стальной шар всегда легко собрать, потому что он симметричен относительно всех трех плоскостей (x5=3). Наоборот, трудно собрать детали с низкой симметрией, а это значит, что их нужно собирать в первую очередь.
|
||||
|
||||
__Алгоритм__: Генерация графа сборки основанная на индфикаторах о геометрии деталей в изделии.
|
||||
|
||||
__Полевые испытания__: Расчет для сборки компонентов военного взрывателя.
|
||||
|
||||
__Исходные данные__: STEP-модель
|
||||
|
||||
### Generating complete disassembly sequences by utilising two-dimensional views - 2015
|
||||
Kantha.M
|
||||
|
||||
Предложен новый метод создания полных последовательностей разборки механических изделий с использованием матрицы интерференции деталей, которая содержит направления удаления деталей и граф соединения деталей, указывающий на контакт между ними деталями в сборке.
|
||||
|
||||
__Алгоритм__: Генерация графа сборки основанная на индфикаторах о геометрии деталей в изделии.
|
||||
|
||||
__Полевые испытания__: Расчет для сборки компонентов военного взрывателя
|
||||
|
||||
__Исходные данные__: 3D модель клапана обратной подачи
|
||||
|
||||
|
|
BIN
docs/technologies/img/icra_asp_algorithm.jpg
Normal file
BIN
docs/technologies/img/icra_asp_algorithm.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 691 KiB |
BIN
docs/technologies/img/lego_z_direction.jpg
Normal file
BIN
docs/technologies/img/lego_z_direction.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
Binary file not shown.
After Width: | Height: | Size: 72 KiB |
40
docs/technologies/tesselation.md
Normal file
40
docs/technologies/tesselation.md
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
id: tesselation
|
||||
title: Алгоритмы тесселяции моделей САПР
|
||||
---
|
||||
|
||||
## Предисловие
|
||||
Основными разновидностями моделирования в 3D-графике являются:
|
||||
|
||||
- Полигональное моделирование, описывает поверхность массивом точек (Mesh);
|
||||
- САПР моделирование, описывает поверхность математической функцией (CAD).
|
||||
|
||||
При **полигональном** моделировании выбирается некий **предел** точек, поэтому не возможно избежать **изломов** криволинейной поверхности, создать **идеальную** ее плавность. В данном случае САПР имеет преимущество.
|
||||
|
||||
В то же время, для визуализации 3д графики на мониторе компьютера, необходимо чтоб все 3D-модели были в Mesh виде, в том числе и САПР, которые автоматически переводятся в полигональную сетку. В данном случае полигональное моделирование имеет преимущество.
|
||||
|
||||
- При визуализации полигональных моделей, их поверхность практически не изменяется (некоторое изменение будет в любом случае).
|
||||
|
||||
- При визуализация САПР моделей происходит автоматическая **тесселяция**, которая дискретизирует поверхность в сетку из треугольников, при этом нужно выбирать баланс между избыточной **ресурсоемкостью** на визуализацию, либо **точностью** визуализации.
|
||||
|
||||
## Примеры популярных алгоритмов тесселяции (meshing)
|
||||
Все алгоритмы тесселяции схожи в том, что строят массив точек, иcходя из предела дискретизации.
|
||||
Разделим алгоритмы по назначению:
|
||||
### 1. Алгоритмы тесселяции для **Визуализации**
|
||||
#### Алгоритм триангуляции Делоне с помощью алгоритма Ватсона
|
||||
Реализация алгоритма BRepMesh_IncrementalMesh является частью САПР библиотеки Open CASCADE Technology (OCCT). Это инкрементный алгоритм, который разбивает треугольники до тех пор, пока результат тдискретизации не будет удовлетворять критериям отклонения **допуска** отклонения по расстоянию и углу. Результат для допустимой замкнутой оболочки, может считаться твердотельным, поскольку алгоритм учитывает закрытость оболочки.
|
||||
Сетка подходит для визуализации, машинного обучения, симуляции машин и механизмов и для многих алгоритмов с контролируемой точностью.
|
||||
|
||||
Подробнее в статье [OCCT User Guides](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html)
|
||||
|
||||
### 2. Алгоритмы тесселяции для **Метода Конечных Элементов** (FEM)
|
||||
*Приведем несколько следующих алгоритмов схожих по назначению, это, в основном, механика твёрдого деформируемого тела, и подобные исследования для материалов объемов тел, которые расчитываются FEM методами.*
|
||||
#### Алгоритм Netgen
|
||||
Netgen использует несколько параметров, включая максимальный и минимальный размеры элементов, степень детализации сетки, количество шагов оптимизации и т.д. Netgen в основном работает в 3D. В зависимости от заданных параметров он может изготавливать элементы с размерами, адаптированными к локальным кривизнам - большими на участках плоской поверхности и меньшими на гнутых участках. Как только сетка построена для ребер и граней, Netgen выполняет дополнительные итерации для упрощения сетки. Установка этого параметра в 0 отключает упрощение. Netgen в целом медленнее, чем, например, Gmsh, и более чувствителен к качеству входных моделей.
|
||||
|
||||
Подробнее на сайте проекта [ngsolve.org](https://ngsolve.org/)
|
||||
|
||||
#### Алгоритм Gmsh
|
||||
Gmsh работает в 3D и делает 4 прохода: анализ геометрии, анализ сетки, тесселяция, постобработка. Gmsh использует упомянутую выше OCCT для функций конструктивной геометрии и взаимодействует с дополнительной внешней сеткой и библиотеками адаптации сетки Netgen и Mmg3d для упрощения на этапе постобработки.
|
||||
|
||||
Подробнее на сайте проекта [gmsh.info](https://gmsh.info/)
|
|
@ -3,7 +3,7 @@ const math = require('remark-math');
|
|||
const katex = require('rehype-katex');
|
||||
module.exports = {
|
||||
title: 'Robossembler',
|
||||
tagline: 'Открытая Робототехника',
|
||||
tagline: 'Отворённая Робототехника',
|
||||
url: 'https://robossembler.gitlab.io',
|
||||
baseUrl: '/',
|
||||
onBrokenLinks: 'throw',
|
||||
|
@ -69,7 +69,7 @@ module.exports = {
|
|||
],
|
||||
},
|
||||
],
|
||||
copyright: `Copyleft © ${new Date().getFullYear()} Команда Robossembler, сайт сделан при помощи Docusaurus.`,
|
||||
copyright: `Copyleft © ${new Date().getFullYear()} Команда Robossembler, сайт сделан при помощи Docusaurus. ООО «Робосборище», ИНН 5024227970, ОГРН 1225000134677`
|
||||
},
|
||||
},
|
||||
presets: [
|
||||
|
|
|
@ -29,6 +29,7 @@ module.exports = {
|
|||
'technologies/wrs2020-assembly-challenge',
|
||||
'technologies/plansys2',
|
||||
'technologies/ASP-overview',
|
||||
'technologies/tesselation',
|
||||
'technologies/wood',
|
||||
'technologies/recycling',
|
||||
'technologies/knowledge-management'
|
||||
|
|
|
@ -60,9 +60,9 @@ const features = [
|
|||
imageUrl: 'img/ros2.jpg',
|
||||
description: (
|
||||
<>
|
||||
Управляющее программное обеспечение с открытым исходным кодом
|
||||
Разработка программного обеспечения с открытым исходным кодом для управления роботами
|
||||
<ul>
|
||||
<li><a href="https://gitlab.com/robossembler/robossembler-ros2" target="_blank" rel="noopener noreferrer">Robossembler</a> - набор пакетов ROS2 для управления роботизированной сборкой на базе Plansys и MoveIt</li>
|
||||
<li><a href="https://robossembler.org/docs/robossembler-framework/" target="_blank" rel="noopener noreferrer">Robossembler Framework</a> - комплекс ПО для автоматизации сборки произвольных изделий роботами-манипуляторами</li>
|
||||
</ul>
|
||||
</>
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue