Создайте своего собственного робота для решения кубиков Рубика

После покупки робототехнического комплекта Lego Mindstorms для двух своих дочерей шведский разработчик программного обеспечения Ханс Андерссон не удержался и использовал его для создания робота, решающего кубики Рубика.
Полные инструкции по копированию робота, который обычно может решить головоломку в течение 6 минут, доступны для скачивания.

Цель Андерссона состояла в том, чтобы собрать робота исключительно из деталей, включенных в стандартный комплект Lego Mindstorms NXT (показан ниже).
Наборы можно приобрести за 250 долларов США в интернет-магазине Lego.


Типичный проект Lego Mindstorm NXT

По словам Андерссона, задачи проекта были тройными:

  • Механическая конструкция с использованием деталей из комплекта
  • Обнаружение цветов с помощью простого датчика освещенности
  • Разработка алгоритма для эффективного решения головоломки

«Механизм выглядит простым, но есть много работы ... и много отклоненных решений ... за ним», говорит Андерссон.
Его механический дизайн, основанный на деталях, доступных в наборе Lego NXT, представлен ниже.
Он доступен в виде 89-страничного документа (загрузка файла PDF объемом 14,6 МБ).


Наклоненный твистер решает кубики Рубика за 6 минут

Традиционный кубик Рубика имеет лица, состоящие из шести разных цветов: белого, красного, оранжевого, желтого, красного, зеленого и синего.
Чтобы успешно определить цвета граней куба с помощью простого датчика освещенности, Андерссон обнаружил, что ему нужно изменить цвета некоторых граней куба, которые он использовал.

Это подводит нас к вызову кубика Рубика.
Как указывает Андерссон, «кубик Рубика имеет 43 252 003 274 489 856 000 различных возможных конфигураций, [пока] одна и только одна из этих возможностей представляет« решенный »куб, имеющий один цвет на каждой из 6 его сторон» (как показано выше - право).

Выравнивание всех граней надлежащим образом в течение разумного периода времени представляло собой сложнейшую задачу из всех.
Эта задача осложнялась тем фактом, что Андерссону требовалось, чтобы Tilted Twister выполнял его автономно с использованием поставляемого модуля микроконтроллера Mindstorm NXT, получившего название «NXT Intelligent Brick», а не с помощью внешнего ПК.

Устройство Brick (показанное справа) основано на 32-битном процессоре на базе ARM7 ( AT91SAM7S256 , использующем ядро ​​ARM7TDMI) и оснащено 64 КБ ОЗУ и 256 КБ флеш-памяти.
Обычно он программируется с использованием NXC («Not eXactly C»), языка с открытым исходным кодом, похожего на C.

Андерссон сообщает, что его первые попытки привели к алгоритму, требующему около 100 ходов для решения куба.
После доработки своего подхода он в конечном итоге придумал более эффективный подход, который, как правило, решал куб в «чуть менее 60 поворотах», который он считает «довольно хорошим, для общего решения». Он писал и моделировал программное обеспечение на ПК, используя сначала стандартный C, а затем перенес его на NXC.

Вот видео, демонстрирующее работу Tilted Twister:


Посмотрите, как Наклоненный Твистер решает кубик Рубика

(Нажмите на изображение, чтобы воспроизвести видео)



Для получения полных инструкций, списков деталей и ссылок на необходимые компоненты посетите красиво оформленный веб-сайт Andersson Tilted Twister .