Я был очень рад, когда узнал, что работа, в которую я вложил свое сердце и душу во время учебы в магистратуре, была принята к публикации на Международной конференции IEEE/RSJ 2022 года по интеллектуальным роботам и системам (IROS 2022) .

Еще больше меня взволновало, когда я узнал, что мы были в числе немногих финалистов в номинации Лучшая работа (из 1716 принятых работ). Несмотря на то, что мы не выиграли, было приятно видеть, что победителем стала газета из той же области, что и наша: роботизированные манипуляции с тканью.

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

Задача о складывании ткани

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

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

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

Sim2Настоящее испытание

Как уже отмечалось, роботы, которые могут манипулировать тканью, могут быть очень полезными, но это сложная задача, потому что материалы очень разнообразны, и они могут двигаться по-разному. Особенно сложно заставить робота аккуратно и быстро складывать ткань.

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

Однако одной из основных проблем при использовании моделирования для обучения роботов складыванию ткани является так называемый «разрыв Sim2Real». Это относится к сложности переноса навыков, полученных в ходе моделирования, в реальный мир, где роботу приходится иметь дело со всеми сложностями и неопределенностями физической среды.

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

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

В нашей статье мы обучили модель RL, которая динамически складывает различные куски ткани с помощью робота и визуальной обратной связи. Темой технических задач, связанных с нашей работой, было согласование поведения робота и ткани в моделировании с их поведением в реальном мире. Основными проблемами были:

  1. Учет ограничений, связанных со сбором данных визуальной обратной связи в реальном мире, таких как тип и частота данных, доступных с камеры.
  2. Определение подходящего и идентичного способа управления роботом как в симуляции, так и в реальном мире.
  3. Выравнивание смоделированной и реальной среды вручную с точки зрения визуальных атрибутов и динамического поведения ткани на практике невозможно.

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

Частота датчика и задержка

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

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

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

Еще одним аспектом, связанным с камерами, помимо их рабочей частоты, является задержка, с которой они сталкиваются. Под задержкой можно понимать время между захватом наблюдения и его фактической доступностью для использования в нижестоящей задаче, такой как политика RL. Поэтому недостаточно, чтобы камера работала достаточно быстро с точки зрения частоты, но и содержание обратной связи должно быть достаточно свежим. Камера может выводить изображения со скоростью до 300 кадров в секунду, но если кадры задерживаются, например, на во-вторых, это заставило бы использовать частоту ниже 1 Гц, чтобы сохранить марковские вещи.

Оценка RealSense D435

В нашей лаборатории было доступно несколько вариантов датчиков, в том числе Intel RealSense D435, который является популярным вариантом в сообществе RL из-за его коммерческой доступности и разумной цены. Intel также предоставляет надежный SDK для взаимодействия со своими устройствами RealSense. Существует также оболочка Python для SDK, которая была хорошей функцией для быстрой отладки и обучения, но основной интерес был к C++ API, поскольку реальная система управления роботами использовала бы его вместо Python.

Первым делом при оценке полезности RealSense D435 было оценить различные доступные выходные потоки, а также их частоты и задержки, поскольку они имеют большое значение для алгоритма RL и стороны управления. Основными рассматриваемыми выходными потоками были чистый поток на основе RGB, а также поток на основе инфракрасного излучения, который обеспечивает изображения окружающей среды в градациях серого. Камера также имеет стереодатчик глубины, но его использование выходит за рамки статьи.

Частота камеры измеряется количеством кадров в секунду (fps) и может быть точно установлена ​​с помощью SDK. Однако оценка задержки камеры — непростая задача. К счастью для камеры RealSense, существует инструмент с открытым исходным кодом под названием rs-latency-tool, который позволяет эмпирически оценить задержку.

Измерение задержки

Инструмент rs-latency-tool кодирует текущее время настенных часов в двоичную форму и отображает биты в виде белых точек на экране, как показано ниже. Затем камера направляется на экран, и инструмент начинает захватывать кадры экрана, где кадры включают метаданные о том, когда они были сняты по времени настенных часов.

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

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

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

Поиск приемлемого уровня задержки

Чтобы получить оценку максимально допустимой задержки для камеры, обучение RL агента было запущено с использованием нашей среды моделирования (более подробная информация представлена ​​в частях 2 и 3), где количество шагов среды моделирования между предоставлением новой обратной связи и изменено новое положение захвата. В тренировочных прогонах захват мог произвольно перемещаться в трехмерном пространстве, что делало его немного нереалистичным по сравнению с реальным миром с реальным контроллером, но все же давало приблизительную оценку того, как часто необходимо обеспечивать обратную связь.

Тренировочные прогоны проводились с новыми частотами обратной связи 5 Гц, 10 Гц и 20 Гц с изображениями в градациях серого размером 100x100 пикселей. Размер изображения является распространенным выбором для обучения сверточных нейронных сетей (CNN), где размер изображения более 100x100 пикселей может сделать обучение очень медленным при использовании стандартного оборудования. После запуска всех вариантов с разными случайными начальными значениями в течение нескольких прогонов результаты показали, что частота обратной связи 10 Гц была самой низкой, которую можно было использовать для последовательного изучения задачи складывания.

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

Достижение модальности обратной связи

Основываясь на первоначальных тестах, RGB-поток RealSense D435 оказался непригодным для наших целей, поскольку расчетные задержки в среднем составляли около 120 мс. Таким образом, использование инфракрасного датчика было единственным возможным решением. К счастью, компания Intel опубликовала бумагу по новой версии прошивки для устройства D435, которая позволяла осуществлять высокоскоростной режим захвата инфракрасных потоков со скоростью 300 кадров в секунду по сравнению с прежним максимумом в 60 кадров в секунду.

Частота камеры на самом деле не была важным фактором, так как теоретически 10 кадров в секунду было бы достаточно для требуемой частоты обратной связи 10 Гц. Однако оказывается, что частота и задержка камеры связаны: чем выше частота, тем меньше задержка.

Согласно документу, режим 300 кадров в секунду может обеспечить задержку от 25 до 39 миллисекунд, что достаточно, учитывая максимум 100 мс. Режим 300 кадров в секунду также обеспечивал кадры размером 848x100 пикселей, что также соответствовало требованию политики RL в размере 100x100 пикселей.

Дополнительные источники задержки

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

Используемый нами робот (Franka Emika Panda, подробнее в части 2) использовал внутренний контур управления 1 кГц, а это означает, что даже при захвате обратной связи со скоростью 300 кадров в секунду камера будет блокировать выполнение цикла контроллера 1 кГц в ожидании. для новых кадров помещали в контур управления.

Контроллер реального робота был построен с использованием Robot Operating System (ROS), которая обеспечивает стандартизированный канал обмена сообщениями на базе Ethernet между различными узлами. Учитывая несоответствие между задержками контроллера и датчика, было естественным выбором создать отдельный узел ROS для камеры и вывода политики RL и позволить ему обмениваться данными с узлом контроллера через ROS.

Чтобы измерить совокупную задержку камеры, политику RL и любую дополнительную задержку, вызванную ROS, настраиваемый инструмент задержки был дополнительно модифицирован, чтобы он сам стал узлом ROS, который получал изображения в виде сообщений ROS и отображал полученное изображение вместе с текущее время настенных часов идентично исходному модифицированному инструменту задержки.

Затем созданный узел камеры запустил цикл захвата изображения и вывода политики RL в своем собственном процессе и отправил его на узел инструмента задержки через ROS. Таким образом, моментальные снимки выходных данных узла инструмента задержки включают как задержку, присущую камере, так и дополнительную задержку, вызванную остальной частью системы.

При описанной выше настройке наблюдаемая средняя задержка составила примерно 50 мс с диапазоном от 35 мс до 60 мс. Этот эмпирический результат подтвердил, что настройку 848x100px при 300fps можно использовать для обеспечения обратной связи с контроллером с задержкой менее 100 мс.

Заключение

В этом сообщении в блоге подробно рассказывается о том, как мы смогли найти подходящий датчик и способ обратной связи для нашей статьи Изучение контроля визуальной обратной связи для динамического складывания ткани. Части 2 и 3 будут дополнительно описывать варианты проектирования, связанные с контроллером и средой моделирования.

Ссылки на все посты из серии можно найти здесь: Часть 1, Часть 2 и Часть 3.