Как мы применили генеративный дизайн к динамическим системам. autocad.. autocad. mcts.. autocad. mcts. Блог компании ИТМО.. autocad. mcts. Блог компании ИТМО. генеративный дизайн.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия. искусственный интеллект.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия. искусственный интеллект. итмо.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия. искусственный интеллект. итмо. Разработка робототехники.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия. искусственный интеллект. итмо. Разработка робототехники. робототехника.. autocad. mcts. Блог компании ИТМО. генеративный дизайн. динамические системы. инженерия. искусственный интеллект. итмо. Разработка робототехники. робототехника. университет итмо.

Существующие методы генеративного дизайна позволяют оптимизировать различные параметры деталей для производства, например массу ― многие из вас наверняка видели подобные рендеры в Autocad. В областях, где на деталь воздействует повышенная нагрузка, материала больше, в других ― меньше, и с помощью генеративного дизайна к удачной конструкции можно прийти за несколько часов, а не за недели.

Мы решили проверить, можно ли применить методы генеративного дизайна для динамических, а не статических систем, чтобы автоматизировать процесс создания роботизированных устройств захвата. Наш проект стал логичным продолжением исследовательской работы нашего коллеги, в которой рассматривалась оптимизация рычажных механизмов. Работа показала, что формализовать задачу вполне возможно. Мы проверили это, используя для выбора оптимальной имитационной модели алгоритм MCTS. Подробности ― под катом.

Мы не первые пришли к идее генерировать динамические конструкции с помощью ИИ. 

Вот, что можно найти еще по теме:

Но статьи по теме, которые удалось найти, в большей степени касались именно машинного обучения. Это были академические работы, которые никак не пытались связывать сгенерированный дизайн с реальностью, то есть их авторы не думали о том, как это воспроизвести на реальных устройствах. Зарубежные коллеги исследовали применение графо-грамматических правил для проектирования шагающих роботов, поэтому в работах были использованы более простые функции оценки результата. Их задачей было усилить существующие алгоритмы ИИ. 

Нам же было интереснее двигаться в сторону большей физической обоснованности, поэтому в нашей академической задаче чуть больше практики. И мы начали искать инструменты, с помощью которых это можно сделать. 

Формализация проектирования

Создание роботизированного захвата под конкретные условия ― сложная инженерная задача, при решении которой необходимо учитывать множество параметров. Проработка оптимальной конструкции отнимает много времени, а результат сильно зависит от опыта инженера. И задача усложняется, если требуется упростить управление за счет сокращения размерности задачи (уменьшения количества приводов до одного на каждый палец). ИИ мог бы решить эти задачи гораздо быстрее, но для машинного обучения важно «правильно задать вопрос». Поэтому основная часть работы и фишка проекта заключалась в формализации проектирования захватов ― нужно было правильно сформулировать задачу для искусственного интеллекта, чтобы она оказалась решаемая.

Конструкция захвата

Захват состоит из нескольких «пальцев», каждый из которых представляет собой податливую многозвенную конструкцию, приводимую в движение тросом. То, как именно эта конструкция адаптируется к форме объекта при натяжении троса, зависит от множества параметров ― длин звеньев, расположения пружин и их характеристик, размещения шкивов. По сути мы написали конструктор для ИИ, в котором можно  экспериментировать с параметрами конструкции и управляющими сигналами. 

Задача ― схватить и удерживать определенные тестовые объекты разной формы. Эта задача решается с разной эффективностью, в зависимости от способа сгибания и усилия удерживания, то есть от параметров каждого из «пальцев».

Для поиска оптимальной конструкции захваты представили в виде графа, а пространство дизайна задали через графо-грамматические правила. Так проектирование свелось к исследованию дерева решений, листья которого ― это имитационные модели роботизированного захвата.

Как мы применили генеративный дизайн к динамическим системам - 1

MCTS (Monte Carlo tree search)

Для перебора возможных конструкций ― путешествия по дереву ― мы применили MCTS (Monte Carlo tree search), который больше известен по своим шахматным партиям.

На каждом шаге на основе графо-грамматических правил он собирает очередной захват. Затем он преобразует граф конструкции в имитационную модель и отправляет в физический движок Chrono, где происходит симуляция процесса захвата. Затем на основе данных из симуляции вычисляется эффективность конструкции на основе критериев.

Как мы применили генеративный дизайн к динамическим системам - 2

Чтобы агрегировать все критерии в одну величину, мы использовали взвешенную сумму. На выходе алгоритма получаем рейтинг из нескольких моделей с наилучшей оценкой.

MCTS справился с задачей хорошо. В теории для работы процесса можно было бы использовать любой другой алгоритм, который умеет работать в парадигме обучения с подкреплением.

Посмотреть, как устроено пространство решений, можно на рисунке.

Как мы применили генеративный дизайн к динамическим системам - 3
Как мы применили генеративный дизайн к динамическим системам - 4

Проект получил название Rostok, он выложен в открытый доступ: https://github.com/aimclub/rostok?tab=readme-ov-file

Реальный прототип

Итак, мы учитывали физическую обоснованность, какой захват в принципе можно реализовать. Это наложило ограничения на конструкцию. К примеру, слишком много пальцев в теории эффективно, но на практике на захват нельзя повесить столько двигателей ― инструмент получится довольно габаритным. Так что мы исключили подобные «читерские» сценарии ― вложили немного инженерной интуиции. Это была особенность задания функции оценки ― в нее мы заложили некоторые ограничения, фактически, в общих чертах задали определенные «строительные кубики», чтобы реальная сборка была возможна.

Сложность производства на данном этапе не учитывали. Это тема для отдельного масштабного исследования.

Но мы опробовали сгенерированный захват ― сделали его физический прототип, напечатав его на 3D принтере, который есть у нас в лаборатории. 

Различия между теорией и практикой есть. Но главное, что показал прототип ― такие захваты действительно можно собрать.

Как мы применили генеративный дизайн к динамическим системам - 5
Как мы применили генеративный дизайн к динамическим системам - 6

Итоги работы

В большей степени результаты нашей работы подходят в качестве ответа на академические вопросы, например в качестве бенчмарка для алгоритмов машинного обучения (какой из алгоритмов лучше и быстрее справится с этой задачей). Как я отмечал выше, мы применяли MCTS, но можно было бы его заменить и Alpha Zero, сравнив результаты.

Конечно, для реального производства сгенерированных моделей наш подход надо доработать. Сейчас на выходе мы получаем имитационную модель, а не CAD-дизайн. Чтобы превратить это в реальный объект нужна довольно большая инженерная работа ― требуется спроектировать захватное устройство по известной кинематической схеме.

Тем не менее, имитационная модель на выходе достаточно подробная ― она говорит, какие длины должны быть у звеньев, какая масса, плотность и габариты. 

Мы планируем доработать подход, чтобы он генерировал более физически обоснованные вещи ― добавить еще немного инженерной мысли, чтобы учитывать сложность изготовления устройства на этапе генерации. Для этого, вероятно, потребуется найти большой объем данных ― имитационных моделей и того, как они выглядят в CAD.

В будущем мы думаем расширить спектр рассматриваемых захватов. Сейчас мы генерировали только определенный вид неполноприводных устройств, то есть на каждый палец предполагалось по одному двигателю. Но можно использовать один единственный двигатель для всего захвата. Это усложнит конструкцию, но упростит управление. И наоборот, можно добавить двигатели, усложнив управление, но упростив конструкцию. В этом случае устройство будет выполнять больше функций, поскольку такие системы смогут оперировать предметами ― у них больше актуированных степеней свободы.

P.S. Работу мы уже представили на международной конференции по интеллектуальным роботам и системам International Conference on Intelligent Robots and Systems (IROS 2024). Также недавно вышла статья: https://arxiv.org/pdf/2410.07865

Автор: itmo

Источник

Rambler's Top100