Aerial vision-language navigation · arXiv:2610.21450

X-Fly Learning to Reach and Stop in Full-Chunk Aerial Vision-Language Navigation

Ruibin Ju*Ruifeng CaiMin XuLin Wang

ARIDGE · XPENG

Executing all eight predicted controls cuts model inference from 195 to 42 ms per waypoint, but leaves the policy at decision states that expert demonstrations cover poorly. X-Fly trains in three stages: multi-domain BC, Recovery DAgger at learner-visited anchors, and Flow-GRPO on chunked control and STOP.

Schematic, not experimental data. The policy commits to eight controls (ticks) at each decision anchor (◇). Full-chunk BC drifts, crosses the goal region without stopping and flies on. Recovery training steers each chunk back toward the expert's future path and stops inside.
SR, test-seen
74.18%
Table 1, p. 6 · k = 8
SR, test-unseen
51.73%
Table 1, p. 6 · k = 8
Model inference per waypoint
195 → 42ms
§4.1, p. 5 · k = 1 → k = 8

Explainer · 57 s

The idea in under a minute

Rendered live in your browser from HTML and JavaScript, no audio. Click to pause. Every number on screen comes from the paper.

Open full screen

Closed-loop rollouts · test-unseen

Held-out SmallCity routes, eight controls per decision

Six routes from the held-out UE SmallCity split. Left: the expert's first-person view. Middle: X-Fly's own view, with the current 8-control chunk overlaid (green: executed, cyan: still to fly). Right: the expert (GT) and policy (PRED) paths from above.

Qualitative examples: successful episodes with a flown path over 30 m, rendered from a Flow-GRPO checkpoint during development, with a deterministic threshold on the smoothed stop probability. They illustrate behavior; the benchmark numbers on this page come from the paper's evaluation protocol (Table 1).

Problem · the full-chunk support gap

Eight controls between looks is cheap, and it opens a gap on two sides

Aerial agents built on large vision-language models are expensive to query. Action-chunk policies predict several future controls per query, yet agents such as DreamFly execute only the first control and query again. Executing the complete chunk amortizes policy inference across its controls: for X-Fly, model inference drops from 195 to 42 ms per executed waypoint. The aircraft then flies eight controls before new visual feedback can correct it.

The states where the policy is next queried, its decision anchors, drift away from the expert trajectories. Expert-only data cover these learner-visited anchors poorly in two ways. No expert chunk starts at an off-route learner pose and returns it to the route: the control gap. Positive STOP labels come only from expert terminal windows, not from the anchor where the learner itself first enters the success region: the termination gap. Together they form the full-chunk support gap (§3.1, p. 2).

On test-seen, switching BC from single-step to full-chunk execution drops SR from 46.57% to 16.45%, although navigation failures barely change. Reaching the goal is not the same as stopping there.

Insight

At the learner's own decision anchors, expert data are missing a chunk that steers back to the route and a label that says stop. Supply both where the learner actually is, then let same-task closed-loop outcomes decide when to stop.

Paraphrasing §1 and §3.1, pp. 1–2

Method · a staged training framework

One policy backbone, trained in three stages

Every stage trains the same modules: query banks, fusion, the flow controller and the STOP head, about 45M parameters. The Qwen3.5-4B VLM and its visual tower stay frozen throughout, and each stage starts from the previous one's policy.

  1. 1

    Multi-domain behavior cloning

    Rectified-flow controller and STOP head trained on 849,106 valid decision windows from OpenFly's UE, 3DGS and AirSim domains, for 10 epochs. STOP is supervised only at expert terminal windows.

    §3.2, p. 3 · Eq. 1 · Table 2, p. 10

  2. 2

    Recovery DAgger

    The learner flies with the deployed full-chunk executor in training scenes. Each anchor it visits gets a smooth chunk that rejoins the expert's future segment, and the first anchor inside the success region gets STOP. Three rounds, each warm-started from the previous one, mixing recovery and BC windows 1:1.

    §3.3, p. 3 · Eq. 2

  3. 3

    Flow-GRPO

    Each update runs eight closed-loop attempts on each of 48 BigCity tasks, six free and two STOP-override attempts. A KL-regularized policy gradient over the free attempts refines chunked control and Bernoulli STOP together, and the override attempts add outcome-verified stopping pairs. 3000 updates.

    §3.4, pp. 4–5 · App. A.5, p. 11

Policy backbone

Interactive redraw of Fig. 3 (p. 4); select a block to read its description (§3.2, App. A.2). Timings: §4.1, p. 5.

Stage 2 · Recovery DAgger at learner-visited anchors

A label that starts where the drone is and rejoins the route ahead

Labels must follow demonstration order. A monotonic route cursor ct advances at each collected decision by the number of controls actually executed, rather than searching forward along the reference for a match. It selects the expert pose p*ct, and the learner's offset dt from that pose decays along a smoothstep:

The target starts at the learner pose, decays with zero slope at both ends, and rejoins the future expert segment after one chunk. Yaw uses the same decaying offset, wrapped to the shortest signed angle. Recovery targets are built only during training; nothing extra runs at deployment.

In the figure, the gray learner flies full chunks and drifts off the route. Every anchor it visits gets its own label, which starts exactly at the learner and rejoins the expert route one chunk ahead; the first anchor inside the region gets STOP instead. Because the cursor only moves forward, a label never snaps to a stretch of route that has already been flown, even where the route passes near itself.

Collection runs with STOP disabled and is truncated at the first anchor inside the 20 m success region, which is labeled STOP with a hover target. Truncation also removes post-arrival anchors whose labels would point backward. Recovery thus adds STOP positives at the learner's own arrival anchors (8,404 in total), complementing the expert terminal windows used by BC.

§3.3, p. 3 · Eq. 2 · App. A.4, p. 11

Stage 3 · Flow-GRPO on chunked control and STOP

Explore in smooth modes, compare attempts on the same task

A policy-gradient update needs a likelihood, and a deterministic flow ODE has none. During training X-Fly makes the last three of six Euler steps stochastic. The noise lives in a low-frequency temporal basis, so sampled chunks stay smooth, and a small complement keeps the covariance full rank, so each transition has a closed-form log-density over the whole 8 × 4 chunk. Deployment keeps the deterministic six-step solver.

One shared advantage for control and STOP

The control term scores the stochastic denoising transitions at tail steps s ∈ {3, 4, 5}; the STOP term is the Bernoulli log-probability of the sampled STOP or CONTINUE at the training temperature 1.5. Both KL terms pull toward the frozen initial policy with β = 0.01. Free attempts often stop at similar depths, so two attempts per group override their first n ∈ {1, 2, 3} sampled STOPs and fly on. Their returns enter the group statistics, but their decisions get no policy gradient; instead they supply outcome-verified STOP pairs for a margin-ranking and BCE loss with weight 0.5. STOP is legal from the second decision, and nothing after a STOP receives credit.

§3.4, pp. 4–5 · Eqs. 3–6 · App. A.5, pp. 11–12

Evidence

Results on OpenFly test-seen and test-unseen

Protocol. DreamFly-processed OpenFly splits: test-seen has 1,392 trajectories (UE BigCity and six AirSim cities), test-unseen has 404 (held-out UE SmallCity). An episode succeeds if its final position lies within 20 m of the goal. Every X-Fly row uses one rule: STOP ~ Bernoulli(σ(ℓ)) at unit temperature, a 128-control cap, and metrics computed exactly over the first-stop distribution. Prior rows are published results with their native stopping policies, so the X-Fly-to-X-Fly comparisons are the matched ones. k is the number of controls executed per fused-policy decision. Differences are in percentage points (pp).

§4.1, p. 5 · Table 1 caption, p. 6 · App. A.6, p. 12

    Benchmark comparison

    Source: Table 1, p. 6. All 12 rows, in the paper's order. Bars start at zero.

    What each stage adds, at k = 1 and k = 8

    Matched X-Fly rows only. One policy backbone, one evaluation protocol.

    Source: Table 1, p. 6, and §4.3, pp. 5–6. Flow-GRPO is trained and evaluated at k = 8 only.

    What each stage repairs

    Each first-stop outcome is one of two success types or exactly one failure, on the same rollouts as Table 1. Shares are expectations under the first-stop distribution and sum to 100.

    Source: Table 3, p. 13, the data behind Fig. 4 (p. 7); rule in App. C. Success, no STOP: inside the region at the control budget. Early / Late: STOP outside the region before / after the first in-region anchor. No stop: reaches the region, never stops, ends outside it. Navigation: no in-region anchor even with STOP disabled.

    Flow-GRPO from recovered vs. BC initialization

    Source-validation curves, raw values every 20 updates. A different protocol from Table 1: 384 BigCity routes excluded from Flow-GRPO updates, fixed seeds, one sampled STOP rollout per route. Compare the two runs with each other, not with Table 1.

    Source: §4.4, p. 7, and the data behind Fig. 5 (p. 8). The BC-initialized run was stopped at 680 updates as its OSR and NE kept degrading. Validation points interrupted by renderer failures were evaluated from the saved checkpoints with the same panel and seeds (App. A.7, p. 12).

    Limits

    Stopping on time is the remaining bottleneck

    With STOP disabled, the final policy visits an in-region anchor in 93.41% of test-seen and 88.61% of test-unseen episodes, but converts only 74.18% and 51.73% into success. On test-unseen, dense reach exceeds anchor reach by only 0.75 points, so the remaining gap to SR lies mainly in stop timing at anchors the policy does visit.

    Flow-GRPO shifts stops later: late stops rise to 9.89% on test-seen and 15.84% on test-unseen, slightly more common than early stops on test-seen.

    Each training configuration uses one training seed, so these results do not measure training-seed variance. OpenFly does not capture real aircraft dynamics, sensing noise, or operational safety constraints; transfer to physical platforms requires separate validation.

    §5, p. 7 · §4.3, p. 6

    Team · paper · citation

    Contributors

    Advisor

    • Lin Wang

    Core Contributor

    • Ruibin Ju*

    Contributors

    • Ruifeng Cai
    • Min Xu

    ARIDGE · XPENG  ·  *Corresponding author: jurb@aridge.com

    Citation

    @article{ju2026xfly,
      title   = {X-Fly: Learning to Reach and Stop in Full-Chunk Aerial Vision-Language Navigation},
      author  = {Ju, Ruibin and Cai, Ruifeng and Xu, Min and Wang, Lin},
      journal = {arXiv preprint arXiv:2610.21450},
      year    = {2026},
      url     = {https://arxiv.org/abs/2610.21450}
    }