Люди отлично справляются с задачами, требующими ручного труда, и в идеале роботы должны превзойти нас в этих функциях. У нас есть преимущество в виде превосходной ловкости, и мы можем выполнять задачи, которые теоретически должны быть под силу роботам. По мере развития робототехники наша цель — эффективно передавать нашим роботам навыки, которыми обладают люди.
Давайте рассмотрим некоторые методы, как этого добиться.
Прежде всего, существует подход «прямого программирования». Это означает, что квалифицированный специалист должен тщательно описать задачу до такой степени, чтобы можно было написать либо простой скрипт, либо сложный алгоритм, который поможет роботу выполнить задачу. Этот метод хорош и очень эффективен, когда задача чётко определена и конкретизирована, что часто встречается в промышленной автоматизации. Однако сложность может быстро возрасти, что усложняет задачу. Таким образом, если подход окажется успешным, это отлично, но если нет, мы должны подумать, какие альтернативные стратегии мы можем использовать?
Во-вторых, альтернативный подход, который стоит рассмотреть, — это «программирование путём демонстрации». Этот метод предполагает управление роботом при выполнении задачи. Если оснастить робота усовершенствованными датчиками силы и алгоритмами распознавания образов, этот метод может оказаться весьма эффективным. Однако важно отметить, что его эффективность зависит от возможностей робота. Обычно роботы оснащены примитивными захватами, а не ловкими руками, что может ограничивать сложность выполняемых ими задач.
Хорошо, но как мы можем эффективно записывать действия человека, чтобы робот мог их имитировать?
В идеале мы бы поручили человеку выполнить задачу, подробно задокументировали бы её, а затем воспроизвели бы для робота. Мы могли бы даже рассмотреть возможность передачи этой информации в систему машинного обучения, чтобы она могла учиться на примере нашей демонстрации с участием человека. В качестве альтернативы, по крайней мере, мы можем проанализировать действия человека, разложить их на более простые части и использовать эту информацию для разработки более эффективных алгоритмов, подобно тому, как песня разбирается на части в студии звукозаписи.
Хорошо, а как насчёт того, чтобы снимать человека, выполняющего задание, и использовать «машинное зрение», чтобы отслеживать его действия?
Машинное зрение
Это, безусловно, хорошая отправная точка. Такой подход дает ценную информацию о нюансах человеческого поведения, таких как моменты переключения рук, техники удержания предметов и использования инструментов, но наш опыт показывает, что с помощью камер действительно сложно отследить движение человека. Вам нужен четкий обзор, и у вас будет много проблем с отслеживанием тонких движений пальцев и кистей. Даже самые передовые системы отслеживания на основе изображений, хотя и способны отслеживать руки с минимальным прикусом, не в состоянии последовательно отслеживать все движения суставов. Следовательно, результирующие данные, как правило, несколько противоречивы и зашумлены.
Использование захвата движения
Системы захвата движения, которые обычно используются при съёмке фильмов и в спортивной науке, работают за счёт прикрепления к человеку легко заметных маркеров, таких как пассивные элементы, например, белые точки, или активные элементы, например, импульсные светодиоды. Этот метод, безусловно, повышает точность отслеживания. Однако он не решает полностью ранее упомянутые проблемы, связанные с окклюзией. Кроме того, довольно сложно откалибровать оптические системы с погрешностью менее нескольких миллиметров. Это означает, что если задача требует сложных движений, например, перекатывания ручки между пальцами, то, скорее всего, будут возникать ошибки.
Хорошо. Мне нужно, чтобы это было точно, какой тогда у меня лучший вариант?
От людей роботам: система отслеживания
Для точного отслеживания движений человека лучше всего использовать плотно прилегающую перчатку отслеживания движений. Эта перчатка может включать в себя множество методов для достижения такого результата, некоторые из которых даже предоставляют дополнительные функции, помогающие оператору (а некоторые усложняют задачу оператору). Например, некоторые перчатки могут передавать ощущение веса, прикосновения или жесткости - все функции сгруппированы под термином ‘тактильные’. Область применения тактильных технологий обширна и включает в себя различные технологии: от ультразвуковых устройств, передающих сигналы на пальцы, до электрической стимуляции кожи, вибрирующих пьезоэлектрических элементов, надувных воздушных шаров, миниатюрных двигателей, линейных приводов и многого другого.
Перчатки, которые измеряют движение рук человека, могут делать это с помощью:
- Датчики, которые устанавливаются вокруг суставов и отслеживают конкретное движение сустава
- Механические соединения, которые проходят от одного конца пальца к другому и отслеживают все движения пальца
- Инерциальные датчики (это умное сочетание акселерометра, гироскопа и, возможно, магнитометра) — крепятся в разных местах на руке, чтобы отслеживать движения
- Беспроводные измерительные датчики — определяют расположение пальцев относительно источника, который находится где-то на руке.
- Камеры, которые смотрят не на руку, а на окружающий мир. (Не уверен, что видел, чтобы это использовалось в гневе, но уверен, что это возможно!)
Даже в этом случае существует несколько вариантов этих технологий. Например, некоторые датчики измеряют изгиб перчатки, сопоставляя его с движением суставов. Другие типы датчиков растягиваются и отслеживают собственную деформацию для измерения расстояния. Иногда для точного отслеживания движений над отдельными суставами устанавливаются механические соединения.
Каждый из этих методов представляет собой уникальный подход к улавливанию и интерпретации движений человека
Наш опыт:
На основе нашего обширного опыта мы пришли к выводу, что точное измерение механических свойств человеческой руки может быть непростой задачей, так как это часто приводит к значительным погрешностям. Расположение измерительного датчика имеет решающее значение, и, к сожалению, существует высокая вероятность проскальзывания — перчатки и аналогичные приспособления имеют тенденцию к чрезмерному смещению, что усложняет сбор данных. Соотнесение результатов измерений с фактическим вращением оси пальца, особенно большого, — ещё одна непростая задача!
Механические соединения, несмотря на свою ценность, могут быстро стать громоздкими. Кроме того, существует риск, что они могут доставлять оператору дискомфорт до такой степени, что выполнение задачи станет невозможным (слишком тяжёлые, слишком жёсткие и т. д.). Инерциальные датчики представляют собой жизнеспособный вариант, однако (опять же) предотвратить их смещение, как правило, сложно, а уровень точности, который они обеспечивают, часто не соответствует нашим потребностям
Мы обнаружили, что беспроводные измерительные датчики, в частности от Polhemus, дают отличные результаты. Эти датчики состоят из передатчика, который надевается на ладонь, и приёмников, расположенных на кончиках пальцев, что позволяет получать высококачественные данные для отслеживания движений рук. Однако остаётся проблема определения положения руки в более широком трёхмерном пространстве. Мы обнаружили, что HTC Vive — отличное решение для этого, поэтому вы часто будете видеть трекер Vive в наших демонстрациях.
Куда поместить руку?
Теперь нам нужно точно знать, куда поместить руку робота, а это не совсем то же самое, что точно знать, где находится человеческая рука. Нам нужно взять данные о человеческой руке и сопоставить их с данными о руке робота. Это кинематическая задача — движения человека и движения робота не полностью совпадают, и нам нужно преобразовать одно в другое. Лучший способ сопоставления данных о человеческой руке с данными о руке робота будет зависеть от конкретного применения. Например, если вам нужно управлять рукой робота в режиме реального времени, то прямое сопоставление может быть лучшим вариантом. Если вас интересует только управление рукой робота для анализа в автономном режиме, то обратная кинематика или гибридное сопоставление могут быть более подходящими вариантами. Излишне говорить, что чем сложнее робот, тем сложнее это становится. К счастью для нас, сложные роботы — это специализация Shadow!
Итак, человек надевает перчатки и управляет роботом, чтобы выполнить задачу. После выполнения нескольких базовых тренировочных заданий оператор осваивает процесс и начинает выполнять его довольно хорошо. Что мы делаем, чтобы извлечь из этого пользу?
Мы можем точно отслеживать инструкции, отправляемые роботу, и воспроизводить их. Это идеально подходит для работы в контролируемой среде, где все переменные остаются неизменными, — такой сценарий часто встречается в лабораториях по обеспечению качества. В прошлом мы использовали этот метод для создания функциональной роботизированной кухни. Хотя он позволяет выполнять повторяющиеся задачи, ему не хватает гибкости.
Отлюдей роботам: сбор и анализ данных
Мы можем собирать и анализировать данные многочисленных тестов, оценивая их на предмет согласованности. Если результаты в целом схожи, их можно использовать напрямую.
Однако если они сильно различаются, мы можем обратиться к набору алгоритмов, чтобы попытаться понять эти расхождения. В этом случае полезно иметь широкий спектр данных от робота, от датчиков силы, касания и суставов. Возникает вопрос: можем ли мы использовать данные с камер, направленных на рабочую зону, чтобы определить, что именно отличается?
Чтобы эти данные были эффективными, их необходимо синхронизировать с данными датчиков робота, что требует общей структуры для всех потоков данных.
Мы можем собрать данные из нескольких тестов и использовать их, «скармливая» ИИ, то есть обучая систему машинного обучения воспроизводить похожие движения на основе похожих данных.
Заключение
Мы можем обучить традиционную модель обучения на наборах данных таким образом, чтобы похожие входные данные генерировали похожие выходные данные. В качестве альтернативы, если у нас достаточно данных, мы можем использовать модель-трансформер для генерации движений. Мы даже можем разбить данные на более мелкие сегменты и обучить сеть собирать эти фрагменты в правильные последовательности.
Учитывая впечатляющие возможности современных систем машинного обучения по генерации текста, изображений, видео и даже кода, этот подход кажется весьма перспективным — и это только начало!
Эта статья была впервые опубликована на