Предисловие. Цель этой статьи — показать читателю концепцию 3D-принтеров следующего поколения и среду моделирования 3D-принтеров, которая включает в себя часть описанных функций концепции. Если намерение состоит в том, чтобы изучить часть кодирования, рекомендуется начать с раздела системной архитектуры.

Выводы можно перечислить следующим образом:

  • Концептуальная перспектива: видение 3D-платформ следующего поколения, понимание сложности планирования и компонентов такой платформы.
  • Техническая перспектива: разработка внешнего интерфейса с помощью Javascript, управление/запуск/остановка докеров через реализацию REST API на python, взаимодействие с докерами octoprint через java-приложение на основе spring-boot, …

Введение

Технология 3D-печати претерпела значительные изменения за последние десятилетия, и сейчас мы очень близки к эпохе, когда 3D-печать можно будет применять в ряде областей, начиная от простого объекта, здания и заканчивая человеческими органами. Создание сложных и стабильных продуктов, требующих последовательных производственных этапов, может быть легко напечатано на 3D-принтерах из различных материалов, даже вмешательство человека, используемое в процессе производства, может быть сведено к минимуму благодаря автономному процессу печати. Хотя 3D-принтеры хорошо известны и активно используются любителями, у них есть огромный потенциал стать стандартным интеллектуальным устройством в домах и офисах. Снижение затрат, постоянное улучшение качества печати и увеличение разнообразия материалов для печати делают 3D-принтеры достаточно привлекательными для большинства людей, а это приведет к увеличению числа владельцев 3D-принтеров в городе в ближайшем будущем. время. В случае, если значительное количество горожан владеет 3D-принтером для различных целей, подавляющее большинство этих людей может быть профессиональным производителем 3D-объектов. Вместо того, чтобы держать принтеры выключенными, владелец принтера может активно печатать объекты и продавать их по отдельности заинтересованным клиентам. Однако главный вопрос здесь заключается в том, как установить связь между владельцами принтеров и клиентами и, в конечном счете, как поддерживать удовлетворенность клиентов в зависимости от качества печати, сроков поставки, стоимости и т. д. на разумном уровне. Учитывая все эти вопросы, предлагается концепция платформы печати следующего поколения, которая решает вышеупомянутые проблемы, отвечает требованиям заинтересованных сторон платформы и, что не менее важно, нацелена на улучшение использования ресурсов.

Кто такие заинтересованные стороны?

От заказа продукта до его получения покупателем происходит сотрудничество нескольких заинтересованных сторон. Это дизайнеры, службы доставки, владельцы принтеров, клиенты, поставщики услуг печати и поставщики инфраструктуры, как показано на рисунке 1, и их роли объясняются ниже. Примечательно, что ими количество стейкхолдеров не ограничивается.

Рисунок 1. Заинтересованные стороны платформы печати

Дизайнеры. Моделирование 3D-объектов может выполняться несколькими дизайнерами, и они могут сотрудничать с поставщиками услуг/приложений для печати, чтобы сделать их доступными для клиентов. В зависимости от типа сотрудничества между дизайнерами и поставщиками услуг дизайнер может также сотрудничать с другими поставщиками услуг, чтобы привлечь больше клиентов. Дизайнеры также могут создать группу дизайнеров на другой платформе проектирования для моделирования 3D-модели, а затем поделиться ею с сотрудничающим с ней поставщиком услуг.

Владельцы 3D-принтеров. 3D-модели, выбранные пользователями на платформе для печати, будут перенесены на один или несколько принтеров. Какой принтер будет выбран, будет зависеть от его доступности, его характеристик, обеспечиваемого качества, его местоположения, общей стоимости печати и общего предполагаемого энергопотребления в процессе печати.

Поставщики услуг. Доставка печатных 3D-моделей зависит от типов транспортных средств, таких как автомобили, грузовики, самолеты, велосипеды, скутеры, дроны и т. д. Выбор наиболее подходящего типа доставки может зависеть от доступность транспортных средств, предполагаемая продолжительность доставки 3D-продукта клиенту, стоимость транспортировки, общая энергия, которая будет потребляться при транспортировке, и тип продукта, который необходимо доставить. Не каждый товар можно перевозить всеми видами транспорта, для некоторых товаров могут потребоваться особые условия.

Клиенты: все разработанные 3D-модели будут представлены на платформе печати, и клиенты смогут выбрать их, чтобы начать процесс печати. Каждый клиент сможет изменить страницу своего профиля, где он может решить важность трех параметров: стоимость, время и экологичность. Всякий раз, когда клиент намеревается напечатать 3D-модель, будет отображаться список вариантов печати, отсортированных на основе вышеупомянутого параметра. Если стоимость для клиента важнее времени, то самые дешевые варианты печати будут иметь высокий рейтинг в списках вариантов.

Поставщики услуг и приложений для печати. ​​Эти службы и приложения должны обеспечивать среду, в которой клиенты могут легко печатать 3D-модели, дизайнеры могут загружать свои модели, а службы доставки и 3D-принтеры могут подключаться к системе, чтобы иметь возможность использовал. Основная функция этих услуг должна учитывать профили пользователей, доступность услуг, а затем предлагать конечным пользователям наиболее подходящие варианты печати. Выбор принтера и службы доставки должен строиться на общей стоимости, времени от заказа до доставки и экологичном подходе.

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

Рисунок 2. Многоуровневое представление Printing Platform на основе архитектуры IoT

Компоненты платформы для 3D-печати

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

Интеграция устройств через шлюзы Интернета вещей

Все устройства, такие как 3D-принтеры и транспортные средства, должны быть сопряжены с платформой IoT, на которой их сервисы будут взаимодействовать друг с другом. Этот интерфейс в основном предоставляется через шлюз IoT. Есть много причин, по которым устройство должно быть подключено через шлюз IoT, например. ограниченную емкость ресурсов или выполнение решений для граничных вычислений на шлюзах IoT. Роль шлюза IoT заключается в установлении связи с физически подключенными устройствами с учетом протоколов передачи данных, таких как Wi-Fi, Bluetooth или Websocket, HTTP, CoAP и т. д. После этого данные устройства должны передаваться через протокол связи, такой как как MQTT для промежуточного программного обеспечения IoT. Важным моментом является гармонизация разнородных данных и преобразование их в единую модель данных без потери характеристик устройства.

В этом варианте использования интегрируемые устройства: 3D-принтеры и различные транспортные средства, такие как транспортеры, автомобили, мотоциклы и велосипеды, скутеры и дроны. Все остальные устройства, кроме 3D-принтеров, являются мобильными, поэтому их подключение должно поддерживаться по беспроводной технологии. В будущем, возможно, дроны или транспортные средства будут оснащены 3D-принтерами для производства простых объектов, особенно в экстренных ситуациях.

Промежуточное программное обеспечение, объединяющее и гармонизирующее службы Интернета вещей

Связь между устройствами и приложениями конечного пользователя может осуществляться только через сервисный уровень, где все объекты могут понимать используемый язык общения и взаимодействовать. Для представления подключенных устройств, управления и обработки данных требуются как минимум три типа службы: 1) Служба печати представляет каждый отдельный подключенный принтер и содержит все функции устройства, 2) Служба доставки предоставляет доступные транспортные средства, которые могут доставить пакет из место производства заказчику. 3) Служба печати обрабатывает все запросы клиентов на печать, назначает их существующим принтерам с учетом их доступности, функций, требований к продукту и, наконец, выбирает наиболее подходящее средство доставки и путь. Служба печати должна учитывать предпочтения пользователей, чтобы найти наилучшее соответствие для клиентов.

Приложения для конечных пользователей

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

Подробный обзор проблемы планирования

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

Операция планирования управляется на платформе печати с помощью приложения/службы печати (PA), которое получает запросы на печать от клиентов, анализирует требования к печати, чтобы определить, требует ли продукт дополнительной операции, извлекает доступные службы доставки и, наконец, объединяет их. все вместе, создайте список результатов, упорядоченный по предпочтениям пользователя. При этом достигается индивидуальное планирование для пользователя.

Всякий раз, когда клиент выбирает один из результатов из списка, PA должен зарезервировать один из принтеров, который соответствует требованиям 3D-продукта, дополнительным операциям, таким как услуга сборки (если есть) и услуги доставки (один или несколько). ). Визуализация этого процесса изображена на следующем рисунке.

Рисунок 3. Визуализация расписания печати

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

Оценка времени, стоимости и экологических аспектов

Аспект времени

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

Сценарий использования 1. Будет напечатан и доставлен один продукт на одном принтере. Необходимое количество времени:

Общее время = время ожидания печати + продолжительность печати + время ожидания доставки + время доставки

Вариант использования 2. Заказанный продукт состоит из множества частей, что требует операции печати на разных машинах в одном и том же месте. Уравнение можно сформулировать так:

Общее время = время ожидания принтеров + продолжительность печати + ожидание сборки + время сборки + время ожидания доставки + время доставки.

Сценарий использования 3. Заказанный продукт состоит из различных частей, каждая из которых будет напечатана на разных машинах в разных местах. Формулировка может быть определена как:

Общее время = время ожидания для принтеров + продолжительность печати + ожидание доставки к месту сборки + время доставки к месту сборки + ожидание сборки + время сборки + время ожидания доставки + время доставки.

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

Стоимость

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

Сценарий использования 1. Один продукт на одном принтере:

Общая стоимость = стоимость печати + стоимость доставки

Сценарий 2.Заказанный продукт состоит из нескольких частей, установленных на нескольких машинах, и сборка производится в одном и том же месте:

Общая стоимость = стоимость печати + стоимость сборки + стоимость доставки

Сценарий использования 3. Заказанный продукт состоит из нескольких частей на нескольких машинах, а сборка находится в другом месте:

Общая стоимость = стоимость печати + стоимость доставки + стоимость сборки + стоимость доставки

Экологический (экологический) аспект

Экологический аспект будет оцениваться с использованием общего объема выбросов CO2, образующихся в процессе производства и доставки. Если потребляемая энергия во время этих процессов из возобновляемой энергии и значение будет считаться равным 0. На основе технологии, используемой для производства электроэнергии, ниже будут использоваться некоторые нормативные значения.

Сценарий использования 1. Один продукт на одном принтере:

Общий выброс C02 = выброс при печати + выброс при доставке

Сценарий использования 2. Отдельный продукт, состоящий из нескольких частей на нескольких машинах, и сборка находится в одном и том же месте:

Общий выброс C02 = выброс при печати + выброс при доставке

Сценарий использования 3. Отдельный продукт, состоящий из нескольких частей на нескольких машинах, а сборка находится в другом месте:

Общие выбросы C02 = выбросы при печати + выбросы при доставке (сборка) + выбросы при доставке (транспортеры)

Выброс печати и доставка Выбросы можно разделить на категории в зависимости от используемых печатных машин или типов доставки. Некоторые печатные машины или методы печати могут потреблять больше энергии для одного и того же продукта. Тот же аспект действителен для типов поставки. В зависимости от расстояния выбранный тип доставки, такой как велосипед, мотоцикл, автомобиль, транспорт, электромобиль, самолет и т. д., повлияет на общий выброс CO2. По этой причине,

Выбросы при печати = выбросы CO2 печатающей машиной

Доставка Выбросы также можно отнести к выбранному типу транспортного средства. Электромобили можно рассматривать как CO2.

Выбросы при доставке = выбросы CO2 типа транспортного средства

Если потребляемая энергия вырабатывается из возобновляемого источника энергии, то эту эмиссию можно считать нулевой.

Окончательная оценка всех ключевых факторов

Принимая во внимание все вышеперечисленные аспекты, мы понимаем, что пользователь не может получить все параметры печати в виде списка, расчетный комплекс для всех принтеров со всеми дополнительными действиями и службами доставки составляет N³. По этой причине после фильтрации неадекватных услуг должен быть создан рейтинговый список, и клиенту должны быть представлены только 10–20 лучших результатов, иначе выбор варианта будет неудобным для пользователя. По мере создания рейтингового списка каждая опция печати будет рассчитываться отдельно со значениями пользовательских настроек, как показано ниже:

Рейтинговое значение = Time_percentage*(1-(Время/Общее время)) + Cost_percentage * (1-(Cost/Total Cost)) + CO2_percentage *(1-(CO2_Emission/Total_Emission))

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

Обсуждение

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

Прототип платформы для 3D-печати

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

Архитектура системы

Архитектура среды моделирования опирается на пять компонентов, а схема компонентов архитектуры системы показана на рисунке 4.

  1. Пользовательские интерфейсы
  2. Менеджер инфраструктуры
  3. Управляющий активами
  4. Планировщик печати
  5. Наблюдатель за печатью
  6. Контроллер и мониторинг принтеров

Рис. 4. Обзор системы моделирования

1. Пользовательские интерфейсы

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

Страница управления инфраструктурой: этот интерфейс служит для создания смоделированных образов OctoPrint, работающих на технологии контейнеров докеров. Можно указать количество образов и отслеживать запущенные докер-контейнеры, как показано ниже. Текущее представление не отражает все сведения о запущенном контейнере Docker, однако его можно легко расширить для поддержки других показателей.

Рис. 5. Страница управления инфраструктурой

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

Рисунок 6. Страница заказа продукта [Изображения из Pinterest]

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

Рисунок 7. Страница профиля пользователя

Мониторинг продукции.Продукты, которые необходимо напечатать/распечатать, а также доставить/доставить, можно отслеживать с помощью этого пользовательского интерфейса, как показано на рис. 8. Фактическая реализация не фокусируется на продолжительности доставки. Этот интерфейс может иметь решающее значение для конечных пользователей, чтобы отслеживать свои продукты. Традиционный подход сегодня заключается в использовании услуги, предлагаемой службой доставки, однако информирование пользователя от заказа до доставки является очень эффективным и убедительным методом для конечных пользователей, поскольку повышает прозрачность всего процесса.

Рисунок 8. Печать страницы мониторинга

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

Рисунок 9:Контроллер принтера и мониторинг

2. Менеджер инфраструктуры

Этот компонент отвечает за управление док-контейнерами, в которых работают принтеры. Все запросы поступают от пользователя через REST-интерфейс, и на основе запросов выполняются необходимые операции. Поддерживаемые функции предназначены для управления и мониторинга докера:

  • Докер запускает/останавливает/наблюдает за докерами
  • Получить все докеры
  • Получить все статусы докера
  • Деактивировать/активировать докеры
  • Запуск/остановка докеров

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

3. Управляющий активами

Менеджер активов работает с файлами, загруженными из дизайнеров, и файлами, отображаемыми в пользовательском интерфейсе. Операция загрузки файла инициируется на определенной веб-странице, которая переходит к остальному интерфейсу на бэкэнде. После проверки доступности нового дизайна ресурс сохраняется в папке с именем models/. Версия файлов не хранится в базе данных, однако ее можно добавить для эффективного управления данными. Доступные функции:

  • Загрузить ассет в папку models/
  • Получить ассет из папки models/

Текущую папку models/ можно заменить файловым сервером, чтобы файлы можно было получать непосредственно с сервера. Этот файл-сервер может быть интегрирован в этот проект.

4. Планировщик печати

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

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

  • Планирование заказов на печать с использованием различных параметров
  • Запустить процесс печати

Комплексная реализация планирования — это будущая работа, которую необходимо интегрировать. Поскольку сложность услуг составляет N^(разные услуги), необходимо создать некий механизм фильтрации для уменьшения пула поиска услуг, чтобы пользователи не ждали. в течение длительного периода времени для получения результатов. Некоторые из этих параметров, кроме трех вышеупомянутых параметров (стоимость, время, эко)

  • Характеристика продукта
  • Характеристики принтера
  • Расположение
  • Качество печати

5. Печать наблюдателя

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

Этот компонент содержит этот интерфейс для принтеров, чтобы получить их статусы, а затем запустить планировщик печати в отношении статуса принтеров, если есть какой-либо доступный принтер. В такой системе идеальным решением является реализация механизма связи публикации/подписки, однако OctoPrint поддерживает только интерфейс REST. Существующие функции:

  • Получить статус печати запущенных контейнеров
  • Запустить планировщик

6. Контроллер и мониторинг принтеров

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

Существующие функции:

  • Все остальные операции для принтеров, такие как остановка/запуск/возобновление/пауза
  • Получить текущее состояние всех принтеров или одного принтера

Исходный код: https://github.com/cemakpolat/octoprint-service