Робот собирает кубик рубика за 1 секунду. Робот установил новый рекорд по скоростной сборке кубика рубика

17.02.2019

Специалист по робототехнике Бен Кац и разработчик программного обеспечения Джаред Ди Карло создали робота, которому удалось собрать кубик Рубика за 0,38 сек. К слову, предыдущий рекордсмен, робот из компании Infeon, смог решить эту головоломку за 0,637 сек, рассказывают ученые в своем блоге.

Секрет успеха

Как и все подобные устройства, робот Каца и Ди Карло использует камеру (в этом случае PlayStation 3 Eye), которая делает снимки всех сторон кубика и передает их на компьютер. Он с помощью программы min2phase (в основе работы лежит двухфазный алгоритм Герберта Коцембы) за считанные доли секунды распознает цвета, выбирает оптимальное решение задачи и отдает команду роботу. Ультралегкие двигатели Kollmorgen ServoDisk и специальный контроллер позволяют искусственному интеллекту перевернуть одну сторону кубика Рубика на 90 ° за 10 миллисекунд. При условии, что головоломку можно решить за 19-23 хода, робот Каца и Ди Карло должен собирать кубик за 0,25 сек. Однако в реальности машина делает одно движение каждые 15 миллисекунд, следовательно, весь процесс занимает у нее 0,38 сек.

Спидкубинг и спидкуберы

Напомним, что кубик Рубика изобрел венгерский скульптор и преподаватель архитектуры Эрнё Рубик в 1974 г. С этого времени прошло уже больше 30 лет, однако головоломка до сих пор пользуется большим успехом. Сегодня существуют специальные соревнования по скоростной сборке кубика Рубика: участников называют спидкуберами, а сам процесс - спидкубингом (от англ. speedcubing). В сентябре 2017 г. новый рекорд установил 15-летний американец Патрик Понс. Он решил головоломку за 4,69 сек, сделав при этом 17 движений.

Аналогичные соревнования также проводятся среди роботов. До недавнего времени неофициальным чемпионом спидкубинга считался

15 октября 2014 в 12:57

MindCub3r по-русски - делаем робота, который может собрать кубик Рубика (статья обновлена)

  • DIY или Сделай сам

Не так давно обзавелся набором LEGO MINDSTORMS EV3 (31313) и с удивлением обнаружил, что в русскоязычном сегменте интернета довольно мало интересных материалов и инструкций по сборке и настройке роботов из этого набора. Решил, что нужно это дело исправлять.

Эта инструкция представляет собой вольный перевод материалов с официального сайта проекта MindCub3r и дополнена опытом самостоятельной сборки этого робота, способного собрать кубик Рубика меньше чем за 2 минуты.

Подробнее о LEGO MINDSTORMS EV3 можно почитать на этом сайте .

Вот, что у нас должно получится в итоге:

MindCub3r можно построить из одного комплекта Lego Mindstorms EV3 (31313, Home Edition).

Также вам понадобится инструкция по сборке и программное обеспечение, разработанное авторами проекта.

ВАЖНОЕ СООБЩЕНИЕ!!!

Буквально позавчера автор проекта объявил в своем ФБ, что подправил программное обеспечение для своего робота, и теперь оно работает со «штатной» прошивкой «кирпича» 1.06Н . На главной странице проекта эта информация также уже появилась, архив MindCub3r-v1p1a.zip , содержащий, среди прочего, и обновленную версию программы, уже доступен для загрузки. Загрузка и установка блока для датчика цвета по-прежнему необходима.

Дальнейший текст статьи исправлен с учетом последних изменений на сайте проекта!

Инструкцию по сборке MindCub3r смотрим или скачиваем .
Прошивку (на момент написания статьи EV3-Firmware-V1.06H.bin) для кирпича скачиваем с официального сайта LEGO MINDSTORMS .
Архив MindCub3r-v1p1a.zip с файлами проекта (MindCuber-v1p1.ev3, autorun.rtf и mc3solver-v1p1.rtf) качаем .
Еще нам понадобится прошивка для датчика цвета, которую берем . Все дело в том, что стандартные настройки этого датчика не корректно определяют цвета в режиме RGB.

После того, как вы соберете робота и скачаете себе на компьютер все необходимое, можно приступать к настройке.

Если вы еще не обновили прошивку «кирпича» первым делом устанавливаем новую версию ПО для главного блока Mindstorms EV3:

1. Запускаем программное обеспечение LEGO MINDSTORMS EV3;
2. Выбираем Инструменты - Обновление встроенного ПО ;

«Просмотреть» , находим предварительно закаченный файл EV3-Firmware-V1.06H.bin и жмем «Открыть» ;

«Доступные файлы встроенного ПО» выбираем EV3-Firmware-V1.06H и жмем «Загрузить» . Ждем окончания загрузки;

5. Перезагружаем главный блок (выключаем и снова включаем).

3. В появившемся диалоговом окне нажимаем «Просмотреть» , находим предварительно загруженный файл ColorSensorRGB-v1.00.ev3b и жмем «Открыть» ;

4. В диалоговом окне в таблице «Выбрать блоки для импорта» выбираем ColorSensorRGB-v1.00.ev3b и жмем «Импорт» .

5. Для завершения установки закройте диалоговое окно и выйдите из программного обеспечения LEGO MINDSTORMS EV3.

Теперь самый ответственный момент - загрузка программы робота в кирпич:
1. Распаковываем предварительно загруженный архив MindCub3r-v1p1a.zip ;

2. Запускаем ПО LEGO MINDSTORMS EV3;
3. Выбираем Файл - Открыть проект , ищем файл MindCub3r-v1p1.ev3, распакованный из архива MindCub3r-v1p1.zip и жмем «Открыть»;

4. После открытия проекта загружаем его в «кирпич». Загружаем, но НЕ ЗАПУСКАЕМ!!!

5. Идем в Инструменты - Обозреватель памяти (Ctrl+I) ;

6. Выбираем (выделяем) во вкладке «Модуль» или «SD-карта» папку проекта «MindCub3r-v1p1» ;
7. Нажимаем «Загрузить» ;

8. Находим файл mc3solver-v1p1.rtf «Открыть» ;
9. Еще раз нажимаем «Загрузить» , предварительно убедившись, что папка проекта «MindCub3r-v1p1» все еще выделена;
10. Находим файл InstallMC3-v1p1.rbf , распакованный из архива MindCub3r-v1p1a.zip и нажимаем «Открыть» ;

Примечание: файл mc3solver-v1p1.rtf имеет текстовое расширение.rtf. Пожалуйста, не пытайтесь открыть этот файл с помощью текстового редактора.

11. Закройте диалоговое окно, выйдите из программы и перезагрузите модуль.

Последний этап - устанавливаем приложение MC3 Solver на главном модуле:

1. Включаем блок:

2. Находим во второй вкладке папку проекта MindCub3r-v1p1 (в памяти блока или на SD-карте):

3. Выбираем файл InstallMC3-v1p1 и нажимаем на центральную кнопку модуля для установки:

4. В третьей вкладке проверяем наличие установленного приложения MC3 Solver v1p1 :


5. Перезагружаем блок.

6. В третьей вкладке блока запускаем приложение «MC3 Solver v1p1» для начала работы программы mc3solver-v1p1.rtf:

Всё! MindCub3r готов к использованию!

7. Запускаем программу в первой или во второй вкладке блока:

После запуска программы робот попросит вложить кубик («Insert cube») и начнет его сканировать датчиком цвета.
После сканирования робот ненадолго задумается и начнет сборку.
Удачное решение задачи ознаменуется радостным вращением кубика.

Вот, собственно, процесс работы робота:

Выше описан идеальный сценарий, на практике же все немного хуже - датчик может не правильно определить цвета - всего робот может провести 3 (три) цикла сканирования до того, как выдаст ошибку (Scan error). После этого нужно изъять кубик и снова вложить в робота. Причиной этому может быть или низкий заряд батареи модуля или «неправильный» кубик.
У меня иногда проходило по 3-5 повторов (3 цикла сканирования и одно изъятие) прежде чем робот принимался за сборку, но результат того однозначно стоит.

Если у вас остались вопросы, задавайте их в комментариях к статье, с удовольствием на них отвечу.

Робот полностью автономно собирает кубик Рубика!

Расчетное время:

Сканирование куба: 1 минута
Расчет решение: 20 - 40 секунд
Команда движения: 1 - 5 минут. Средняя 4.5 минут
В среднем общее время: 6 минут

Скачать прошивку и полную коннструкцию с описанием!

Инструкция:

Прочтите все на этой странице.

Запустить программу калибровки.

Запустите программу tiltedtwister. Вы должны использовать unscrambled куб при первом запуске программы. Программа должна вычислить решение нулевых ходов. Если нет, то прервать программу и настроить, какие должны быть скорректированы.

Карабканье кубе и дайте Twister наклонить ее решения.

Конструкция:

Вырезать кусок тонкого картона 70 х 70 мм и вырезать углы 8 х 15 мм.
Поместите его на поворотный круг, чтобы куб лежал на плоской поверхности. Важно, что кубик переворачивался легко по поверхности при наклонах.

Подключение проводов следующим образом:
1 - Touch - датчик прикосновения
2 - Датчик освещенности или HiTechnic цвет датчика
3 - ультразвуковой датчик
- Поворотный двигатель
B - Tilter - рука, двигатель
C - Light - цвет датчика двигатель

Кубик Рубик

К сожалению, желтого и белого цвета стандартного кубика Рубика не дает показания от датчика света.
Если у вас нету цветового датчика, то нужно заменить некоторые цвета куба.

На моем кубике, я заменил желтый, синий с голубым и оранжевым золотом.
Вы можете попробовать использовать другие цвета, до тех пор, как датчик сможет их различать.
Используйте программу colortest попробовать различные цвета. Используйте программу куб тестер для проверки куба.
Если у вас есть HiTechnic цвета датчик вам не придется заменять какие-либо наклейки на всех.

Важная часть:

Позиция свет / цвет датчика имеет решающее значение. Если слишком близко к поверхности куба чтения может быть неточным. Можно отрегулировать высоту положение датчика, осторожно согнув вверх датчика рукой. Она должна быть около 3 мм выше верхней части куба.

Разрыв захвата не должна быть слишком жесткой вокруг куба. В противном случае он будет перетаскивать куб назад с ним.

Если куб жесткий, можно смазать его силиконовым спреем. После смазки нужно поработать с кубом в течение нескольких минут.

Убедитесь в том, что поворотный механизм выравнивается до начала программы.

Убедитесь в том, что tilter рука полностью убирается перед запуском программы.

Необходимо избегать сильного источника света прямо над роботом.

Калибровка

Прежде чем позволить роботу решить задачку с кубом необходимо откалибровать его. Калибровку программа calibrates позицию сканера с рукой. Если вы используете HiTechnic цвет датчика, но calibrates значения цвета вашего куба (и тем куба должны быть unscrambled при запуске калибровки программы).
Выполнить калибровку программы и прочитать инструкции по NXT-дисплей. Когда программа попросит Вас позицию датчика выше центре куба, нужно повернуть его так, что излучающая свет попадает в центр кусок верхней части куба. Подсказка: Dim свет в комнате лучше увидеть, где свет от датчика хиты кубика.

Cube тестер

Запустить эту программу, чтобы проверить, если цвета куба могут быть урегулированы с помощью датчика света.
Место unscrambled куба на поворотный круг. Робот сканирует гранями куба. Затем он показывает минимальный и максимальный датчик света значения цвета для каждого куба лицо и рассказывает ли кубик имеет или нет.
Если цвет варьируется дублирование программы говорит куба не ОК. Но если совпадения мала она может работать в любом случае из-за цвета решить алгоритм tiltedtwister программы.

Цвет тестер (только для использования с учетом датчик)

Эта программа отображает текущую стоимость датчика света. Используйте его, чтобы проверить свой набор цветов.

HiTechnic цветной сенсор

Требует LEGO MINDSTORMS NXT микропрограммы v1.05 или более поздней версии.
См. отдельные здания инструкции для датчика руку с цветовой датчик.

Файлы с расширением. Rxe исполняемые файлы, которые должны быть загружаемым на кирпич с помощью LEGO mindstorms программы:
- Создать новый проект (Файл / Новый)
- Нажмите кнопку "NXT окна"
- Выберите вкладку памяти
- Нажмите кнопку "Загрузить"

Файлы с расширением. RSO являются звуковые файлы и должна быть загружаемые таким же образом, как rxe-файлы.

Размер tiltedtwister программа достаточно велика. Если у вас возникли проблемы при загрузке tiltedtwister.rxe т RY следующее:
- Удалить других программных файлов и звуковые файлы и т.д., чтобы освободить место.
- Обновление микропрограммы NXT. Я использую NXT Встроенноое 1.05 у меня кирпич. Вы можете загрузить и установить с микропрограммным LEGO Mindstorms NXT программного обеспечения.
- Дефрагментация NXT файловой системы. (Bricx командования центр / NXT Explorer / Дефрагментация)

Исходный код

Файлы с расширением. Nxc могут быть отредактированы и составлен с использованием BricxCC (http://bricxcc.sourceforge.net).

Устранение неполадок

Смотреть NXT-дисплей, как она сканирует лица. При использовании датчика света выводит учетом стоимости. Если вы используете цвета датчик выводит три значения для каждого сканирования. Это RGB-значения цвета чтении.

Когда она проверила все стоит она решает цветов. Экран говорит: "Урегулирование цветами".

Затем она вычисляет трех решений.
Для каждого решения он делает галочка звук с ростом поля. Это должно занять около десяти секунд.

После этого он начинает выполнение решений с указанием числа оставшихся извиваются на дисплее.

Если она не читая цветов, один из следующих вещей произойдет:
- При расчете решение он никогда не останавливается. Он держит с тикающей выше и выше поле.
- Он останавливается тикал и ничего не происходит.
- Это удается вычислить решение. Но это не правильное решение, поскольку оно решен цветов неправильно.

Удачи!

Ben Katz / YouTube

Специалист по робототехнике Бен Кац (Ben Katz) и разработчик программного обеспечения Джаред Ди Карло (Jared Di Carlo) создали робота, который способен собрать кубик Рубика за 0,38 секунды. Это рекордное время, рассказывает Ди Карло в своем блоге, хотя на данный момент оно официально не подтверждено.

Кубик Рубика был изобретен еще в 1974 году, однако головоломка до сих пор пользуется большой популярностью. Люди, увлекающиеся скоростной сборкой кубика Рубика, называются спидкуберами, а сам процесс - спидкубингом (от английского speedcubing). Сегодняшний рекорд принадлежит американцу Лукасу Эттеру, который в ноябре 2015 года собрал головоломку за 4,904 секунды. Аналогичные соревнования также проводятся среди роботов: до сих пор неофициальным «чемпионом» считался робот инженеров из компании Infeon. В 2016 году он собрал кубик Рубика за 0,637 секунды. Однако теперь Кац и Ди Карло разработали робота, который улучшил результат предыдущего рекордсмена на 40 процентов.

Как и все подобные устройства, робот исследователей использует камеру (в данном случае PlayStation Eye), которая передает снимки сторон кубика Рубика на компьютер. Он определяет расстановку деталей головоломки, а затем передает данные программе min2phase , в основе работы которой лежит двухфазный алгоритм Герберта Коцембы . Компьютер за доли секунды вычисляет оптимальное решение задачи, после чего подает команду роботу, и тот перемещает все элементы нужным образом.


Чтобы ускорить процесс, Кац использовал двигатели Kollmorgen ServoDisk, которые имеют очень высокое отношение крутящего момента к моменту инерции. Кроме того, инженер построил специальный контроллер, позволяющий повернуть сторону кубика Рубика на 90 градусов всего лишь за 10 миллисекунд. При условии, что собрать головоломку можно, в среднем, за 19-23 хода, робот Каца и Ди Карло должен решать задачу за 0,25 секунды. Однако в реальности процесс занимает 0,38 секунды, так как сейчас машина делает одно движение каждые 15 миллисекунд.

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


Недавно программист Мартин Шпанел разработал программное обеспечение, позволяющее собрать кубик Рубика с помощью очков дополненной реальности. В режиме реального времени оно выводит нужное действие с помощью AR-гарнитуры прямо поверх одной из граней куба.

Кристина Уласович