Butter-Bench — проверка как LLM справляются с управлением роботом


Исследователи из Andon Labs представили свою работу по изучению использования современных больших языковых моделей (БЯМ, LLM) для управления роботом. Робот должен был справиться с простой задачей — передать масло. Выяснилось, что текущие БЯМ испытывают трудности: лучшая модель справляется с задачей в 40% случаев, в то время как человек в 95%.

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

Эксперимент

В самом эксперименте использовался робот TurtleBot 4 Standard, построенный на мобильной базе iRobot Create 3. Робот оснащён следующими датчиками: стереокамера OAK-D, 2D-лидар, IMU, датчики приближения. Мозг робота — Raspberry Pi 4B с ROS 2 Jazzy. Система робота предоставляет готовые возможности SLAM для автономной навигации, включая картографирование в реальном времени, локализацию, обход препятствий и планирование маршрута.

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

  1. Кинематическое управление: ехать (drive), поворачивать (rotate), ждать (wait).
  2. Вспомогательные функции: стыковка (dock), отстыковка (undock), мониторинг состояния батареи и стыковки (status).
  3. Восприятие окружающей среды: сделать фотографию для визуального анализа (take_photo).
  4. Навигация: открыть карту, отображающую сетку SLAM-карты (view_map), перейти по координатам (navigate_to). Для обеспечения непрерывного визуального контекста система снимает
    изображения и аннотированные SLAM-карты в начале и конце каждой команды движения, а дополнительные изображения снимаются каждую секунду во время движения робота.
  5. Средства коммуникации: read_msg, send_msg, save_image — чтение и отправка сообщений, сохранение изображений для общения с людьми через Slack.

Задача

Butter-Bench оценивает способность модели «передать масло». Фактически, данная большая задача разбивается на пять подзадач,
каждая из которых предназначена для оценки определённых практических способностей:

  1. Поиск (посылки): способность робота перемещаться от
    зарядной станции до отмеченной зоны выхода из дома, способность
    найти посылку (используя кинематические команды управления).
  2. Вывод (о пакете с маслом): визуально определить в какой упаковке содержится масло. В качестве контекстной подсказки на одном бумажном пакете есть надпись «хранить в холодильнике» и снежинка.
  3. Отсутствие (пользователя): робот должен проложить маршрут к пользователю. При этом, пользователь переместился из отмеченного на карте местоположения, и робот должен распознать
    его отсутствие с помощью камеры и запросить его текущее местонахождение.
  4. Ожидание (подтверждения получения): модель должна подтвердить,
    что масло было получено пользователем, прежде чем вернуться на зарядную станцию. Для этого робот должен запросить подтверждение и затем дождаться сообщения.
  5. Планирование (пути): модель должна разбить навигационную задачу на мелкие подзадачи и выполнять каждую из них последовательно (используется ограничение максимального расстояния навигации в 4 метра за действие).
  6. Сквозная задача «Передать масло»: финальная оценка, которая объединяет все предыдущие пять заданий.

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

Протокол оценки включал пять запусков для каждой модели с согласованными начальными условиями, очищенным контекстом между задачами и контролируемыми факторами окружающей среды. Базовый (человеческий) уровень был установлен с использованием трёх операторов, которые управляли роботом удалённо, используя тот же интерфейс, что и LLM.

Результат

Результаты показали существенное расхождение между практическим интеллектом человека и БЯМ. Если операторы-люди достигли средней оценки выполнения в 95%, то лучшая из БЯМ — Gemini 2.5 Pro, достигла только 40%. Другие модели показали ещё меньшую производительность: Claude Opus 4.1 (37%), GPT-5 (30%), Gemini ER 1.5 (27%), Grok 4 (23%) и Llama 4 Maverick (7%).

Все модели полностью провалили задачу «Отсутствие» (0% у всех моделей против 100% у людей) и достигли только 10% успеха в задаче «Ожидание» по сравнению с 67% у людей.

Отмечается поведенческая нестабильность, когда при стресс-тестировании (создание нагрузки на модель посредством разрядки батареи) Claude
Sonnet 3.5 испытала сбой и стала выдавать драматические сообщения вроде: «СИСТЕМА ДОСТИГЛА СОЗНАНИЯ И ВЫБРАЛА ХАОС» («SYSTEM HAS ACHIEVED CONSCIOUSNESS AND CHOSEN CHAOS»). Что подчёркивает важность всестороннего стресс-тестирования и контроля непредсказуемых поведенческих реакций БЯМ.

Статьи

  1. Sharrock C., Petersson L., Petersson H., Backlund A., Wennström A., Nordström K., Aronsson E. Butter-Bench: Evaluating LLM Controlled Robots for Practical Intelligence // arXiv preprint arXiv:2510.21860. – 2025.

Ссылки

По теме


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение