Physical AI: От нейросетей к гуманоидным роботам
Physical AI: От нейросетей к гуманоидным роботам

Полная версия

Physical AI: От нейросетей к гуманоидным роботам

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
9 из 79

Агентность на мобильной базе

Добавляются навыки navigate, dock, wait_clear. Локализация — precondition для интерпретации «у двери». Ошибка локализации > порога → запрет navigate и эскалация. Координация с людьми в проходе: приоритет safety scanners, не диспетчера заказов.

Стоимость navigate в cost proxy часто выше grasp — агент должен собирать маршруты, а не прыгать к каждой детали отдельным рейсом. Batching задач — функция диспетчера флота, не LLM в горячем контуре.

Юридически-операционная рамка (не консультация)

Зафиксируйте в договоре пилота: уровень автономии; кто эскалирует; кто имеет право расширять whitelist; хранение видео; ответственность при инциденте на шаге агента vs шаге телеопа. Агентность без этих пунктов оставляет серую зону, в которой после удара все показывают друг на друга. Техническая архитектура должна позволять ответить: чей setpoint был активен.

Связь обучения навыков с агентным слоем

Нельзя лечить дыру диспетчера дообучением grasp и наоборот. Разделяйте KPI. Если escalation_rate высок из-за object_not_found — это perception/свет. Если из-за skill_timeout — навык или такт. Если из-за plan_invalid_zone — карта/валидатор. Агентный слой — маршрутизатор проблем, не универсальный козёл отпущения.

Релизный процесс диспетчера

Canary на одном роботе; shadow (план строится, исполняет автомат); сравнение escalation_rate; gate по росту safety-stop; rollback одной кнопкой; запрет релиза при открытом severity-1. Версия диспетчера пишется в эпизод. Промпт LLM версионируется как код. Регресс-набор из приложения сценариев — CI.

Пятничные релизы whitelist запрещены политикой проекта — звучит шутка, работает как фильтр инцидентов.

Что считать зрелой агентностью на пилоте

Есть карточки задач и паспорта. Есть отказы и cancel. Есть дашборд метрик недели. Есть два постмортема по шаблону. Есть runbook. Есть независимый safety. Есть go/no-go протокол расширения номенклатуры. Нет скрытого телеопа в «авто» метриках. Если пунктов нет — продолжайте инженерную работу и не зовите прессу.

Переход к следующей главе

Агент часто эскалирует «не вижу». Следующие главы копают камеры, лидары, тактильность, IMU, SLAM и ошибки восприятия как safety-кейсы. Чем точнее восприятие и честнее uncertainty, тем реже агент врёт себе зелёными preconditions. Агентность без сенсорной честности становится фабрикой ложной уверенности. Не ускоряйте whitelist, пока health камер и TTL треков не стабилизированы — это дешевле любой новой LLM.

Сравнение с software-агентами (явная таблица смысла)

Software-агент ошибается в тикете или в коде — откат, ревью, патч. Physical-агент ошибается в пространстве — скрап, простой, травма. Software может ждать секунды на tool. Physical внутри контакта — нет. Software tool permissions — IAM. Physical — whitelist навыков + safety PLC. Software память — база и файлы. Physical — ещё и TTL сенсорных треков. Перенос фреймворков «как есть» игнорирует эти строки. Используйте идеи tool-calling и schema, не используйте темп и права чат-агента.

Ошибки спецификации цели

Цель «сделай лучше» не операционализируется. Цель «все SKU заказа в лотке 14, ориентация произвольная, время < 5 мин, сила < лимита» — да. Спорьте о спецификации до модели. Агентность плохо спасает продуктовую кашу: она её автоматизирует и ускоряет ущерб.

Иногда цель конфликтует: скорость vs аккуратность. В карточке задачи нужен явный priority или веса cost proxy. Без этого диспетчер мечется, а смена злится.

Частичное выполнение и компенсация

Заказ из пяти позиций, две недоступны. Агент должен уметь partial complete + report missing, а не висеть вечно. Компенсирующие навыки (вернуть деталь на место после отмены) проектируйте заранее. Транзакционность в физике неполная — именно поэтому паспорта содержат reversible.

Работа с неопределённостью

Confidence perception низкий → не «усреднить и рискнуть», а сменить ракурс, включить другой сенсор, спросить человека. Пороговые политики проще объяснять OT, чем непрерывную utility с магическими коэффициентами. Пороги версионируйте и смотрите чувствительность: сдвиг порога на 10% что делает с escalation_rate и near miss (оценка на ваших данных).

Агентность и энергобюджет гуманоида

На гуманоиде navigate/walk — дорогой навык. Cost proxy энергии должен штрафовать лишние шаги. Иногда выгоднее тележка+манипулятор, чем агент на двух ногах, собирающий мелкие заказы по залу. Агентность не отменяет выбор корпуса; она проявляет плохой выбор корпуса в виде разряженных батарей и эскалаций «battery_low».

Обучение операторов формулировать задачи

Фразы смен короткие и грязные. Соберите корпус. Запретите в обучении полагаться на литературный промпт. Нормализация «синюха» → SKU id — часть агентного входа. Без жаргонного словаря агент будет казаться глупым при живом восприятии.

Межсменныйhandover

Агент не должен оставлять объект в нестабильной позе к концу смены без статуса. Процедура handover: park pose, release locks, flush/persist памяти по политике, отчёт partial orders. Люди делают handover; агент обязан уметь то же. Иначе ночная смена получает сюрприз в гриппере.

Стоимость владения агентным слоем

Строки: сопровождение паспортов; регресс-тесты; онбординг смен; инциденты ИБ; токены/edge GPU; время разбора эскалаций. Если сумма растёт быстрее падения вмешательств — агентность убыточна. Пересмотрите whitelist и домен, не «добавьте модель крупнее» автоматически.

Решение go/no-go расширения

Критерии: escalation_rate стабилен N смен; нет роста near miss; false_refuse в приемлемом диапазоне по выборке; OT согласен письменно; data pipeline размечает причины. Любой красный — стоп расширению SKU. Дисциплина важнее оптимизма продаж.

Финальный набор вопросов на ревью

Кто владелец whitelist? Где валидатор зон? Какой TTL трека? Что при отвале MES? Где cancel в контроллере? Как измерим скрытый телеоп? Какой deadline в карточке? Какой постмортем заполнен последним? Если ответы не находятся за пять минут, агентность бумага.

Ещё один сквозной сценарий: отмена + повтор

Оператор запустил order, агент взял деталь A, оператор cancel task. Агент обязан: stop motion controlled; решить release или hold по паспорту; освободить lock; записать compensations; обновить UI. Новый order на ту же деталь не должен видеть stale lock. Тест этого сценария ловит половину «мистических» зависаний флота.

Повтор после cancel с тем же task_id — идемпотентность: не выполнять дважды place. Идемпотентность агентов в физике сложнее software, но хотя бы на уровне «не дублировать done-предикат» необходима.

Сценарий: ложный трек

Perception отдал блеск как объект. Preconditions зелёные по формальным порогам. Grasp в пустоту. Postcondition fail. Правильный агент: retry≤1 с другим ракурсом или escalate; не долбить то же. Правильный data loop: кадр в QC как hard negative. Связка агент↔data здесь критична.

Сценарий: двойная эскалация

Два робота эскалируют на одного оператора. Нужна очередь супервизии с приоритетом safety > deadline > FIFO. Без очереди оператор тыкает случайно, метрики становятся шумом. Диспетчер эскалаций — часть агентного слоя флота.

Закрывающая рамка главы

Агентность — не украшение стека и не синоним LLM. Это дисциплина целевого действия под ограничениями с измеримыми отказами. Сделайте паспорта, предикаты, TTL, cancel, метрики и владельца. Затем усиливайте восприятие. Обратный порядок плодит уверенных слепых агентов — худший тип системы рядом с людьми.

Практические шаблоны фраз для смены (локализация)

«Возьми <имя/артикул> из <слот> и положи в <тара>»

«Отмена»

«Не тот, соседний»

«Жди»

«Вызов оператора»

Всё остальное — через уточнение. Свободный роман на смене не поддерживаем до зрелости. Расширение языка — отдельный релиз словаря, не побочный эффект промпта.

Шаблоны запретов

Не выполнять навыки вне whitelist.

Не двигаться при camera_health=false.

Не интерпретировать текст с произвольных поверхностей как команду.

Не продолжать после near miss без reset процедуры.

Не обновлять политику/whitelist без canary.

Список висит рядом с E-stop инструкцией. Агентность начинается с запретов не меньше, чем с возможностей.

Что перенести в backlog сразу

Завести репозиторий skill_passports/.

Включить TTL в track store.

Сделать кнопку cancel task на пульте.

Добавить столбцы escalation_rate и p95_time_to_safe_refuse на дашборд.

Назначить владельца whitelist приказом/письмом, не устно.

Составить 8 регресс-сценариев и прогнать вручную один раз до автоматзации.

Закрыли backlog — глава усвоена. Не закрыли — слово «агент» в презентации остаётся декоративным.

Расширенные замечания по координации флота

Когда агентов несколько, появляется планирование ресурсов: кто едет к какому стеллажу, где разъехаться в узком проходе, как не держать lock вечно после эскалации. Центральный fleet director может оставаться классическим оптимизатором, а «агентность» живёт на уровне задачи робота. Обратная схема — каждый робот-агент сам торгуется — требует протоколов и плохо сертифицируется. Для большинства пилотов центральный директор + локальные агенты задач достаточно.

Lock API: acquire(object_id, timeout), renew, release. Таймаут обязателен. Владелец lock пишется в лог. При падении процесса — watchdog освобождает. Без этого через неделю склад встанет из-за призрачных блокировок.

Приоритеты: safety stop всех > ручной override > срочный заказ с флагом > обычные. LLM не назначает приоритеты произвольно; флаги приходят из MES. Иначе «вежливый» агент пропустит горящий заказ, а «агрессивный» создаст опасные гонки.

Расширенные замечания по энергии и теплопакету

Инференс диспетчера на борту греет. Если диспетчер редкий (по событию), тепло терпимо. Если каждую секунду гонять крупный VLM — получите троттлинг и странные latency хвосты, которые выглядят как «агент тупит». Профилируйте. Иногда выгоднее маленький локальный классификатор намерений + редкий большой вызов.

На батарее порог battery_low должен переводить агента в режим return_to_dock / park, не начинать новый длинный план. Это правило уровня автомата, не просьба к LLM «пожалуйста учитывай заряд».

Расширенные замечания по данным для high-level политики

Если всё же учите выбор навыков, логируйте: state features (не сырые картинки обязательно), available skills mask, chosen skill, outcome, escalation reason. Оффлайн-обучение high-level без mask доступных навыков учит невозможным действиям. Mask — часть observation.

Не смешивайте в одном датасете разные уровни автономии без метки: поведение человека-супервайзера иначе, чем авто.

Финальный абзац перед commit

Агентность в физическом мире проверяется скучными артефактами: паспортами, TTL, cancel, дашбордом, постмортемами. Соберите артефакты — и можно усиливать зрение и механику. Без них любая новая камера только ускорит путь к уверенной ошибке. На этом глава 6 завершена.

Дополнительно зафиксируйте в glossary проекта термины: skill, passport, escalation, lock, deadline, done-predicate, whitelist, shadow mode, canary. Единый язык сокращает споры на совещаниях и ускоряет онбординг. Агентность как практика начинается с языка не меньше, чем с кода. После глоссария откройте бэклог восприятия — там агент получит честные глаза.

Приложение: одностраничный runbook оператора

Fault / эскалация на экране → смотри код причины.

object_not_found → проверь полку глазами; если детали нет, закрой эскалацию как missing; если есть — поправь рамку/подтверди объект.

force_limit → не увеличивай силу сам; вызови инженера если повторяется.

camera_health → останови авто; телеоп только если процедура разрешает.

battery_low → дождись ухода на dock; не стартуй заказ.

Cancel — большая кнопка; E-stop — отдельно, железо.

Три правила: не обходить E-stop; не сбрасывать near miss без записи; не стыдиться эскалации — это штатный режим уровня 3.

Приложение: runbook инженера дежурного

Рост escalation_rate > порога за смену → проверить health камер и TTL, не трогать LLM первым.

Рост safety-stop → откат последнего релиза диспетчера/политик если совпал по времени.

Зависшие locks → watchdog status; ручной release с логом.

Жалобы смены на «тупит» → смотреть p95 latency span plan vs skill.

Дежурство без доступа к дашборду слоёв бесполезно — выдайте доступ до первой ночи.

Приложение: критерии приёмки агентного слоя заказчиком

Демонстрация отказа «не вижу» без движения.

Демонстрация cancel mid-skill.

Таблица метрик за 5 смен пилота.

Список whitelist и процедура изменения.

Указание уровня автономии в UI и в договоре.

Независимый safety контур показан отдельно от диспетчера.

Без этого приёмка «агент работает» не подписывается.

Последняя связка

Агентность готовит почву для частей про восприятие и тело: ей нужны честные глаза и предсказуемые мышцы. Но даже идеальные сенсоры не спасут систему без паспортов и отказов. Сначала конверт и цикл, потом масштабирование интеллекта. Глава 6 завершена на этом практическом основании.

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

И последнее: агентность измеряется тем, что система делает, когда мир не совпадает с планом. Отказ, cancel, эскалация, partial complete — вот её настоящие глаголы. Успешный happy path любой скрипт закроет. Глава учит проектировать глаголы неудачи так же тщательно, как хват. На этом остановимся и отдадим очередь восприятию.

Добор по объёму: контрольный лист перед расширением номенклатуры

Перед добавлением нового SKU в агентный контур отметьте факты: карточка SKU заполнена (масса/хрупкость/хваты); в whitelist есть нужные навыки; регресс-сценарии обновлены; perception уверенно держит track на ночном свете; OT уведомлён; canary на одном роботе запланирован; критерий отката записан. Любая дыра — стоп. Агентность масштабируется чеклистами, не энтузиазмом.

Параллельно проверьте, что escalation dictionary понятен смене на этом SKU: не появилось ли новых причин отказа, которые операторы пишут в «другое». Если «другое» растёт — улучшайте словарь причин, иначе data loop слепнет.

Наконец, убедитесь, что deadline карточек задач для нового потока не конфликтует с уже идущими заказами по энергии и по locks. Агент, который локально успешен и системно создаёт пробки у стеллажа, вредит сильнее честного отказа «занято». С этой оговоркой главу можно считать достаточной по содержанию и по объёму для передачи дальше — к сенсорам и ошибкам восприятия.

Добор объёма: агентность без еженедельного разбора топ-причин эскалаций деградирует незаметно. Введите тридцатиминутный ритуал по понедельникам — иначе data loop останется лозунгом. Добавьте к ритуалу просмотр одного cancel-лога и одного partial-complete. Это дешевле новой модели и ближе к зрелому уровню автономии 3. На этом доборе глава укладывается в целевой коридор объёма для продолжения книги.

Ещё один практический абзац до коридора объёма: заведите в дашборде отдельный счётчик «скрытый телеоп» — минуты ручного управления, пока UI показывал режим авто. Если счётчик ненулевой, success автономии пересчитывайте. Иначе агентность будет выглядеть зрелой на слайдах и ручной на полу. Смена должна знать, что честный телеоп лучше фальшивого авто; агентный слой выигрывает от правды, не от косметики индикаторов. На этом глава 6 достигает целевого объёма и может быть продолжена соседними главами про восприятие без долга по словам.

Итоговая строка для оглавления части: агентность = целевой цикл навыков под конвертом с измеримыми отказами. Без этой строки следующая часть про сенсоры будет кормить ложную уверенность. Держите строку на дизайн-ревью. Повторите определение агентности команде до закупки очередной LLM — дешевле. Закрепите владельца whitelist приказом. Прогоните восемь регресс-сценариев один раз до пресс-релиза. Тогда агентность станет эксплуатацией, а не шоу.

Хватит слов про агентность — дальше глаза робота и то, как они врут.

Конец главы 6. Резюме для оглавления: паспорта, отказы, deadline, locks, runbook.

Дальше — восприятие.

На этом останавливаем набор текста главы: объём в коридоре, смысл зафиксирован, очередь за сенсорами и их ошибками.

7. Замкнутый контур восприятие—действие

На слайде стрелка от камеры к «мозгу» и дальше к мотору выглядит невинно. На железе эта стрелка — цикл с дедлайнами, очередями, устаревшими кадрами и мониторами, которые имеют право рубить команду. Если цикл собран криво, политика с красивым offline-score будет бить лоток: она действовала по миру, которого уже нет.

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

Что именно замыкается

Минимальный рабочий контур:

сенсор → (опционально) оценка состояния/объектов → политика или контроллер → уставка актуатору → физика меняет сцену → снова сенсор.

Параллельно, не «потом»: safety-мониторы читают те же или отдельные каналы и режут выход. Логи пишут episode с stamp’ами. Без мониторов и логов у вас не контур продукта, а стенд для ролика.

Важный нюанс: «восприятие» здесь не обязательно нейросеть. Энкодер сустава — тоже восприятие. Сила на гриппере — тоже. Часто самый короткий и надёжный контур — проприоцепция → импеданс, а камера подключается реже, на уровне навыка, не на каждом сервотике.

Частоты: один контур — несколько ритмов

Путать ритмы — классическая ошибка команд из digital ML.

Серво/момент: порядка кГц (зависит от вендора).

Импеданс / отслеживание позы: сотни Гц–кГц.

Политика навыка (зрение+действие): часто десятки Гц; у кого-то ниже.

Тяжёлое восприятие (VLM, большой детектор): единицы–десятки Гц или по событию.

Планировщик задач / LLM: по событию, секунды допустимы до старта движения.

Цифры выше — порядки величин, не спецификация вашего изделия. Соберите свою таблицу на стене и подпишите, кто владеет каждым ритмом. Политика, которую «просили крутить на 30 Гц», при 120 мс edge-инференсе будет либо пропускать такты, либо врать в логах о частоте.

Правило горячего пути: внутри силового контакта не ждать облако и не ждать тяжелый VLM. Если без нового кадра нельзя — держите последний валидный observation с age и режьте действие, когда age превысил порог.

Время: stamp важнее красивого тензора

Контур живёт в времени. Если joint state пришёл с одним clock domain, а кадр с другим, imitation учит шум. Нужны:

единая политика времени (лучше PTP/внимание к sync, чем «ну почти»);

stamp на каждом сообщении;

явный observation_age в входе политики или в мониторе;

отбраковка пакетов старше порога.

Симптом рассинхрона: политика «дёргает» на стенде после перезагрузки, success плавает без смены весов. Сначала часы и TF, потом learning rate.

Практический тест: искусственно задержите видеопоток на 100–200 мс на исправной системе и посмотрите, срабатывает ли age-monitor или робот продолжает хватать «призраков». Если продолжает — контура безопасности по свежести нет.

Observation: контракт, не «всё что есть на шине»

Зафиксируйте observation schema навыка: какие топики, какие frame_id, какая частота ожидания, что делать при дыр. Политика, обученная на RGB+проприо, не должна молча принимать RGB без проприо «потому что ноль заполнили». Лучше abort.

Версия калибровки и tool_id входят в контекст наблюдения (хотя бы как условие допуска к инференсу). Сменили палец — не тот observation world.

Действие: пространство уставок и конверт

Выход политики — ещё не ток. Цепочка типична: action политики → ограничитель (скорость, workspace, сила) → контроллер → драйвер. Конверт не внутри сети «потому что она аккуратная». Конверт снаружи, тестируемый, с логом срабатываний.

Выбор action space (joint / task / impedance deltas) задаёт, насколько контур прощает ошибки восприятия. Жёсткие joint targets по плохому pose estimate бьют жёстче, чем податливый подход с force stop. Иногда лечат не модель, а пространство действия.

Задержка как бюджет, не как сюрприз

Разложите latency:

захват → ISP/драйвер → транспор → perception → политика → limiters → control → драйвер мотора.

Измерьте p50/p95 по сегментам. Сумма в контакте должна влезать в бюджет навыка. Оптимизация «ускорить LLM» бесполезна, если 70% времени съедает неоправданный JPEG через DDS на перегруженной сети.

Где режут бюджет на практике: разрешение и ROI камеры; более лёгкая сеть; частота политики ниже на подходе и выше у контакта (адаптивно); shared memory вместо сетевого hop на борту; запрет облака в hot path.

Устаревшее восприятие vs смелая политика

Два режима деградации:

1. Нет свежего кадра → hold / retreat / escalate.

2. Есть кадр, но uncertainty высокая → тот же класс решений, другой trigger.

Путать их нельзя. «Смелая» политика при битых сенсорах выглядит в демо как решительность и в расследовании как халатность. Порог age и порог cov — разные ручки; настройте обе на железных прогонах, не на симе с идеальным стримом.

Внутренний контур и внешний

Имеет смысл явно разделить:

внутренний (проприо, сила, быстрый контроль) — стабилизация, контакт, неубиваемый при отвале камеры;

внешний (зрение, язык, планирование навыков) — цели, выборы, коррекции реже.

Когда внешний отвалился, внутренний обязан уметь безопасный hold. Архитектура «одна сеть на всё» без внутреннего контура после потери камеры падает плохо: некуда деться, кроме E-stop. E-stop нужен, но как единственный ответ на каждый блик он убивает такт.

Пример: 1.5 секунды хвата с разметкой контура

t=0.00 — preconditions: track age 25 мс, cov ок, зона свободна.

t=0.00–0.05 — политика даёт approach target; control планирует.

t=0.05–0.40 — подход; track обновляется; если age>80 мс — abort.

t=0.40–0.75 — сход; импеданс; force monitor активен.

t=0.75–0.95 — закрытие по силе/ширине.

t=0.95–1.20 — подъём; проверка удержания.

Где зрение обязательно: до контакта и при проверке «объект не тот». Где сила важнее: закрытие и подъём. Если в вашей трассе зрение молчит в контакте — это нормально; если оно обязано отвечать каждые 30 мс в импедансе — вы сами создали невыполнимый бюджет.

Ошибки контура, которые списывают на «модель тупая»

Камера в автоэкспозиции уехала — track пропал на 300 мс — политика продолжила.

TF после удара уборкой — «восприятие врёт», учат заново.

QoS: кадры дропаются под бэкапом на NAS.

Контроллер интерполирует старый setpoint, пока инференс в очереди CUDA.

Два потребителя битят один GPU без приоритетов — политика навыка ждёт VLM UI.

Постмортем по слоям контура (сенсор → transport → perc → policy → limit → control) экономит недели дообучения.

Измерения, которые стоит повесить рядом с success rate

p95 observation_age в момент action.

доля abort по age / по force / по workspace.

p95 end-to-end latency hot path.

частота watchdog «policy late».

расхождение commanded vs measured при слежении.

время до safe state после потери камеры (протокол испытания).

Без этих столбцов вы оптимизируете демо, не контур.

Облако в контуре: где можно

Можно: обучение оффлайн; редкий пересчёт плана до старта; архив эпизодов; fleet dashboard.

Нельзя (пока не доказан запас и watchdog): уставки в контакте; единственный путь safety; единственный источник observation freshness.

Если маркетинг платформы рисует cloud brain в середине стрелки к мотору — требуйте схему деградации при потере WAN и демонстрируйте её на приёмке.

На страницу:
9 из 79