Modern Robotics и Physical AIУрок 2.3 · LLM-планировщики и VoxPoser
Глоссарий
2.3 Часть 2 · Пространственные представления, язык и планирование

LLM-планировщики и VoxPoser

В уроке 2.2 PerAct по команде «открой верхний ящик» выбирал следующую позу захвата. Просьба «сделай мне кофе с молоком» длиннее: это десяток навыков в правильном порядке, и о порядке демонстрации отдельных навыков ничего не говорят. Большие языковые модели знают такие процедуры из текстов, но не знают ни робота, ни его кухню. Разберём, как SayCan умножает «полезно» от языковой модели на «выполнимо сейчас» от робота, как Inner Monologue возвращает модели результат каждого шага, а Code as Policies и VoxPoser просят её писать код: сначала программу из вызовов функций робота, потом карты, по которым классический планировщик строит путь захвата без обучения.

≈ 45 минут3 лаборатории, интерактив и квизмиссии с целью
ПЛАНСравни на кухне три планировщика: только языковая модель, только оценка «выполнимо сейчас» и SayCan, — и поменяй кухню
ОБРАТНАЯ СВЯЗЬНайди шаг, на котором план разошёлся с кухней, и верни модели результат каждого шага
КОДПройди по шагам программу, которую написала модель, и посмотри, как она дописывает недостающие функции
КАРТАСобери карты притяжения и избегания для «открой верхний ящик и не задень вазу» и подвинь вазу на ходу

Начать урок ↓

1 Знание

Что языковая модель знает о кухне

В уроке 2.2 PerAct получал одну команду, например «открой верхний ящик», и выбирал следующую ключевую позу захвата. Длинная просьба устроена иначе. Чтобы сделать кофе с молоком, нужно взять чашку, поставить её под кофемашину, сварить кофе, налить молоко и принести, причём именно в таком порядке. Этого порядка нет в демонстрациях отдельных навыков, а записывать демонстрации каждой длинной задачи целиком слишком дорого: в работе SayCan, о которой пойдёт речь, только на обучение навыков ушло 68 тысяч демонстраций, записанных за 11 месяцев на 10 роботах.

Знание о порядке шагов есть в больших языковых моделях (LLM). Модель, обученная на текстах из интернета, прочитала тысячи рецептов и инструкций и продолжит фразу «чтобы сварить кофе, сначала…» без единой демонстрации. Но она не видела ни этого робота, ни эту кухню. В статье SayCan приводят пример: на просьбу «Я пролил напиток, можешь помочь?» модель советует пылесос. Совет разумный, но бесполезный, если пылесоса нет или робот не умеет им пользоваться. А на вопрос, как роботу принести яблоко, модель отвечает, что робот может сходить в ближайший магазин и купить его.

Поэтому модель не просят писать план свободным текстом. У робота есть набор навыков, у каждого — короткое описание: «взять чашку», «открыть шкаф». Языковая модель умеет не только продолжать текст, но и оценивать готовые варианты: насколько вероятно, что после просьбы и уже сделанных шагов следующим идёт именно это описание. Модель оценивает все навыки, и план собирается только из того, что робот умеет. Подсказка для модели — диалог с примерами:

Человек: Как бы ты принёс мне апельсин?
Робот: 1. найти апельсин, 2. взять апельсин, 3. принести тебе, 4. положить апельсин, 5. готово.
… ещё 16 примеров в том же формате …
Человек: Ада, сделай мне кофе с молоком.
Робот: 1. какой навык?

Примеры перед просьбой задают формат ответа, в статье их 17. Модель оценивает, каким описанием навыка вероятнее продолжить строку «Робот: 1.», потом выбранный шаг дописывают и спрашивают про шаг 2.

Ада — домашний гуманоидный робот, на котором построены лабораторные работы курса. Подробнее о ней — в уроке 0.1.

Выбор из списка убирает из плана пылесос, но не даёт модели глаз. Если шкаф закрыт, она всё равно начнёт с «взять чашку из шкафа»: так начинаются тысячи рецептов, а закрытую дверцу модель не видит. Как сообщить ей, что робот может сделать прямо сейчас?

🔬 Лаборатория 1

SayCan: полезно и выполнимо

Что робот может сделать прямо сейчас, знает он сам. В SayCan у навыков есть функции ценности, обученные с подкреплением: по картинке с камеры функция оценивает, с какой вероятностью навык удастся из текущего состояния. Если шкаф закрыт, «взять чашку из шкафа» получит низкую оценку, а «открыть шкаф» — высокую. Такую оценку называют аффордансом: что среда позволяет сделать.

SayCan (Ahn и соавторы, Google, 2022) перемножает две оценки. Языковая модель отвечает, насколько шаг полезен для просьбы, функция ценности — насколько он выполним сейчас. Робот выполняет навык с наибольшим произведением, дописывает его в план и снова спрашивает обе модели, пока языковая модель не выберет «готово». Авторы называют робота «руками и глазами» языковой модели: модель знает задачу, робот — свою кухню.

В статье у робота 551 навык семи семейств с 17 предметами: взять, положить, переставить, открыть и закрыть ящик, поехать к месту. На кухне Ады навыков 11. Оценки языковой модели здесь заданы заранее: они иллюстрируют принцип, а не ответы настоящей модели. Аффордансы тоже заданы простыми правилами от состояния кухни. Три планировщика получают одну просьбу и работают на одной кухне: только языковая модель, только аффорданс и SayCan.

Шкаф
Молоко
Чашка
Под капотом: правило выбора, функция ценности и наша кухня

Пусть ii — просьба, ℓπ\ell_\pi — описание навыка π\pi, sns_n — состояние перед шагом nn, cπc_\pi — событие «навык завершился успешно». На шаге nn SayCan выбирает

uπ=pLLM(ℓπ∣i, ℓπ0,…,ℓπn−1),aπ=pvalue(cπ∣sn, ℓπ),πn=arg⁡max⁡π∈Π uπ⋅aπ.\begin{aligned} u_\pi &= p_{\text{LLM}}\bigl(\ell_\pi \mid i,\ \ell_{\pi_0}, \dots, \ell_{\pi_{n-1}}\bigr), \\ a_\pi &= p_{\text{value}}\bigl(c_\pi \mid s_n,\ \ell_\pi\bigr), \\ \pi_n &= \arg\max_{\pi \in \Pi}\ u_\pi \cdot a_\pi. \end{aligned}

Произведение следует из простого допущения: навык, который удался, продвигает задачу с вероятностью uπu_\pi — что это нужный шаг, а навык, который сорвался, не продвигает её совсем. Тогда p(ci∣i,s,ℓπ)∝aπ uπp(c_i \mid i, s, \ell_\pi) \propto a_\pi\, u_\pi. Выбранный навык исполняют, его описание дописывают в подсказку, и всё повторяется, пока не выберут «готово».

Сами навыки обучали и имитацией (BC-Z), и с подкреплением (MT-Opt), а функции ценности — всегда с подкреплением, на разреженной награде: 1 в конце эпизода, если навык удался, иначе 0, без дисконтирования. Ожидаемая сумма наград такой задачи и есть вероятность успеха, поэтому ценность служит аффордансом. Сырые оценки калибруют, параметры подбирают опытным путём: для «взять» a=clamp⁡(v−0,20,5−0,2, 0, 1)a = \operatorname{clamp}\bigl(\tfrac{v - 0{,}2}{0{,}5 - 0{,}2},\ 0,\ 1\bigr), для «поехать к» — по расстоянию до места, «положить» считают выполнимым всегда (язык и так ставит его после «взять»), а «закончить» получает 0,1, чтобы план завершился, когда выполнимых шагов нет. Навык, который уже выполнен, например поехать к столу, у которого робот уже стоит, повторно не выбирают.

У нас 11 навыков. Аффорданс задан правилами: «взять чашку из шкафа» при закрытом шкафе — 0,04, при открытом — 0,88, уже выполненный навык — 0. Оценки языковой модели — заранее заданные доли: модель знает рецепт «чашка → кофемашина → кофе → молоко → налить → принести» и продолжает его после последнего шага истории. Шаги из истории она считает выполненными и почти не повторяет. В статье uπu_\pi — вероятность текста описания как продолжения подсказки у PaLM на 540 млрд параметров; у нас — доли, которые в сумме дают 1.

В статье PaLM-SayCan на 101 просьбе в макете кухни составил верный план в 84% случаев и довёл задачу до конца в 74%. На настоящей кухне — 81% и 60%. Без функций ценности, когда шаг выбирает одна языковая модель, верных планов 67%. Из всех ошибок 65% пришлись на языковую модель и 35% — на аффордансы. Хуже всего давались длинные просьбы: модель заканчивала раньше времени, например приносила один предмет из двух. А с меньшей языковой моделью FLAN план был верным в 70% случаев, исполнение — в 61%: лучше языковая модель — лучше робот.

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

🔬 Лаборатория 2

Inner Monologue: результат шага — словами

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

Inner Monologue (Huang и соавторы, Google, 2022) дописывает результат в ту же подсказку словами. После шага в текст попадает строка от детектора успеха («Детектор: успех — нет»), от описания сцены («Вижу: кола, вода, шоколадный батончик») или ответ человека на вопрос робота. Языковую модель не дообучают: она читает обратную связь как продолжение диалога и сама решает, повторить шаг, выбрать другой или спросить человека.

Возьмём ту же кухню и SayCan с теми же оценками, но при первой попытке чашка выскользнет из захвата. В журнале слева — подсказка, которую видит языковая модель, справа — что на самом деле случилось на кухне.

Обратная связь
Детектор
Помеха
Под капотом: какая бывает обратная связь и где она подводит
  • Детектор успеха отвечает, удался ли последний навык: «Детектор: успех — да» или «Детектор: успех — нет». В симуляции он смотрит на истинное состояние, на настоящей кухне это обученный классификатор по картинке.
  • Пассивное описание сцены приходит после каждого шага без запроса: список видимых предметов («Вижу: …») или какие подцели уже достигнуты.
  • Активное описание сцены — ответ на вопрос, который задала сама модель: «Ящик открыт?» — «Нет, закрыт». В статье на вопросы отвечал человек, в том числе о своих предпочтениях: «Какой напиток принести?» — «Что-нибудь с кофеином».

Языковые модели в статье — InstructGPT на столе с кубиками и PaLM на кухне, обе без дообучения, с несколькими примерами в подсказке. На настоящем столе, где нужно было достроить башню из трёх кубиков и разложить еду и приправы по разным тарелкам, вариант, который видит список предметов только в начале, справился в среднем в 20% попыток, а со списком предметов и детектором успеха после каждого шага — в 90%. Без детектора система не повторяла сорвавшееся взятие, без списка предметов не знала про предметы, которые сначала были закрыты другими.

Обратная связь приносит и новые отказы. Если детектор ошибается в сторону «нет», робот лишний раз повторяет удавшийся шаг. Если в сторону «да», модель считает выполненным то, чего нет, и план расходится с кухней. Авторы отмечают и то, что модель иногда игнорирует обратную связь и предлагает навыки с предметами, которых на сцене нет.

У нас детектор говорит правду, а в режиме «ошибается» один раз отвечает «да» на сорвавшемся шаге. Модель повторяет шаг после «Детектор: успех — нет», а после двух неудач подряд бросает его и заканчивает план.

На настоящей кухне из статьи SayCan авторы мешали роботу: человек вмешивался, пока навык выполнялся. В задачах с перемещением по кухне SayCan при таких помехах не довёл до конца ни одной попытки, Inner Monologue с детектором успеха и списком предметов — 75%. По всем 120 испытаниям, с помехами и без, у SayCan 30,8% успешных, у Inner Monologue — 60,4%. Кроме того, модель с обратной связью сама меняла план, когда человек передумывал посреди задачи, и предлагала взять другой кубик, когда первый оказывался слишком тяжёлым, — хотя в примерах подсказки такого не было.

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

2 Код

Code as Policies: модель пишет программу

Список навыков ограничивает модель. Чтобы подвинуть чашку «немного левее» или двигать кубик, «пока он левее миски», нужен навык с этим числом или с этим условием внутри, а обучать отдельный навык под каждую формулировку — снова собирать данные.

Code as Policies (Liang и соавторы, Google, 2022) просит языковую модель, обученную на коде, писать программу. В подсказке — несколько примеров «команда в комментарии → код» и функции робота: восприятия, например найти предметы и их координаты, и управления, например взять предмет и положить на другой. Модель отвечает кодом на Python. Программа вызывает функции робота, считает координаты с NumPy и решает условиями и циклами. Числа модель подбирает сама: в примерах статьи «немного вправо» превращается в прибавку 0,1 к координате x, а «по 5 см за раз» — в шаг 0,05.

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

Пройдём по программе с рисунка 1 статьи: «поставь кубики стопкой в пустую миску». Код «написан» заранее и почти дословно повторяет статью, а функции восприятия и управления работают на нашем столе по-настоящему.

🧩 Интерактив
Команда
Лимон
Кубик
Под капотом: как исполняют код модели и что показали опыты

Все опыты статьи, если не сказано иное, — модель Codex code-davinci-002 с температурой 0, то есть жадное декодирование без случайности. Подсказка состоит из двух частей: строк импорта, которые сообщают, какие функции доступны, и примеров «команда в комментарии → код». Новые команды и ответы можно дописывать в ту же подсказку, и тогда модель понимает «отмени последнее действие».

Перед запуском код проверяют: в нём не должно быть import, имён, которые начинаются с двух подчёркиваний, и вызовов exec и eval. Потом код исполняют через exec с двумя словарями: в первом все функции, которые программа может вызвать, во втором появляются переменные и новые функции. Иерархическая генерация разбирает синтаксическое дерево кода, находит функции, которых нет в области видимости, и просит модель написать каждую, потом то же самое — внутри написанных функций, в глубину.

Иерархическая генерация помогает и на обычных задачах программирования: на HumanEval она решает 39,8% задач с первой попытки против 34,9% без неё, а на 37 задачах робототехнического набора RoboCodeGen — 95% против 81%. В симуляции на столе с кубиками и мисками на новых командах с новыми предметами Code as Policies справился с длинными задачами в 80% случаев, планировщик на естественном языке — в 64%, а CLIPort, обученный на 30 тысячах демонстраций, — в 0%.

Тело is_empty в статье не приведено, у нас его вариант. Функции робота: detect_objects возвращает имена найденных предметов, get_pos — координаты в метрах, pick_place кладёт первый предмет на второй или в точку.

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

🔬 Лаборатория 3

VoxPoser: код строит карту, планировщик — путь

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

VoxPoser (Huang и соавторы, Стэнфорд, 2023) превращает эти выводы в карты. Языковая модель GPT-4 пишет код, как в Code as Policies. Код обращается к моделям зрения: одна находит предмет на кадре по названию (OWL-ViT), вторая точно обводит его контур (Segment Anything), третья следит за этим контуром от кадра к кадру (XMem), а камера глубины даёт трёхмерные точки предмета. Потом код заполняет трёхмерную сетку 100 × 100 × 100 вокселей. На карте аффорданса высокие значения там, куда тянуться, — у ручки; на карте избегания — там, чего держаться подальше, — вокруг вазы. Есть ещё карты поворота захвата, скорости и того, когда сжимать захват.

Путь строит классический планировщик. Стоимость клетки — взвешенная сумма нормированных карт с весами 2 и 1, взятая со знаком так, что притяжение к ручке её уменьшает, а близость к вазе увеличивает. Жадный поиск ведёт захват по клеткам с наименьшей стоимостью, а пока робот едет, путь пересчитывается 5 раз в секунду по свежему изображению. Ни одна часть не обучается под задачу: ни языковая модель, ни детекторы, ни планировщик.

На сцене — вид сверху: срез карты на высоте верхней ручки, 60 × 40 клеток по 1,5 см. Код «написан» заранее по образцу рисунка 2 статьи и её функций, а карты, стоимость и путь считаются здесь по-настоящему. Вазу можно перетаскивать.

Карта
Под капотом: цель планировщика, карта стоимости и наши упрощения

Пусть VV — карта ценности, а p1,…,pNp_1, \dots, p_N — клетки, через которые проходит захват. Цель задачи VoxPoser записывает как накопленную ценность вдоль пути со знаком «минус»:

Ftask=−∑j=1NV(pj).F_{\text{task}} = -\sum_{j=1}^{N} V(p_j).

Карты сглаживают: к карте аффорданса применяют евклидово преобразование расстояний, и значение плавно растёт к цели, а карту избегания размывают гауссовым фильтром. Стоимость для планировщика — нормированные карты с весами wa=2w_a = 2 и wo=1w_o = 1:

c(p)=− wa A^(p)+wo O^(p),A^, O^∈[0,1].\begin{gathered} c(p) = -\,w_a\,\hat A(p) + w_o\,\hat O(p), \\ \hat A,\ \hat O \in [0, 1]. \end{gathered}

Жадный поиск находит последовательность положений захвата без столкновений, затем остальные карты задают в каждой точке поворот, скорость и захват. Робот исполняет первую точку, и путь пересчитывают заново 5 раз в секунду, как в MPC. Языковая модель в этом цикле не мешает: код подзадачи не меняется, поэтому ответ модели запоминают и при каждом пересчёте исполняют тот же код со свежими ответами детекторов. В статье код пишут несколько программ: planner делит просьбу на подзадачи, composer для каждой подзадачи вызывает программы, которые строят отдельные карты. В каждой подсказке от 5 до 20 примеров.

У нас всё сведено в одну программу, а карта — плоский срез 60 × 40. Карта избегания — диск радиусом 8 см вокруг вазы, размытый гауссианой с σ = 3 см. Путь — не жадный поиск, а путь с наименьшей суммой стоимостей клеток (алгоритм Дейкстры, как в уроке 0.4): в плоском срезе жадный поиск легко упирается в тупик между вазой и комодом, а в объёме у захвата больше обходных путей. Захват задевает вазу, если подходит к её центру ближе 6,75 см: радиус вазы 4,5 см плюс половина ширины захвата.

В статье VoxPoser на руке Franka Panda выполнял пять задач по 10 попыток: подвести захват к предмету, держась подальше от другого, разложить приборы к пасте, закрыть ящик, открутить крышку бутылки и смести бумажный мусор в совок. Успешных попыток 88%, а с помехами, когда руку толкали, предметы переставляли, а закрытый роботом ящик тянули обратно, — 70%. Вариант Code as Policies с простыми примитивами вроде «переместись в точку» справился в 24% без помех и в 0% с помехами. В задаче с предметом, от которого надо держаться подальше, — 9 и 8 из 10 против 0 из 10. В симуляции на 13 задачах с 2766 разными командами, на командах и параметрах, которых не было в подсказках, VoxPoser выполнил 65,0% задач, где нужно действовать с предметами, и 76,7% задач на пространственные ограничения. Код с примитивами — 17,5% и 25,0%, карта стоимости, которую выдаёт обученная сеть U-Net, — 0%.

Большинство ошибок на настоящем роботе пришло от восприятия: детектор чувствителен к тому, как стоит предмет, и хуже находит части предметов, например ручки. Авторы называют и другие ограничения: внешние модули восприятия, ручную настройку подсказок и то, что планировщик ведёт только захват, а не всю руку. VoxPoser собран из отдельных частей: языковая модель, детекторы, планировщик, — и каждая может подвести другую. Что из этих идей осталось в системах 2025–2026 годов?

3 Сегодня

Что осталось от этих идей

Деление на «что делать» и «как двигаться» осталось. В уроке 0.1 Figure Helix, NVIDIA GR00T и Gemini Robotics устроены так: медленная модель думает, быстрая двигает. В Helix модель зрения и языка на 7 млрд параметров работает на 7–9 Гц, политика на 80 млн параметров — на 200 Гц, у GR00T N1 — 10 и 120 Гц (урок 1.6). Отличие от SayCan в том, чем уровни обмениваются: не текстом шага, а векторами признаков.

Связка «большая модель выбирает цель, классика строит путь» тоже жива. В уроке 0.4 Mobility VLA от Google DeepMind по просьбе выбирала кадр видеотура, где находится цель, а путь строили алгоритм Дейкстры и MPC. Большие модели зрения и языка научились и сами отмечать на кадре точки, захваты и траектории: в уроке 2.1 это делала Gemini Robotics-ER (2025), а VoxPoser для похожей задачи собирал карту кодом из ответов детектора.

А мозаика из отдельных моделей — языковой модели, функций ценности, детекторов и планировщика — остаётся слабым местом: каждая часть может подвести другую, как детектор, который сказал «успех», когда чашка выскользнула. Можно ли обучить одну модель, которая по пикселям и словам сразу выдаёт действия? Об этом часть 3.

4 Проверь себя

Восемь вопросов о типичных заблуждениях

5 Итог

Итоги урока

  1. Языковая модель знает порядок шагов из текстов, но не знает робота и его кухню. Если она оценивает описания навыков робота, а не пишет план свободным текстом, план собирается только из того, что робот умеет.
  2. SayCan выбирает шаг по произведению «полезно» от языковой модели и «выполнимо сейчас» от функции ценности навыка. Шаг должен быть и тем и другим.
  3. Inner Monologue дописывает в подсказку результат каждого шага: успех, что видно на сцене, ответы человека. Без обучения модель повторяет сорвавшийся шаг и меняет план на ходу, но верит обратной связи, даже когда детектор ошибается.
  4. Code as Policies просит модель писать код: программа вызывает функции восприятия и управления, считает координаты и повторяет действие в цикле, а недостающие функции модель дописывает сама.
  5. VoxPoser пишет код, который строит карты притяжения и избегания. Путь по ним строит классический планировщик и пересчитывает его на ходу, и ни одна часть не обучается под задачу.

Открытые вопросы

Функция ценности обещала 0,9, а навык всё равно сорвался. Как заметить это без отдельного детектора успеха?

Спросить те же функции ценности после шага. Если чашка в захвате, «поставить чашку под кофемашину» становится выполнимым; если этот навык по-прежнему невыполним, а «взять чашку» снова выполним, шаг, скорее всего, сорвался. Это тоже детектор успеха, только собранный из уже обученных функций, и он ошибается вместе с ними. Надёжнее отдельный классификатор, обученный на удачных и неудачных попытках, — такой стоял на кухне в Inner Monologue.

VoxPoser ведёт по карте только захват. Почему рука может задеть вазу, даже если путь захвата её обходит?

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

Гид по статье

M. Ahn и соавторы, «Do As I Can, Not As I Say: Grounding Language in Robotic Affordances», CoRL 2022.

W. Huang и соавторы, «Inner Monologue: Embodied Reasoning through Planning with Language Models», CoRL 2022 — обратная связь словами: детектор успеха, описание сцены, ответы человека.

J. Liang и соавторы, «Code as Policies: Language Model Programs for Embodied Control», ICRA 2023 — программы вместо списков навыков и иерархическая генерация кода.

W. Huang и соавторы, «VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models», CoRL 2023 — код строит трёхмерные карты, планировщик — путь.

Материалы

✅

Проверь себя по всей части 2. Вопросы по урокам 2.1–2.3 вперемешку: так видно, что держится в памяти. В конце — балл по каждому уроку и разделы, которые стоит повторить.

Проверка части 2 →

➡️

Дальше: часть 3, foundation-модели. В этом уроке робот собран из отдельных частей: языковая модель планирует, навыки и функции ценности обучены отдельно, детекторы видят сцену, классический планировщик ведёт захват. Каждая часть может подвести другую. В части 3 — модели, которые по пикселям и словам сразу выдают действия: RT-1, RT-2 и модели зрения, языка и действий (VLA). Программа курса →

Урок был понятен?
Нашли ошибку или неточность? Сообщить на GitHub
Урок пригодился? Скажи спасибо — так автор узнает, что курс читают.