OpenGrall Presented an Architecture for AI Robots Where a Language Model Handles Strategy
OpenGrall proposes not giving motor control directly to the language model: it makes only high-level decisions, while execution and emergency reflexes are handl

OpenGrall предлагает простой, но важный сдвиг в робототехнике: LLM не должна управлять роботом на уровне моторов и мгновенных реакций. Языковая модель здесь отвечает только за смысл, план и выбор следующего шага, а безопасность, движение и низкоуровневые рефлексы вынесены в отдельный контур. За счёт этого проект пытается убрать главную проблему большинства демонстраций «роботов с GPT», где машина красиво разговаривает, но потом на несколько секунд замирает перед каждым действием.
Авторы начинают с самого болезненного места — безопасности. LLM недетерминирована: один и тот же запрос может давать разные ответы, а значит доверять ей прямое управление двигателями опасно. В OpenGrall для этого вводится гибридная схема, где роль «спинного мозга» выполняет TinyML-модель или другой жёсткий исполнительный контур на микроконтроллере.
Именно он знает физику конкретной платформы, управляет подвеской, преодолением препятствий и имеет право вето на любую команду. Если оператор или LLM говорят ехать вперёд, а дальномер видит объект ближе 10 сантиметров, команда просто не будет выполнена. Заявленное время реакции на аварийную остановку — меньше 10 миллисекунд.
Логика здесь предельно прагматичная: LLM думает, а исполняющий модуль делает и в любой момент может остановить опасное действие. Вторая сильная сторона OpenGrall — модульность. Проект разделяет «думать» и «делать» так, чтобы обе части можно было менять независимо.
В роли мозга может выступать локальная LLM, VLM или облачная модель, если нужна более сложная задача вроде многошагового плана или веб-поиска. В роли исполнителя — TinyML, VLA-модель или даже обычный жёстко прописанный алгоритм, если платформа простая. Вся система связывается через WebSocket-сервер, а устройства подключаются как обычные клиенты с ролями вроде agent, operator, lidar или esp.
Это позволяет подключать новые сенсоры без переписывания ядра и даже строить схему, где один агент работает сразу с несколькими телами: например, колёсной платформой и дроном. Для open source-проекта на слабом железе это особенно важный акцент: архитектура не завязана на один тип робота или одну конкретную модель. Ключевой инженерный блок — связка SensorMemory и WeightCalculator.
Вместо того чтобы без разбора отправлять в LLM все сырые потоки, система собирает данные асинхронно, оценивает их свежесть и доверие, а затем превращает в короткий промпт. Если лидар загрязнился или VLM ослепла на солнце, их вес снижается ещё до момента принятия решения. Если какой-то сенсор медленный, это не блокирует остальных.
В статье приводится показательный пример: облако точек лидара сворачивается в восемь секторов, а близкие объекты описываются через угол, расстояние, размер и скорость. Для LLM это уже не шум, а структурированная ситуация. Важный нюанс в том, что OpenGrall не пытается вручную прописать сложные правила слияния данных.
Арбитром выступает сама LLM, которая видит источник, возраст и вес каждого сигнала и уже на этой основе выбирает действие в JSON-формате. При этом системный промпт зашивается в модель заранее, например через Ollama, поэтому в рабочем цикле в запрос уходит только «голая» оперативная часть. По оценке автора, это сокращает промпт примерно с 450 до 150 токенов.
Отдельный фокус статьи — борьба с «тормознутостью». Во многих классических фреймворках робот ждёт самый медленный сенсор, и из-за этого быстрая телеметрия фактически простаивает. OpenGrall отказывается от такой синхронизации: лидар, VLM и одометрия пишут данные в память независимо, а агент берёт самые свежие и надёжные значения на текущий момент.
Но даже после этого LLM всё равно думает сотни миллисекунд, поэтому на стороне ESP32 добавлено инерционное движение: если новой команды ещё нет, робот не замирает столбом, а плавно продолжает последнее безопасное действие с затуханием скорости. Ещё один слой оптимизации — кэширование решений по хешу контекста. Если перед роботом снова тот же пустой коридор, система не вызывает модель заново, а берёт уже проверенное решение из кэша.
Дальше эта идея развивается в сторону привычек и рефлексов высокого уровня: успешные стратегии могут выполняться уже без LLM, а обратная связь от человека усиливает их вес. Плюс к этому проект хранит эпизодическую память инструкций человека и даже допускает автономное целеполагание, когда робот в простое сам выбирает, что исследовать, что запомнить или с кем начать диалог. Если смотреть шире, OpenGrall интересен не как ещё одна попытка «прикрутить GPT к роботу», а как попытка привести LLM-робототехнику к более взрослой архитектуре.
Здесь нет обещания магического универсального мозга, зато есть внятное разделение ответственности, работа с ограниченным железом, защита от опасных действий и путь к постепенному обучению без тотального переобучения всей системы. Для разработчиков это означает более реалистичный способ строить роботов на базе современных моделей: использовать LLM там, где она сильна, и не заставлять её делать то, для чего лучше подходит маленький, быстрый и предсказуемый исполнительный контур.