Skip to content

Commit

Permalink
Renames the project to Isaac Lab (isaac-sim#443)
Browse files Browse the repository at this point in the history
# Description

Renames the project to Isaac Lab:
- All the references to Orbit have been renamed to Isaac Lab
- The script `orbit.sh` has been renamed to `isaaclab.sh`
- `omni.isaac.orbit` has been renamed to `omni.isaac.lab`
- `omni.isaac.orbit_tasks` has been renamed to `omni.isaac.lab_tasks`
- `omni.isaac.orbit_assets` has been renamed to `omni.isaac.lab_assets`

## Type of change

- Breaking change

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./orbit.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have run all the tests with `./orbit.sh --test` and they pass
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
  • Loading branch information
Dhoeller19 authored Jun 1, 2024
1 parent 7af7aa8 commit ccfb84d
Show file tree
Hide file tree
Showing 566 changed files with 3,342 additions and 3,357 deletions.
2 changes: 1 addition & 1 deletion .github/LICENSE_HEADER.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2022-2024, The ORBIT Project Developers.
Copyright (c) 2022-2024, The Isaac Lab Project Developers.
All rights reserved.

SPDX-License-Identifier: BSD-3-Clause
6 changes: 3 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines.
Link: https://isaac-orbit.github.io/orbit/source/refs/contributing.html
Link: https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html
-->

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
Expand Down Expand Up @@ -40,11 +40,11 @@ To upload images to a PR -- simply drag and drop an image while in edit mode and

## Checklist

- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format`
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have run all the tests with `./orbit.sh --test` and they pass
- [ ] I have run all the tests with `./isaaclab.sh --test` and they pass
- [ ] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already exists there

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
build-docs:
name: Build and deploy documentation
runs-on: ubuntu-latest
if: github.repository == 'Isaac-Orbit/orbit' && github.ref == 'refs/heads/main'
if: github.repository == 'isaac-sim/IsaacLab' && github.ref == 'refs/heads/main'

steps:
- name: Checkout code
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ repos:
- id: pyupgrade
args: ["--py310-plus"]
# FIXME: This is a hack because Pytorch does not like: torch.Tensor | dict aliasing
exclude: "source/extensions/omni.isaac.orbit/omni/isaac/orbit/envs/base_env.py"
exclude: "source/extensions/omni.isaac.lab/omni/isaac/lab/envs/base_env.py"
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
Expand Down
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"label": "run_formatter",
"type": "shell",
"linux": {
"command": "${workspaceFolder}/orbit.sh --format"
"command": "${workspaceFolder}/isaaclab.sh --format"
}
}
]
Expand Down
2 changes: 1 addition & 1 deletion .vscode/tools/settings.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,6 @@
"editor.tabSize": 2
},
// Python extra paths
// Note: this is filled up when "./orbit.sh -i" is run
// Note: this is filled up when "./isaaclab.sh -i" is run
"python.analysis.extraPaths": []
}
110 changes: 57 additions & 53 deletions .vscode/tools/setup_vscode.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Copyright (c) 2022-2024, The ORBIT Project Developers.
# Copyright (c) 2022-2024, The Isaac Lab Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

"""This script sets up the vs-code settings for the orbit project.
"""This script sets up the vs-code settings for the Isaac Lab project.
This script merges the python.analysis.extraPaths from the "_isaac_sim/.vscode/settings.json" file into
the ".vscode/settings.json" file.
Expand All @@ -18,20 +18,20 @@
import pathlib


ORBIT_DIR = pathlib.Path(__file__).parents[2]
"""Path to the orbit directory."""
ISAACSIM_DIR = os.path.join(ORBIT_DIR, "_isaac_sim")
ISAACLAB_DIR = pathlib.Path(__file__).parents[2]
"""Path to the Isaac Lab directory."""
ISAACSIM_DIR = os.path.join(ISAACLAB_DIR, "_isaac_sim")
"""Path to the isaac-sim directory."""


def overwrite_python_analysis_extra_paths(orbit_settings: str) -> str:
"""Overwrite the python.analysis.extraPaths in the orbit settings file.
def overwrite_python_analysis_extra_paths(isaaclab_settings: str) -> str:
"""Overwrite the python.analysis.extraPaths in the Isaac Lab settings file.
The extraPaths are replaced with the path names from the isaac-sim settings file that exists in the
"_isaac_sim/.vscode/settings.json" file.
Args:
orbit_settings: The settings string to use as template.
isaaclab_settings: The settings string to use as template.
Returns:
The settings string with overwritten python analysis extra paths.
Expand All @@ -54,33 +54,33 @@ def overwrite_python_analysis_extra_paths(orbit_settings: str) -> str:
settings = settings.group(0)
settings = settings.split('"python.analysis.extraPaths": [')[-1]
settings = settings.split("]")[0]
# change the path names to be relative to the orbit directory
# change the path names to be relative to the Isaac Lab directory
path_names = settings.split(",")
path_names = [path_name.strip().strip('"') for path_name in path_names]
path_names = ['"${workspaceFolder}/_isaac_sim/' + path_name + '"' for path_name in path_names if len(path_name) > 0]
# combine them into a single string
path_names = ",\n\t\t".expandtabs(4).join(path_names)

# replace the path names in the orbit settings file with the path names from the isaac-sim settings file
orbit_settings = re.sub(
# replace the path names in the Isaac Lab settings file with the path names from the isaac-sim settings file
isaaclab_settings = re.sub(
r"\"python.analysis.extraPaths\": \[.*?\]",
'"python.analysis.extraPaths": [\n\t\t'.expandtabs(4) + path_names + "\n\t]".expandtabs(4),
orbit_settings,
isaaclab_settings,
flags=re.DOTALL,
)
# return the orbit settings string
return orbit_settings
# return the Isaac Lab settings string
return isaaclab_settings


def overwrite_default_python_interpreter(orbit_settings: str) -> str:
"""Overwrite the default python interpreter in the orbit settings file.
def overwrite_default_python_interpreter(isaaclab_settings: str) -> str:
"""Overwrite the default python interpreter in the Isaac Lab settings file.
The default python interpreter is replaced with the path to the python interpreter used by the
isaac-sim project. This is necessary because the default python interpreter is the one shipped with
isaac-sim.
Args:
orbit_settings: The settings string to use as template.
isaaclab_settings: The settings string to use as template.
Returns:
The settings string with overwritten default python interpreter.
Expand All @@ -89,62 +89,66 @@ def overwrite_default_python_interpreter(orbit_settings: str) -> str:
python_exe = sys.executable
# if python interpreter is from conda, use that. Otherwise, use the template.
if "conda" not in python_exe:
return orbit_settings
# replace the default python interpreter in the orbit settings file with the path to the
# python interpreter in the orbit directory
orbit_settings = re.sub(
return isaaclab_settings
# replace the default python interpreter in the Isaac Lab settings file with the path to the
# python interpreter in the Isaac Lab directory
isaaclab_settings = re.sub(
r"\"python.defaultInterpreterPath\": \".*?\"",
f'"python.defaultInterpreterPath": "{python_exe}"',
orbit_settings,
isaaclab_settings,
flags=re.DOTALL,
)
# return the orbit settings file
return orbit_settings
# return the Isaac Lab settings file
return isaaclab_settings


def main():
# orbit template settings
orbit_vscode_template_filename = os.path.join(ORBIT_DIR, ".vscode", "tools", "settings.template.json")
# make sure the orbit template settings file exists
if not os.path.exists(orbit_vscode_template_filename):
raise FileNotFoundError(f"Could not find the orbit template settings file: {orbit_vscode_template_filename}")
# read the orbit template settings file
with open(orbit_vscode_template_filename) as f:
orbit_template_settings = f.read()

# overwrite the python.analysis.extraPaths in the orbit settings file with the path names
orbit_settings = overwrite_python_analysis_extra_paths(orbit_template_settings)
# overwrite the default python interpreter in the orbit settings file
# Isaac Lab template settings
isaaclab_vscode_template_filename = os.path.join(ISAACLAB_DIR, ".vscode", "tools", "settings.template.json")
# make sure the Isaac Lab template settings file exists
if not os.path.exists(isaaclab_vscode_template_filename):
raise FileNotFoundError(
f"Could not find the Isaac Lab template settings file: {isaaclab_vscode_template_filename}"
)
# read the Isaac Lab template settings file
with open(isaaclab_vscode_template_filename) as f:
isaaclab_template_settings = f.read()

# overwrite the python.analysis.extraPaths in the Isaac Lab settings file with the path names
isaaclab_settings = overwrite_python_analysis_extra_paths(isaaclab_template_settings)
# overwrite the default python interpreter in the Isaac Lab settings file
# NOTE: thisis disabled since we don't need it. The default interpreter should always be the one from isaac-sim
# orbit_settings = overwrite_default_python_interpreter(orbit_settings)
# isaaclab_settings = overwrite_default_python_interpreter(isaaclab_settings)

# add template notice to the top of the file
header_message = (
"// This file is a template and is automatically generated by the setup_vscode.py script.\n"
"// Do not edit this file directly.\n"
"// \n"
f"// Generated from: {orbit_vscode_template_filename}\n"
f"// Generated from: {isaaclab_vscode_template_filename}\n"
)
orbit_settings = header_message + orbit_settings
isaaclab_settings = header_message + isaaclab_settings

# write the orbit settings file
orbit_vscode_filename = os.path.join(ORBIT_DIR, ".vscode", "settings.json")
with open(orbit_vscode_filename, "w") as f:
f.write(orbit_settings)
# write the Isaac Lab settings file
isaaclab_vscode_filename = os.path.join(ISAACLAB_DIR, ".vscode", "settings.json")
with open(isaaclab_vscode_filename, "w") as f:
f.write(isaaclab_settings)

# copy the launch.json file if it doesn't exist
orbit_vscode_launch_filename = os.path.join(ORBIT_DIR, ".vscode", "launch.json")
orbit_vscode_template_launch_filename = os.path.join(ORBIT_DIR, ".vscode", "tools", "launch.template.json")
if not os.path.exists(orbit_vscode_launch_filename):
isaaclab_vscode_launch_filename = os.path.join(ISAACLAB_DIR, ".vscode", "launch.json")
isaaclab_vscode_template_launch_filename = os.path.join(ISAACLAB_DIR, ".vscode", "tools", "launch.template.json")
if not os.path.exists(isaaclab_vscode_launch_filename):
# read template launch settings
with open(orbit_vscode_template_launch_filename) as f:
orbit_template_launch_settings = f.read()
with open(isaaclab_vscode_template_launch_filename) as f:
isaaclab_template_launch_settings = f.read()
# add header
header_message = header_message.replace(orbit_vscode_template_filename, orbit_vscode_template_launch_filename)
orbit_launch_settings = header_message + orbit_template_launch_settings
# write the orbit launch settings file
with open(orbit_vscode_launch_filename, "w") as f:
f.write(orbit_launch_settings)
header_message = header_message.replace(
isaaclab_vscode_template_filename, isaaclab_vscode_template_launch_filename
)
isaaclab_launch_settings = header_message + isaaclab_template_launch_settings
# write the Isaac Lab launch settings file
with open(isaaclab_vscode_launch_filename, "w") as f:
f.write(isaaclab_launch_settings)


if __name__ == "__main__":
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Contribution Guidelines

Orbit is a community maintained project. We wholeheartedly welcome contributions to the project to make
Isaac Lab is a community maintained project. We wholeheartedly welcome contributions to the project to make
the framework more mature and useful for everyone. These may happen in forms of bug reports, feature requests,
design proposals and more.

For general information on how to contribute see
<https://isaac-orbit.github.io/orbit/source/refs/contributing.html>.
<https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html>.
4 changes: 2 additions & 2 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Orbit Developers and Contributors
# Isaac Lab Developers and Contributors

This is the official list of Orbit Project developers and contributors.
This is the official list of Isaac Lab Project developers and contributors.

To see the full list of contributors, please check the revision history in the source control.

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2022-2024, The ORBIT Project Developers.
Copyright (c) 2022-2024, The Isaac Lab Project Developers.

All rights reserved.

Expand Down
31 changes: 15 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,59 @@
![Example Tasks created with ORBIT](docs/source/_static/tasks.jpg)
![Example Tasks created with Isaac Lab](docs/source/_static/tasks.jpg)

---

# Orbit
# Isaac Lab

[![IsaacSim](https://img.shields.io/badge/IsaacSim-2023.1.1-silver.svg)](https://docs.omniverse.nvidia.com/isaacsim/latest/overview.html)
[![Python](https://img.shields.io/badge/python-3.10-blue.svg)](https://docs.python.org/3/whatsnew/3.10.html)
[![Linux platform](https://img.shields.io/badge/platform-linux--64-orange.svg)](https://releases.ubuntu.com/20.04/)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://pre-commit.com/)
[![Docs status](https://img.shields.io/badge/docs-passing-brightgreen.svg)](https://isaac-orbit.github.io/orbit)
[![Docs status](https://img.shields.io/badge/docs-passing-brightgreen.svg)](https://isaac-sim.github.io/IsaacLab)
[![License](https://img.shields.io/badge/license-BSD--3-yellow.svg)](https://opensource.org/licenses/BSD-3-Clause)

<!-- TODO: Replace docs status with workflow badge? Link: https://github.com/isaac-orbit/orbit/actions/workflows/docs.yaml/badge.svg -->

**Orbit** is a unified and modular framework for robot learning that aims to simplify common workflows
**Isaac Lab** is a unified and modular framework for robot learning that aims to simplify common workflows
in robotics research (such as RL, learning from demonstrations, and motion planning). It is built upon
[NVIDIA Isaac Sim](https://docs.omniverse.nvidia.com/isaacsim/latest/overview.html) to leverage the latest
simulation capabilities for photo-realistic scenes and fast and accurate simulation.

Please refer to our [documentation page](https://isaac-orbit.github.io/orbit) to learn more about the
installation steps, features, tutorials, and how to set up your project with Orbit.
Please refer to our [documentation page](https://isaac-sim.github.io/IsaacLab) to learn more about the
installation steps, features, tutorials, and how to set up your project with Isaac Lab.

## Announcements

* [17.04.2024] [**v0.3.0**](https://github.com/NVIDIA-Omniverse/orbit/releases/tag/v0.3.0):
* [17.04.2024] [**v0.3.0**](https://github.com/isaac-sim/IsaacLab/releases/tag/v0.3.0):
Several improvements and bug fixes to the framework. Includes cabinet opening and dexterous manipulation environments,
terrain-aware patch sampling, and animation recording.

* [22.12.2023] [**v0.2.0**](https://github.com/NVIDIA-Omniverse/orbit/releases/tag/v0.2.0):
* [22.12.2023] [**v0.2.0**](https://github.com/isaac-sim/IsaacLab/releases/tag/v0.2.0):
Significant breaking updates to enhance the modularity and user-friendliness of the framework. Also includes
procedural terrain generation, warp-based custom ray-casters, and legged-locomotion environments.

## Contributing to Orbit
## Contributing to Isaac Lab

We wholeheartedly welcome contributions from the community to make this framework mature and useful for everyone.
These may happen as bug reports, feature requests, or code contributions. For details, please check our
[contribution guidelines](https://isaac-orbit.github.io/orbit/source/refs/contributing.html).
[contribution guidelines](https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html).

## Troubleshooting

Please see the [troubleshooting](https://isaac-orbit.github.io/orbit/source/refs/troubleshooting.html) section for
common fixes or [submit an issue](https://github.com/NVIDIA-Omniverse/orbit/issues).
Please see the [troubleshooting](https://isaac-sim.github.io/IsaacLab/source/refs/troubleshooting.html) section for
common fixes or [submit an issue](https://github.com/isaac-sim/IsaacLab/issues).

For issues related to Isaac Sim, we recommend checking its [documentation](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html)
or opening a question on its [forums](https://forums.developer.nvidia.com/c/agx-autonomous-machines/isaac/67).

## Support

* Please use GitHub [Discussions](https://github.com/NVIDIA-Omniverse/Orbit/discussions) for discussing ideas, asking questions, and requests for new features.
* Github [Issues](https://github.com/NVIDIA-Omniverse/orbit/issues) should only be used to track executable pieces of work with a definite scope and a clear deliverable. These can be fixing bugs, documentation issues, new features, or general updates.
* Please use GitHub [Discussions](https://github.com/isaac-sim/IsaacLab/discussions) for discussing ideas, asking questions, and requests for new features.
* Github [Issues](https://github.com/isaac-sim/IsaacLab/issues) should only be used to track executable pieces of work with a definite scope and a clear deliverable. These can be fixing bugs, documentation issues, new features, or general updates.

## Acknowledgement

NVIDIA Isaac Sim is available freely under [individual license](https://www.nvidia.com/en-us/omniverse/download/). For more information about its license terms, please check [here](https://docs.omniverse.nvidia.com/app_isaacsim/common/NVIDIA_Omniverse_License_Agreement.html#software-support-supplement).

Orbit framework is released under [BSD-3 License](LICENSE). The license files of its dependencies and assets are present in the [`docs/licenses`](docs/licenses) directory.
The Isaac Lab framework is released under [BSD-3 License](LICENSE). The license files of its dependencies and assets are present in the [`docs/licenses`](docs/licenses) directory.

## Citing

Expand Down
12 changes: 6 additions & 6 deletions docker/.env.base
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ ACCEPT_EULA=Y
ISAACSIM_VERSION=2023.1.1
# Derived from the default path in the NVIDIA provided Isaac Sim container
DOCKER_ISAACSIM_ROOT_PATH=/isaac-sim
# The Orbit path in the container
DOCKER_ORBIT_PATH=/workspace/orbit
# The Isaac Lab path in the container
DOCKER_ISAACLAB_PATH=/workspace/isaaclab
# Docker user directory - by default this is the root user's home directory
DOCKER_USER_HOME=/root

Expand All @@ -20,13 +20,13 @@ DOCKER_USER_HOME=/root
# Docker cache dir for Isaac Sim (has to end on docker-isaac-sim)
# e.g. /cluster/scratch/$USER/docker-isaac-sim
CLUSTER_ISAAC_SIM_CACHE_DIR=/some/path/on/cluster/docker-isaac-sim
# Orbit directory on the cluster (has to end on orbit)
# e.g. /cluster/home/$USER/orbit
CLUSTER_ORBIT_DIR=/some/path/on/cluster/orbit
# Isaac Lab directory on the cluster (has to end on isaaclab)
# e.g. /cluster/home/$USER/isaaclab
CLUSTER_ISAACLAB_DIR=/some/path/on/cluster/isaaclab
# Cluster login
CLUSTER_LOGIN=username@cluster_ip
# Cluster scratch directory to store the SIF file
# e.g. /cluster/scratch/$USER
CLUSTER_SIF_PATH=/some/path/on/cluster/
# Python executable within orbit directory to run with the submitted job
# Python executable within Isaac Lab directory to run with the submitted job
CLUSTER_PYTHON_EXECUTABLE=source/standalone/workflows/rsl_rl/train.py
Loading

0 comments on commit ccfb84d

Please sign in to comment.