OpenTac научил гибкую кожу на STM32 видеть касание и сдвиг
Роботизированному пальцу мало заметить сопротивление поверхности: чтобы удержать предмет, ему нужно почувствовать, куда тот пытается ускользнуть. OpenTac строит для этого гибкую «кожу» из печатной платы, пьезорезистивной плёнки и упругих TPU-бугорков. Один бугорок давит сразу на группу из четырёх ячеек, и форма распределения токов выдаёт не только силу нажима, но и её боковую составляющую.
Четыре ячейки под одним бугорком
Под центром бугорка четыре сигнала близки друг к другу. Их сумма служит оценкой нормального усилия, а разности между левой и правой, верхней и нижней парами показывают сдвиг по двум осям. Это простая физическая геометрия, но она позволяет обойтись пассивной резистивной матрицей вместо отдельного многокомпонентного датчика под каждым такселем. Авторы изготовили свыше 30 вариантов таких сенсоров, включая поверхности, которые можно подгонять под геометрию робота.
Как матрице не придумать ложное касание
У пассивной матрицы есть неприятная привычка: нажатые ячейки образуют обходные пути, и ток начинает рассказывать о касании там, где его не было. В плате считывания выбранную строку возбуждают, все остальные жёстко сажают на землю, а выбранный столбец удерживают около виртуальной земли инвертирующим усилителем. Так напряжение на паразитных ветвях остаётся малым. STM32G431 управляет коммутацией; 32:1 мультиплексор ADG732 выбирает столбцы, а MAX14662 переключает резистор обратной связи усилителя под нужный диапазон.
Кожа перестаёт читать пустоту
Самая красивая инженерная уловка появляется после первого полного кадра. При захвате предмета активны обычно немногие таксели, однако обычный сканер всё равно перебирает всю решётку. Режим Xampling сначала находит область контакта, затем читает только её. На матрице 32×32 авторы получили 67 полных кадров в секунду при растровом опросе и 1286 частичных кадров в секунду при бюджете 16 измеренных такселей. Это 19.2-кратное ускорение относится к локальному обновлению контакта: оставшиеся 1008 ячеек в таком кадре просто не измеряются.
Ускорение исчезает по мере того, как контакт расползается по поверхности. В режиме grow число считываемых ячеек растёт вместе с областью касания, поэтому единой частоты кадров для него нет. Сама пьезорезистивная плёнка также сохраняет знакомые ограничения материала: гистерезис, дрейф и температурную зависимость. Гибкая плата гнётся, но не растягивается, поэтому сложные объёмные оболочки приходится раскраивать на развёртываемые участки.
Открытая конструкция с важной оговоркой
Проект ценен тем, что публикует весь путь от механики бугорка до производства: KiCad-проект, Gerber, BOM, координаты установки и прошивки. Документированная 60-контактная плата размером 37×34.3 мм рассчитана максимум на 30×30 ячеек. Скоростной тест проведён на 32×32, а источники не объясняют, какая ревизия интерфейса использовалась в этой конфигурации. Поэтому результаты следует читать как демонстрацию метода чтения и адаптивного опроса, а не как подтверждённую характеристику именно этой опубликованной 60-контактной платы.