Нетривиальная тривиальность: как робота научить искать нужный предмет в куче хлама

Нетривиальная тривиальность: как робота научить искать нужный предмет в куче хлама

Каждый день мы совершаем множество действий, о которых особо и не задумываемся. Мы ходим, дышим, смотрим на что-то, что-то слышим и т. д. Но есть и такие действия, которые требуют хоть какого-то когнитивного вовлечения: поиски ключей, сортировка вещей для стирки, уборка и т. д. Все это весьма прозаичные и легковыполнимые задачи. Для человека — да, но вот для робота — это настоящий кошмар. Положите перед роботом кучу хлама, попросите его найти в ней определенный предмет, и вы увидите, что бояться восстания машин как в «Терминаторе» точно не стоит. И вот группа ученых из Массачусетского технологического института (США) решили наделить робота умением находить нужный предмет среди множества ненужных. Почему такая задача для робота сложна, как именно ученые помогли роботу с ней справиться, и какое практическое применение может быть у робота-ищейки? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.

Основа исследования

В чем заключается основная сложность поиска определенного предмета в куче других? В том, что целевой предмет может быть частично или полностью скрыт от нашего взора. В таком случае мы просто начинаем перебирать предметы, откладывая в сторону все лишнее, пока не найдем нужное. Похожая картина может наблюдаться и на очень аккуратном складе, где храниться множество, скажем, коробок с чем-то, а нам нужно найти определенную. Человеку выполнить эту задачу не так уж и сложно, в отличие от роботов.

Методики обучения роботов поиску каких-либо объектов на данный момент можно разделить на две категории. В первой используется зрительное восприятие, когда робот с помощью камер ведет активный поиск в поисках целевого объекта. Если ему что-то мешает, он может убрать или обойти преграду и продолжить поиск. Такая система отлично работает, когда объектов мало, но становится малоэффективной, если «куча хлама» большая или их несколько.

Второй подход основан на использовании радиочастотного (РЧ или RF от radio frequency) восприятия в дополнение к визуальному. В отличие от видимого света и инфракрасного излучения, радиочастотные сигналы могут проходить через многие материалы, такие как картон, дерево и пластик. Опираясь на этом факте, были созданы системы, способные находить скрытые объекты, помеченные специальными метками (RFID от Radio Frequency IDentification). Этот подход хорошо в том случае, если все целевые объекты будут помечены RFID. Если же метка будет лишь на небольшом подмножестве объектов, то система становится не такой эффективной.

В рассматриваемом нами сегодня труде ученые решили задаться вопросом: возможно ли создать роботизированную систему, которая выполняет эффективный механический RF-Visual (радиочастотный+визуальный) поиск как для целевых объектов с RF-меткой, так и без нее? Вместо требования того, чтобы все элементы были RF-помечены, рассматривались более реалистичные и практичные сценарии, в которых маркируется только подмножество элементов.


Изображение №1: роботизированная система FuseBot.

В результате была создана роботизированная система под названием «FuseBot», которая может эффективно находить и извлекать помеченные и не помеченные предметы в условиях прямой видимости, вне прямой видимости и в условиях полной окклюзии (визуально невидимый).

В системе FuseBot использовано два ключевых компонента, которые в совокупности позволяют преодолеть вышеуказанные проблемы: RF-Visual Mapping и RF-Visual Extraction Policy.


Изображение №2

RF-Visual Mapping: первый компонент FuseBot строит вероятностную карту занятости (пространственной) местоположения целевого предмета в куче путем объединения информации с камеры в манипуляторе робота и радиочастотной антенны (2a). Этот компонент локализует RFID в куче и применяет условное (с учетом формы) RF-ядро для создания отрицательной трехмерной вероятностной маски (красная область на 2b).

Объединяя эту информацию с визуальным наблюдением за 3D-геометрией кучи (2c), а также с предварительными знаниями о геометрии целевого объекта, FuseBot создает 3D-распределение занятости, показанное в виде тепловой карты на 2d, где красный цвет указывает на высокую вероятность, а синий — на низкую вероятность местоположения целевого объекта.

RF-Visual Extraction Policy: после вычисления трехмерного распределения занятости FuseBot требуется эффективная тактика извлечения для изъятия целевого элемента. Извлечение (изъятие) — это многоэтапный процесс, который включает в себя удаление мешающих элементов и итеративное обновление карты распределения занятости.

Чтобы оптимизировать этот процесс, извлечение формулируется как задача минимизации ожидаемого количества действий, учитывающая ожидаемый прирост информации, ожидаемый успех захвата и карту распределения вероятностей. Чтобы эффективно решить эту проблему, FuseBot выполняет сегментацию экземпляров на основе глубины (2e). Сегментация позволяет интегрировать 3D-распределение занятости по каждому из сегментов объекта и определить оптимальный захват.

Система FuseBot была реализована с помощью универсального робота UR5e и захвата Robotiq 2f-85. На манипулятор была установлена камера Intel RealSense Depth D415 и логопериодические антенны.

В ходе практических испытаний было проведено 180 опытов. Ученые также провели сравнение своей разработки с X-Ray — системой, которая вычисляет двумерное распределение занятости на основе RGB-D изображения.

Структура системы FuseBot

Процесс RF-Visual картирования состоит из четырех ключевых этапов, на которых робот сначала создает отдельные RF-карты и визуальные карты, затем объединяет их вместе и, наконец, складывает информацию о геометрии целевого объекта. Для простоты объяснения ученые предлагают рассматривать сценарии, в которых целевой объект одновременно закрыт и не имеет тегов.

Первый шаг RF-Visual картирования включает в себя построение трехмерной визуальной карты неопределенности окружающей среды. Эта карта важна для определения всех возможных местоположений скрытого объекта. Для создания карты визуальной неопределенности робот перемещает направленную вниз камеру над кучей, чтобы охватить рабочее пространство. Он следует простой траектории на основе квадрата в плоскости, параллельной столу, на котором лежат предметы.

FuseBot объединяет визуальную информацию, полученную во время движения, с помощью структуры Octomap. Структура представляет трехмерное рабочее пространство в виде воксельной сетки. Используя информацию о глубине и положении камеры, FuseBot может определить воксели, которые видит камера: рабочая среда (поверхность стола и кучи), свободное пространство (воздух) и скрытое пространство (например, под кучей или столом). Формально он создает трехмерную матрицу неопределенности C(x, y, z) следующим образом:

Здесь более высокое значение (т.е. 1) представляет большую неопределенность. Стоит отметить, что в этом представлении неопределенными считаются как неисследованные, так и скрытые области. Для примера можно использовать сценарий, показанный на изображении №1.


Изображение №3

Этот сценарий состоит из двух куч с тремя предметами с RFID-метками, где целевой предмет представляет собой игрушку (плюшевая красная черепаха, показанная вверху в центре), спрятанную под кучкой. Карта визуальной неопределенности изображена в виде тепловой карты 3a. На ней видно, что области под поверхностью куч имеют высокую вероятность (красный цвет) нахождения там целевого объекта.

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

Робот оснащен антенной, которую он использует для улавливания радиочастотных сигналов. Антенна используется для считывания и локализации RFID-меток в куче предметов. Когда антенна передает радиочастотные сигналы, пассивные RFID-метки собирают энергию этого сигнала для включения и откликаются своим собственным идентификатором. FuseBot использует ответ каждой метки для вычисления расстояния до нее. По мере того как робот перемещается над кучей для сбора различных измерений глубины, он может одновременно собирать измерения расстояния от каждой из меток, а затем объединять эти измерения с помощью трилатерации для локализации каждой из RFID-меток в куче.

FuseBot использует расположение меток RFID для определения областей в куче, в которых с меньшей вероятностью расположен целевой предмет, поскольку они заняты предметами с метками RFID (а не целевым предметом без метки). Основная проблема здесь заключается в том, что система может восстановить местоположение RFID-метки только как единую точку в трехмерном пространстве. Поскольку RFID прикреплен к поверхности помеченного предмета, остается нетривиальная неопределенность в отношении ориентации и точного положения предмета в куче.

RF-ядро: FuseBot кодирует неопределенность местоположения объекта с RFID-меткой, создавая трехмерное RF-ядро, которое использует известные размеры объекта с меткой. Радиочастотное ядро моделируется как трехмерная гауссова диаграмма с центром в метке RFID и маскируется сферой, радиус которой равен самому длинному измерению объекта с меткой. Сферическая маска представляет собой верхнюю границу самого дальнего расстояния от метки, которое может занимать объект. Формально радиочастотное ядро можно представить через следующее уравнение:

где p — точка, в которой оценивается ядро, pRFID — местоположение RFID, ds и dl — самое короткое и самое длинное расстояние до ограничивающей рамки объекта с RFID-меткой, а ||·||2 представляет норму L2. Здесь стоит отметить, что отрицательный знак представляет отрицательную вероятность того, что целевой объект займет соответствующую область.

При наличии нескольких предметов с RFID-метками карта RF достоверности представляет собой линейную комбинацию всех ядер RFID.

где N — количество предметов с RFID-метками в среде; pi — это i-е местоположение RFID; m(p, pi) — это i-е RF-ядро. Распределение RF достоверности для сценария (изображение №1) показано на 3b. Поскольку в куче есть три предмета с RFID-метками, на рисунке показаны три сферические области, представляющие гауссианы с центром в каждом из локализованных RFID.

Учитывая карту визуальной неопределенности и карту RF достоверности, FuseBot строит RF-Visual карту неопределенности, добавляя две карты попиксельно (т. е. C + R). Такая карта для приведенного выше примера с двумя кучами и тремя предметами с RFID-метками показана на 3c.

Интуитивно понятно, что размер целевого объекта ограничивает потенциальные области, которые он может занять в визуально скрытой зоне кучи. Чтобы включить целевой размер в распределение, FuseBot использует подход, аналогичный тому, что применялся для RF-ядра.

где p — точка, в которой оценивается ядро; ds и dl — самое короткое и самое длинное расстояние до ограничивающей рамки целевого объекта; ||·||2 — норма L2.

Чтобы объединить геометрические данные из этого целевого ядра с ранее рассчитанной картой неопределенности RF-Visual, FuseBot выполняет трехмерную свертку карты неопределенности RF-Visual и ядра. После свертки области, которые могут соответствовать целевому объекту в более возможных ориентациях, будут иметь воксели с более высокими весами, чем другие области неизвестной среды. Следовательно, результирующее 3D-распределение занятости теперь кодирует визуальную неопределенность, предметы с RFID-метками, а также форму и размер целевого предмета.

На 3d показано результирующее RF-Visual распределение занятости из этой операции свертки. Стоит отметить, что в этом распределении области рядом с метками RFID, а также области у края кучи имеют более низкую вероятность (синий/белый), чем другие области в куче.

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

Главной задачей создания компонентов для RF-Visual Extraction Policy является минимизация требуемых для извлечения предмета действий. Это значит, что необходимо учесть вероятность того, что в куче предметов может быть несколько областей с высокой вероятностью нахождения там целевого объекта. Следовательно, робот либо должен выбрать, где ему копаться, либо поочередно исследовать одну область за другой. Проблема в том, что такие подходы крайне малоэффективны.

Таким образом, чтобы обеспечить эффективное извлечение, FuseBot нуждается в тактике, которая не только использует распределение вероятностей местоположения целевого объекта, но также ожидаемый прирост информации от данного действия и вероятность успешного захвата.


Изображение №4

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

Стоит учесть, что подход простого проецирования всей вероятности под объектом на поверхность предполагает, что удаление этого объекта откроет все воксели под ним. На практике это не так, поскольку объект имеет ограниченную толщину. Хотя FuseBot не знает толщину каждого элемента, можно предположить, что воксели в верхней части кучи с большей вероятностью будут удалены при удалении объекта. Чтобы сместить поиск в сторону получения этой информации, FuseBot применяет функцию взвешивания, которая увеличивает веса вокселей ближе к поверхности кучи. Сумма этих взвешенных вероятностей или оценка каждой маски теперь оптимизируется как для получения информации, так и для вероятного расположения меток для каждого видимого объекта. Данный процесс можно изобразить в виде следующей формулы:

где si — оценка маски i; mi — все (x, y) точки, содержащиеся в i-й маске; zmi — максимальное значение z под i-й маской; px, y, z — вероятность из распределения занятости для точки (х, у, z); γ — коэффициент дисконтирования для взвешивания вероятности.

Хотя вышеуказанные оценки стимулируют как использование распределения вероятностей, так и максимизацию получения информации, они не учитывают вероятность неудачных попыток захвата. Для этого FuseBot вычисляет вероятность успешного захвата для каждой точки, используя сеть планирования захватов. Затем FuseBot выбирает наилучший возможный захват в каждой маске объекта. Характеристики захвата каждой маски можно выразить так:

где gi — наилучшая вероятность захвата для i-й маски; g(x, y) — вероятность захвата точки (x, y), заданная сетью захвата; mi — все (x, y) точки, содержащиеся в i-й маске.

FuseBot в итоге использует качество захвата и оценки маски, чтобы найти оптимальную тактику извлечения, оптимизируя следующее:

где i — номер маски, τ — порог приемлемого качества захвата; gi и si — качество захвата и оценка для i-й маски; ⌈.⌉ — функция потолок.

Итоговый алгоритм извлечения выглядит следующим образом:

Результаты опытов


Изображение №5

Всего было выполнено 181 опыт с участием FuseBot и X-Ray, результаты которых в последствии сравнивались. Эксперименты охватывали несколько сценариев различной сложности с 1-3 кучами, 0-10 предметами с RFID-метками и целевыми объектами разных размеров (фото выше). Эксперимент считался успешным, если роботу удавалось найти и извлечь из кучи целевой предмет за ≤ 15 действий.


Таблица №1

В таблице выше показаны 10-й, 50-й и 90-й процентили количества действий, необходимых для поиска и извлечения целевого объекта. Она включает результаты работы FuseBot с целевыми объектами с меткой, FuseBot с целевыми объектами без метки и результаты работы X-Ray.

FuseBot требовалось всего 3 действия в среднем для извлечения непомеченного целевого объекта, что на 40 % больше, чем среднее число действий X-Ray, равное 5. Это показывает, что FuseBot способен извлекать непомеченные целевые элементы более эффективно. 90-й процентиль FuseBot с непомеченными элементами составляет 6 действий, а 90-й процентиль X-Ray — 11 действий. Это показывает, что FuseBot может работать более надежно, с улучшением на 45% по сравнению с современным уровнем техники на 90-м процентиле. При поиске помеченного целевого элемента FuseBot требуется только 2 действия в среднем и 5 действий для 90-го процентиля.

Результаты опытов показывают, что FuseBot может извлекать целевой предмет в 95% случаев для немаркированных и маркированных объектов, в то время как X-Ray может делать это только в 84% сценариев. Это демонстрирует, что FuseBot не только лучше в аспекте эффективности, но и в аспекте вероятности успеха механического поиска.


Таблица №2

В таблице выше показано время поиска и извлечения как для FuseBot, так и для X-Ray. Здесь стоит отметить, что роботы были запрограммированы на движение с одинаковой скоростью во всех экспериментальных испытаниях.

FuseBot нужно было в среднем 62 секунды, в то время как медиана X-Ray составила 142 секунды, что показывает более чем двукратное улучшение производительности по сравнению с базовым уровнем. 90-й процентиль FuseBot составляет 132 секунды, в то время как для X-ray — 237 секунд. Следовательно, несмотря на дополнительный этап сканирования, FuseBot справляется с задачей лучше, чем X-ray.

Сравнение FuseBot и X-ray также велось и в рамках различных сценариев эксперимента. Сценарии первого уровня сложности состояли из 2 отдельных куч предметов с 20 предметами-дистракторами (т. е. нецелевые объекты). На втором уровне сложности было 3 кучи и 25 дистракторов. А на третьем — 3 кучи и 42 дистрактора.


Изображение №6

На графике 6a показано количество действий, необходимых для поиска и извлечения целевого объекта как для FuseBot (зеленый), так и для X-Ray (синий) в трех сценариях разной сложности. Столбики погрешностей указывают 10-й и 90-й процентили.

На всех уровнях сложности FuseBot превосходит X-Ray с точки зрения как его медианы, так и 90-го процентиля. Это показывает, что преимущества радиочастотного восприятия распространяются на сложные сценарии.

В более сложных сценариях с большим количеством отвлекающих объектов и FuseBot, и X-Ray требовали большего числа действий для извлечения целевого объекта.

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

Как было сказано ранее, FuseBot создает RF-ядро для каждого идентифицированного и локализованного RFID-маркированного объекта и использует ядра для построения распределения занятости. Распределение занятости дает FuseBot лучшее представление о местонахождении целевого объекта. Была выполнена количественная оценка работы системы с разным количеством предметов с RFID-метками в ходе 54 экспериментов в одном и том же сценарии (3 кучи и 25 объектов) с разным количеством RFID-меток.

На 6b показано количество действий, необходимых для извлечения целевого объекта, по сравнению с количеством локализованных RFID-меток в рабочей среде для FuseBot (зеленый) и X-Ray (синий).

По мере увеличения количества локализованных RFID среднее количество действий FuseBot уменьшается с четырех без RFID до двух с 6-9 RFID. Это повышение эффективности ожидается, потому что дополнительные элементы с метками RFID увеличивают количество RF-ядер, что, в свою очередь, сужает количество возможных местоположений для целевого предмета без метки. В более общем плане этот результат показывает, что использование радиочастотного восприятия повышает эффективность механического поиска и что улучшение пропорционально количеству предметов, помеченных RFID.

Забавно, что даже при отсутствии RFID меток FuseBot превосходит Xray. В частности, для FuseBot требуется в среднем всего 4 действия, в то время как для X-Ray требуется 7. Это связано с двумя основными причинами. Во-первых, в то время как FuseBot использует 3D-распределение, X-Ray использует только 2D-распределение вероятностей, которое не учитывает высоту различных объектов. Во-вторых, в отличие от FuseBot, X-Ray не учитывает качество захвата при выборе объекта для извлечения из кучи. Это делает его восприимчивым к выбору объектов, которые труднее (следовательно, менее эффективно) схватить манипулятором.

Следующий тест был направлен на изучение того, повлияет ли присутствие объекта с RFID-меткой рядом с целевым объектом на производительность. В частности, проблема с применением отрицательной маски заключается в том, что она отклоняет тактику извлечения от предмета с RFID-меткой. Чтобы исследовать это, был проведен 51 эксперимент по трем сценариям:

  • сценарий «контакт» — когда есть по крайней мере один предмет с RFID-меткой, находящийся в прямом контакте с целевым предметом;
  • сценарий «противоположная сторона кучи» — когда RFID-метки находятся либо на противоположной стороне кучи от целевого предмета, либо в кучах, отличных от целевого предмета;
  • сценарий «разные кучи» — когда все RFID находятся в разных стопках, отличных от целевого объекта.

На графике 6c показано среднее количество действий, необходимых для поиска целевого предмета в каждом из трех сценариев. Для сравнения, синяя полоса показывает производительность X-Ray. Поскольку X-Ray не использует RFID, его производительность не разделена на разные категории.

Сценарии «разные кучи», «противоположная сторона кучи» и «контакт» требовали всего 2, 3 и 3 действий соответственно. Однако X-Ray потребовалось 7 действий для извлечения целевого предмета. Это показывает, что FuseBot превосходит его во всех сценариях, даже когда предмет с RFID-меткой касается целевого объекта.


Таблица №3

Затем, чтобы оценить преимущества RF-Visual тактики извлечения, ученые внедрили более простую тактику, которая не оптимизирует получение информации. Более простая тактика работает в два этапа: во-первых, она выбирает воксель с наибольшей вероятностью в распределении занятости RF-Visual (из RF-Visual Mapping); затем она выполняет лучший захват, который находится в пределах 5 см от проекции вокселя на поверхности кучи.

Результат этого опыта (таблица выше) показал, что тактика извлечения RF-Visual позволяет FuseBot успешно выполнить задачу со средним числом действий 2.5. Напротив, при использовании простой тактики извлечения требуется 4 действия. Это улучшение производительности связано с тем, что RF-Visual тактика оптимизирована для получения информации, что позволяет выполнять поиск в среде более эффективно.

Для более детального ознакомления с нюансами исследования рекомендую заглянуть в доклад ученых.

Эпилог

Глядя на творения Boston Dynamics, невольно начинаешь верить в предсказания некоторых футуристов, считающих, что роботы погубят человечество. Однако любое действие, совершаемое роботом, требует многих часов работы человека, его разрабатывающего. То, что кажется тривиальным для нас, становится непосильной задачей для машины. Ведь любое, даже самое простое действие — это не только само движение конечностей, но и мыслительный процесс, даже если он подсознательный.

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

Робот-сортировщик по имени FuseBot внимательно смотрел на кучу предметов, анализируя каждый воксель того, что он видит. Так он создавал карту вероятностей, чтобы оценить потенциальные области кучи, где может находиться целевой предмет. Дополнительно использовались радиочастотные метки, которые крепились как к целевому объекту, так и к другим предметам.

Было проведено множество тестов, которые показали, что FuseBot не только отлично справляется с поставленной задачей, но и превосходит своего ближайшего конкурента — систему поиска и извлечения объектов X-Ray.

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

Немного рекламы

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас, оформив заказ или порекомендовав знакомым, облачные VPS для разработчиков от $4.99, уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps от $19 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле в дата-центре Maincubes Tier IV в Амстердаме? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

 

Источник

Читайте также