Configuration Tutorial
All configuration files are stored in the task_config
folder and follow the standard YAML format.
You can run bash task_config/create_task_config.sh ${task_config_name}
to create new task configuration.
1. ✅ Minimal Example
Below is a minimal configuration file to start a typical data collection session:
render_freq: 0
episode_num: 100
use_seed: false
save_freq: 15
embodiment:
- aloha-agilex
language_num: 100
domain_randomization:
random_background: true
cluttered_table: true
clean_background_rate: 0.02
random_head_camera_dis: 0
random_table_height: 0.03
random_light: true
crazy_random_light_rate: 0.02
random_embodiment: false
camera:
head_camera_type: D435
wrist_camera_type: D435
collect_head_camera: true
collect_wrist_camera: true
data_type:
rgb: true
third_view: false
depth: false
pointcloud: false
observer: false
endpose: false
qpos: true
mesh_segmentation: false
actor_segmentation: false
pcd_down_sample_num: 1024
pcd_crop: true
dual_arm: true
save_path: ./data
clear_cache_freq: 5
collect_data: true
eval_video_log: true
2. 🔧 Configuration Breakdown
2.1 🎯 Task & Embodiment Settings
Field | Type | Required | Description |
embodiment | list | ✅ | List of robot embodiment(s). For a dual-arm robot, use [name] , e.g., [aloha-agilex] ; to combine two single-arm robots, use [left, right, interval] , e.g., [piper, franka-panda, 0.6] . The interval specifies the distance between arms (typically 0.6–0.8 meters). |
dual_arm | bool | optional | Whether to use both arms. Default: true . |
use_seed | bool | ✅ | Whether to use a predefined seed list from task_config/seeds/ . If false , the system will automatically explore viable seeds. |
episode_num | int | ✅ | Number of successful episodes to collect. |
language_num | int | optional | If using language-conditioned task planning, sets the number of language descriptions to sample for each task. |
2.2 🧠 Domain Randomization
Configure task variation for better generalization.
domain_randomization:
random_background: true
cluttered_table: true
clean_background_rate: 0.02
random_head_camera_dis: 0
random_table_height: 0.03
random_light: true
crazy_random_light_rate: 0.02
random_embodiment: false
Field | Type | Description |
random_background | bool | Enable random textures for the table and background. |
cluttered_table | bool | Add distractor objects to the table to simulate a cluttered environment. |
clean_background_rate | float | Ratio of clean backgrounds (e.g., 0.02 = 2%). Only effective if random_background is true . |
random_head_camera_dis | float | Random displacement applied to the head camera position (in meters). |
random_table_height | float | Random variation in the table height (in meters). |
random_light | bool | Enable randomized lighting during simulation. |
crazy_random_light_rate | float | Probability of applying extreme lighting. Only effective if random_light is true . |
random_embodiment | bool | Enable embodiment randomization (experimental, currently not fully supported). |
2.3 📷 Camera Configuration
camera:
head_camera_type: D435
wrist_camera_type: D435
collect_head_camera: true
collect_wrist_camera: true
Field | Type | Description |
head_camera_type | str | Camera used for global observation. Options: see task_config/_camera_config.yml . |
wrist_camera_type | str | Camera used for close-up view. |
collect_head_camera | bool | Whether to collect head-view data. |
collect_wrist_camera | bool | Whether to collect wrist-view data. |
2.4 📦 Data Collection Settings
Field | Type | Required | Description |
collect_data | bool | ✅ | Enable actual data saving. |
save_freq | int | ✅ | Save every N steps. |
save_path | str | optional | Directory to save data. Default: ./data . |
clear_cache_freq | int | optional | Clear cached data every N episodes. Prevents memory overflow. |
eval_video_log | bool | optional | Save evaluation videos for replay. |
2.5 💾 Data Type
Specify which data to collect in each episode:
data_type:
rgb: true
third_view: false
depth: false
pointcloud: false
observer: false
endpose: false
qpos: true
mesh_segmentation: false
actor_segmentation: false
Type | Description |
rgb | RGB image from multiple views. |
third_view | Third-person video. |
depth | Depth images from cameras. |
pointcloud | Merged point cloud of the scene. |
observer | Observer-view RGB frame. |
endpose | End-effector 6D pose. |
qpos | Robot joint angles. |
mesh_segmentation | Per-object segmentation from mesh. |
actor_segmentation | Per-actor segmentation from RGB. |
2.6 🔍 Point Cloud Settings
Field | Type | Description |
pcd_down_sample_num | int | FPS (Farthest Point Sampling) number; set 0 to keep all points. |
pcd_crop | bool | Whether to crop out table/walls based on known transforms. |
2.7 🎥 Rendering
Field | Type | Description |
render_freq | int | Render visualization every N steps. Set to 0 to disable. For servers without display, recommend 0 . |
3. 📌 Notes