Skip to content

Commit 5d66dca

Browse files
authored
Merge branch 'main' into neel/skillgen
2 parents 5b6d877 + cc7685b commit 5d66dca

File tree

55 files changed

+1831
-160
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1831
-160
lines changed

CONTRIBUTORS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Guidelines for modifications:
2121

2222
* Antonio Serrano-Muñoz
2323
* Ben Johnston
24+
* Clemens Schwarke
2425
* David Hoeller
2526
* Farbod Farshidian
2627
* Hunter Hansen
@@ -54,7 +55,6 @@ Guidelines for modifications:
5455
* Calvin Yu
5556
* Cheng-Rong Lai
5657
* Chenyu Yang
57-
* Clemens Schwarke
5858
* Connor Smith
5959
* CY (Chien-Ying) Chen
6060
* David Yang
74.8 KB
Loading
132 KB
Loading

docs/source/overview/environments.rst

Lines changed: 61 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Available Environments
44
======================
55

6-
The following lists comprises of all the RL tasks implementations that are available in Isaac Lab.
6+
The following lists comprises of all the RL or IL tasks implementations that are available in Isaac Lab.
77
While we try to keep this list up-to-date, you can always get the latest list of environments by
88
running the following command:
99

@@ -100,54 +100,64 @@ for the lift-cube environment:
100100
.. table::
101101
:widths: 33 37 30
102102

103-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
104-
| World | Environment ID | Description |
105-
+====================+=========================+=============================================================================+
106-
| |reach-franka| | |reach-franka-link| | Move the end-effector to a sampled target pose with the Franka robot |
107-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
108-
| |reach-ur10| | |reach-ur10-link| | Move the end-effector to a sampled target pose with the UR10 robot |
109-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
110-
| |lift-cube| | |lift-cube-link| | Pick a cube and bring it to a sampled target position with the Franka robot |
111-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
112-
| |stack-cube| | |stack-cube-link| | Stack three cubes (bottom to top: blue, red, green) with the Franka robot. |
113-
| | | Blueprint env used for the NVIDIA Isaac GR00T blueprint for synthetic |
114-
| | |stack-cube-bp-link| | manipulation motion generation |
115-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
116-
| |cabi-franka| | |cabi-franka-link| | Grasp the handle of a cabinet's drawer and open it with the Franka robot |
117-
| | | |
118-
| | |franka-direct-link| | |
119-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
120-
| |cube-allegro| | |cube-allegro-link| | In-hand reorientation of a cube using Allegro hand |
121-
| | | |
122-
| | |allegro-direct-link| | |
123-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
124-
| |cube-shadow| | |cube-shadow-link| | In-hand reorientation of a cube using Shadow hand |
125-
| | | |
126-
| | |cube-shadow-ff-link| | |
127-
| | | |
128-
| | |cube-shadow-lstm-link| | |
129-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
130-
| |cube-shadow| | |cube-shadow-vis-link| | In-hand reorientation of a cube using Shadow hand using perceptive inputs. |
131-
| | | Requires running with ``--enable_cameras``. |
132-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
133-
| |gr1_pick_place| | |gr1_pick_place-link| | Pick up and place an object in a basket with a GR-1 humanoid robot |
134-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
135-
| |gr1_pp_waist| | |gr1_pp_waist-link| | Pick up and place an object in a basket with a GR-1 humanoid robot |
136-
| | | with waist degrees-of-freedom enables that provides a wider reach space. |
137-
+--------------------+-------------------------+-----------------------------------------------------------------------------+
103+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
104+
| World | Environment ID | Description |
105+
+======================+===========================+=============================================================================+
106+
| |reach-franka| | |reach-franka-link| | Move the end-effector to a sampled target pose with the Franka robot |
107+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
108+
| |reach-ur10| | |reach-ur10-link| | Move the end-effector to a sampled target pose with the UR10 robot |
109+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
110+
| |deploy-reach-ur10e| | |deploy-reach-ur10e-link| | Move the end-effector to a sampled target pose with the UR10e robot |
111+
| | | This policy has been deployed to a real robot |
112+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
113+
| |lift-cube| | |lift-cube-link| | Pick a cube and bring it to a sampled target position with the Franka robot |
114+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
115+
| |stack-cube| | |stack-cube-link| | Stack three cubes (bottom to top: blue, red, green) with the Franka robot. |
116+
| | | Blueprint env used for the NVIDIA Isaac GR00T blueprint for synthetic |
117+
| | |stack-cube-bp-link| | manipulation motion generation |
118+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
119+
| |surface-gripper| | |long-suction-link| | Stack three cubes (bottom to top: blue, red, green) |
120+
| | | with the UR10 arm and long surface gripper |
121+
| | |short-suction-link| | or short surface gripper. |
122+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
123+
| |cabi-franka| | |cabi-franka-link| | Grasp the handle of a cabinet's drawer and open it with the Franka robot |
124+
| | | |
125+
| | |franka-direct-link| | |
126+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
127+
| |cube-allegro| | |cube-allegro-link| | In-hand reorientation of a cube using Allegro hand |
128+
| | | |
129+
| | |allegro-direct-link| | |
130+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
131+
| |cube-shadow| | |cube-shadow-link| | In-hand reorientation of a cube using Shadow hand |
132+
| | | |
133+
| | |cube-shadow-ff-link| | |
134+
| | | |
135+
| | |cube-shadow-lstm-link| | |
136+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
137+
| |cube-shadow| | |cube-shadow-vis-link| | In-hand reorientation of a cube using Shadow hand using perceptive inputs. |
138+
| | | Requires running with ``--enable_cameras``. |
139+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
140+
| |gr1_pick_place| | |gr1_pick_place-link| | Pick up and place an object in a basket with a GR-1 humanoid robot |
141+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
142+
| |gr1_pp_waist| | |gr1_pp_waist-link| | Pick up and place an object in a basket with a GR-1 humanoid robot |
143+
| | | with waist degrees-of-freedom enables that provides a wider reach space. |
144+
+----------------------+---------------------------+-----------------------------------------------------------------------------+
138145

139146
.. |reach-franka| image:: ../_static/tasks/manipulation/franka_reach.jpg
140147
.. |reach-ur10| image:: ../_static/tasks/manipulation/ur10_reach.jpg
148+
.. |deploy-reach-ur10e| image:: ../_static/tasks/manipulation/ur10e_reach.jpg
141149
.. |lift-cube| image:: ../_static/tasks/manipulation/franka_lift.jpg
142150
.. |cabi-franka| image:: ../_static/tasks/manipulation/franka_open_drawer.jpg
143151
.. |cube-allegro| image:: ../_static/tasks/manipulation/allegro_cube.jpg
144152
.. |cube-shadow| image:: ../_static/tasks/manipulation/shadow_cube.jpg
145153
.. |stack-cube| image:: ../_static/tasks/manipulation/franka_stack.jpg
146154
.. |gr1_pick_place| image:: ../_static/tasks/manipulation/gr-1_pick_place.jpg
155+
.. |surface-gripper| image:: ../_static/tasks/manipulation/ur10_stack_surface_gripper.jpg
147156
.. |gr1_pp_waist| image:: ../_static/tasks/manipulation/gr-1_pick_place_waist.jpg
148157

149158
.. |reach-franka-link| replace:: `Isaac-Reach-Franka-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/reach/config/franka/joint_pos_env_cfg.py>`__
150159
.. |reach-ur10-link| replace:: `Isaac-Reach-UR10-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/reach/config/ur_10/joint_pos_env_cfg.py>`__
160+
.. |deploy-reach-ur10e-link| replace:: `Isaac-Deploy-Reach-UR10e-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/deploy/reach/config/ur_10e/joint_pos_env_cfg.py>`__
151161
.. |lift-cube-link| replace:: `Isaac-Lift-Cube-Franka-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/lift/config/franka/joint_pos_env_cfg.py>`__
152162
.. |lift-cube-ik-abs-link| replace:: `Isaac-Lift-Cube-Franka-IK-Abs-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/lift/config/franka/ik_abs_env_cfg.py>`__
153163
.. |lift-cube-ik-rel-link| replace:: `Isaac-Lift-Cube-Franka-IK-Rel-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/lift/config/franka/ik_rel_env_cfg.py>`__
@@ -158,6 +168,8 @@ for the lift-cube environment:
158168
.. |stack-cube-link| replace:: `Isaac-Stack-Cube-Franka-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/stack/config/franka/stack_joint_pos_env_cfg.py>`__
159169
.. |stack-cube-bp-link| replace:: `Isaac-Stack-Cube-Franka-IK-Rel-Blueprint-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/stack/config/franka/stack_ik_rel_blueprint_env_cfg.py>`__
160170
.. |gr1_pick_place-link| replace:: `Isaac-PickPlace-GR1T2-Abs-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/pick_place/pickplace_gr1t2_env_cfg.py>`__
171+
.. |long-suction-link| replace:: `Isaac-Stack-Cube-UR10-Long-Suction-IK-Rel-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/stack/config/ur10_gripper/stack_ik_rel_env_cfg.py>`__
172+
.. |short-suction-link| replace:: `Isaac-Stack-Cube-UR10-Short-Suction-IK-Rel-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/stack/config/ur10_gripper/stack_ik_rel_env_cfg.py>`__
161173
.. |gr1_pp_waist-link| replace:: `Isaac-PickPlace-GR1T2-WaistEnabled-Abs-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/pick_place/pickplace_gr1t2_waist_enabled_env_cfg.py>`__
162174

163175
.. |cube-shadow-link| replace:: `Isaac-Repose-Cube-Shadow-Direct-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab_tasks/isaaclab_tasks/direct/shadow_hand/shadow_hand_env_cfg.py>`__
@@ -786,7 +798,7 @@ inferencing, including reading from an already trained checkpoint and disabling
786798
-
787799
- Direct
788800
-
789-
* - Isaac-Forge-GearMesh-Direct-v0
801+
* - Isaac-Forge-GearMesh-Direct-v0
790802
-
791803
- Direct
792804
- **rl_games** (PPO)
@@ -882,6 +894,10 @@ inferencing, including reading from an already trained checkpoint and disabling
882894
- Isaac-Reach-UR10-Play-v0
883895
- Manager Based
884896
- **rl_games** (PPO), **rsl_rl** (PPO), **skrl** (PPO)
897+
* - Isaac-Deploy-Reach-UR10e-v0
898+
- Isaac-Deploy-Reach-UR10e-Play-v0
899+
- Manager Based
900+
- **rsl_rl** (PPO)
885901
* - Isaac-Repose-Cube-Allegro-Direct-v0
886902
-
887903
- Direct
@@ -930,6 +946,14 @@ inferencing, including reading from an already trained checkpoint and disabling
930946
-
931947
- Manager Based
932948
-
949+
* - Isaac-Stack-Cube-UR10-Long-Suction-IK-Rel-v0
950+
-
951+
- Manager Based
952+
-
953+
* - Isaac-Stack-Cube-UR10-Short-Suction-IK-Rel-v0
954+
-
955+
- Manager Based
956+
-
933957
* - Isaac-Velocity-Flat-Anymal-B-v0
934958
- Isaac-Velocity-Flat-Anymal-B-Play-v0
935959
- Manager Based

docs/source/overview/reinforcement-learning/rl_existing_scripts.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,40 @@ RSL-RL
8787
:: run script for recording video of a trained agent (requires installing `ffmpeg`)
8888
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200
8989
90+
- Training and distilling an agent with
91+
`RSL-RL <https://github.com/leggedrobotics/rsl_rl>`__ on ``Isaac-Velocity-Flat-Anymal-D-v0``:
92+
93+
.. tab-set::
94+
:sync-group: os
95+
96+
.. tab-item:: :icon:`fa-brands fa-linux` Linux
97+
:sync: linux
98+
99+
.. code:: bash
100+
101+
# install python module (for rsl-rl)
102+
./isaaclab.sh -i rsl_rl
103+
# run script for rl training of the teacher agent
104+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Velocity-Flat-Anymal-D-v0 --headless
105+
# run script for distilling the teacher agent into a student agent
106+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Velocity-Flat-Anymal-D-v0 --headless --agent rsl_rl_distillation_cfg_entry_point --load_run teacher_run_folder_name
107+
# run script for playing the student with 64 environments
108+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 64 --agent rsl_rl_distillation_cfg_entry_point
109+
110+
.. tab-item:: :icon:`fa-brands fa-windows` Windows
111+
:sync: windows
112+
113+
.. code:: batch
114+
115+
:: install python module (for rsl-rl)
116+
isaaclab.bat -i rsl_rl
117+
:: run script for rl training of the teacher agent
118+
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\train.py --task Isaac-Velocity-Flat-Anymal-D-v0 --headless
119+
:: run script for distilling the teacher agent into a student agent
120+
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\train.py --task Isaac-Velocity-Flat-Anymal-D-v0 --headless --agent rsl_rl_distillation_cfg_entry_point --load_run teacher_run_folder_name
121+
:: run script for playing the student with 64 environments
122+
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\play.py --task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 64 --agent rsl_rl_distillation_cfg_entry_point
123+
90124
SKRL
91125
----
92126

docs/source/setup/installation/pip_installation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ If you encounter any issues, please report them to the
1515

1616
.. attention::
1717

18-
Installing Isaac Sim with pip requires GLIBC 2.34+ version compatibility.
18+
Installing Isaac Sim with pip requires GLIBC 2.35+ version compatibility.
1919
To check the GLIBC version on your system, use command ``ldd --version``.
2020

2121
This may pose compatibility issues with some Linux distributions. For instance, Ubuntu 20.04 LTS has GLIBC 2.31

scripts/demos/pick_and_place.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class PickAndPlaceEnvCfg(DirectRLEnvCfg):
8787

8888
# Surface Gripper, the prim_expr need to point to a unique surface gripper per environment.
8989
gripper = SurfaceGripperCfg(
90-
prim_expr="/World/envs/env_.*/Robot/picker_head/SurfaceGripper",
90+
prim_path="/World/envs/env_.*/Robot/picker_head/SurfaceGripper",
9191
max_grip_distance=0.1,
9292
shear_force_limit=500.0,
9393
coaxial_force_limit=500.0,

scripts/imitation_learning/isaaclab_mimic/annotate_demos.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ def annotate_episode_in_auto_mode(
407407
annotated_episode = env.recorder_manager.get_episode(0)
408408
subtask_term_signal_dict = annotated_episode.data["obs"]["datagen_info"]["subtask_term_signals"]
409409
for signal_name, signal_flags in subtask_term_signal_dict.items():
410+
signal_flags = torch.tensor(signal_flags, device=env.device)
410411
if not torch.any(signal_flags):
411412
is_episode_annotated_successfully = False
412413
print(f'\tDid not detect completion for the subtask "{signal_name}".')

scripts/reinforcement_learning/ray/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ def get_gpu_node_resources(
343343
or simply the resource for a single node if requested.
344344
"""
345345
if not ray.is_initialized():
346-
raise Exception("Ray is not initialized. Please initialize Ray before getting node resources.")
346+
ray_init()
347347
nodes = ray.nodes()
348348
node_resources = []
349349
total_cpus = 0

0 commit comments

Comments
 (0)