Тактильная кожа для роботов: OpenTac даёт осязание в 3D

Тактильная кожа для роботов: OpenTac даёт осязание в 3D

Роботизированная рука уверенно берёт кубик и рассыпает яйцо. Проблема не в моторе и не в планировщике: манипулятор просто не знает, с какой силой он давит, потому что кожа на его пальцах либо отсутствует, потому что её нет в продаже под этот корпус, либо читается с частотой 30–100 Гц, а контакт при вставке разъёма длится 3 миллисекунды и проходит мимо сенсора целиком.

Свежая работа arXiv 2610.31661 предлагает смотреть на это как на задачу компиляции, а не как на задачу производства. Авторы собрали OpenTac, открытый стек из сенсора, компилятора печатных плат, симулятора, переноса между разными кожей и адаптивного считывания, и изготовили 31 плату без единого нарушения проектных правил. Дальше разбор того, что внутри, какие цифры получились и где границы применимости.

Что такое тактильная кожа и зачем ей три оси

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

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

Существующие кожи решают эту проблему по-разному и всегда с потерей. FlexiTac даёт только нормальное усилие и требует ручной переделки под каждую геометрию. AnySkin использует сменные поверхности, но электронная разводка в нём фиксированная. eFlesh автоматизирует тело сенсора, но опирается на отдельно поставляемую магнитометрию. Плюс общая беда: растровое считывание, при котором каждый таксель опрашивается по очереди, замедляется с ростом площади кожи.

Как устроен сенсор

OpenTac это пьезорезистивная конструкция из трёх слоёв: гибкая печатная плата снизу, пьезорезистивная плёнка в середине и напечатанная крышка с бугорками сверху. На пересечениях строк и столбцов платы медные гребёнки образуют таксель. Давление снижает сопротивление плёнки, схема считывания превращает это в напряжение.

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

Размер по умолчанию: 4 мм таксель с шагом 4,2 мм. В экспериментах авторы изготовили платы с такселями от 4 мм до 1 мм. Шаг влияет на две вещи сразу: мельче шаг, выше пространственное разрешение, но слабее сигнал с каждого такселя, и наоборот, при шаге 2 мм плёнка Chibitronics держит диапазон до 60 Н, а при 4 мм насыщается уже около 20 Н.

Точность трёхосевого восстановления авторы мерили против коммерческого датчика OptoForce на конфигурации с бугорками 4 на 4, плёнкой LINQSTAT и шагом 4 мм. Коэффициент детерминации получился 0,95 по X, 0,93 по Y и 0,96 по Z при среднеквадратичной ошибке 0,11, 0,16 и 0,15 Н. Для захвата, где речь идёт о единицах ньютонов, этого достаточно, чтобы управлять усилием, а не просто фиксировать факт касания.

Компилятор вместо мастерской

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

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

Результаты по 31 изготовленной плате выглядят убедительно. Все прошли проверку проектных правил с нулём нарушений, все после изготовления работали. Компиляция от контура до файлов занимает от 0,7 до 2,6 секунды на ноутбуке Apple M4 Pro. Пять показательных корпусов, палец YUBI, палец мягкого гриппера UMI, ладонь LEAP Hand, палец Robotiq 2F-85 и стопа Unitree B2, содержат от 153 до 467 такселей при шаге 2–4 мм и требуют всего 35–46 электрических каналов, потому что матрица R на C обходится суммой строк и столбцов, а не произведением.

Отдельно авторы сравнили свою упаковку с самой большой прямоугольной сеткой того же шага, которую можно вписать в ту же область. На YUBI выигрыш 18 процентных пунктов покрытия, на ладони LEAP 10 пунктов, на почти прямоугольных участках методы совпадают. То есть выгода появляется там, где деталь сужается или имеет сложный контур, а именно такие детали и составляют большинство реальных манипуляторов.

Сенсор из одного предложения

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

Девять сессий агента дали девять чистых по правилам проектирования планов на 76–254 такселя при медианном времени 6,5 минуты. Каждый план сопровождается журналом: где взята размерная величина, какое допущение сделано, почему шаг пришлось изменить из-за ширины разъёма. Пример из статьи звучит почти как шутка, но он рабочий: запрос «сделай сенсор для стельки обуви 9-го размера» даёт контур, разводку и файлы для печати. Авторы честно оговаривают, что эти примеры проверяют генерацию проекта, а не изготовление.

Симулятор, который повторяет железо

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

Проверка простая и потому убедительная: робот UR5e с силоконтролем давит на бугорки силами от 1 до 5 Н с шагом 0,5 Н, те же силы воспроизводятся в симуляторе, результаты сравниваются. Симуляция хорошо коррелирует со средними значениями реальных измерений, а разброс в реальных данных растёт вместе с силой, что соответствует шуму настоящей электроники. Гладкие кожи без бугорков считаются дешевле, через модель пены Винклера с гауссовым сглаживанием поля давления.

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

19,2 раза быстрее растра

Растровое считывание требует N отсчётов на кадр для N такселей, поэтому скорость падает с ростом площади. На коже 32 на 32 из 1024 такселей полный проход даёт 67 кадров в секунду, чего мало для быстрых событий.

OpenTac-Xampling выделяет бюджет M отсчётов на кадр, где M сильно меньше N, и распределяет его по двоичному квадродереву: четверть бюджета уходит на поиск по всей маске, остальное на преследование активных зон из предыдущего кадра. Логика опирается на то, что контакт разрежен, локален и связен во времени. При бюджете M=16 та же кожа выдаёт 1286 кадров в секунду, рост в 19,2 раза.

Проверка с теннисным мячом, который роняют с 30 см, показывает разницу в классе задач. Растровое считывание поймало два удара из шести, каждый в единственном кадре. Адаптивные бюджеты от 16 до 256 отсчётов поймали все три удара в каждой конфигурации и записали событие длительностью около 3 мс несколькими кадрами. В худшем случае, когда контакт есть во всех такселях, схема деградирует до сложности полного растра, то есть не ломается, а просто теряет выигрыш.

Что даёт осязание в обучении политик

Самая практичная часть статьи это два манипуляционных эксперимента. На руке SO-101 авторы обучили политику ACT на 100 демонстрациях и проверили на 50 попытках для каждой задачи.

Вставка штыря в отверстие: с трёхосевой кожей успех вырос с 66% до 82%. Для сравнения, FlexiTac дал рост с 50% до 58%, а OpenTac в варианте только с нормальным усилием с 52% до 60%. Вставка разъёма оказалась жёстче: 70% против 54% у базовой политики без осязания, прирост 16 процентных пунктов, и снова ни один вариант с одним нормальным усилием не обошёл собственную базовую линию. Авторы прямо связывают это с тем, что нормальная сила не отличает выравнивание с гнездом от упора в поверхность рядом.

Дальше два контактных управления. UR5 с кожей 32 на 32 катает шар по внешнему краю манипулятора без обратной связи по положению шара, регулируя касательный вектор, и выходит из пограничной зоны надёжнее, чем при управлении по нормальному давлению. Вторая задача ближе к быту: Dexmate Vega-1 Pro держит бумажный стакан двумя зондами при номинальном усилии 2,5 Н, и контроллер по агрегированному сдвигу поднимает целевое усилие раньше, чем стакан начинает ехать. Разница между «удержал 40 секунд» и «уронил» здесь измеряется десятками миллисекунд.

Перенос между разными кожей

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

Четыре кожи без бугорков, 5 290 предсказаний, пять объектов, 95 точек надавливания, силы от 1 до 8 Н. Перенос даёт медианный F1 формы контакта 0,750 против 0,714 у усреднения по геометрии и 0,634 у билинейного ресемплинга. На области, которую видят обе кожи, качество 0,788 при повторяемости одной и той же кожи 0,800. То есть перенос почти дотягивается до физического предела, заданного шумом сенсора.

Где границы

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

Добавлю от себя: цифра 82% на вставке штыря это успех в лабораторной постановке с 100 демонстрациями и одной геометрией. Для склада с сотней разных объектов вопрос переноса остаётся открытым, и именно поэтому OpenTac-Transfer выглядит важнее, чем ещё пара процентных пунктов в таблице.

Часто задаваемые вопросы

Чем тактильная кожа отличается от датчика усилия в запястье?

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

Почему сдвиг важнее нормального усилия?

Потому что проскальзывание, выравнивание и заход в паз проявляются в касательной составляющей. В экспериментах OpenTac политики с одним нормальным усилием не обошли собственные базовые линии без осязания, а трёхосевой вариант дал плюс 16 процентных пунктов на вставке разъёма.

Можно ли повторить это в своей лаборатории?

Да, авторы открывают железо, прошивку, софт и данные. Нужны печать гибких плат, пьезорезистивная плёнка вроде LINQSTAT или Chibitronics, печатная крышка с бугорками и плата считывания с микроконтроллером и IMU. Основная работа уходит на изготовление, а не на проектирование, потому что проект генерируется компилятором.

Итог

Тактильная кожа для роботов перестаёт быть изделием, которое заказывают у мастерской, и становится параметром конфигурации: обводка детали, шаг такселей, материал плёнки. OpenTac показывает, что за этим стоит не только удобство, но и измеримый выигрыш: 82% против 66% на вставке штыря, 1286 кадров в секунду против 67 и 31 рабочая плата из 31 сгенерированной.

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

← Все записи