Physical AI for Intralogistics: Benchmarking the NVIDIA Sim-to-Real Ecosystem for Cosmos-Enhanced COMPASS Navigation on Industrial Mobile Robots
Organizations: Idealworks · NVIDIA
Abstract
Classical robot navigation stacks are reliable but often require re-engineering for each new robot type and site. Learning-based navigation shifts this effort from hand-tuned parameters to data generation and training, where a policy adapts to each new embodiment or facility by fine-tuning in simulation. Whether policies adapted this way stay reliable on real industrial robots has seen little systematic testing. We study this for NVIDIA's X-Mobility and COMPASS workflow for training learned navigation policies on Idealworks robots. In simulation, we extend the COMPASS benchmark with two embodiments, the differential-drive iwhub and an omnidirectional Humanoid Mobile Platform (HMP), and with a digital twin of the Idealworks R&D center. For the real world, we fine-tune X-Mobility on data from this digital twin, with and without sim-to-real variants generated by NVIDIA Cosmos, train COMPASS on top of it from scratch in the digital twin, deploy the resulting policies on the iwhub's onboard Jetson AGX Xavier, and benchmark them in the Idealworks R&D center against COMPASS trained only on NVIDIA's environments and the existing Idealworks navigation stack on task success, efficiency, safety, smoothness and onboard compute. Running every static scenario both in a digital-twin replica and in the real facility measures the sim-to-real gap and how far Cosmos-augmented data closes it. Training in the digital twin with Cosmos sim-to-real augmentation raises the real-world success rate of learned navigation from 65.3% to 91.7% across four scenarios and nearly halves its weighted travel time compared with simulation-only training, bringing it within 8.3 points of the production navigation stack, fully onboard; with an integrated global planner, it also reaches far, occluded goals in every trial.
Figures & tables
| ID | Scenario | Description |
| S1 | Open-space traversal | Point-to-point navigation across an empty floor. Layout: Figure 6(a) . |
| S2 | Aisle navigation | Traversal of narrow racking aisles. One side has racking, the other has a set of solid walls. Layout: Figure 6(b) . |
| S3 | Static obstacles | Route blocked by robots (iw.hubs) and dollies in a serpentine pattern. Layout: Figure 6(c) . |
| S4 | Dynamic obstacles | Open space navigation with moving robots (iw.hubs) crossing the path. Layout: Figure 6(d) . |
| S5 | Far, occluded goal | Goal beyond the range of the local policy and out of the robot’s line of sight; requires the global planner integration (Appendix C ). Layout: Figure 6(e) . |
| Category | Metric | Unit | Definition | |
| Task | Success rate (SR) | % | Share of trials that reach the goal without collision or timeout. | |
| Progress ratio (PR) | % | Fraction of the initial distance to the goal covered by the end of the trial. | ||
| Efficiency | Weighted travel time (WTT) | s | Travel time to the goal, conditioned on success and normalized by the success rate (Section 2 ). | |
| Time to goal (TTG) | s | Travel time of successful trials. | ||
| Path length ratio (PLR) | – | Driven path length divided by the shortest collision-free path length. | ||
| Safety | Collision count (CC) | – | Number of collisions per trial. |
| Model | Latency (ms) | Rate (Hz) | CPU (%) | GPU (%) | Memory (GB) |
| IW.CE-COMPASS | 54 | 5–8 | 81.5 | 38.6 | 0.892 |
| IW Nav | 50 | 15–20 | 84.1 | 0.0 | 1.158 |
| SR (%) | WTT (s) | ||||
| Scenario | Model | Sim | Real | Sim | Real |
| S1 | NVIDIA COMPASS | 90.3 | 100.0 | 9.4 | 41.3 |
| IW.COMPASS | 93.0 | 100.0 | 9.9 | 38.2 | |
| IW.CE-COMPASS | 92.0 | 100.0 | 10.9 | 27.0 | |
| S2 | NVIDIA COMPASS | 87.7 | 83.3 | 16.0 | 25.3 |
| IW.COMPASS | 99.7 | 96.8 | 14.4 | 17.1 | |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| Joint group | Mode | Vel. / effort limit | ||
| Drive ( ) | Velocity | 0 | 500 | 32 rad/s / 40 N m |
| Steering ( ) | Position | 65 | 20 | 20 rad/s / 200 N m |
| Casters ( ) | Passive | 0 | 0 | – / 0 N m |
| Parameter | Value |
| Max. linear speed | 1.2 m/s |
| Max. yaw rate | 2.97 rad/s |
| Linear acceleration limit | 0.3 m/s 2 |
| Angular acceleration limit | 0.3 rad/s 2 |
| Wheel radius | 0.05 m |
| Min. module speed | 0.03 m/s |
| Parameter | Value |
| Global planner | A* lattice planner (IW Nav) |
| Planning frame | map |
| Replanning rate (Hz) | 0 (one plan per goal) |
| Route resampling spacing (m) | 1.0 |
| RDP tolerance (m) | 0.5 |
| Intermediate goal switch radius (m) | 1.5 |
| Topic / service | Type | Direction | Change | Description |
| /compass_model/global_route | nav_msgs/Path | In | New | Simplified global route (reliable, volatile, depth 1). |
| /compass/goal_pose | geometry_msgs/PoseStamped | In | Modified | Goal pose; previously /goal_pose . |
| /compass/reset | std_msgs/Bool | In | New | Clears goal, route and policy history. |
| /compass/cmd_vel | geometry_msgs/Twist | Out | Modified | Velocity command to the adaptor; previously /cmd_vel . |
| /compass/navigation_type | std_msgs/Bool | Out | New | Latched; true for local navigation, false for global navigation. |
| /compass/ready | std_srvs/Trigger | Service | New | Ready once the model is loaded; the adaptor accepts goals only after. |
| Region | Size |
| Building interior (walls) | 48.8 20.4 m = 996 m 2 |
| Racking zone (north, m) | Shelves, not driven |
| Free floor of the empty layout | 647 m 2 (553 m 2 in the main connected part; the rest are offices and corners) |
| Drivable area of the empty layout | 363 m 2 , spanning 1.8–47.5 m and 1.4–11.6 m (the open zone south of the racks) |
| Tier | Layouts | Objects | Drivable | Role in training |
| Near-empty | 01, 05, 09, 13 | 2–5 | 91–97% | Open-floor navigation: long, mostly straight drives to distant goals, turning and following the route; learning what free floor, walls and racks look like without clutter. The base case the policy must master before obstacle avoidance. |
| Sparse | 03, 07, 11, 14 (test) | 9–12 | 80–86% | Isolated obstacles: the robot meets one object or group at a time, so it learns to notice it in the camera image, steer around it and return to the route. Clean, close-up examples of each class (iw.hub, dolly, pallet, forklift). |
| Medium | 02, 06, 10 | 16–23 | 66–71% | Regular avoidance: several groups in view, choosing a side, passing between groups at least 2.3 m apart, and more frequent re-planning. |
| Dense | 00, 04, 08, 12, 15 (test) | 30–38 | 51–56% | Cluttered staging areas: snaking through gaps between groups, close passes at the clearance limit, many classes in one frame, and objects appearing late from behind others. The hardest perception and avoidance cases. |
| Set | Split | Episodes | Files | Frames | Driving time |
| Path following (4 Hz) | Train | 187 | 732 | 44,073 | |
| Val | 23 | 95 | 5,501 | ||
| Test | 30 | 113 | 6,961 | ||
| Total | 240 | 940 | 56,535 | 3.9 h | |
| Random (5 Hz) | Train | 460 | 1,329 | 58,995 | |
| Val | 57 | 159 | 7,092 |
| Stage | Initialized from | IW.COMPASS chain | IW.CE-COMPASS chain |
| 1. World model | NVIDIA base world model | IW.WM: R&D random exploration | IW.CE-WM: R&D random exploration + Cosmos |
| 2. IL policy | NVIDIA base X-Mobility | IW.IL: R&D path-following demonstrations | IW.CE-IL: R&D path-following demonstrations + Cosmos |
| 3. COMPASS (RL) | Stage-2 IL policy (frozen) | IW.COMPASS: residual RL on IW.IL | IW.CE-COMPASS: residual RL on IW.CE-IL |
| Parameter | IW.IL | IW.CE-IL |
| Initial checkpoint | x_mobility-nav2-semantic_action_path | x_mobility-nav2-semantic_action_path |
| World model (stage 1) | IW.WM | IW.CE-WM |
| Training epochs | 31 | 29 |
| Batch size | 4 per GPU | 4 per GPU |
| Optimizer | AdamW | AdamW |
| Learning rate (schedule) | peak | peak |
| Metric | NVIDIA base X-Mobility | IW.IL | IW.CE-IL |
| Linear MAE | 0.5131 | 0.0089 | 0.0080 |
| Angular MAE | 0.1869 | 0.0451 | 0.0432 |
| Path MAE | 0.1518 | 0.0805 | 0.0806 |
| Weighted action loss | 7.0129 | 0.5458 | 0.5176 |
| Weighted path loss | 3.3924 | 1.6578 | 1.6572 |
| Term | Weight |
| Distance to the goal, per step | |
| Goal-heading alignment | |
| Reaching the goal | |
| Collision |
| IW.CE-COMPASS | IW.COMPASS | |||||
| Iteration | Goal (%) | Collision (%) | Time (s) | Goal (%) | Collision (%) | Time (s) |
| 100 | 6 | 94 | 18.4 | 34 | 66 | 22.7 |
| 200 | 43 | 57 | 22.4 | 62 | 38 | 19.2 |
| 300 | 73 | 27 | 15.6 | 76 | 24 | 12.2 |
| 400 | 78 | 22 | 11.3 | 75 | 25 | 10.5 |
| 440 | 79 | 21 | 10.6 | 76 | 24 | 10.2 |
| Setting | Value |
| Model | Cosmos Transfer 2.5, 2B multi-control model |
| Control inputs (weight) | Segmentation (1.0), edge (0.4), blur (0.1); no depth |
| Edge threshold / blur strength | Medium / medium |
| Denoising steps / guidance scale | 35 / 3 |
| Conditional frames / frames per chunk | 1 / 93 |
| Seed | 2025 |
| Item | Value |
| Module | NVIDIA Jetson AGX Xavier |
| Memory | 32 GB |
| Power mode | MAXN |
| JetPack / L4T | R35 |
| CUDA / cuDNN | 11.4 / 8.6.0 |
| TensorRT | 8.5.2 |
| Setting | Value |
| Source framework / checkpoint | PyTorch 2.10.0+cu128 |
| ONNX opset | 16 |
| TensorRT precision | FP16 |
| Input / output shapes | Static (Table 30 ) |
| Tensor | Shape | Meaning | |
| In | image | batch time RGB height width, values 0–1 | |
| route | 10 route segments, each in the robot frame | ||
| goal_heading | goal yaw in the robot frame (rad) | ||
| speed | current forward speed (m/s) | ||
| action_input | previous action, fed back | ||
| history_input | recurrent state, fed back |
| Model / engine | Parameters | Checkpoint (MB) | ONNX (MB) | TensorRT engine (MB) |
| COMPASS | 135M (88M used in inference) | 180 | 358 | 177 |
Robot Navigation
Robot navigation studies how robots perceive, localize, plan, and move safely toward goals in static or changing environments.
See all 554 papers