Safety-фильтр для роборуки: −75% падений без переобучения
Шестнадцать падений на 4 800 целей. Не 95,2% успешных попыток, а именно эти шестнадцать цифр, точнее их сокращение до четырёх, делают свежую работу из Беркли интересной. Большинство статей о ловких роборуках отчитываются процентом попадания в цель и почти никогда не считают, сколько раз предмет выпал из кисти. Здесь падения измеряют, публикуют и лечат отдельно.
Речь о препринте «Pushing Dexterity and Safety for In-Hand Object Pose Reaching That Works Remarkably Well» (arXiv:2610.37652, 27 октября 2026). Ян Чуан, Хия Шах и Вамси Чиламкур из UC Berkeley, Иман Солтани из UC Davis и Клэр Томлин, известная работами по верификации безопасности, собрали полный рецепт: политика, которая перекладывает предмет в произвольную позу внутри кисти при любой ориентации запястья, плюс обучаемый safety-фильтр поверх неё. Обе части обучаются в симуляции и переносятся на реальную руку без дообучения.
Что такое достижение позы объекта в руке
In-hand object pose reaching означает, что робот перемещает предмет в любое положение и разворачивает в любую ориентацию относительно кисти, не роняя его. Цели подаются одна за другой без перезапуска: рука не возвращается в исходное положение между попытками. Требование почти всегда держать объект на кончиках пальцев, без поддержки ладони снизу, превращает задачу в жёсткий тест на точность и надёжность.
Поворот предмета ловкостью не считается
Современные системы работают в узком коридоре. Почти все они действуют при одной ориентации запястья, чаще всего ладонью вверх, где ладонь подпирает предмет снизу. Движения при этом простые и повторяющиеся: вращение объекта, перехват, иногда подъём. Испытания короткие, а надёжность и безопасность либо не измеряются вовсе, либо прячутся в штрафные члены награды.
Человеческая рука устроена иначе. Она умеет подвести предмет к почти любой позиции в кисти, развернуть его в неудобный захват, удержать на весу двумя пальцами и при этом почти не ронять. Авторы выбирают именно этот разрыв как поле для эксперимента, потому что на такой задаче одновременно проверяются точность, устойчивость к смене ориентации и способность работать длинными сериями.
Железо: 16 степеней свободы и одна камера
Политика управляет рукой LEAP с 16 степенями свободы на сервоприводах Dynamixel XC330, каждый со своим внутренним регулятором положения. Ладонь переделали, чтобы стабилизировать базовый сустав большого пальца. Кончики пальцев жёсткие, напечатанные на 3D-принтере и оклеенные одним слоем нескользящей ленты 3M, остальная поверхность руки скользкая. В более ранней работе Visual Dexterity мягкие эластомерные подушечки заметно упрощали манипуляцию, здесь рецепт обходится без них.
Рука закреплена на манипуляторе UR5, который задаёт и измеряет ориентацию кисти, а значит и направление гравитации в системе координат руки. Сама политика руку не трогает: она работает на 20 Гц и отправляет целевые углы суставам.
Обратная связь бывает двух видов. Первая версия, state policy, получает позу предмета от системы motion capture OptiTrack с восемью камерами и десятью-двенадцатью маркерами на каждом объекте. Вторая, depth policy, обходится стереокамерой Orbbec Gemini 305 на запястье, смотрит на ладонь и пальцы, считает глубину через Fast FoundationStereo на 30 Гц и сжимает картинку до 160 на 120 пикселей. Второй вариант заметно интереснее для практики, потому что не требует ни внешних камер, ни маркеров в комнате.
Объектов четыре: лампочка, бокал, нож и резиновая уточка. Три последних напечатаны из обычного скользкого PLA, то есть лёгких путей никто не искал.
422 тысячи захватов вместо человеческих демонстраций
Главная инженерная идея касается не сети, а постановки задачи. Сэмплировать цель равномерно по всему пространству вокруг кисти бессмысленно: большинство таких поз рука физически удержать не может, и половина эпизодов уходит в мусор. Вместо этого авторы генерируют датасет захватов полностью в симуляции, без единой человеческой демонстрации.
Конвейер такой. LightningGrasp порождает 100 тысяч захватов для конкретной руки и объекта. Затем их расширяют до 500 тысяч по формулировке RRT из DexterityGen, чтобы позы объекта плотно заполнили пространство над ладонью. После удаления вариантов с пересечением геометрии остаётся от 422 до 453 тысяч захватов на объект, и каждый хранит 16 углов суставов плюс позу предмета в системе координат руки.
Начальные состояния и цели берутся из этого набора. В начале каждого эпизода рука с предметом ставится в случайный захват при случайной ориентации запястья. Эпизод длится 20 секунд и обрывается, если предмет ушёл от кисти больше чем на полметра.
Награду, которую нельзя обмануть зависанием
Функция награды намеренно скучная: несколько плотных членов за приближение к цели плюс регуляризаторы. Формулировка построена на потенциальном шейпинге, где награда равна изменению потенциала между шагами. Движение к цели поощряется, движение от неё штрафуется ровно на ту же величину, а зависание рядом с целью не приносит ничего.
Это прямой выстрел в популярную альтернативу, где награда платится за близость к цели на каждом шаге. Такую награду политика быстро учится эксплуатировать: подошла поближе и стоит, собирая очки без реального выполнения.
Отдельная деталь касается того, когда цель считается взятой. Недостаточно пройти через нужную позу: объект должен замереть в ней, причём счётчик удержания растёт на каждом шаге внутри допусков и медленно убывает на каждом шаге снаружи. Если предмет ненадолго выскользнул, это лишь отложит зачёт, но не обнулит прогресс. Для лампочки цель может требовать не покоя, а равномерного вращения вокруг оси со скоростью 3,14 радиана в секунду.
Две учебные программы ускоряют обучение. Первая ведёт трение: тренировка начинается с нереалистично высокого трения на кончиках пальцев и линейно съезжает к финальному диапазону. Вторая ведёт цели от ближних к дальним, сокращая пул кандидатов с 2048 захватов до одного. Абляции показывают, что именно программа по трению даёт основной выигрыш, на трёх объектах из четырёх, а программы по целям и гравитации сами по себе помогают слабо.
Обучение разбито на четыре стадии. Сначала PPO обучает привилегированного учителя с асимметричным критиком, который видит внутреннее состояние симулятора. Затем онлайн-DAgger переливает его в студента, доступного на реальном роботе. Третья стадия дообучает студента тем же PPO, возвращая часть потерянной точности, четвёртая переливает результат в политику, которая вместо позы предмета получает изображение глубины, а вспомогательная голова предсказывает позу по тем же признакам, чтобы энкодер научился локализовать объект.
Привилегированный актор, кстати, критичен: актор без привилегированных наблюдений, который можно было бы сразу ставить на робота, за то же время обучения добирается примерно до половины целей. Считается всё на RTX 5090: стадия учителя занимает 15–17 часов на двух картах, для бокала 28 часов, финальная стадия с глубиной ещё 10 часов на одной.
Мотор, который ведёт себя как мотор
Перенос в реальность обычно ломается на мелочах, и авторы разбираются с ними всерьёз. Вместо простого PD-привода, который превращает ошибку положения в момент, они описывают сервопривод моделью BAM: управляемый напряжением двигатель постоянного тока с расширенной моделью трения. Параметры подгоняются по собственным данным с маятникового стенда на одном сервоприводе, после чего используются для всех шестнадцати в симуляции.
Дальше калибруются задержки. Одну и ту же траекторию проигрывают на реальной руке и в симуляторе, а сдвиг по времени, который лучше всего совмещает кривые, даёт запаздывание показаний суставов, команд и камеры. После такой настройки смоделированные углы и изображения глубины идут почти вплотную за реальными, и политика переносится без дообучения.
Безопасность вынесли в отдельный слой
Вот здесь начинается главное. Вместо того чтобы впихивать безопасность в награду задачи, авторы обучают отдельный остаточный фильтр поверх замороженной политики, адаптируя метод ResSafe. Политика выдаёт действие, фильтр смотрит на состояние и добавляет поправку, а исполняется сумма, обрезанная по допустимым границам.
Логика разделения простая: обучение задаче и обучение безопасности это разные задачи с разными данными и разной ценой ошибки. Если делать политику безопаснее через больший штраф за падение, её награда превращается в многокритериальную, баланс становится трудно настраиваемым, и каждый эксперимент требует переобучения с нуля: 28–30 часов на объект и 42 часа для бокала. Фильтр же добавляется заново примерно за четыре часа, из которых 2,5 часа учится state-версия и 1,8 часа уходит на дистилляцию в depth-версию.
Награда фильтра переписана по сравнению с оригиналом. Каждый шаг, на котором предмет ещё в руке, приносит единицу минус штраф за величину поправки, то есть значение всегда лежит в разумных пределах и никогда не уходит в минус. При неограниченной отрицательной награде политика может предпочесть уронить предмет как можно быстрее, чтобы перестать накапливать долг, и оригинальный ResSafe лечил это большим штрафом за завершение эпизода. Здесь достаточно того, что живой шаг всегда чего-то стоит, а шаг без поправки стоит максимум. Граница безопасности задана расстоянием 0,3 метра от корня кисти: дальше предмет считается упавшим.
Самая практичная деталь это вес коррекции. В оригинальном методе он фиксирован, а тут его сделали входом сети: значение сэмплируется на каждый эпизод и каждую среду и подаётся и актору, и критику. Одна обученная сеть покрывает весь диапазон, а на развёртывании вес превращается в ручку: большое значение держит фильтр близко к политике, малое разрешает вмешиваться свободно. Для реальных тестов авторы выбрали середину.
Почему это лучше классических фильтров
Сравнение идёт с семейством фильтров на основе достижимости Гамильтона-Якоби, то есть с тем самым аппаратом, которым занимается Клэр Томлин. Там обучается критик безопасности, предсказывающий, насколько безопасным останется система после действия, плюс запасная политика. На развёртывании либо переключаются на запасное действие в момент предсказанного нарушения, либо ищут ближайшее действие, удовлетворяющее условию барьерной функции, перебором между номинальным и запасным.
На резиновой уточке в симуляции, при 1024 средах по 50 целей, картина такая. Без фильтра state-политика берёт 92,1% целей и роняет предмет в 9,1% случаев, первый предмет падает в среднем через 154 секунды. ResSafe при весе 2 удерживает 91,3% целей, снижает падения до 4,5% и оттягивает первый срыв до 266 секунд, меняя действие в среднем на 15,3%. Лучший вариант HCSF при близком уровне падений, 6,6%, добирается только до 87,4% целей, а при 4,8% падений падает до 82,0%, то есть теряет около девяти процентных пунктов там, где ResSafe теряет меньше одного. Вариант с жёстким переключением LRSF собирает 79,3% целей и при этом всё равно роняет чаще.
Разница не только в цифрах. ResSafe это один прямой проход сети, а HJ-фильтр требует поиска по действиям во время работы и чувствителен к своим гиперпараметрам.
13,3 часа на реальной руке
Главный эксперимент это 4 800 невиданных целей, четыре объекта, шесть ориентаций запястья, при которых гравитация направлена вдоль каждой из осей кисти, и 96 прогонов по 50 последовательных целей. Суммарно 13,3 часа работы робота.
| Объект (state) | Цели, без фильтра | Цели, с фильтром | Падения |
|---|---|---|---|
| Лампочка | 297 из 300 | 292 из 300 | 2 → 0 |
| Уточка | 291 из 300 | 262 из 300 | 7 → 2 |
| Нож | 288 из 300 | 281 из 300 | 4 → 1 |
| Бокал | 266 из 300 | 263 из 300 | 3 → 1 |
Итог по state-политике: 95,2% целей в пределах 2 сантиметров и 0,4 радиана, падения падают с 16 до 4, то есть на 75%, а успех остаётся на 91,5%. Время до первого падения на уточке растёт с 298 до 441 секунды, на ноже с 257 до 470.
Версия на одной камере запястья добирается до 72% целей и фильтр почти вдвое сокращает её падения, с 88 до 46. На лампочке depth-политика берёт 95% целей, на уточке 88%, и это уже без единого маркера в комнате.
Где за безопасность платят дорого
Честность таблиц важнее заголовка. На уточке точных попаданий становится заметно меньше, 255 против 194, хотя грубых почти столько же, 291 против 262. То есть фильтр чаще не мешает дойти до цели, но мешает довести её до идеала. Именно уточка платит за безопасность больше всех: её сложная невыпуклая форма оставляет мало места для коррекции.
С depth-политикой разрыв виднее. Нож удерживает лишь 163 грубых цели из 300, падает 22 раза, и фильтр срезает падения до 4, но и целей остаётся 146. У бокала всё печальнее: 151 цель и 51 падение, после фильтра 143 цели и 40 падений. Прозрачное стекло и блики это известная слабость стереоглубины, и авторы прямо пишут про визуальный разрыв sim-to-real на ноже и бокале. Полезный сигнал: safety-фильтр не заменяет качественное восприятие, он лишь смягчает последствия его ошибок.
Что система умеет сверх таблиц
Лампочку в произвольной позе рука раскручивает вокруг собственной оси в обе стороны, при ладони вверх и вниз. Политика добирается до целей вне распределения обучения, выдерживает движение манипулятора по тридцатисекундной траектории, не теряя предмет, и восстанавливается после внешних толчков: если палец сдвинули или предмет вдавили в ладонь, рука возвращает его на цель.
Самый показательный сценарий это работа без motion capture. Depth-политика вкручивает лампочку в патрон, пока та не загорится, и выполняет многошаговые задачи вроде подъёма и разворота предмета, используя только камеру на запястье. Для встраивания в реальную руку это важнее любого процента в таблице: внешняя система трекинга в цеху или на кухне просто не появится.
Ограничения
Политики обучаются под каждый объект отдельно, и фильтр тоже обучается под каждый объект и под каждую конкретную политику. Мультиобъектного решения нет. Визуальный разрыв на ноже и бокале не закрыт. Авторы формулируют следующий шаг как достижение почти 100% успеха при нуле падений и превращение остаточного фильтра в общий рецепт для любой номинальной политики в системах высокой размерности. Полный рецепт, код и веса обещают выложить как платформу для изучения надёжности и безопасности.
Часто задаваемые вопросы
Почему нельзя просто увеличить штраф за падение в награде? Потому что тогда задача становится многокритериальной, а баланс между успехом и осторожностью приходится подбирать заново для каждого объекта. Переобучение основной политики занимает 28–30 часов на объект и 42 часа для бокала, тогда как отдельный фильтр обучается примерно за четыре часа и настраивается одним весом на этапе запуска.
Не мешает ли фильтр выполнять задачу? Средняя поправка к действию составляет от 6,6% до 15,4% от предела действия, на лампочке 8,5%. На большинстве объектов кривая компромисса пологая: падения убираются почти без потери успеха. Заметная плата есть только у уточки, где точных попаданий становится меньше.
Работает ли это без внешних камер и маркеров? Да, depth-политика использует одну стереокамеру на запястье и не требует motion capture. Она берёт 72% целей из 4 800, а фильтр сокращает её падения с 88 до 46. Именно этот вариант авторы предлагают как переносимый навык для многошаговых задач.
Итог
Работа ценна не рекордом успеха, а тем, что безопасность в ней стала отдельным измеримым инженерным объектом. Падения посчитаны, время до первого срыва замерено, компромисс между точностью и осторожностью вынесен в одну ручку на входе сети. Такой safety-фильтр для роборуки обучается за четыре часа, не требует переобучения основной политики и переносится на реальную руку вместе с ней.
Если вы собираете роботизированный сетап, где предметы хрупкие или опасные, начните с вопроса, который авторы задают первым: сколько раз ваша система уронила объект за последние сто целей. Ответ на него полезнее любого процента успеха. Препринт лежит на arXiv под номером 2610.37652, видео и материалы авторы собрали на ian-chuang.github.io/dexsafe.