What the Elevation Map Cannot See

Semantic-Aware Locomotion and Execution-Aware Navigation for Humanoid Robot

Shunyu Yao 1
Songyang Liu 1
Dinghao Chen 2
Yuanyuan Lei 3
Shuai Li 1
1ESSIE, University of Florida 2Independent researcher 3CISE, University of Florida
Paper arXiv Code (coming soon)
Real robot
Our policy on a Unitree G1 steps over boxes, bottles, phones and spills.
What the map misses
A LiDAR elevation map keeps the boxes, but the phones and spills disappear from it.
Elevation-only
The same policy without the semantic branch steps on them.
Simulation
The same policy crosses randomized hazard layouts at the hardest difficulty level.
Simulated terrain
A stonebridge at the hardest level. Stairs and stakes are in the benchmark too, all strewn with hazards.
Navigation
After a detour around a hazard, anti-deviation steers the robot back onto its route.

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.

A Unitree G1 walking through boxes, fallen bottles, phones and water spills, next to the robot's RGB view and its elevation map
Hazard visibility and real-world locomotion. (a) Every obstacle and hazard is visible in the RGB image. (b) In the map reconstructed with FAST-LIO2, the box is clearly visible, the fallen bottle is hard to tell from noise on the ground, and the phone and water spill do not show at all. (c)–(e) Our locomotion policy on three floor types.

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 visibilityHazardHeight (m)Footprint (m)
VisibleCrate0.06–0.240.25–0.50 × 0.30–0.60
VisibleBox0.05–0.180.15–0.35 × 0.15–0.35
AmbiguousFallen bottle0.0710.24 × 0.071
InvisiblePhone0.0140.163 × 0.079
InvisibleWater / oil stain00.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).

Scene
Right side
Real scene: RGB texture
Real scene: LiDAR elevation map
RGB — what the camera seesLiDAR elevation map
box — visible fallen bottle — ambiguous phone, spill — invisibleheight 025 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.

Handheld scan (ground truth) LiDAR elevation map map floor noise (±1.16 cm, 2σ) object footprint
boxpeak 15.1 / 14.8 cm
051015-30-1501530across the object (cm)
fallen bottle (7 cm)peak 6.8 / 3.7 cm
02468-30-1501530across the object (cm)
phone (1.4 cm)peak 1.0 / 0.5 cm
-2-10123-30-1501530across the object (cm)
spill (0 cm)peak 1.0 / 0.9 cm
-2-10123-30-1501530across the object (cm)

The same comparison as a camera move, in the real scene and in simulation:

Method

Method overview: a semantic teacher trained on ground-truth elevation and semantic maps, distilled into an RGB-D student; a VLN module whose waypoints are corrected by anti-deviation
(a) A semantic-aware teacher learns locomotion from ground-truth elevation and semantic maps. (b) DAgger distils the teacher into an RGB-D student with an elevation branch and a semantic branch. (c) A high-level VLN module (from NaVILA) produces relative target poses; the anti-deviation module tracks them with localization feedback.

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:

  1. 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.
  2. Robust teacher. PPO continues with curriculum randomisation of dynamics, payload, proprioceptive noise, pushes and external forces.
  3. 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.
Training curriculum: warm start on challenging terrain, fine-tune with hazards and randomisation, distillation to a waist-camera student
Training curriculum. An elevation-based policy is the warm start for learning hazard avoidance from ground-truth elevation and semantic maps. The teacher is then fine-tuned under domain randomisation and external disturbances. Finally, teacher–student distillation transfers the skill to a policy that uses only the waist-mounted RGB-D camera.

Rewards for stepping over hazards

Step-over clearance reward and premature-descent penalty on a swing foot above a spill
Top: the clearance reward for a swing foot moving horizontally over a hazard. Bottom: the penalty for lowering it while it still overlaps the hazard.

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 di=zi−(hi+ϵ)d_i = z_i - (h_i + \epsilon) the clearance of foot ii above the top of the hazard beneath it, HiH_i the overlap indicator and gig_i the swing gate (active only while the robot is commanded to move):

rover=1Nf∑igiHitanh⁡ ⁣(k∥vi,xy∥)[diδ]01r_{\text{over}} = \frac{1}{N_f}\sum_{i} g_i H_i \tanh\!\big(k\lVert\mathbf{v}_{i,xy}\rVert\big)\Big[\tfrac{d_i}{\delta}\Big]_0^1 pdesc=1Nf∑igiHi 1[di>0][1−diD]01tanh⁡ ⁣(max⁡(−vi,z, 0)vs)p_{\text{desc}} = \frac{1}{N_f}\sum_{i} g_i H_i\, \mathbb{1}[d_i>0]\Big[1-\tfrac{d_i}{D}\Big]_0^1 \tanh\!\Big(\tfrac{\max(-v_{i,z},\,0)}{v_s}\Big)

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

Grad-CAM of right-leg actions on the student's depth and RGB inputs
Grad-CAM for right-leg actions. (a) Depth while crossing stakes; (b) its Grad-CAM. (c) RGB while stepping over semantic hazards; (d) its Grad-CAM.

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

The robot detours around hazards (green), drifting from the VLN-commanded direction (red); anti-deviation steers it back (blue)
Command–execution mismatch. With no safe foothold along the commanded direction (red), the robot detours (green); anti-deviation steers it back toward the intended target pose (blue).

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 wtw_t 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, pttar=pt⊕wtp_t^{\text{tar}} = p_t \oplus w_t, estimates the current pose p^t\hat p_t from the same monocular RGB stream (LingBot-Map in simulation), and maps the residual to a compensatory command:

dt=pttar−p^t,ctcomp=κad(dt)d_t = p_t^{\text{tar}} - \hat p_t, \qquad c_t^{\text{comp}} = \kappa_{\text{ad}}(d_t)

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.

Ours on the Unitree G1 insets: the waist D435's RGB and depth

Boxes and bottles, and the phones and spills that an elevation map cannot see.

Three floor surfaces

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.

SurfaceMethodClean SR ↑Out of corridor ↓HCR visible ↓HCR ambiguous ↓HCR invisible ↓
Plastic flooringElevation-only0202080100
Sonic208004040
Ours402002020
Wooden boardsElevation-only002080100
Sonic010002020
Ours60400020
Waterproof sheetElevation-only020020100
Sonic010002020
Ours60200200

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:

Sonic, blind whole-body controller 5× speed

With no perception on the robot, the human expert finds no safe line through the hazards and has to leave the corridor.

Disturbances

2000 lm flashlight
A flashlight shines on the floor ahead.
1 kg payload
The robot walks with an added 1 kg payload.
Pool-noodle strikes
The robot is struck with a pool noodle while walking.
ConditionClean SR ↑ (%)
No disturbance60
Flashlight (2000 lm)40
Added payload (1 kg)40
Pool-noodle strikes60

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.

Test environments: navigation scenes, simulated locomotion terrains and real-world payload, push and lighting conditions
Testing environments. (a) Navigation in simulation. (b) Locomotion in simulation. (c) Real-world tests with external payload, pushes and lighting.

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.

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:

Uneven ground with hazards perturbation 1.5×
Stonebridge perturbation 1.5×

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.

Metric
OursElevation-onlyOracle (GT maps)
Clean
025507510071.5L161.2L251.0L3
Perturbation 0.5×
025507510070.4L154.2L247.1L3
Perturbation 1.0×
025507510061.2L144.6L233.3L3
Perturbation 1.5×
025507510046.9L127.1L222.7L3
Table view (success rate / progress / velocity-tracking error)
MethodLevelCleanPerturbation 0.5×Perturbation 1.0×Perturbation 1.5×
OursL171.5 / 87.0 / 0.14070.4 / 85.9 / 0.14561.2 / 80.2 / 0.16646.9 / 72.0 / 0.201
L261.2 / 79.4 / 0.14554.2 / 76.5 / 0.15744.6 / 70.0 / 0.17727.1 / 60.5 / 0.214
L351.0 / 74.7 / 0.15747.1 / 72.1 / 0.16633.3 / 64.1 / 0.18522.7 / 56.7 / 0.220
Elevation-onlyL147.9 / 77.7 / 0.13749.2 / 77.4 / 0.14440.6 / 72.4 / 0.16731.5 / 65.2 / 0.203
L232.7 / 68.7 / 0.15527.5 / 66.5 / 0.15920.4 / 59.6 / 0.18217.1 / 54.9 / 0.219
L325.2 / 62.8 / 0.16818.8 / 60.2 / 0.17416.0 / 54.8 / 0.1999.0 / 49.7 / 0.231
Oracle (GT maps)L199.0 / 99.7 / 0.103100.0 / 100.0 / 0.10598.8 / 99.5 / 0.11691.0 / 97.3 / 0.144
L295.6 / 98.2 / 0.10896.5 / 98.1 / 0.11193.3 / 97.3 / 0.12786.2 / 94.6 / 0.149
L395.0 / 98.1 / 0.11391.2 / 96.7 / 0.11786.2 / 95.0 / 0.13279.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, (HCRelev−HCRours)/(HCRelev−HCRoracle)(\mathrm{HCR}_{\text{elev}}-\mathrm{HCR}_{\text{ours}})/(\mathrm{HCR}_{\text{elev}}-\mathrm{HCR}_{\text{oracle}}). It is 74–100% for elevation-invisible hazards, 51–61% for ambiguous ones and only 12–24% for visible ones.

Hazard contact rate on uneven ground (%, lower is better)
OursElevation-onlyOracle (GT maps)
Clean
01020304050Visible12% closedAmbiguous61% closedInvisible78% closed
Perturbation 0.5×
01020304050Visible23% closedAmbiguous57% closedInvisible82% closed
Perturbation 1.0×
01020304050Visible24% closedAmbiguous60% closedInvisible74% closed
Perturbation 1.5×
01020304050Visible22% closedAmbiguous51% closedInvisible100% closed
Table view (success rate, hazard contact by visibility, fall rate)
ConditionMethodSR ↑HCR visible ↓HCR ambiguous ↓HCR invisible ↓FR ↓
CleanOurs50.6 ± 5.624.7 ± 6.517.2 ± 5.86.1 ± 4.71.4 ± 1.2
Elevation-only9.4 ± 2.427.8 ± 7.741.4 ± 13.221.1 ± 11.60.3 ± 0.6
Oracle (GT maps)93.6 ± 3.02.2 ± 3.11.7 ± 2.71.9 ± 2.10.6 ± 0.7
Perturbation 0.5×Ours52.8 ± 6.023.1 ± 3.416.4 ± 5.97.2 ± 1.80.6 ± 0.7
Elevation-only12.5 ± 2.929.4 ± 9.637.2 ± 7.620.3 ± 5.50.6 ± 0.7
Oracle (GT maps)92.2 ± 3.42.5 ± 3.10.8 ± 0.74.4 ± 2.00.0 ± 0.0
Perturbation 1.0×Ours44.2 ± 4.426.1 ± 2.716.7 ± 4.18.9 ± 3.13.6 ± 2.3
Elevation-only9.7 ± 2.833.3 ± 7.638.9 ± 8.017.5 ± 4.70.6 ± 0.7
Oracle (GT maps)86.9 ± 3.03.6 ± 4.02.2 ± 1.15.8 ± 2.20.8 ± 1.1
Perturbation 1.5×Ours28.1 ± 5.731.9 ± 5.620.0 ± 5.96.7 ± 1.611.9 ± 2.7
Elevation-only6.7 ± 2.238.6 ± 9.236.4 ± 9.415.0 ± 3.43.1 ± 1.4
Oracle (GT maps)72.8 ± 6.18.6 ± 4.84.4 ± 2.46.7 ± 3.75.8 ± 2.7

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.

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.

MethodSafe SR ↑SR ↑SPL ↑Collision ↓Hazard intrusion ↓FR ↓Avg. progress ↑Final goal dist. (m) ↓
Ours23.68%29.80%0.25612.26%12.81%10.86%43.20%5.38
Ours w/o anti-deviation11.98%19.50%0.16935.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:

ObstaclesPerturbationMethodSafe SR ↑SR ↑Collision ↓Hazard intrusion ↓FR ↓
50.5×Ours35.38%40.95%15.04%11.98%16.16%
50.5×Elevation-only23.12%30.08%22.84%20.61%25.07%
51.0×Ours23.68%29.80%12.26%12.81%10.86%
51.0×Elevation-only17.27%23.96%20.89%22.84%19.50%
100.5×Ours17.55%24.23%20.89%18.11%11.98%
100.5×Elevation-only13.65%21.17%29.25%27.86%21.73%
101.0×Ours13.09%20.06%32.59%22.28%14.21%
101.0×Elevation-only9.75%16.16%33.43%33.43%23.68%

Limitations

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}
}