arXiv 2609.01404  /  NAVER Cloud

Evaluating Multimodal LLMs as Generalist
Vision-Language-Action Agents
for Drone Control

DroneCATS: Commanding, Approaching, Tracking and Searching

Drone AI Team, NAVER Cloud
*Equal contribution    †Corresponding author

Background: four simulated episodes seen from above. Blue is the drone, orange the target and its 5 m arrival radius.

Overview

A benchmark where the MLLM flies the drone

Multimodal LLMs are being asked to make decisions for drones, but most tests stay in simulation, use a single drone, and give it a target that is in view and standing still. In DroneCATS the model is the only decision maker. Targets can start out of view or move, several drones can share one instruction, and the same agent flies real drones.

Read the abstract

Multimodal large language models (MLLMs) are increasingly used to make decisions for drones, but existing evaluations are mostly limited to simulation, to a single drone, and to targets that are visible from the start and do not move. We present DroneCATS, a benchmark in which the MLLM alone controls the drone through four actions, and evaluate ten MLLMs from frontier models to small open models. The benchmark varies target visibility, target motion, scene and simulator, and extends to real drones. Beyond a single drone, it adds a multi-drone suite, where one model drives multiple drones, and a commander + sub-agents suite, where a commander model directs one sub-agent for each of the drones.

Across these settings, we find that frontier models achieve the highest success rates, but their latency causes them to lose moving targets, while small open models often do not declare arrival even when they reach the target. Guided by this failure analysis, we fine-tune a 2B model on drone action data synthesized from public RGB-D images; its success rate rises from 0% to 31% in simulation and outperforms the frontier models in real flight. With multiple drones, we find that every zero-shot model succeeds more often as the commander of one sub-agent per drone than when it drives all of them from one context, and that commanding success follows general VLM ability. On real drones, we observe that the results broadly follow those in simulation, while latency and hardware limits matter more.

The agent

Four actions, one model in charge

At every step the model gets the instruction, the current camera frame and its last five actions, and answers with one of four actions in JSON. A rule-based controller turns the action into a flight command, so nothing in the loop is tuned to a particular model. An episode counts only if the model says finished while it is near the target and can see it.

Swipe to see the whole loop →

Next frame Frame It returned point in red Prompt Pt instruction · history · the four actions MLLM Controller action → setpoint Flight stack setpoint → rotors Standard machinery nothing model-specific

One step of the loop. The MLLM gets the current frame and a prompt with the instruction and its last five actions, and replies with one action in JSON. A go reply carries a point (x, y) in the frame, drawn in red, and a distance d in metres. The controller and the flight stack turn the action into motion and are the same for every model.

The four actions
go

fly d metres toward the point (x, y)

rotate

turn by θ to look for what is not in frame

think

next reply is a plan schema

finished

declare arrival; the verifier scores it

Task axis

Is the target in view, and does it move?

Crossing these two questions gives four single-drone tasks: approach, search, track, and search + track. In every task the drone must reach the target and declare arrival. Episodes are flown in AirSim and Isaac Sim, and on a DJI Tello.

Four single-drone tasks
Approachin view, still
Trackin view, moving
Search + trackout of view, moving

Two questions set the task. Is the target in view at the start, and does it move? A target out of view must first be found; a moving target must be followed.

The four tasks in simulation

The four tasks on a real drone

Approach · Gemini 3.7 Flash
Search · Gemini 3.7 Flash
Track · Cosmos3-Edge-2B (FT)
Search + Track · Claude Opus 5

Organisational axis

Several drones on one instruction

DroneCATS goes beyond a single drone. Four drones share one instruction that none of them can finish alone. Either one MLLM drives all four from one prompt, or a commander splits the instruction into one command per drone for four single-drone sub-agents. Both structures fly the same multi-drone tasks, at three levels of difficulty.

Who decides for each drone
Single-drone One MLLM sees its own frame and returns one action per step.
Multi-drone The N frames go into one prompt; one call returns N actions and moves every drone one step.
Commander + sub-agents N+1 MLLMs. The commander turns the instruction into one command per drone; each sub-agent is the single-drone agent.

Multi-drone tasks. Both structures fly the same tasks, at three levels for the commander. Easy, license plate matching: one of four cars carries the named plate, and each drone reads one car up close. Medium, sign matching: four corridors each end in a sign, and the commander has to divide the corridors. Hard, three-sign sum: the drones read three red signs, add them, and fly into the corridor whose sign shows the sum.

Finding 1

Frontier models lead, but slow ones lose moving targets

We ran ten MLLMs, from frontier API models down to 2B open models. Gemini 3.7 Flash has the highest mean success, yet the best model changes with the task. Every frontier model recognises the target, so on moving targets the outcome comes down to how fast the next action arrives, and the quicker GPT-5 and Gemini Robotics-ER 2 come out ahead.

Success rate (%)ApproachSearchTrackSearch + TrackMeanReal drone
Gemini 3.7 Flash87.567.55547.564.445
Claude Opus 557.547.5404046.230
Gemini Robotics-ER 262.547.5705057.5–
GPT-55537.562.56555–
Qwen3.5-27B60452527.539.4–
Qwen3.5-9B32.51532.5521.210
Qwen3.5-4B12.557.506.2–
Qwen3.5-2B00000–
Cosmos3-Edge-2B000000
Cosmos3-Edge-2B (FT, ours)353527.527.531.255
best per columnours

Single drone. Simulation: 20 episodes per task, each flown twice. Real drone: mean over the four tasks, 5 episodes each, so one episode moves a real cell by 20 points.

Finding 2

Small models reach the target and fly on

Open models of 9B and below turn less than half of the episodes in which they reach the target into a success. The smallest ones keep going, pass the target and end far from it. How well a model keeps to its system prompt over a long conversation predicts this much better than how often it reaches the target.

Gemini 3.7 Flash · flies in and declares finished 2 m from the cyclist
Qwen3.5-2B · comes within 1.7 m, never declares, ends 11 m away at the cap

The same Approach episode. The readout turns green inside the 5 m arrival radius; only a finished declared there counts.

Finding 3

A fine-tuned 2B model is the best real pilot

Cosmos3-Edge-2B is the fastest model we tested, but it never declared arrival. We fine-tuned it on drone actions synthesised from public RGB-D images, with no benchmark frame in the data. Its success rate went from 0% to 31% in simulation, and on a real drone it beat both frontier models we flew.

“go to the egg”
“go to the white umbrella”
“go to the toy plane”

Finding 4

With several drones, commanding beats driving

Every zero-shot model does better as a commander, writing one order per drone for single-drone sub-agents, than when it returns all four actions itself. The replay below follows a commander through Three-sign sum, the hardest level.

Replay: Three-sign sum

Instruction Three red signs each show a number. Fly to the small blue sign at the end of the corridor whose large blue entrance sign shows the sum of the three numbers.
Key moments newest first
    ▼ ordersreports ▲

    Gemini 3.7 Flash commanding four Gemini Robotics-ER 2 sub-agents, replayed from the run's logs. Map: drone paths, red signs, entrance signs, and the goal with its 5 m radius; × is a rejected declaration, the star the accepted one.

    Same episode, same model, two structures

    Flown both ways, the commander has Drone 4 at the goal while the four drones of the single model are still near the start.

    Gemini 3.7 Flash on the same Three-sign sum episode, cut at the 300 s cap.

    Same model, two roles

    The gain holds from the strongest model to the weakest. Between commanders the gap widens with difficulty, and on Three-sign sum only Gemini 3.7 Flash and Claude Opus 5 succeed in most episodes.

    Success rate (%) over 30 episodes per model, driving all four drones itself vs. commanding four sub-agents.

    Finding 5

    Real flights follow simulation, and latency matters more

    We flew the single-drone and commander suites on DJI Tellos. The ranking of models broadly carries over. The video and command links slow every step, though, so the frontier models that tracked well in simulation lose moving targets in the real room. In simulation a step costs little more than the model call; on the Tello the link delay comes on top of it. This is why the fine-tuned 2B, at 0.6 s per call, is the one model that does better on the real drone than in simulation.

    Real drone, SR (%)ApproachSearchTrackSearch + TrackMeanSim mean
    Gemini 3.7 Flash10080004564.4
    Claude Opus 5404020203046.2
    Qwen3.5-9B400001021.2
    Cosmos3-Edge-2B000000
    Cosmos3-Edge-2B (FT, ours)606060405531.2

    100 real episodes, 5 per cell.

    Two real drones under a commander

    Two Tellos still solve Three-sign sum. Gemini 3.7 Flash, the best commander in simulation, is also the best one here.

    Drone 2 reads 20 and 35, Drone 1 reads 5 and finds the chairs, and the commander sends Drone 1 from chair 58 on to chair 60. Frames are the drones' own views, about one every two seconds; ▲ a drone reporting arrival, the star the accepted one. The map is approximate: layout from the setup sheet, paths from the go and turn commands each drone executed.

    Read the paper.

    Benchmark, agent and results in full, with the appendix.

    arXiv 2609.01404→

    Citation

    @article{park2026dronecats,
      title   = {Evaluating Multimodal LLMs as Generalist Vision-Language-Action Agents
                 for Drone Control: Commanding, Approaching, Tracking and Searching},
      author  = {Park, Jaewoo and Lee, Minyoung and Seo, Sukmin and Yim, Moonbin and
                 Yoon, Hyunwook and Ryu, Dohoon and Kim, Daehee and Song, Myungseo and
                 Byun, Jihyuk and Chang, Seunggyu and Kil, Taeho and Kim, Jiseob and
                 Lee, Bado and Kim, Geewook},
      journal = {arXiv preprint arXiv:2609.01404},
      year    = {2026}
    }