Views
No views yet

1git clone https://github.com/InternRobotics/NavDP.git
2cd NavDP/baselines/x-navdp1conda create -n navrl python=3.11
2conda activate navrl
3pip install -r requirements.txtisaaclab-rl==0.4.0 following their official instructions. Then install acados following the acados installation guide and Python interface guide. The acados setup is lightweight and mainly requires a CMake build plus the Python interface. Before running training or evaluation, expose the acados libraries and accept the Omniverse EULA:1export ACADOS_SOURCE_DIR=/path/to/acados
2export LD_LIBRARY_PATH="${ACADOS_SOURCE_DIR}/lib:${LD_LIBRARY_PATH:-}"
3export OMNI_KIT_ACCEPT_EULA=YES
4export OMNI_KIT_ALLOW_ROOT=1navigation_metadata, robot assets, low-level controller checkpoints, scene_split.json, the NavDP pretrained checkpoint, and the X-NavDP post-trained checkpoint.SCENE_DIR.|
Scene data and navigation metadata
text 1x-navdp/
2+-- data/scenes/
3 +-- scene_split.json
4 +-- SkyTexture/
5 +-- Materials/
6 +-- cluttered_easy/
7 +-- cluttered_hard/
8 +-- internscenes_commercial/
9 | +-- models/
10 | +-- Materials/
11 | +-- scenes_commercial/
12 +-- internscenes_home/
13 | +-- models/
14 | +-- Materials/
15 | +-- scenes_home/
16 +-- navigation_metadata/
17 +-- internscenes_commercial/
18 +-- internscenes_home/
19 +-- cluttered_easy/
20 +-- cluttered_hard/ |
Code, robot assets, and checkpoints
text 1x-navdp/
2+-- train.py
3+-- config/
4+-- scripts/
5+-- src/
6| +-- environment/
7| | +-- controllers/checkpoints/
8| | +-- humanoid_g1/policy.pt
9| | +-- quadruped_go2/policy.pt
10| +-- x_navdp/
11| +-- training/
12| +-- utils/
13+-- eval/
14+-- data/robots/
15| +-- dingo.usd
16| +-- unitreeg1.usd
17+-- pretrain_model/
18| +-- navdp_pretrained.ckpt
19+-- checkpoints/
20 +-- x-navdp_posttrain.ckpt |
SCENE_DIR to point to the scene root. The training config initializes from pretrain_model/navdp_pretrained.ckpt; evaluation examples use the released post-trained checkpoint under checkpoints/. Dingo and G1 load robot USDs from data/robots/, while Unitree Go2 uses the Isaac Lab asset path by default.1export SCENE_DIR=/path/to/NavDP/baselines/x-navdp/data/scenes
2export NPROC_PER_NODE=8
3
4bash scripts/run_ddp_train.sh \
5 --config_file config/x-navdp_config.yaml1export NPROC_PER_NODE=1
2
3bash scripts/run_ddp_train.sh \
4 --num_envs 1 \
5 --embodiments dingo \
6 --max_steps 100--txt_dir. Aggregate these logs into global, per-embodiment, and per-scene
success-rate CSV files and plots with:python scripts/aggregate_success.py ./txt/x-navdp./result/<txt_subdir_name>/; for the
command above, the output directory is ./result/x-navdp/.
Each log row has the form
rank,step,episode,success,trainer_success_rate. Home/commercial and clutter
results are reported separately. Use --output-dir to override the result
directory, or --no-plots to generate CSV files only; run
python scripts/aggregate_success.py --help for EMA and milestone options.1bash eval/scripts/start_policy_server.sh \
2 --checkpoint checkpoints/x-navdp_posttrain.ckpt \
3 --embodiment quadruped1bash eval/scripts/run_evaluation.sh \
2 --config_file eval/config/eval_pointgoal/quadruped_internscene_commercial.yaml--num_episodes to evaluate a subset and --max_steps to cap the total simulation steps for smoke tests or debugging.eval/config/eval_pointgoal/, and outputs are written under outputs/evaluation/<embodiment>_<scene_type>/. Each scene directory contains a metric.csv file whose first two columns are success and SPL. To print per-USD scene SR and SPL, run:python eval/scripts/stat_eval_metrics.py outputs/evaluation/quadruped_commercial1@misc{yang2026xnavdp,
2 title = {X-NavDP: Generalizing Navigation Diffusion Policy to Novel Behavior and Embodiments with Group Q-score Reweighted Matching},
3 author = {Tianyu Yang and Yiming Zeng and Wenzhe Cai and Yuqiang Yang and Jiaqi Peng and Hui Cheng and Jiangmiao Pang and Tai Wang},
4 year = {2026}
5}