Android-телефон решает кубик Рубика за 12,5 секунд

Робототехнический комплект Lego Mindstorms, управляемый смартфоном HTC Nexus One, успешно распутал головоломку с кубиком Рубика за 12,5 секунд на конференции разработчиков ARM в Силиконовой долине на этой неделе.

Для тех, кто не знаком с ARM Ltd., именно эта компания создала популярную архитектуру ARM RISC CPU, которая используется в миллиардах смартфонов, телевизионных приставок, веб-планшетов и многих других потребительских устройств.

Главный инженер ARM Дэвид Гилдей, который руководил демонстрацией роботизированного кубика Рубика, сказал DeviceGuru, что 12,5-секундный прогон был самым быстрым результатом на выставке, но что среднее решение кубического кубика Рубика 3x3x3 в текущей настройке работало около 15 секунд.

Вот видео на YouTube, на котором Гилдей демонстрирует свой последний решатель кубов 3x3x3:

Решатель кубов 3x3x3 под управлением HTC Nexus One

В вышеприведенной демонстрации программное обеспечение для решения кубов работает на HTC Nexus One , который работает на платформе Android 2.1 с процессором Snapdragon Qualcom QSD8250 с тактовой частотой 1 ГГц и 500 МБ системной оперативной памяти.

Как и все роботизированные решатели кубов Gilday, процессор Snapdragon в Nexus One основан на ядре ARM CPU, поэтому, конечно, он получает возможность создавать игры и играть на никеле своего работодателя.
(Справедливости ради, он, вероятно, делает большую часть этого в свое время.) С другой стороны, в наши дни трудно найти смартфон, на котором НЕ используется технология ARM CPU .

Среднее 15-секундное среднее значение для решателя кубов 3x3x3 представляет собой существенное улучшение по сравнению с 25-секундными решениями более ранней версии, которая была основана на смартфоне Nokia N95, выпущенном примерно в 2006 году.
Gilday связывает это улучшение с сочетанием более быстрого процессора, увеличенной оперативной памяти и обновленного кода для решения кубов.
(Управляющий смартфон более ранней версии имел процессор TI OMAP2420 на базе ARM11360 с тактовой частотой 332 МГц и 64 МБ ОЗУ; посмотрите короткую демонстрацию этого видео здесь .)

От 3х3х3 до 7х7х7 и далее

В сообщении в блоге ARM Гилдей размышляет о 18-месячном процессе улучшения своей роботизированной системы определения куба, чтобы он мог решать более сложные головоломки куба.
«Строго говоря, - отмечает он, они называются V-кубами , а не кубиками Рубика .

«Когда я демонстрировал робота 3x3x3 для решения кубов нескольким коллегам из ARM, у меня на столе лежали другие головоломки, включая кубики Рубика 4x4x4 и 5x5x5», - вспоминает Гилдей в одном из своих постов в блоге.
«Несколько человек спросили, может ли робот решить любую из этих больших головоломок.
Я сказал «нет» и добавил, что решить их физически будет гораздо сложнее, чем 3х3х3, поскольку роботу придется поворачивать как внешние грани, так и второй слой деталей.
Я отклонил эту мысль, пока [коллега] не предложил способ адаптации оригинального механизма, позволяющего манипулировать вторым слоем ».

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

«Я продолжал думать о кубах большего размера, пока не определил, что, согласно моей классификации, в кубах размером больше 7x7x7 не появятся новые типы фигур», - объясняет он.
«Сгруппировав все фрагменты, я смог написать общий алгоритм и сгенерировал набор из шестидесяти четырех таблиц поиска, которые могли бы решить зашифрованный куб любого измерения, ограниченного только оперативной памятью и временем процессора.
Я протестировал этот алгоритм на виртуальных кубах размером 100x100x100 ».

Затем Гилдей приступил к переносу оригинального приложения для смартфона с операционной системы Nokia Symbian S60v3 на Android и модифицировал его так, чтобы оно могло решать кубы произвольного размера.
Поскольку приложение Nokia было написано на Java с использованием MIDP 2.0, порт для Android прошел гладко, отмечает он.

Затем Gilday модифицировал механический дизайн для обработки кубов размером 7x7x7, реализовал вариант общего алгоритма NxNxN 7x7x7 в качестве приложения Android на смартфоне Motorola Droid и протестировал установку.
Роботизированному механизму потребовалось около 500 ходов, чтобы решить головоломку 7x7x7 со средним временем решения около 40 минут.

Вот видео на YouTube, демонстрирующее установку на основе Droid, решающую головоломку 7x7x7:

Решатель кубов 7x7x7, управляемый Motorola Droid

Говоря о гонках на людях, Гилдей говорит, что робототехнические комплекты Lego могут обрабатывать только около 1,5 ходов в секунду, тогда как игроки-люди могут делать от 5 до 6 ходов в секунду, что удивительно.

Дальнейшая информация

Для получения дополнительной информации о проекте Gilday для робота Рубика Cube Solver, прочитайте его полный пост в блоге здесь .
Для получения дополнительной информации о ARM Ltd. и ее процессорных технологиях архитектуры ARM посетите веб-сайт компании здесь .
Информацию о комплектах Lego Mindstorms Robotics можно найти здесь .