Abstract
Navigation for humanoid robots is critical, yet large-scale evaluation on physical hardware is often impractical due to cost and safety concerns, making simulation benchmarks essential. Existing VLN benchmarks achieve physically executable navigation, but still assume (1) all hazards are observable from elevation maps; (2) realized motions closely match desired motions. In real environments, however, fallen bottles may be ambiguous in elevation maps, while phones and water spills may be difficult to differentiate; hazard avoidance by the locomotion policy can cause the robot’s actual trajectory to deviate from the path intended by the VLN policy. Such command-execution mismatch can accumulate and lead the robot toward unintended locations. To expose these failure modes, we introduce a benchmark that models both elevation-subtle hazards and execution deviations, together with a closed-loop VLN + locomotion control framework that continuously realigns high-level navigation with the robot’s actual state. We evaluate navigation in simulation and further validate the locomotion policy on a physical Unitree G1 humanoid robot. Results show that semantic input reduces contact with hazards poorly represented in elevation maps, while anti-deviation improves navigation success. These findings highlight the need to evaluate humanoid navigation jointly in terms of route completion and hazard avoidance.
What the elevation map cannot see
Legged robots usually read the ground through an elevation map built from depth or LiDAR. It is very good at boxes. It is much worse at a fallen bottle, and it cannot represent a phone or a water or oil stain at all, although stepping on any of them can end a walk. We group the hazards in our benchmark by how they appear in an elevation map:
| Elevation visibility | Hazard | Height (m) | Footprint (m) |
|---|---|---|---|
| Visible | Crate | 0.06–0.24 | 0.25–0.50 × 0.30–0.60 |
| Visible | Box | 0.05–0.18 | 0.15–0.35 × 0.15–0.35 |
| Ambiguous | Fallen bottle | 0.071 | 0.24 × 0.071 |
| Invisible | Phone | 0.014 | 0.163 × 0.079 |
| Invisible | Water / oil stain | 0 | 0.10–0.45 × 0.09–0.40 |
One scene, three layers
Drag the divider. The left side is the scene’s texture; the right side is either the same surface coloured by height, or the elevation map a robot would get. In the real scene the surface is a handheld scan and the map comes from FAST-LIO2 with elevation mapping on the robot (5 cm cells). In the simulated scene the surface is the simulator’s own, and the map is synthesized with a LiDAR noise model fitted on the real map: a 6.2 cm lateral blur fitted on the real box edge, and 5.6 mm of floor noise. Fitted on nothing else, the model predicts the real bottle at 3.3 cm (measured 3.7 cm) and the phone at 0.6 cm (measured 0.5 cm).
Height across each hazard
Height profiles through one object of each kind in the real scene, scan against map. The box survives almost intact, at 15.1 cm in the scan and 14.8 cm in the map. The fallen bottle loses about half its height, dropping from 6.8 cm to 3.7 cm. The phone (1.0 cm in the scan) and the spill both sit inside the map’s own floor noise. A policy that sees only geometry gets no signal from either of them. Hover a panel to read off both heights.
The same comparison as a camera move, in the real scene and in simulation:
Method
The locomotion policy keeps the network of an attention-based map-encoding (AME) policy that already traverses challenging terrain, and adds an independent semantic branch next to its elevation branch. The elevation branch encodes the shape of the terrain. The semantic branch adds a steppability prior that marks safe support and hazardous regions. Training has three stages:
- Semantic teacher. Starting from the pretrained AME policy, PPO on challenging terrain with visible, ambiguous and invisible hazards added. The teacher sees ground-truth elevation and semantic maps and is trained with two foot-placement rewards, described below.
- Robust teacher. PPO continues with curriculum randomisation of dynamics, payload, proprioceptive noise, pushes and external forces.
- Deployable student. DAgger distils the teacher into a student that sees only a waist-mounted D435. Depth feeds the elevation branch. RGB, together with features from a frozen DINOv2-S backbone, feeds the semantic branch. On hardware, stereo depth from Fast-FoundationStereo replaces raw depth.
Rewards for stepping over hazards
Two terms shape how a foot crosses a hazard: a clearance reward while the swing foot moves over it, and a penalty for lowering the foot before it has passed. Both are active only for a swing foot whose sole footprint overlaps a hazard, and are exactly zero elsewhere, so the nominal gait is untouched.
With the clearance of foot above the top of the hazard beneath it, the overlap indicator and the swing gate (active only while the robot is commanded to move):
The horizontal-speed gate keeps a stationary raised foot from collecting clearance reward. The penalty grows as a descending foot nears the hazard; contact itself ends the episode.
What the student looks at
The salient regions are the walkable stake tops in the depth branch and the spills in the RGB branch. The policy attends to the terrain and the hazards around its feet rather than to its own legs.
Anti-deviation: closing the loop with navigation
Avoiding a hazard takes sidesteps, shorter steps or turns, and those leave the robot somewhere the VLN policy did not plan for. Executed open-loop, each waypoint becomes a constant velocity command, the deviation carries into the next VLN decision, and the error accumulates. Anti-deviation anchors the target pose at decision time, , estimates the current pose from the same monocular RGB stream (LingBot-Map in simulation), and maps the residual to a compensatory command:
The compensatory command takes the slot of the velocity command. The locomotion policy keeps its inputs and action interface unchanged.
Real-robot locomotion
The same student policy runs on a Unitree G1 with a waist-mounted D435. The course mixes boxes, fallen bottles, phones and water spills. The baselines are Elevation-only, a student distilled from the same teacher with the same schedule, depth camera and perturbations but without the semantic branch, and Sonic, a blind whole-body controller driven by a human expert with a joystick.
Boxes and bottles, and the phones and spills that an elevation map cannot see.
Three floor surfaces
Dark plastic flooring, very slippery.
Light-brown wooden boards, rough and narrow.
Light-grey waterproof plastic sheet, slippery and narrow.
Five trials per method and surface. A trial is a clean success only if it finishes without a fall, without leaving the corridor and without touching any obstacle or hazard. Contacts are counted but do not stop the trial. All numbers are percentages of trials.
| Surface | Method | Clean SR ↑ | Out of corridor ↓ | HCR visible ↓ | HCR ambiguous ↓ | HCR invisible ↓ |
|---|---|---|---|---|---|---|
| Plastic flooring | Elevation-only | 0 | 20 | 20 | 80 | 100 |
| Sonic | 20 | 80 | 0 | 40 | 40 | |
| Ours | 40 | 20 | 0 | 20 | 20 | |
| Wooden boards | Elevation-only | 0 | 0 | 20 | 80 | 100 |
| Sonic | 0 | 100 | 0 | 20 | 20 | |
| Ours | 60 | 40 | 0 | 0 | 20 | |
| Waterproof sheet | Elevation-only | 0 | 20 | 0 | 20 | 100 |
| Sonic | 0 | 100 | 0 | 20 | 20 | |
| Ours | 60 | 20 | 0 | 20 | 0 |
Elevation-only touches an invisible hazard in every trial on every surface. Even with an expert giving the velocity commands, Sonic leaves the corridor in 80–100% of trials:
With no perception on the robot, the human expert finds no safe line through the hazards and has to leave the corridor.
Disturbances
| Condition | Clean SR ↑ (%) |
|---|---|
| No disturbance | 60 |
| Flashlight (2000 lm) | 40 |
| Added payload (1 kg) | 40 |
| Pool-noodle strikes | 60 |
Locomotion in simulation
The simulated benchmark covers procedurally generated corridors in four terrain groups (uneven ground, stairs, stakes and stonebridge), each at three difficulty levels, with the six hazard types placed along the way. On top of that come perturbations to dynamics, payload, pushes, sensing, lighting, surface colour, camera pose and camera timing, all scaled together; at scale 1.0 the robot is, for example, pushed at up to 0.8 m/s every 3–7 s and carries up to ±2 kg of extra mass. All clips below are at the hardest level, L3.
Same layout, two policies
Hazard layouts are drawn from a seed that does not depend on the policy, so both policies walk exactly the same ground. On the left, Ours with its RGB and depth inputs; on the right, Elevation-only with its depth input. Over one continuous run the floor is re-textured live, switching between textures from the training pool.
Both policies cross the bottle and the box. At the oil spill, Ours passes 14 cm clear; Elevation-only, whose depth input does not show the spill, steps on it.
Both policies step over a box. At the phone, Ours steps over it and Elevation-only steps on it.
Terrains and disturbances
With every perturbation at 1.5× its nominal scale (shoves up to 1.2 m/s, ±3 kg payload, friction, motor strength, lighting and sensor noise), with slow motion around the first shove:
Success across difficulty and perturbation
Success means finishing the corridor without leaving it, without falling and without touching any obstacle or hazard. Progress is the fraction of the distance covered before an episode ends. In clean conditions, Ours raises success over Elevation-only by 23.6, 28.5 and 25.8 points on L1, L2 and L3. The gap narrows under the strongest perturbation: at L3 and 1.5×, Ours still covers 56.7% of the distance but completes only 22.7% of episodes. Hover a column for its value; whiskers are ± one standard deviation over five seeds.
Table view (success rate / progress / velocity-tracking error)
| Method | Level | Clean | Perturbation 0.5× | Perturbation 1.0× | Perturbation 1.5× |
|---|---|---|---|---|---|
| Ours | L1 | 71.5 / 87.0 / 0.140 | 70.4 / 85.9 / 0.145 | 61.2 / 80.2 / 0.166 | 46.9 / 72.0 / 0.201 |
| L2 | 61.2 / 79.4 / 0.145 | 54.2 / 76.5 / 0.157 | 44.6 / 70.0 / 0.177 | 27.1 / 60.5 / 0.214 | |
| L3 | 51.0 / 74.7 / 0.157 | 47.1 / 72.1 / 0.166 | 33.3 / 64.1 / 0.185 | 22.7 / 56.7 / 0.220 | |
| Elevation-only | L1 | 47.9 / 77.7 / 0.137 | 49.2 / 77.4 / 0.144 | 40.6 / 72.4 / 0.167 | 31.5 / 65.2 / 0.203 |
| L2 | 32.7 / 68.7 / 0.155 | 27.5 / 66.5 / 0.159 | 20.4 / 59.6 / 0.182 | 17.1 / 54.9 / 0.219 | |
| L3 | 25.2 / 62.8 / 0.168 | 18.8 / 60.2 / 0.174 | 16.0 / 54.8 / 0.199 | 9.0 / 49.7 / 0.231 | |
| Oracle (GT maps) | L1 | 99.0 / 99.7 / 0.103 | 100.0 / 100.0 / 0.105 | 98.8 / 99.5 / 0.116 | 91.0 / 97.3 / 0.144 |
| L2 | 95.6 / 98.2 / 0.108 | 96.5 / 98.1 / 0.111 | 93.3 / 97.3 / 0.127 | 86.2 / 94.6 / 0.149 | |
| L3 | 95.0 / 98.1 / 0.113 | 91.2 / 96.7 / 0.117 | 86.2 / 95.0 / 0.132 | 79.8 / 93.0 / 0.156 |
Where the semantic branch helps
On uneven ground, Ours succeeds in 50.6% of clean episodes against 9.4% for Elevation-only. The improvement comes from hazards the elevation map cannot show. ”% closed” below each group is the fraction of the Elevation-only → Oracle gap in hazard contact that Ours closes, . It is 74–100% for elevation-invisible hazards, 51–61% for ambiguous ones and only 12–24% for visible ones.
Table view (success rate, hazard contact by visibility, fall rate)
| Condition | Method | SR ↑ | HCR visible ↓ | HCR ambiguous ↓ | HCR invisible ↓ | FR ↓ |
|---|---|---|---|---|---|---|
| Clean | Ours | 50.6 ± 5.6 | 24.7 ± 6.5 | 17.2 ± 5.8 | 6.1 ± 4.7 | 1.4 ± 1.2 |
| Elevation-only | 9.4 ± 2.4 | 27.8 ± 7.7 | 41.4 ± 13.2 | 21.1 ± 11.6 | 0.3 ± 0.6 | |
| Oracle (GT maps) | 93.6 ± 3.0 | 2.2 ± 3.1 | 1.7 ± 2.7 | 1.9 ± 2.1 | 0.6 ± 0.7 | |
| Perturbation 0.5× | Ours | 52.8 ± 6.0 | 23.1 ± 3.4 | 16.4 ± 5.9 | 7.2 ± 1.8 | 0.6 ± 0.7 |
| Elevation-only | 12.5 ± 2.9 | 29.4 ± 9.6 | 37.2 ± 7.6 | 20.3 ± 5.5 | 0.6 ± 0.7 | |
| Oracle (GT maps) | 92.2 ± 3.4 | 2.5 ± 3.1 | 0.8 ± 0.7 | 4.4 ± 2.0 | 0.0 ± 0.0 | |
| Perturbation 1.0× | Ours | 44.2 ± 4.4 | 26.1 ± 2.7 | 16.7 ± 4.1 | 8.9 ± 3.1 | 3.6 ± 2.3 |
| Elevation-only | 9.7 ± 2.8 | 33.3 ± 7.6 | 38.9 ± 8.0 | 17.5 ± 4.7 | 0.6 ± 0.7 | |
| Oracle (GT maps) | 86.9 ± 3.0 | 3.6 ± 4.0 | 2.2 ± 1.1 | 5.8 ± 2.2 | 0.8 ± 1.1 | |
| Perturbation 1.5× | Ours | 28.1 ± 5.7 | 31.9 ± 5.6 | 20.0 ± 5.9 | 6.7 ± 1.6 | 11.9 ± 2.7 |
| Elevation-only | 6.7 ± 2.2 | 38.6 ± 9.2 | 36.4 ± 9.4 | 15.0 ± 3.4 | 3.1 ± 1.4 | |
| Oracle (GT maps) | 72.8 ± 6.1 | 8.6 ± 4.8 | 4.4 ± 2.4 | 6.7 ± 3.7 | 5.8 ± 2.7 |
Navigation with anti-deviation
Navigation is evaluated in simulation, on the training and unseen validation splits of NaVILA’s VLN-CE-Isaac. Obstacles are added by script: 40% of them on the reference path and the rest within 1 m of it, so the robot has to avoid hazards both on the intended route and on any detour around them. The clips compare the same route and instruction, with and without anti-deviation; the green dashed line is the route the VLN waypoints intend.
Without anti-deviation, the robot steps over the last spill, drifts and swings into the wall. With it, the robot stays on the line through the doorway.
Both robots leave the route while avoiding hazards. Anti-deviation steers its robot back; the open-loop robot keeps drifting and collides.
Anti-deviation doubles safe success, raises success from 19.5% to 29.8% and cuts the collision rate by about two thirds. Average progress is slightly lower with it. Without execution feedback, a robot can still move roughly toward the goal while never reaching it.
| Method | Safe SR ↑ | SR ↑ | SPL ↑ | Collision ↓ | Hazard intrusion ↓ | FR ↓ | Avg. progress ↑ | Final goal dist. (m) ↓ |
|---|---|---|---|---|---|---|---|---|
| Ours | 23.68% | 29.80% | 0.256 | 12.26% | 12.81% | 10.86% | 43.20% | 5.38 |
| Ours w/o anti-deviation | 11.98% | 19.50% | 0.169 | 35.93% | 18.38% | 8.64% | 46.12% | 5.16 |
Removing the semantic branch instead (keeping anti-deviation) lowers safe success in all four settings, by 3.3 to 12.3 points, and raises hazard intrusion by 8.6 to 11.2 points and the fall rate by 8.6 to 9.8 points:
| Obstacles | Perturbation | Method | Safe SR ↑ | SR ↑ | Collision ↓ | Hazard intrusion ↓ | FR ↓ |
|---|---|---|---|---|---|---|---|
| 5 | 0.5× | Ours | 35.38% | 40.95% | 15.04% | 11.98% | 16.16% |
| 5 | 0.5× | Elevation-only | 23.12% | 30.08% | 22.84% | 20.61% | 25.07% |
| 5 | 1.0× | Ours | 23.68% | 29.80% | 12.26% | 12.81% | 10.86% |
| 5 | 1.0× | Elevation-only | 17.27% | 23.96% | 20.89% | 22.84% | 19.50% |
| 10 | 0.5× | Ours | 17.55% | 24.23% | 20.89% | 18.11% | 11.98% |
| 10 | 0.5× | Elevation-only | 13.65% | 21.17% | 29.25% | 27.86% | 21.73% |
| 10 | 1.0× | Ours | 13.09% | 20.06% | 32.59% | 22.28% | 14.21% |
| 10 | 1.0× | Elevation-only | 9.75% | 16.16% | 33.43% | 33.43% | 23.68% |
Limitations
- The gap to the teacher remains. On clean uneven ground, Ours succeeds in 50.6% of episodes against the ground-truth-map Oracle’s 93.6%. Its contact rate on visible hazards is 24.7% against 2.2%, so handling ambiguous and invisible hazards alone does not make a route reliable. Because the two differ in both observations and training role, these results do not separate perception error from distillation or control limits.
- Falls under strong perturbation. At 1.5× perturbation the fall rate of Ours rises to 11.9%, against 5.8% for the Oracle and 3.1% for Elevation-only, possibly because the camera is sensitive to lighting changes.
- Memory and hardware. The waist camera sees only what is in front of the feet. Persistent semantic mapping could keep hazards that have left the field of view. The navigation framework has so far been validated only in simulation.
BibTeX
@article{yao2026elevation, title = {What the Elevation Map Cannot See: Semantic-Aware Locomotion and Execution-Aware Navigation for Humanoid Robot}, author = {Yao, Shunyu and Liu, Songyang and Chen, Dinghao and Lei, Yuanyuan and Li, Shuai}, journal = {arXiv preprint arXiv:2610.07396}, year = {2026}}
