Молодые инженеры из Перми мечтали собрать собственного робота. Сначала у них получился простой консультант на колесах, а потом фитнес-тренер с высокотехнологичной начинкой, которую оценили в Германии. Робот прошел испытания на спортплощадке в пермском микрорайоне, побывал на фестивалях и конкурсах, а теперь претендует на 3 миллиона рублей в конкурсе ФСИ. Историю богатыря с пронзительными зелеными глазами рассказал лидер проекта и аспирант пермского Политеха Александр Князев.
Сначала робот был промоутером
Мы начинали вдвоем: я и Игорь Билый, который занял в проекте роль инженера. У нас была общая мечта — собрать робота.
Мы решили сделать робота-промоутера для магазина моего отца. В магазине продают ремни. Пока мы сидели дома в весенний локдаун 2020 года, разработали чертежи, заказали корпус и каркас на местном заводе «Парматехмаш» и собрали единственный экземпляр.
Летом протестировали его сначала в магазине, потом в торговом центре и даже на центральном рынке. Вообще он для помещений, но мы решили попробовать и на улице. Черный цилиндр на колесах ездил по заданной траектории, распознавал прохожих с помощью камеры и предлагал купить ремень. Тогда мы еще не ушли в разработку чат-бота, поэтому диалоги были самыми простыми.
А потом судьба заставила робота-промоутера сменить профессию. Мы участвовали во Всероссийском конкурсе проектов Rukami. Там нас заметила программный директор Точки кипения — Пермь Наталия Зинеман. Она пригласила нас в Точку, помогла разобраться, как составить бизнес-модель и наладить бизнес-процессы, чтобы попасть в акселератор «Большая разведка», и предложила развивать нашего робота в сфере спорта.
Позже на конкурсе «Высшей школы экономики» нам сказали, что такие роботы в виде цилиндров на колесах, которые можно приспосабливать под разные задачи, уже никому не интересны. Потому что даже Сбербанк пытался такие делать и сейчас не может их никому продать. Тогда мы решили создать робота-тренера для уличных спортплощадок.
А потом робот стал фитнес-тренером
У нас в пермском Политехе есть программа двойного диплома. С октября по март магистранты могут параллельно учиться в Университете прикладных наук Анхальта. Обычно очно, но и-за пандемии нас не пустили в Германию, поэтому мы занимались онлайн. Тогда наша команда пополнилась двумя разработчиками — про них я расскажу ниже.
В пермском Политехе моя специальность «Интеллектуальные системы», а у ребят «Интегрированные системы управления производством». По программе добавилась специальность Data science.
За время учебы по собственной инициативе мы собрали робота размером 160 × 92 × 80 см с автономными системами распознавания и синтеза речи и камерой, которая охватывает поле зрения на 120°. Наш инженер сделал робота влагостойким, поэтому он может работать в любую погоду.
Имя придумали во время мозгового штурма. Добрыня — добрый и сильный богатырь из народных сказок — то что надо для активного образа жизни.
Первую версию робота-тренера протестировали летом 2021 года на спортивной площадке в микрорайоне «Ива». Собрали с жителей отзывы и поняли, что его возможностей недостаточно. Он только консультирует, а нужно еще следить, как именно люди выполняют упражнения.
И мы приступили к разработке умных камер, которые позволяют роботу смотреть на тренажеры и оценивать, что там происходит. Они распознают скелет человека и подают сигнал, если человек совершает ошибки. Например, держит неровно спину или неправильно держит локти.
Теперь робот не только предлагает комплексы упражнений, но и корректирует технику, чтобы пользователи занимались эффективно и без травм.
На каждой площадке будет установлен робот и по одной камере на каждый тренажер. Робот слушает вопрос пользователя и отвечает через динамики. Мы настраиваем оптимальный уровень громкости, чтобы голос был слышен на площадке, но не мешал соседям.
У «Добрыни» появилось зрение и речь
Пока мы учились, «Добрыня» стоял в пермской Точке кипения. Там мы встречались с командой, обсуждали доработки и настраивали робота. Вот что мы в итоге сделали.
Диалоговая система. На специальности Data science у нас был курс «Чат-боты», на котором мы разработали диалоговую систему для «Добрыни». Мы создали полный цикл: от заданного вопроса до вывода ответа из списка. Система получила высокие оценки немецких преподавателей на внутренней конференции.
Распознавание речи. Чтобы превратить голос пользователя в текст, который сможет понять робот, мы взяли готовое бесплатное решение — библиотеку Vosk для Python — и модернизировали ее, чтобы качество распознавания стало выше. Библиотека позволяет системе работать офлайн и сокращает время обработки речи.
Метод распознавания ключевых точек. Камера считывает их, считает углы, скорости и прочие параметры. Сравнивает их с заданными и в случае отклонения голосом через динамики сообщает, что упражнение выполняется с ошибками.
Чтобы настроить эти процессы, мы изучили несколько популярных нейронных сетей: OpenPose, PoseNet и еще несколько для распознавания ключевых точек людей. Пробовали обучать свои распознавалки на основе библиотеки dlib. Но в итоге выбрали mediapipe, которая была опубликована в апреле этого года.
Умные камеры для тренажеров. Сами собрали из готовых компонентов, разработали их электронную и программную структуру. В них используются нейронные сети, упомянутые выше. В начинку добавили микрокомпьютер с программным обеспечением, которое позволяет достигать максимальной производительности на слабом железе и захватывать качественные образы людей в движении. Алгоритмы вычисляют скорость изменения углов и положение тела, чтобы скорректировать технику.b
Оптимизация:
- Сначала мы тестировали работу нейронных сетей на снятых на телефон видео. Грузили их на компьютер и обрабатывали. Потом перешли к микрокомпьютерам, которые сами записывали и тут же обрабатывали видео.
- Подключили несколько раз одну и ту же сеть на разных ядрах, чтобы увеличить количество обрабатываемых кадров в секунду.
- Подобрали оптимальное разрешение изображения, которое дает камера, и количество нужных для работы точек, чтобы еще увеличить производительность.
Экран. Мы не будем делать сенсорный экран, потому что робот должен быть устойчивым к повреждениям. Несмотря на то что прототип стоял в спокойном районе, дети все равно на него залезали, шатали и пинали. Кто-то даже специально врезался в него на велосипеде. Мы испугались, что его могут разбить, поэтому сейчас используем монитор за прочным стеклом. На экране робот показывает видео, как выполнять упражнение. И текстом — противопоказания.
Тренировки. Пока камер не было, робот предлагал отдельные упражнения для каждого тренажера. Когда появились камеры, мы попросили тренеров составить для «Добрыни» полноценные программы тренировок на 4 и 8 тренажеров с определенным количеством подходов и повторений.
Вся информация хранится у робота внутри, поэтому он работает полностью автономно. Это важно, потому что интернет во дворах — дополнительная задача. Мы подключаемся к Добрыне по сети, только чтобы оперативно исправить ошибки или обновить.
Кто работает над «Добрыней»
Я главный разработчик проекта. В мои задачи входило проектирование архитектур всех систем робота, налаживание взаимосвязей между компонентами и оптимизация процессов. Игорь Билый, с которым мы начинали проект, спроектировал корпус робота и продумал влагозащиту.
Во время учебы в Германии я нашел еще двух ребят в наш проект. Павел Сливницин взял на себя умные камеры, а Никита Ефимов — диалоговую систему и нейронные сети. Потом у нас появился советник по бизнес-части Владимир Рожков. Он налаживает связи с государственными организациями и строительными компаниями.
Добрыня захватит новые спортплощадки
В теории мы можем работать с любыми тренажерами. Чтобы поставить Добрыню в другие дворы, нам нужно сначала оценить ее оснащение, подготовить программное обеспечение, загрузить новую информацию в робота и настроить камеры для работы с этими тренажерами.
Мы стараемся охватить как можно больше конкурсов, выставок и фестивалей, чтобы получить отзывыобратную связь от пользователей и экспертов и найти полезные контакты для продвижения продукта. Пока наше главное направление — муниципальные организации, которые могут поставить «Добрыню» в каждом дворе.
Сейчас ждем результатов конкурса «Старт-1». Мы хотим победить и получить 3 000 000 рублей — на них мы доработаем ИИ робота и усовершенствуем распознавание опорных точек участников во время тренировки. Так робот сможет лучше следить за пользователями во время тренировки, и мы сможем реализовать больше функций. Каких именно — покажут исследования.
Деньги пойдут на зарплаты программистов, так они смогут больше времени посвящать проекту. Пока все работают над «Добрыней» в свободное время, и это затягивает процесс. Мы готовы двигаться быстрее.