From 5f8d0d23871da3b6eec7602fdcaab6abb69d5804 Mon Sep 17 00:00:00 2001 From: UWLab BOT Date: Sat, 3 Jan 2026 18:38:58 -0800 Subject: [PATCH] Prepares pre-merge --- docs/source/publications/omnireset/index.rst | 88 +++++++++++++------- 1 file changed, 56 insertions(+), 32 deletions(-) diff --git a/docs/source/publications/omnireset/index.rst b/docs/source/publications/omnireset/index.rst index eaf4548..73071bd 100644 --- a/docs/source/publications/omnireset/index.rst +++ b/docs/source/publications/omnireset/index.rst @@ -117,13 +117,13 @@ Download our pretrained checkpoint and run evaluation. env.scene.insertive_object=rectangle \ env.scene.receptive_object=wall - .. tab-item:: Cupcake on Plate + .. tab-item:: Cube Stacking .. raw:: html
@@ -131,23 +131,23 @@ Download our pretrained checkpoint and run evaluation. .. code:: bash # Download checkpoint - wget https://s3.us-west-004.backblazeb2.com/uwlab-assets/Policies/OmniReset/cupcake_state_rl_expert.pt + wget https://s3.us-west-004.backblazeb2.com/uwlab-assets/Policies/OmniReset/cube_state_rl_expert.pt # Run evaluation python scripts/reinforcement_learning/rsl_rl/play.py \ --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \ --num_envs 1 \ - --checkpoint cupcake_state_rl_expert.pt \ - env.scene.insertive_object=cupcake \ - env.scene.receptive_object=plate + --checkpoint cube_state_rl_expert.pt \ + env.scene.insertive_object=cube \ + env.scene.receptive_object=cube - .. tab-item:: Cube Stacking + .. tab-item:: Cupcake on Plate .. raw:: html
@@ -155,15 +155,15 @@ Download our pretrained checkpoint and run evaluation. .. code:: bash # Download checkpoint - wget https://s3.us-west-004.backblazeb2.com/uwlab-assets/Policies/OmniReset/cube_state_rl_expert.pt + wget https://s3.us-west-004.backblazeb2.com/uwlab-assets/Policies/OmniReset/cupcake_state_rl_expert.pt # Run evaluation python scripts/reinforcement_learning/rsl_rl/play.py \ --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \ --num_envs 1 \ - --checkpoint cube_state_rl_expert.pt \ - env.scene.insertive_object=cube \ - env.scene.receptive_object=cube + --checkpoint cupcake_state_rl_expert.pt \ + env.scene.insertive_object=cupcake \ + env.scene.receptive_object=plate ---- @@ -174,9 +174,9 @@ Reproduce Our Training Reproduce our training results from scratch. -.. important:: +.. tip:: - Before running reset state generation scripts (step 3), make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + **Want to try it quickly?** Start with **Cube Stacking** or **Peg Insertion**. They have the fastest reset state collection times and converge within ~8 hours on 4×L40S GPUs. .. tab-set:: @@ -196,6 +196,10 @@ Reproduce our training results from scratch. **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) @@ -242,6 +246,10 @@ Reproduce our training results from scratch. **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) @@ -288,6 +296,10 @@ Reproduce our training results from scratch. **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) @@ -334,6 +346,10 @@ Reproduce our training results from scratch. **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) @@ -364,35 +380,39 @@ Reproduce our training results from scratch. env.scene.insertive_object=rectangle \ env.scene.receptive_object=wall - .. tab-item:: Cupcake on Plate + .. tab-item:: Cube Stacking **Step 1: Collect Partial Assemblies** (~30 seconds) .. code:: bash - python scripts_v2/tools/record_partial_assemblies.py --task OmniReset-PartialAssemblies-v0 --num_envs 10 --num_trajectories 10 --dataset_dir ./partial_assembly_datasets --headless env.scene.insertive_object=cupcake env.scene.receptive_object=plate + python scripts_v2/tools/record_partial_assemblies.py --task OmniReset-PartialAssemblies-v0 --num_envs 10 --num_trajectories 10 --dataset_dir ./partial_assembly_datasets --headless env.scene.insertive_object=cube env.scene.receptive_object=cube **Step 2: Sample Grasp Poses** (~1 minute) .. code:: bash - python scripts_v2/tools/record_grasps.py --task OmniReset-Robotiq2f85-GraspSampling-v0 --num_envs 8192 --num_grasps 1000 --dataset_dir ./grasp_datasets --headless env.scene.object=cupcake + python scripts_v2/tools/record_grasps.py --task OmniReset-Robotiq2f85-GraspSampling-v0 --num_envs 8192 --num_grasps 1000 --dataset_dir ./grasp_datasets --headless env.scene.object=cube **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEAnywhere-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEAnywhere env.scene.insertive_object=cupcake env.scene.receptive_object=plate + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEAnywhere-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEAnywhere env.scene.insertive_object=cube env.scene.receptive_object=cube # Object Resting, End-Effector Grasped (Near Object) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectRestingEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectRestingEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectRestingEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectRestingEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube # Object Anywhere, End-Effector Grasped (Grasped) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube # Object Partially Assembled, End-Effector Grasped (Near Goal) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectPartiallyAssembledEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectPartiallyAssembledEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectPartiallyAssembledEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectPartiallyAssembledEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube **Step 4: Train RL Policy** @@ -407,38 +427,42 @@ Reproduce our training results from scratch. --logger wandb \ --headless \ --distributed \ - env.scene.insertive_object=cupcake \ - env.scene.receptive_object=plate + env.scene.insertive_object=cube \ + env.scene.receptive_object=cube - .. tab-item:: Cube Stacking + .. tab-item:: Cupcake on Plate **Step 1: Collect Partial Assemblies** (~30 seconds) .. code:: bash - python scripts_v2/tools/record_partial_assemblies.py --task OmniReset-PartialAssemblies-v0 --num_envs 10 --num_trajectories 10 --dataset_dir ./partial_assembly_datasets --headless env.scene.insertive_object=cube env.scene.receptive_object=cube + python scripts_v2/tools/record_partial_assemblies.py --task OmniReset-PartialAssemblies-v0 --num_envs 10 --num_trajectories 10 --dataset_dir ./partial_assembly_datasets --headless env.scene.insertive_object=cupcake env.scene.receptive_object=plate **Step 2: Sample Grasp Poses** (~1 minute) .. code:: bash - python scripts_v2/tools/record_grasps.py --task OmniReset-Robotiq2f85-GraspSampling-v0 --num_envs 8192 --num_grasps 1000 --dataset_dir ./grasp_datasets --headless env.scene.object=cube + python scripts_v2/tools/record_grasps.py --task OmniReset-Robotiq2f85-GraspSampling-v0 --num_envs 8192 --num_grasps 1000 --dataset_dir ./grasp_datasets --headless env.scene.object=cupcake **Step 3: Generate Reset State Datasets** (~1 min to 1 hour depending on the reset) + .. important:: + + Before running, make sure ``base_path`` and ``base_paths`` in ``reset_states_cfg.py`` are set appropriately. + .. code:: bash # Object Anywhere, End-Effector Anywhere (Reaching) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEAnywhere-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEAnywhere env.scene.insertive_object=cube env.scene.receptive_object=cube + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEAnywhere-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEAnywhere env.scene.insertive_object=cupcake env.scene.receptive_object=plate # Object Resting, End-Effector Grasped (Near Object) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectRestingEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectRestingEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectRestingEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectRestingEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate # Object Anywhere, End-Effector Grasped (Grasped) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectAnywhereEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectAnywhereEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate # Object Partially Assembled, End-Effector Grasped (Near Goal) - python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectPartiallyAssembledEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectPartiallyAssembledEEGrasped env.scene.insertive_object=cube env.scene.receptive_object=cube + python scripts_v2/tools/record_reset_states.py --task OmniReset-UR5eRobotiq2f85-ObjectPartiallyAssembledEEGrasped-v0 --num_envs 4096 --num_reset_states 10000 --headless --dataset_dir ./reset_state_datasets/ObjectPartiallyAssembledEEGrasped env.scene.insertive_object=cupcake env.scene.receptive_object=plate **Step 4: Train RL Policy** @@ -453,8 +477,8 @@ Reproduce our training results from scratch. --logger wandb \ --headless \ --distributed \ - env.scene.insertive_object=cube \ - env.scene.receptive_object=cube + env.scene.insertive_object=cupcake \ + env.scene.receptive_object=plate Training Curves ^^^^^^^^^^^^^^^