Робота научили аккуратно разбрасывать бананы по корзинам

Американские инженеры разработали алгоритм для манипуляторов, позволяющий им учиться хватать бананы и другие предметы, и бросать их в заданную точку. Во время работы алгоритм рассчитывает параметры броска с помощью физического симулятора, а также нейросети, которая вносит свои корректировки, рассказывают авторы в блоге Google. Статья с описанием разработки опубликована на сайте Принстонского университета.

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

Инженеры под руководством Томаса Фанкхауса (Thomas Funkhouse) из Google и Принстонского университета разработали алгоритм, позволяющий роботам захватывать и бросать произвольные предметы в заданную точку. Разработчики выбрали необычный подход и решили объединить захват и бросок в единую задачу, потому что это тесно связанные между собой проблемы.

Во время работы алгоритм получает в качестве исходных данных снимок с камеры глубины, расположенной над корзиной с предметами. На этом снимке содержатся данные как о цвете, так и о глубине (расстоянии). Получив эти данные, алгоритм обрабатывает снимок с помощью нейросети, размечая на нем пространственные признаки. Параллельно с этим физическая симуляция позволяет примерно рассчитать скорость, при которой робот должен отпустить предмет, чтобы он попал в нужную корзину. Эти данные объединяются и подаются на две другие нейросети, которые рассчитывают вероятности успеха для различных захватов и скорости отпускания. Алгоритм повторяет эти действия, поворачивая исходный снимок на 16 углов. В результате робот выполняет такой захват и соответствующее ему ускорение, для которого была рассчитана максимальная вероятность успешного исполнения.

Инженеры создали самообучаемую систему, которая дает роботу задание, а затем следит за успешностью выполнения. После того, как робот разбросал предметы из общей корзины по мелким корзинам, он может поднять раму и все объекты скатятся обратно. Таким образом робот научился бросать незнакомые ему предметы в нужные отсеки корзины с точностью 82,3 процента. На обучение у робота ушло около десяти тысяч попыток.

Недавно в Японии прошел конкурс ROBOCON, в котором соревновались разработчики роботов, бросающих бутылки, частично заполненные водой. Как и в известном челлендже, задача роботов заключалась в том, чтобы после приземления бутылка приземлилась на плоскую поверхность вниз дном и не упала.

Григорий Копиев