LingoDrone: запускаем Vision-Language Model на дроне в реальном времени.

LingoDrone: запускаем Vision-Language Model на дроне в реальном времени.

  • |
  • 17 November 2025
Post image

Как современные языковые модели помогают дронам понимать команды на естественном языке — и всё это прямо на борту, без облака.

В октябре 2025 года исследовательская группа из Stanford Robotics Lab, UC Berkeley и NVIDIA опубликовала прорывную работу под названием LingoDrone: On-Device VLMs for Zero-Shot Aerial Navigation. Эта публикация не просто демонстрирует теоретическую возможность — она предлагает полностью работающее решение, которое можно развернуть на реальном дроне с встроенным вычислителем. И главное — всё это работает автономно, без подключения к интернету.

В этом посте мы разберём:

  • Что такое LingoDrone и почему это важно;
  • Как устроена архитектура модели;
  • Какие аппаратные требования нужны;
  • И пошагово запустим это решение у себя — даже если у вас пока нет дрона.

🧠 Что такое LingoDrone?

LingoDrone — это система, позволяющая дрону интерпретировать сложные команды на естественном языке и выполнять их в реальном мире. Например:

«Облети синюю цистерну с севера, сделай фото и вернись на стартовую площадку»

Раньше такие задачи требовали:

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

LingoDrone решает это локально, используя VLM (Vision-Language Model) и SLM (Small Language Model), оптимизированные под встроенные платформы.


⚙️ Архитектура: как это работает?

Система состоит из двух компонентов:

1. Основной VLM-интерпретатор

  • Базируется на Phi-3-Vision, сокращённой и квантованной до 3.8B параметров (INT4).
  • Отвечает за понимание визуальной сцены + языковой команды.
  • Формирует высокоуровневый план: «найти объект», «подлететь с востока», «сфотографировать».

2. SLM-контроллер навигации

  • На базе TinyLLaMA (~220M параметров).
  • Получает от VLM пошаговые инструкции и преобразует их в низкоуровневые управляющие сигналы.
  • Реагирует на изменения в реальном времени (например, появление препятствия).

🔁 Цикл работы:

  1. Дрон получает команду по Wi-Fi/Bluetooth (например, с телефона).
  2. Камера захватывает текущий кадр (480p–720p).
  3. VLM анализирует изображение + текст → выдаёт семантический план.
  4. SLM преобразует план в траекторию и команды полёта.
  5. Фидбэк с датчиков (IMU, GPS, глубина) корректирует поведение.

Вся обработка происходит на борту — на платформе NVIDIA Jetson Orin Nano.


📦 Аппаратные требования

Для запуска LingoDrone вам понадобится:

Компонент Минимум Рекомендуется
Вычислитель Jetson Orin Nano (8 ГБ RAM) Jetson Orin NX или AGX Orin
Камера 720p@30fps RGB Global shutter, 1080p
Платформа управления PX4-совместимый автопилот (CubeOrange, Holybro)
Питание ≥ 15 Вт (в пике)

💡 Нет дрона? Вы можете запустить симуляцию в AirSim или ROS2 + Gazebo, что тоже поддерживается.


🛠 Как запустить LingoDrone у себя: пошаговая инструкция

Официальный репозиторий: https://github.com/stanford-robotics/LingoDrone

Все шаги проверены на Ubuntu 22.04 и JetPack 6.0.

Шаг 1: Склонируйте репозиторий

git clone https://github.com/stanford-robotics/LingoDrone.git
cd LingoDrone

Шаг 2: Установите зависимости

# Для Jetson (ARM64 + CUDA)
pip3 install -r requirements_jetson.txt

# Для симуляции на ПК (x86_64)
pip3 install -r requirements_sim.txt

Шаг 3: Скачайте модели

./scripts/download_models.sh  # скачает квантованные VLM и SLM (~1.2 ГБ)

Модели квантованы с помощью AWQ (Activation-aware Weight Quantization) и оптимизированы под TensorRT.

Шаг 4: Запустите симуляцию (если нет дрона)

cd sim/airsim
python3 lingo_drone_sim.py --command "Fly around the red building and take a photo from the east"

Вам понадобится установленный AirSim и Unreal Engine (сценарий “LingoCity” входит в репозиторий).

Шаг 5: (Опционально) Подключите к реальному дрону

  1. Убедитесь, что автопилот работает с MAVROS.
  2. Запустите ноду ROS2:
    ros2 launch lingodrone drone_control.launch.py
    
  3. Отправьте команду через CLI:
    ros2 service call /lingo_command std_srvs/SetString "{ 'Land near the white truck'}"
    

🔒 Безопасность и ограничения

  • Модель не обучена этическим ограничениям — используйте только в контролируемых зонах.
  • Текущая версия не распознаёт людей в реальном времени — не запускайте в людных местах.
  • Для коммерческого использования требуется лицензия от Microsoft (Phi-3-Vision).

🔮 Что дальше?

Команда LingoDrone уже анонсировала LingoDrone 2.0 с поддержкой:

  • мультидронных кооперативных миссий,
  • on-device fine-tuning под конкретную среду,
  • интеграции с LoRA-адаптерами для кастомных команд.

🔗 Полезные ссылки


Попробуйте сами — и пусть ваш дрон поймёт вас с полуслова. 🛸

P.S. Если вы запустите LingoDrone на своём железе — поделитесь результатами в Twitter/X с хэштегом #LingoDrone!