Не моргайте: робот собирает кубик Рубика за 0.38 секунд.

Фото: CC0 Public Domain

Робототехника
Шрифты

Робот (самодельный, заметьте) может собрать кубик Рубика за 0,38 секунды. Это время «с момента регистрации нажатия клавиши на компьютере, до того момента когда повернута последняя грань кубика, когда каждая из граней состоит из квадратов одного цвета», - сказал Бен Кац (Ben Katz) в своем блоге о проявлении большой ловкости.

Бен Кац - магистр в лаборатории биотехнологической робототехники Массачусетского технологического института. Он сотрудничал с Джаредом Ди Карло (Jared Di Carlo), чтобы создать робота.

Это разбивает все рекорды. Тимоти Ли (Timothy Lee) из Ars Technica сказал, что решение головоломки за 0,38 секунды ознаменовало «40-процентное улучшение по сравнению с предыдущим рекордом 0,637 секунд».

Робот по решению головоломки кубика Рубика. Фото: Ben Katz.

Вы можете прочитать о том, как он и Ди Карло сделали это, и более подробно о том как создавался подобный робот в статье опубликованной в блоге build-its-inprogress.blogspot.ru. В ней Кац написал о своих машинах и процессах, получивших название «The Rubik's Contraption» ("Хитроумное изобретение Рубика").

Джаред Ди Карло на сайте The Cactus Zone сказал: «Недавно мы с Беном Кацем сотрудничали над созданием робота, собирающего кубик Рубика, чтобы попытаться побить рекордное время в мире 0,637 секунды, установленное некоторыми инженерами компании Infineon. Мы заметили, что все быстрые решения кубика Рубика использовали шаговые двигатели и думали, что мы сможем сделать лучше, если будем использовать самые лучшие двигатели».

Они использовали низко-инерционные двигатели семейства ServoDisc американской компания Kollmorgen со столетним опытом. Они выбрали двигатель с высоким отношеним крутящего момента (ротора двигателя) к его моменту инерции. «Двигатель бесколлекторный, поэтому на роторе нет тяжелых стальных слоев, и нет никакой стали для насыщения, поэтому он может ускоряться безумно быстро. В течение 10 мс четырех-шаговый двигатель достигает скорости вращения 1000 об/мин», - сказал Джаред Ди Карло.

Они использовали для решения задачи 6 двигателей, 6 сделанных на заказ драйверов этих двигателей, 2 камеры PlayStation Eye и самые дешевые кубики Рубика.

Двигатель ServoDisc N9M4T с неодимовыми магнитами. Фото: Ben Katz.

Контроллер двигателя постоянного тока для сервоприводов. Фото: Ben Katz.

Две камеры PlayStation Eye расположены напротив противоположных сторон куба, так что все 6 граней можно увидеть только с двумя камерами. Джареду удалось заставить эти вещи работать на скорости ~ 150 кадров в секунду под Linux и при очень низкой задержке по сравнению с вашей типичной веб-камерой. Фото: Ben Katz.

И для этой цели требуется несколько источников питания - 5 В для микросхем логики, 12-вольт для привода двигателей, 24 В для светодиодов и двигателей. Фото: Ben Katz.

Для постоянного освещения рядом с каждой камерой есть яркий светодиод, который подсвечивает кубик с углов. Фото: Ben Katz.

Вот лучший вид на то, как моторы взаимодействуют с кубиком. Фото: Ben Katz.

Тимоти Ли из Ars Technica сказал, что элементы PlayStation Eye должны были обнаруживать текущее состояние куба, Кац и Ди Карло поставили пару. «Они позиционировали их в противоположных углах кубика, позволяя каждой камере наблюдать три грани». Тимоти Ли сказал, что камерам нелегко отличить красный и оранжевый цвета, поэтому оба сотрудника окрашивали в оранжевые грани в черный цвет.

Джаред Ди Карло сказал: «Машина собирает низкобюджетный кубик Рубика бренда YJ Yulong». Он сказал, что они использовали самый дешевый куб (стоимостью 4,55$), который они могли найти в интернет магазине Amazon Prime, поскольку они думали, что они в конечном итоге уничтожат многие из них в этом процессе, но так или иначе они обошлись только четырьмя кубиками Рубика после сотен испытаний.

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

«Из программы полученная результирующая переменная типа "String" преобразуется в компактное последовательное сообщение и одновременно отправляется всем контроллерам двигателей с использованием адаптера USB-последовательный порт, подключенного к дифференциальной последовательной ИС». Процесс, по его словам, занимает около 45 мс. «Большую часть времени теряется в ожидании драйвера веб-камеры и обнаружения цветов».

Взяв более широкий взгляд на картину, Джаред Вайнтрауб (Jared Weintraub) с сайта 9to5Toys сказал: «Классическая детская игрушка 1980-х годов, кубик Рубика до сих пор остается одним из основных продуктов для ученых, математиков и ботаников. Завершение головоломки за считанные минуты было достигнуто несколькими сообразительными людьми и в последние годы исследователи подготовили роботов для выполнения задачи за считанные секунды».

Этот робот для быстрого решения в конкурентном режиме дает интересные реакции посредством комментариев людей относительно такого достижения.

Некоторые из них читателей блога не были впечатлены, не из-за времени, а из-за того, что они приложили много усилий, чтобы заставить машину завершить все грани. Как бы говоря, а в чем смысл этого?

«Кубик Рубика был разработан, чтобы развлекать людей. Возможно, ребята работали над навыками решения проблем», - сказано в одном комментарии. Еще один комментарий: «Ну, если бы робот понял решение задачи сам по себе, и собрал кубик сам - это было бы очень впечатляюще ...»

Вот видео «0.38 Second Rubik's Cube Solve», опубликованное Катцем, с успешным результатом ниже. Не забудьте следить в замедленном режиме, чтобы поймать, как робот работает, чтобы собрать кубик:

Источник: Tech Xplore