Добавлено описание Фреймворка Робосборщик
This commit is contained in:
parent
2042bd67b7
commit
bacd7bfe9b
1 changed files with 83 additions and 0 deletions
83
docs/robossembler-framework.md
Executable file
83
docs/robossembler-framework.md
Executable file
|
@ -0,0 +1,83 @@
|
|||
---
|
||||
id: robossembler-framework
|
||||
title: Фреймворк Робосборщик
|
||||
---
|
||||
|
||||
Фреймворк Робосборщик (Robossembler) представляет собой комплекс открытого ПО и предназначен для автоматизации сборки произвольных изделий роботами-манипуляторами. Идея проекта родилась из попыток решить задачу автоматизации сборки и отсутствия необходимых для этого инструментов и наборов данных. Фреймворк призван решить эту проблему путём предоставления широкому кругу специалистов инструмента, позволяющего создавать адаптированные для виртуальных сред 3D-модели образцов промышленной продукции, генерировать технологические карты сборки в удобном для автоматического планирования формате, производить симуляцию, использовать её для получения синтетических наборов данных (датасетов) и адаптировать данные решения к реальным производственным процессам. Планируемый функционал фреймворка снизит порог требований к квалификации и позволит широкому кругу исследователей поучаствовать во внедрении технологий ИИ в промышленность.
|
||||
|
||||
## Актуальность и востребованность
|
||||
|
||||
Многие, производственные предприятия не рассматривают применение роботов. Это происходит не столько по причине высокой стоимости самих роботов, сколько из-за высокой стоимости их программирования, внедрения и эксплуатации, которые, по данным проекта [SMERobotics](papers/smerobotics), составляют около 63% от общего количество затрат на внедрение. При отсутствии широкого рынка сбыта высокие начальные затраты делают роботизацию нерентабельной для малого и среднего бизнеса.
|
||||
|
||||
Внедрению робототехники препятствует и сложность самих задач. Например, автоматизация сборки изделий требует компетенций в таких предметных областях как:
|
||||
- Генерация последовательности сборки (assembly sequence generation)
|
||||
- Распознавание объектов и их позиций (CV & AI)
|
||||
- Координация роботов между собой (multi-robot manipulation)
|
||||
- Планирование сборочных операций (task planning, general planning, AI planning)
|
||||
- Сборка изделий манипуляторами (manipulation for assembly)
|
||||
- Планирование движений (motion planning).
|
||||
|
||||
По каждому из этих направлений в научной литературе можно найти десятки разнообразных методов и алгоритмов, различное сочетание которых порождает бесконечное количество комбинаций для решения конкретных задач. R&D-компаний, которые могут предложить такой комплекс услуг и компетенций очень немного и стоимость их услуг может быть слишком высокой для отдельно взятого производственного предприятия.
|
||||
|
||||
## Способы решения
|
||||
|
||||
Виртуализация. Фреймворк позволит существенно сократить затраты на внедрение за счёт отладки программы преимущественно в виртуальной среде на базе открытого ПО. Он даст дизайнерам и разработчикам изделий возможность адаптировать их для автоматического производства ещё на этапе эскизного проектирования и облегчить наиболее трудоёмкий, долгий и дорогостоящий этап в жизненном цикле изделия - постановку на производство.
|
||||
|
||||
Декомпозиция. Сложная задача сборки изделия декомпозируется на множество небольших. Созданные из примитивов программы в виде _Деревьев Поведения (Behaviour Tree)_ могут быть переиспользованы для написания других подпрограмм (переиспользование конечных автоматов сложнее). Также это даёт гибкость - можно заменять как подпрограммы для отдельных навыков, так и программы, реализующие сложное поведение целиком. Это позволит предприятиям избежать контрактов с поставщиками сложных решений по типу "чёрный ящик". Для этого предлагается сформировать среду(информационную сеть), где можно было бы решать сложные робототехнические задачи децентрализовано - с помощью как физических, так и юридических лиц, специализирующихся на отдельных областях знаний, обмениваясь информационными артефактами (ассетами) своей работы внутри сети.
|
||||
|
||||
Применение фреймворка в научных исследованиях для проверки новых алгоритмов генерации последовательности сборки и машинного обучения сократит дистанцию между академическим сообществом и прикладным коммерческим производством.
|
||||
|
||||
## Новизна предлагаемых в инновационном проекте решений
|
||||
|
||||
- На данный момент в мире не существует открытой библиотеки для планирования последовательности сборки (assembly sequence planner, ASP), в которой были бы доступны разные алгоритмы вычислений. Первая новизна состоит в том, чтобы разработать данную библиотеку, сделать её удобной в использовании и интегрировать в системы управления роботами.
|
||||
- Вторая новизна предлагаемого решения заключается в интеграции открытых стандартов и программных компонентов для решения сложной прикладной задачи, что может ускорить внедрение передовых исследований ИИ в актуальную производственную практику. Как правило, объектами исследований учёных становятся отдельные области - _генерация графа сборки, планирование движений, управление задачами, методы контроля, sim2real-трансфер, машинное обучение_. Однако для решения прикладных задач необходимо наличие и слаженное взаимодействие всех указанных методов, поэтому их интеграция в рамках фреймворка сделает доступным применение на производстве результатов новейших исследований.
|
||||
- Третьей новизной является специальный модуль переключения сред восприятия в [реально-виртуальном континууме](https://en.wikipedia.org/wiki/Reality%E2%80%93virtuality_continuum). Возможность управлять уровнями восприятия сделает удобным постепенную адаптацию управляющих программ к физическому миру с возможностью доучиться в виртуальных и смешанных средах. Например, робот, прежде чем приступить к выполнению задачи в реальном мире, может внутри себя переключить уровень восприятия на один из двух виртуальных и отладить работу там. При этом сама управляющая программа работает одна и та же - она просто меняет поставщика данных о состоянии среды. Это существенно упрощает перенос ПО из виртуальных сред в реальность.
|
||||
|
||||
## Способы и методы решения поставленных задач
|
||||
|
||||
- Для извлечения информации о геометрии объекта будет использоваться API геометрического ядра OpenCascade или его обёрток (CadQuery, FreeCAD).
|
||||
- Для разработки GUI (настройки экспорта моделей, привязка материалов, разметка геометрических моделей, позиций захвата, порядка сборки) будет использоваться интерфейс системы проектирования FreeCAD.
|
||||
- Для генерации последовательности сборки предлагается разработать обобщённый API на языке высокого уровня и включить туда, как минимум, два алгоритма - основанного на информации из CAD и без неё. Также разработать инструкции по включению туда новых алгоритмов.
|
||||
- Для обмена моделями или пакетами между разнородными системами предлагается использовать пакетный менеджер общего назначения nix или подобный ему, предлагающий декларативный способ задания алгоритма сборки и кеширование уже собранных пакетов, что существенно снизит затраты вычислительных мощностей на генерацию сцен.
|
||||
- Для адаптации моделей к рендерингу и высокопроизводительной симуляции предлагается использовать Python API системы трёх-мерного моделирования Blender.
|
||||
- Для обеспечения версионирования моделей, запуска процедуры сборки и контроля за её исполнением предлагается использовать самую распространённую в мире систему контроля версий git и систему непрерывной интеграции gitlab-ci.
|
||||
- Система управления роботом и запуска алгоритмов исполнения заданий на базе фреймворков: общего назначения ROS2, планирования движений MoveIt2, планирования задач Plansys2.
|
||||
|
||||
## Порядок работы фреймворка
|
||||
|
||||
- Автор изделия публикует CAD-модель с метаданными деталей и их свойств в системе контроля версий (STEP)
|
||||
- Производство публикует описание своей автоматизированной производственной инфраструктуры (Scene format - SDF, USD, MJCF)
|
||||
- Специалисты по генерации последовательности сборки формируют граф сборки на базе информации из CAD модели
|
||||
- Специалисты по планированию (AI Planning) на базе модели производства и графа сборки могут подобрать оптимальный план сборки (PDDL plan или Behaviour Tree)
|
||||
- Специалист-робототехник декомпозирует задачи из плана на конкретные навыки (skills - detect/pose_estimate/move/align/grasp), формирует запрос на решающие эти задачи и отсутствующие у него подпрограммы (подпрограммы - узлы Дерева Поведения)
|
||||
- Специалисты по multi-robot, assembly/motion planning и CV формируют предложение по каждой конкретной операции - робот получает недостающие подпрограммы и производит тестирование сборки, давая обратную связь разработчикам, чтобы те скорректировали подпрограммы, созданные в симуляции.
|
||||
|
||||
|
||||
## Текущий прогресс
|
||||
|
||||
На данный момент подобраны, изучены и проверены указанные в способах реализации открытые библиотеки для решения задач с планированием задач и движений. Частично реализованы экспорт моделей в формате SDF из свободной CAD-системы FreeCAD для включения в симулятор Gazebo, разметка позиций захвата, интеграция планировщика движений и планировщика задач.
|
||||
- Проведены обширные исследования научных публикаций и проектов открытого ПО по теме
|
||||
- [Обзор новейших публикаций по планированию последовательности сборки](technologies/ASP-overview)
|
||||
- [Исследование проектов конкурса промышленной роботизированной сборки в 2021 году](technologies/wrs2020-assembly-challenge)
|
||||
- [Обзор исследований в области машинного обучения в робототехнике](technologies/machine-learning-in-robotics)
|
||||
- Разработан прототип системы. Исходные коды опубликованы в публичном репозитории [robossembler-ros2](https://gitlab.com/robosphere/robossembler-ros2)
|
||||
- Доступны [видео-демонстрация](https://www.youtube.com/watch?v=J3m5hXf-cro) работы прототипа системы и [видео-презентация](https://www.youtube.com/watch?v=AFROcGW73j0&t=574s) её архитектуры.
|
||||
|
||||
## Конкурентные преимущества
|
||||
|
||||
- Создание сообщества вокруг разработки библиотеки
|
||||
- Использование только свободные библиотек, форматов и стандартов, независимость от импортного проприетарного ПО
|
||||
- Накопление библиотеки 3D-моделей и программ сборки для роботов-манипуляторов
|
||||
- Формирование общедоступных датасетов для обучения роботов-манипуляторов
|
||||
- Использование ИИ для автоматической генерации программ сборки для роботов-манипуляторов
|
||||
- Применение разнообразных комбинаций алгоритмов генерации, планирования, обучения с подкреплением для повышения производительности.
|
||||
- Освобождение потенциальных пользователей из малого и среднего бизнеса от необходимости интегрировать в свои бизнес-процессы громоздкие и дорогостоящие PLM-системы.
|
||||
|
||||
## Аналоги
|
||||
|
||||
Похожим проектом является фреймворк [ConnTact](https://github.com/swri-robotics/ConnTact), созданный при поддержке Национального института стандартов и технологий США (NIST). Этому фреймворку присущи следующие недостатки:
|
||||
- Акцент на контактных операциях, что существенно ограничивает спектр его применения для прикладных задач
|
||||
- Поддерживаются только роботы с датчиками силы, нет других источников обратной связи в роботизированной системе
|
||||
- Не имеет инструментов интеграции с CAD-системами и системами планирования. Последовательность сборки задаётся вручную
|
||||
- Не поддерживает ROS2
|
||||
- Не поддерживает алгоритмы машинного обучения.
|
Loading…
Add table
Add a link
Reference in a new issue