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

Возможности 25.04.2019
Возможности

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-гарнитуры прямо поверх одной из граней куба.

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

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 цикла сканирования и одно изъятие) прежде чем робот принимался за сборку, но результат того однозначно стоит.

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

Специалист по робототехнике Бен Кац и разработчик программного обеспечения Джаред Ди Карло создали робота, которому удалось собрать кубик Рубика за 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 движений.

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



Рекомендуем почитать

Наверх