Configuration
The data generator uses YAML config files with a config hierarchy and CLI overrides. All paths are relative to $NAVARENA_DATA_DIR.
Config Hierarchy
- Main config - User-provided full config (e.g.
examples/pointnav_example.yaml) - defaults/env/{env_type}.yaml - Environment defaults (e.g.
gs.yaml) - defaults/task/{task_type}.yaml - Task defaults (e.g.
pointnav.yaml) - defaults/planner.yaml - Trajectory planner defaults
User config wins; missing fields are merged from the above defaults.
Config Structure
configs/
├── defaults/
│ ├── env/
│ │ └── gs.yaml # Only gs (3DGS) is implemented; habitat/isaac are placeholders
│ ├── task/
│ │ ├── pointnav.yaml
│ │ ├── gridtraj.yaml
│ │ ├── imagenav.yaml
│ │ ├── objectnav.yaml
│ │ └── vln.yaml
│ └── planner.yaml
└── examples/
├── pointnav_example.yaml
├── gridtraj_example.yaml
├── imagenav_example.yaml
├── objectnav_example.yaml
├── vln_zh_example.yaml
└── ...
Example Configs
PointNav
env_type: gs
scene_path: sage-3d/00666b7a
env_config:
z_coordinate: 0.0
robot_radius: 0.4
max_linear_velocity: 0.5
max_angular_velocity: 1.0
task_type: pointnav
num_episodes: 1000
split: train
task_config:
start_constraints:
sampler: grid
grid_spacing: 0.5
max_start_points: null
goal_constraints:
sampler: grid
grid_spacing: 0.5
require_navigable_path: true
trajectory_constraints:
min_geodesic_distance: 0.5
max_geodesic_distance: 30.0
require_gt_path: true
dataset_name: navarena_dataset_v1
VLN (Chinese Instructions)
env_type: gs
scene_path: x2robot/17dc3367
env_config:
z_coordinate: 0.0
robot_radius: 0.4
task_type: vln
num_episodes: 100
split: train
task_config:
start_constraints:
sampler: grid
grid_spacing: 0.5
goal_constraints:
sampler: grid
grid_spacing: 0.5
trajectory_constraints:
min_geodesic_distance: 5.0
max_geodesic_distance: 12.0
instruction_type: simple_direction # simple_direction / path_based / object_goal
language: zh-CN
num_instructions_per_episode: 1
dataset_name: navarena_vln_zh
Parameter Reference
Top-Level
| Parameter | Description | Default |
env_type | Environment type: gs / habitat / isaac | gs |
scene_path | Scene path, e.g. x2robot/17dc3367 | Required |
task_type | Task type: pointnav / imagenav / objectnav / vln | pointnav |
num_episodes | Number of episodes to generate | 100 |
split | Data split: train / val_seen / val_unseen / test | train |
dataset_name | Dataset name, output under datasets/{dataset_name}/ | navarena_dataset_v1 |
env_config
| Parameter | Description | Default |
z_coordinate | Fixed height | 0.0 |
robot_radius | Collision radius (meters) | 0.4 |
max_linear_velocity | Max linear velocity (m/s) | 0.5 |
max_angular_velocity | Max angular velocity (rad/s) | 1.0 |
max_linear_accel | Max linear acceleration | 0.3 |
max_angular_accel | Max angular acceleration | 2.0 |
max_jerk | Max jerk | 0.5 |
max_lateral_accel | Max lateral acceleration | 0.3 |
dt | Time step (seconds) | 0.333 |
goal_tolerance | Goal tolerance (meters) | 0.3 |
task_config
start_constraints
| Parameter | Description | Default |
sampler | Sampler: grid | grid |
grid_spacing | Grid spacing (meters) | 0.5 |
max_start_points | Max start points, null = unlimited | null |
rotation_num | Orientations per point | 6 |
goal_constraints
| Parameter | Description | Default |
sampler | Sampler: grid | grid |
grid_spacing | Grid spacing (meters) | 0.5 |
rotation_num | Orientations per goal | 6 |
require_navigable_path | Goal must have navigable path from start | true |
trajectory_constraints
| Parameter | Description | Default |
min_geodesic_distance | Min geodesic distance (meters) | 0.5 |
max_geodesic_distance | Max geodesic distance (meters) | 30.0 |
require_gt_path | Require valid GT path | true |
VLN-specific
| Parameter | Description | Default |
instruction_type | simple_direction / path_based / object_goal | Required |
language | zh-CN / en-US | - |
num_instructions_per_episode | Instructions per episode | 1 |
planner_config (optional)
Configure via task_config.planner_config or defaults/planner.yaml; passed to the trajectory planner.
Multi-File Merge
Use GeneratorConfig.from_files() or --env-config / --task-config to merge fragments:
python scripts/generate_data.py --config configs/examples/pointnav_example.yaml \
--env-config my_env.yaml --task-config my_task.yaml
CLI Overrides
# Config file
python scripts/generate_data.py --config configs/examples/pointnav_example.yaml
# CLI only
python scripts/generate_data.py --env gs --task pointnav \
--scene x2robot/17dc3367 --num-episodes 100
# Parallel
python scripts/generate_data.py --config configs/examples/pointnav_example.yaml \
--parallel --num-workers 4 --batch-size 20
# Resume from checkpoint
python scripts/generate_data.py --config configs/examples/pointnav_example.yaml --resume
# Append mode
python scripts/generate_data.py --config configs/examples/pointnav_example.yaml --append
See also: Batch Processing · Asset Preprocessing