VLA-модели объединяют визуальное восприятие, понимание естественного языка и выполнение физических действий. Обычно они применяются для манипуляций — например, чтобы робот взял предмет или повернул рычаг. Но управление роботом, особенно летающим, это не всегда изменение состояния — иногда это перемещение его в трехмерном пространстве. 

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

Я Артем Лыков, ведущий RnD-разработчик в МТС Web Services. Параллельно работе — аспирант в лаборатории интеллектуальной космической робототехники Сколтеха (руководитель Дмитрий Тетерюков), где лидирую направление когнитивной робототехники. Сегодня расскажу, как в рамках научной работы вместе с коллегами по лаборатории мы обучили OpenVLA и создали CognitiveDrone — первую VLA-модель для летающих роботов. А также объясню, зачем мы внедрили модуль VLM и за счет чего он помог повысить качество решения когнитивных задач на 17,6%.

Что такое CognitiveDrone 

CognitiveDrone — первая VLA-модель для летающих роботов на основе OpenVLA, обученная в нашей лаборатории. В непредсказуемых сценариях она получает изображение от первого лица и инструкции на естественном языке, а на выходе формирует плавные команды управления. 

Система CognitiveDrone для беспилотных летательных аппаратов
Система CognitiveDrone для беспилотных летательных аппаратов

Также в систему вошли датасет с более чем 10 000 эпизодов когнитивных задач для обучения VLA, расширенная версия CognitiveDrone-R1, симуляционный бенчмарк CognitiveDroneBench, а также код и веса моделей, включая скрипты для обучения и инференса. Все это уже есть в открытом доступе.

Архитектура системы

В основе системы CognitiveDrone лежит VLA-модель для летающих роботов с семью миллиардами параметров. Она построена на базе OpenVLA и обучена на нашем датасете с более чем 8000 смоделированных эпизодов полета. Такой опыт дал ей глубокое понимание физики и возможность уверенно управлять движением гражданского беспилотника.

Модель с открытым исходным кодом OpenVLA изначально оптимизирована для точной передачи динамики полета. Она выдавала управляющие команды с частотой 10 Гц, формируя плавные и непрерывные траектории. Но при работе с когнитивными задачами — когда нужно снять двусмысленность в инструкции или выбрать правильное действие из нескольких — ее возможностей было недостаточно.

Чтобы закрыть этот пробел, мы добавили модуль рассуждений на базе визуально-языковой модели (VLM) Qwen2.5-VL. Он работает медленнее — с частотой около 2 Гц, зато берет на себя интерпретацию сложных инструкций и визуального контекста.

Так появилась расширенная версия CognitiveDrone-R1. В нее вошло два компонента по 7B параметров, а общий объем памяти вырос примерно до 20 ГБ против 10 ГБ в базовой версии. VLA стала отвечать за высокочастотный контроль полета, а VLM — за интерпретацию и смысл. Благодаря этому дрон действует стабильнее и принимает более точные решения в реальном времени.

Архитектура системы CognitiveDrone
Архитектура системы CognitiveDrone

Чтобы объективно сравнивать разные модели VLA, мы разработали собственный бенчмарк с открытым исходным кодом — CognitiveDroneBench. В его основе — связка Gazebo и ArduPilot, которая воспроизводит динамику полета и управление дроном через значения скорости. Благодаря этому симуляция соответствует поведению реальных аппаратов на прошивке ArduPilot.

Сама среда моделирования построена на Gazebo с плагином ArduPilot Gazebo и SITL ArduPilot. Ворота, метки и другие элементы задаются через файлы .sdf и модели .dae, а сами задачи — в формате JSON, где прописаны запрос, параметры, правильный ответ и характеристики ворот (размер, форма, цвет). А для динамического создания объектов мы использовали ROS c Gazebo и Python-скрипты.

В целом CognitiveDroneBench работает просто: дрон с камерой стартует в случайном положении рядом с начальной точкой, далее прокладывается траектория от старта до центра выбранных ворот, построенная на основе сплайна. 

Пока камера движется по этому маршруту, система фиксирует кадры 256×256 и действия на каждом шаге. В это время моделирование камеры осуществляется с помощью плагина Gazebo RealSense, а все данные собираются через темы ROS.

Как мы собирали данные и обучали VLA-модель 

Для обучения CognitiveDrone мы собрали датасет из 8062 непрерывных траекторий в симуляции. Каждая из них соответствовала одной из трех категорий:

  • Распознавание людей. Модель должна была найти человека по признакам из текстового запроса, а дрон — долететь до ворот, связанных с этим человеком.

  • Понимание символов. Здесь проверялись буквы, цифры, логотипы и даже изображения животных.

  • Рассуждения. В этой категории мы предлагали ИИ задачи, где нужны логические шаги. Например, нужно было найти ворота с цифрой-решением примера или выбрать ворота с логотипом напитка по инструкции «Перейдите к воротам с надписью „Сладкий напиток“».

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

В каждом эпизоде дрон формировал четырехмерные управляющие команды и летел к целевым воротам, правильный ответ был заранее известен

Датасет мы разделили на обучающую и тестовую части с равномерным распределением по категориям: первая пошла на оптимизацию параметров VLA, а вторая легла в основу CognitiveDroneBench. 

Для оценки качества обучения мы использовали несколько метрик: L1 loss показывает абсолютные ошибки прогнозирования, Action accuracy — процент правильных действий, а Train loss отражает эффективность дискретизированных токенов действия 

Само обучение шло на четырех GPU NVIDIA A100. Это дало нам возможность оптимизировать модель в больших масштабах и при этом оставить ее достаточно компактной для работы на реальном оборудовании. 

В качестве основы мы взяли архитектуру OpenVLA и доработали ее на своем наборе данных. Все эпизоды перевели в формат RLDS, чтобы единообразно управлять действиями, изображениями и инструкциями. Это позволило использовать один и тот же датасет и для имитационного обучения, и для прогнозирования действий в задачах.

Дальше мы донастроили OpenVLA-7B. Для этого применили LoRA с адаптерами ранга 32 — параметрически эффективный способ, который экономит память и дообучает только часть весов без перегрузки системы. Конфигурация включала пакет размером 64, скорость обучения 5×10⁻⁴ и 4000 шагов градиентного спуска. 

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

Тесты и результаты 

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

Во время теста в CognitiveDroneBench аппарат проходил трассу с воротами. На каждом участке он получал изображение от первого лица (FPV) и текстовую инструкцию. Дальше модели нужно было выбрать правильные ворота, решить когнитивную задачу (распознать человека, понять символ или сделать логический вывод) и сгенерировать управляющую команду.

В базовых VLA-моделях, таких как RaceVLA и первая версия CognitiveDrone, решение принималось по картинке и текстовому запросу. В расширенной версии CognitiveDrone-R1 появился промежуточный слой — VLM-модель, которая интерпретировала картинку и инструкцию, снимала двусмысленность и уже в готовом виде передавала данные в VLA.

Результат оценивался автоматически. Если дрон проходил через правильные ворота, он получал балл. Итоговый счет считался как отношение набранных баллов к максимуму — так мы сравнили когнитивные способности разных моделей в условиях, максимально близких к реальным.

Результаты тестирования для моделей RaceVLA, CognitiveDrone и CognitiveDrone-R1, разделенные по категориям «рассуждение», «распознавание человека» и «понимание символов», а также общий средний результат

Тесты на CognitiveDroneBench показали, что RaceVLA уверенно справляется с навигацией и хорошо чувствует физику полета, но на когнитивных задачах результаты низкие. В «рассуждениях» модель набрала 36,2%, в «распознавании людей» — 23,1%, в «понимании символов» — 34,6%. Среднее значение оказалось всего 31,3%. По сути, дрон летит стабильно, но выбор ворот по инструкции для него почти случаен.

CognitiveDrone показал заметно лучший результат. В «рассуждениях» модель достигла 70,7%, в «распознавании людей» — 45,2%, в «понимании символов» — 57,7%. Среднее значение составило 59,6%. Особенно хорошо виден рост в категории рассуждений: система начинает справляться с более сложными задачами.

Еще выше оказались показатели у CognitiveDrone-R1, где мы добавили модуль логического вывода VLM. В «рассуждениях» модель набрала 75,9%, в «распознавании людей» — 76,8%, в «понимании символов» — 78,9%. Среднее значение выросло до 77,2%. Это дало прибавку примерно на 6% в логике, на 31% в распознавании и на 21% в символах. В среднем улучшение составило 17,6% по сравнению с базовой версией.

В итоге RaceVLA остается сильной для чистой навигации, но ей не хватает когнитивного слоя. CognitiveDrone и особенно CognitiveDrone-R1 показали устойчивые результаты во всех категориях и подтвердили, что беспилотнику нужна не только навигация, но и способность принимать решения прямо в полете. Как сказал бы мистер Спок, «логика — это начало мудрости, а не ее конец».

Все наши разработки — это шаг к тому, чтобы автономные системы вели себя надежнее в реальных условиях, где заранее предсказать сценарий невозможно. Также вы можете прочитать про CognitiveOS — ОС с модульной архитектурой для интеграции LLM в роботов. 

Полный текст научной статьи можно найти на arxiv.org. Датасет с более чем 10 000 эпизодов когнитивных задач для обучения VLA, а также описания CognitiveDrone, CognitiveDrone-R1 и симуляционного бенчмарка CognitiveDroneBench мы уже разместили на huggingface и GitHub.

Комментарии (1)


  1. LinkToOS
    09.12.2025 09:14

    Вопрос не технический, но - есть ли смысл применять характеристику "Когнитивные" к роботам? Для них уже применяется характеристика Интеллектуальные. И само название научной дисциплины - "Когнитивная робототехника" - тоже несколько странное. Робототехника - верхний уровень. Интеллектуальные системы - подуровень. "Когнитивные дроны" - это интеллектуальные робототехнические системы. Распознавание, самообучение, адаптивные алгоритмы - это свойства интеллектуальных систем.
    "CognitiveDrone" - очень хорошее название для проекта или линейки продуктов. Но не для названия категории роботов.