Robotics Lab Shell

Несколько лет назад в Татарстане компания «Эйдос» начала разрабатывать промышленного робота, который бы программировался по упрощенной процедуре и был адаптивен благодаря размещенному «на борту» компьютерному 3D-зрению и «умным алгоритмам».

С таким роботом могут работать изобретатели и инженеры, которые знают технологию обработки металла, но не пишут программы, которые смог бы выполнить робот.



Робот-гексапод, разработанный Эйдосом


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

Кривые Безье и свой 3D-движок с блэкджеком и шейдерами

До этого мы уже пересекались — еще в 2010 году мы разработали корпоративный сайт для Эйдоса. Robotics Lab Shell — именно так называлась наш продукт — стал неким переходным проектом к сложным разработкам.

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

Самое интересное — это работа в 3D-сцене. Все писалось на платформе Adobe Air, а для Flash на тот момент было несколько готовых 3D-движков. Но нам они не подходили из-за жестких требований к производительности системы: готовые решения не могли эффективно работать с моделями, состоящими из миллионов точек. В общем, нам нужен был более низкий уровень контроля, поэтому мы стали разрабатывать собственный 3D-движок на основе Stage3D. Это было затратно, но в итоге мы могли тонко настраивать параметры движка, добавлять новые функции и проще трансформировать объекты.

На проекте было много математики и геометрии, потому что вся траектория движения робота — это кривая Безье, с которой нужно работать на уровне кода.
К серверной части, которую разрабатывал сам Эйдос, подключались через API.

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

Роботом можно управлять без навыков программирования

Первая боеспособная версия Robotics Lab Shell была готова через полгода. Вот что мог делать с ней пользователь:

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

Эти функции позволяют, например, исправлять дефекты деталей прямо на конвейере или тестировать новые технологии без специальных навыков программирования и долгой пусконаладки. Если говорить шире, RLS позволяет пользователю, оперируя понятными и простыми понятиями в 3D-пространстве, а не программным кодом, задать алгоритм действий роботу.

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

При этом даже по современным меркам софт выглядит симпатично и удобно: с пользовательским интерфейсом и дизайн-макетами нам помогала студия Digital Consulting. Сейчас компетенции по UX и UI для сложных продуктов у нас собственные.

«Мы всегда знали, что в SmartHead отличные ребята, но раньше как-то не думали о сотрудничестве: у нас hardware, у них — по большей части веб-проекты. Но с RLS у нас были сжатые сроки проекта, а делалось все с нуля, поэтому не хватало ресурсов. Я подумал: "А почему бы не предложить?" А они подумали: "Почему бы нам не поучаствовать?". Так и начали работать. Проект стал для нас интересным и важным опытом, поскольку SmartHead очень четко работал по методологии выявления требований, которые на входе были крайне размыты. Мы вместе, шаг за шагом детализировали и формулировали проект, построили связи от целей бизнес-уровня до функциональных целей и реализовали их. После RLS мы были полностью уверены, что с будущими проектами все будет хорошо».

Владимир Андряшин
Эйдос-Робототехника,
директор по развитию

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