Содержание
Инженеры придумали, как тестировать роботов с помощью кубика Рубика
Анастасия
Никифорова
Новостной редактор
Роботам особенно сложно собирать 3D-головоломки из-за накопления ошибок. Результаты исследования публикует журнал IEEE Robotics and Automation Letters.
Читайте «Хайтек» в
Исследователи из Вашингтонского университета недавно разработали новый протокол для обучения роботов и проверки их работоспособности при выполнении задач, связанных с манипулированием объектами. Он основан на известной трехмерной комбинированной головоломке, изобретенной венгерским скульптором и архитектором Эрно Рубиком.
Работа с кубиком Рубика требует достаточной точности, особенно при длинных последовательностях манипуляций. Поэтому способность робота правильно и быстро манипулировать головоломкой свидетельствует о высокой производительности. В нашем протоколе требуется, чтобы робот выполнял последовательность манипуляций с кубиком Рубика как можно быстрее.
Болинг Янг, соавтор исследования, в интервью TechXplore
Новый протокол оценивает как скорость, так и точность робота при сборке кубика Рубика. В рамках исследования ученые продемонстрировали его потенциал и применимость в серии тестов.
В первом они использовали его для оценки двух базовых алгоритмических методов улучшения манипулятивных навыков машины с использованием платформы PR2. Потом ученые дали другому известному роботу по имени Herb собрать кубик Рубика. Это подтвердило, что их протокол можно применять к различным платформам.
«Роботы могут получить высокие баллы по нашему протоколу, успешно выполняя большое количество манипуляций и/или сводя к минимуму время, необходимое для выполнения манипуляций, — заключают ученые. — Таким образом, наш протокол устанавливает базовый уровень, с которым другие исследователи могут сравнивать свои системы».
Из-за серии последовательных движений роботам сложно манипулировать кубиком Рубика. Это значит, что отдельные ошибки, которые совершает машина, может накапливаться, влияя на его общую производительность при выполнении задачи.
Именно накопление ошибок является ключевой проблемой, влияющей на производительность роботов в последовательных задачах манипулирования. Поскольку кубик Рубика включает в себя последовательные манипуляции, они предлагают использовать головоломку для оценки манипулятивных навыков роботов и сравнения их с навыками других роботизированных систем.
Читать далее
«Джеймс Уэбб» сделал самую четкую фотографию звезды в истории
На глубине 8 000 метров ученые нашли странные бактерии: их не ожидали там увидеть
Ученые наткнулись на археологическую аномалию 1500-летней давности
MindCub3r по-русски — делаем робота, который может собрать кубик Рубика (статья обновлена) / Хабр
Не так давно обзавелся набором 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. Выбираем Инструменты — Обновление встроенного ПО;
3. В появившемся диалоговом окне нажимаем «Просмотреть», находим предварительно закаченный файл EV3-Firmware-V1.06H.bin и жмем «Открыть»;
4. В диалоговом окне в таблице «Доступные файлы встроенного ПО» выбираем EV3-Firmware-V1.06H и жмем «Загрузить». Ждем окончания загрузки;
5. Перезагружаем главный блок (выключаем и снова включаем).
Далее устанавливаем прошивку для датчика цвета:
1. В ПО LEGO MINDSTORMS EV3 открываем новый пустой проект;
2. Выбираем Инструменты — Мастер импорта блоков;
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, распакованный из архива MindCub3r-v1p1a.zip и нажимаем «Открыть»;
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 цикла сканирования и одно изъятие) прежде чем робот принимался за сборку, но результат того однозначно стоит.
Если у вас остались вопросы, задавайте их в комментариях к статье, с удовольствием на них отвечу.
Почему сбор кубика Рубика не свидетельствует о превосходстве роботов
«С точки зрения робототехники то, что они смогли заставить его работать, просто невероятно», — говорит Лесли Пак Кельблинг, профессор Массачусетского технологического института, ранее работавшая над обучением с подкреплением. Но Кельблинг предупреждает, что этот подход, скорее всего, не позволит создать роботов общего назначения, потому что требует очень много обучения. Тем не менее, добавляет она, «здесь есть зерно чего-то хорошего».
Настоящая инновация Dactyl, которая не очевидна из видео, заключается в том, как он переносит обучение из симуляции в реальный мир.
Система OpenAI состоит из гуманоидной руки британской компании Shadow Robot Company, соединенной с мощной компьютерной системой и набором камер и других датчиков. Dactyl выясняет, как манипулировать чем-то, используя обучение с подкреплением, которое обучает нейронную сеть управлять рукой на основе обширных экспериментов.
Обучение с подкреплением привело к другим впечатляющим демонстрациям ИИ. Наиболее известно, что DeepMind, дочерняя компания Alphabet, использовала обучение с подкреплением, чтобы обучить программу под названием AlphaGo играть в чертовски сложную и тонкую настольную игру Го лучше, чем лучшие игроки.
Этот метод также использовался с роботами. В 2008 году Эндрю Нг, эксперт по искусственному интеллекту, впоследствии занимавший видные должности в Google и Baidu, использовал эту технику, чтобы заставить дроны выполнять фигуры высшего пилотажа. Несколько лет спустя один из учеников Нг, Питер Аббил, показал, что этот подход может научить робота складывать полотенца, хотя это так и не оказалось коммерчески жизнеспособным. (Аббель также ранее работал неполный рабочий день в OpenAI и до сих пор является консультантом компании).
В прошлом году OpenAI показал, что Dactyl просто вращает куб в руке, используя движение, полученное в результате обучения с подкреплением. Однако, чтобы собрать кубик Рубика, Дактиль не полагался полностью на обучение с подкреплением. Ему помог более традиционный алгоритм, чтобы определить, как решить головоломку. Более того, хотя Dactyl оснащен несколькими камерами, он не может видеть каждую сторону куба. Поэтому потребовался специальный куб, оснащенный датчиками, чтобы понять, как ориентированы квадраты.
Успех в применении обучения с подкреплением к робототехнике был достигнут с трудом, потому что этот процесс склонен к неудачам. В реальном мире роботу нецелесообразно тратить годы на отработку задачи, поэтому обучение часто проводится в симуляции. Но часто бывает трудно перенести то, что работает в моделировании, на более сложные условия, когда малейшее трение или шум в суставах робота может сбить его с толку.
Вот здесь-то и проявляется настоящая инновация Dactyl. Исследователи разработали более эффективный способ моделирования сложности реального мира, добавляя шум или возмущения в свою симуляцию. В последней работе это влечет за собой постепенное добавление шума, чтобы система научилась быть более устойчивой к реальной сложности. На практике это означает, что робот способен обучаться и переходить от симуляции к реальности более сложным задачам, чем было продемонстрировано ранее.
Голдберг, профессор Беркли, который был проинформирован о работе перед ее выпуском, говорит, что симуляционный подход к обучению умен и широко применим. На самом деле он планирует попробовать использовать его сам.
Щелкните. Вир. Вспышка. Этот робот собирает кубик Рубика.
Автор:
Майк Фрэнсис, видео Робби Бурланда John Duong ’22, мы помним, что их прощальным подарком в студенческие годы был робот, который собирал кубик Рубика быстрее, чем человек.
Для совместного проекта старшеклассников каждый из трех студентов привнес свои специальные навыки. Джепсон построил и собрал устройство, используя 3D-принтер и навыки механика, которые использовали различные кабели, микроконтроллеры и двигатели. Холланд разработал искусственный интеллект, который управляет движениями устройства. А Duong предоставила систему визуальной обратной связи, которая «считывает» цвета и ориентацию куба таким образом, чтобы программное обеспечение могло анализировать, насколько куб близок к решению. Все трое пишут, читают и манипулируют кодом.
«В основном мы начали летом, придумывая идею для старшего проекта», — объяснил Джепсон. «А Деймону очень нравился кубик Рубика, поэтому мы решили сделать робота, который собирает кубики Рубика».
Были построены и другие машины для решения кубов, и некоторые из них даже быстрее, но Джепсон сказал, что они подумали: «Может быть, мы сможем сделать некоторые части лучше».
Удивительно наблюдать, как несколько двигателей вращают куб так быстро, что он размывается, и знать, что проект был задуман и построен полностью с нуля менее чем за учебный год. Щелчок, идет переключатель. Вирр, моторизованное оружие. Вспышка, идет цифровая индикация, показывающая, что это конкретное решение потребовало 18 ходов и 3,03 секунды.
«Это было очень сложно, — признал Джепсон, — но оно того стоило».
Трое студентов, каждый из которых получил шестизначную последипломную работу, являются частью небольшого класса выпускников компьютерных наук под руководством профессора Шерин Ходжа. Класс 11 завершает четыре проекта, хотя устройство «Кубик Рубика» — единственное, в котором используется физическое движение, что придает ему висцеральный вау-фактор. «Это сразу впечатляет», — сказал Холланд.
Ходжа сказала, что помнит тот день, когда ей позвонили студенты и сказали, что устройство работает, и она прибежала посмотреть. Когда он зажужжал, она подумала: «Это безумие».
Хотя сборка кубика Рубика может показаться не особенно практической социальной потребностью, Холланд отметил, что те же технологии используются в электрических, автономных транспортных средствах.
«Одна похожая вещь, которую вы увидите, — это Tesla», — сказал Холланд. «Все три вещи, которые мы используем сейчас: компьютерное зрение, понимание вашего окружения, видение машин вокруг вас, уличные фонари. Робототехника, очевидно, физические моторы на машине и сенсоры, реагирующие физически. И ИИ, который используется для определения маршрута вашего автомобиля и интерпретации информации, чтобы использовать логику автомобиля».