Pull to refresh
65.18
Recognitor
Computer Vision and Machine Learning

Как объяснить роботу свою точку зрения

Reading time 5 min
Views 4K
Когда-нибудь задумывались зачем сегодня нужны роботы? С детства мне казалось, что роботы стоят где-то на современных фабриках, что это где-то далеко от нас. Или в фантастике.
Но уже нет. Роботы на сегодня — это автоматизация любого рутинного процесса. Их могут ставить и на фермах, и в автомастерских.


Если раньше цена такой автоматизации была огромной, то сейчас она падает. Становятся доступны более сложные технологические манипуляции. Роборуки — это по сути такой универсальный манипулятор, который не нужно проектировать под каждую задачу, => снижение цены внедрения, ускорение внедрения (хотя роборука может быть дороже чем кусок конвейера, который делает аналогичную операцию).

Но роборука это лишь половина процесса. Вторая половина — научить роборуку думать. И тут до недавних пор ситуация была ужасная. Нет универсальных подходов, которые сможет настроить любой инженер. Надо нанимать программистов/разработчиков/математиков, чтобы они сформулировали проблему, попробовали сделать решение. Конечно, такая ситуация не могла существовать долго. Да и Computer Vision с глубоким обучением подвезли. Так что сейчас начинает появляться какая-то первичная автоматизация не только сторого повторяющихся процессов. Сегодня о ней и поговорим.


Pick-it



Компания предлагает решение, позволяющее захватывать разнообразные объекты с помощью различных роборук. В составе их решение — 3D камера и специальное программное обеспечение для обучения захвата объектов и последующего выполнения захвата.

(поиск цилиндрических объектов)

Есть предобученные формы, которые часто встречаются в промышленности: параллелепипеды, цилиндры.
Порядок использования примерно следующий:

  1. клиент показывает 3D камере объекты для захвата с нескольких сторон (или загружает CAD файл детали)
  2. указывает направления с которых можно производить захват (не обязательно единственное)
  3. настраивает интеграцию робота с ПО Pick-it для выполнения задачи захвата и конфигурирует необходимые действия.

Конечно, звучит не слишком сложно, но потребует некоторой квалификации на стороне клиента.
Основной минус — как только изменяются внешние параметры (укладка/освещение/форма), система может перестать работать, и далеко не всегда очевидно, что же пошло не так, чтобы переобучить ее. Нет стабильного процесса.

Технология компьютерного зрения:


Нельзя точно сказать, какой стек технологий используется в компании. Но, судя по времени основания компании, информации о технологии в интернете и другим косвенным признакам, используется “до deep-learning” стек технологий работы с 3D сценами. Например, поиск 3D преобразования для лучшего совмещения облаков точек (ICP методы и RANSAC метод). Иногда используются особые точки, иногда хитрые способы совмещения облаков точек или комбинация методов с некоторыми эвристиками.

(Robust 3D point cloud registration based on bidirectional Maximum Correntropy Criterion, Xuetao Zhang, Libo Jian, Meifeng Xu )

Залог успеха в таком случае — собственный хороший 3D сканер, качество которого и определяет надежность работы всех этих методов. А также важно не слишком большое отклонение формы объектов-примеров и тех объектов, которые нужно захватывать.
Похожие системы есть и у основных производителей роботов:
ABB| Kuka|Fanuc, а так же у (Cognex).
Но Pick-it по широте областей применения покрывает больше вариативности.

Стандартный подход сейчас для вариативных объектов


Благодаря появлению deep-learning в компьютерном зрении, для некоторых видов объектов стало проще обучить сверточную сеть, которая кроме детекции выполняет и оценку необходимых параметров.

Наибольший простор для таких методов — агрокультура. От инспекции растений до сбора плодов. В каком-то смысле классический пример — сбор черри томатов. Вот несколько примеров компаний которые делают сбор агрокультур:

Сбор помидоров. Оценивается размер/дистанция/цвет

Если присмотреться — собирает не очень.

Зачастую правильное выращивание — это уже 95% роботизации

Про этот ужас с точностью 89% даже статья на Хабре была.
Большинство таких стартапов используют детектор наподобии SSD или YOLO с последующей (или одновременной) оценки параметров спелости. Положении же плодов пространстве для захвата оценивается по 3D или стерео камерам.

Соответственно, перед производителем (и отчасти интегратором решения) стоят следующие задачи: контроль качества распознавания, пополнение обучающей выборки в реальных условиях, периодическое дообучение, написание алгоритма который завязывает CV часть, часть с 3D оценкой и часть с захватом.
По нашему опыту решение такой задачи каждый раз занимает пару месяцев.

Еще один подход


А если хочется работать и с обучаемой системой на Deep learning, но не останавливаться на одном применении? И обучать даже без сложного ПО для конфигурации под каждую задачу на стороне клиента.
Здорово было бы показывать роботу, что делать, и дальше он как-то сам бы. Но вот как показать роботу?
Google (ссылка на один из проектов) и OpenAI (другого проекта у них не видел) делают проекты где робот пробует следить за руками человека и повторять действия. Но точности далеки от необходимого в реальных применениях, да и математика уровня State-of-art, сложно масштабируемо.


Можно ли по-другому?
В какой-то момент, когда мы решали задачу ориентации контроллеров для VR в 3D пространстве, для нас сложился другой пазл. Ведь виртуальная реальность уже давно есть. Можно показывать роботу контролером виртуальной реальности как схватить объект. Но не в симуляторе, как у OpenAI, а в реальности. Просто дорисовав в неё манипулятор, и показав направление захвата.

Получается интуитивно. Через пару минут человек начинает понимать как хватать объекты или проделать с ним какие-то операции, управляя роботом в реальности.

Всегда важно понимать возможно ли вообще сделать желаемое роботом. И тут всё просто: если человек в VR может показать роботу как решить задачу — то его можно и обучить делать подобные вещи. Всё что можно показать — под силу современному уровню Machine Learning, и гарантированно выполняются с любой существующей роборукой. И избавляет от главного минуса современного ML — не нужны огромные базы примеров по которым обучать.

В чём плюс такого подхода? Ну, например, что не надо прописывать низкоуровневую логику. Зачем детектировать стакан, а потом говорить с какой стороны его как хватать? Задавать точно места захвата. Можно ведь показать:
  • стакан стоит на столе нормально — хватаем за стенку
  • стакан стоит на боку — хватаем за бок
  • стакан стоит вверх ногами — хватаем за донышко

И вуаля, через час получаем результат:

Ну, или более сложная задача: хотим собирать фрукты, но надо придерживать ветку — это сложно программируемая логика. Зато она просто обучается:

Или совсем простой пример — схватить и порезать огурец (естественно, обучили только захват):


Сейчас умные роботы — это что-то вроде персональных компьютеров в 80ые. Есть разные гипотезы к чему все придет. Цена аренды робота сравнялась со средней зарплатой рабочего, значит, роботизация все большего количества областей труда неизбежна. Никто не знает как всем этим будут через пять лет управлять, но, судя по тому как сейчас падает цена на роботы и растёт число их установок, всё только набирает ход.

Цена:

Объёмы:


P.S.


Иногда мы пишем более подробные апдейты про робота и как у нас всё развивается. Но так как это не формат Хабра — то публикуем их в блоге или на ютубе. Трансляция всего есть в телеге и вк.
На Хабре обычно публикую, когда рассказ становится уже более самозамкнутым, иногда собрав 2-3 разных мини-рассказа на соседние темы.
Tags:
Hubs:
+16
Comments 2
Comments Comments 2

Articles

Information

Website
cvml.ru
Registered
Employees
2–10 employees
Location
Россия