Robotics Lab Shell

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

Открывшийся в Набережных Челнах (Татарстан, Россия) Центр робототехники представляет собой инженерно-производственную площадку, которая специализируется на разработке полной системы производства — от компьютерного моделирования, изготовления компонентов и прототипов роботизированных комплексов и оборудования до последующего технологического внедрения на предприятия участников Камского инновационного территориального производственного кластера.

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

В рамках проекта мы выполнили работы по:

  • сбору и анализу функциональных требований, разработке технического задания;
  • проектированию пользовательского интерфейса и разработке дизайн-макетов c помощью партнёрской студии Digital Consulting;
  • разработке программного обеспечения со следующими основными функциями:
  1. выполнение сканирования детали и загрузка результата сканирования;
  2. сопоставление отсканированной модели с эталонной с построением карты разницы;
  3. построение и валидация траектории движения рабочей головки манипулятора;
  4. управление параметрами рабочей головки на всем пути движения с возможностью наследования и переопределения параметров;
  5. выполнение процесса обработки детали и отслеживание всех рабочих параметров процесса;
  6. выполнение процесса обработки с использованием симулятора аппаратного комплекса.

Технологии

Программное обеспечение разработано на платформе Adobe Air с использованием языка AS3 и Native Extentions на C++.

Наиболее интересной частью проекта была разработка 3D-сцены. Для Flash существует несколько готовых 3D-движков, которые существенно упрощают разработку 3D-приложений. Однако в нашем случае были предъявлены жесткие требования к производительности системы: она должна была позволять эффективно работать с моделями, состоящими из миллионов точек. Были проведены эксперименты с движками Away3D и Flare3D. Стало понятно, что использовать их не целесообразно — для большей производительности нужен был более низкий уровень контроля. Такой уровень предоставляет технология Stage3D. Было решено написать собственный 3D-движок на основе Stage3D с учетом особенностей приложения и функциональных требований. Такой подход добавил дополнительной работы — необходимо было написать заново шейдеры для разных видов визуализации, а также вспомогательные модули для загрузки моделей, управления камерой и другие.

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

Для передачи данных между Robotics Lab Shell и API управления аппаратной частью (разработка «Эйдос») мы использовали формат HDF5. Для работы с этим форматом было разработано расширение (Native Extention) для Adobe Air на C++.

Особенности проекта

  • Десктопное (не WEB) программное обеспечение.
  • Разработка собственного 3D-редактора, позволяющего визуализировать 3D-модели, управлять их положением, строить треки (маршруты обхода) рабочего инструмента.
  • Решение математических и геометрических задач.
  • Большая длительность проекта.
  • Высокая степень критичности ошибок в программном обеспечении.
  • Повышенные, по сравнению с другими проектами, требования к удобству использования интерфейса.