- 25 Jul, 2023 2 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
# Description This MR adds checks to the `dataclass` wrapper called `configclass` to extend its support for types. This supports type hinting annotations such as `type`, `Type[Myclass]`, and `ClassVar[type]`. It also adds a method called `replace` to the configclass that calls the [`dataclasses.replace`](https://docs.python.org/3/library/dataclasses.html#dataclasses.replace) function. This has been added for the convenience of users. ## Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
-
- 22 Jul, 2023 2 commits
-
-
Mayank Mittal authored
# Description This PR adds the following managers similar to how we currently handle observation and reward terms. * **Termination Manager**: Iterates over all the configured terms and computes the done signals as an OR operator over each term's output. Additionally, `time_outs` are handled separately as they are optional (i.e. only used in fixed-length episodic learning). * **Randomization Manager**: Handles various randomization (such as resetting the state of the environments, and modifying various physics attributes). * **Curriculum Manager**: Iterates over all the configured terms and sets the curriculum setting into the environment accordingly. ## Type of change - New feature (non-breaking change which adds functionality) - This change requires a documentation update ## 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 - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file --------- Co-authored-by:
David Hoeller <dhoeller@ethz.ch>
Co-authored-by:
Nikita Rudin <nrudin@nvidia.com> -
David Hoeller authored
Modifies `ObservationManager` and `RewardManager` to take functions in each term's configuration (#61) # Description This PR modifies the `ObservationManager` and `RewardManager` to change their default behavior. Earlier they expected that users inherit from the class and define member functions inside it to compute the terms. The function name was resolved from the term name itself. However, this prevented the reuse of common terms and the rewriting of a lot of code across environments. The changes made in this PR add another argument `func` to the term dictionary which now expects a function directly. This way users can use the same function multiple times for different terms. Example: ```python def get_contact_force(env, bodies): .... class ObservationManagerCfg: term_1 = {"func": get_contact_force, "bodies": "base"} term_2 = {"func": get_contact_force, "bodies": ".*_FOOT"} ``` The older class implementations have been moved to `omni.isaac.orbit.compat.utils.mdp` for compatibility. Additionally, we include `ManagerBase` and `ManagerBaseTermCfg` as a base class to ensure a better signature on how configuration terms are handled. ## Type of change - Breaking change (fix or feature that would cause existing functionality to not work as expected) - This change requires a documentation update ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 21 Jul, 2023 3 commits
-
-
Mayank Mittal authored
# Description This PR introduces the concept of command generators that can be used for goal-conditioned environments. The idea is that these classes can be used for task specification and the same environment can be configured for different task logics (position-based locomotion vs velocity based control). Currently, the included command generators are specific to locomotion (SE(2) control). They have their own visualization schemes (arrows, boxes etc.) that can be useful for debugging. ## Type of change - New feature (non-breaking change which adds functionality) - This change requires a documentation update ## 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 - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
-
Mayank Mittal authored
# Description * Fixes the `omni.isaac.orbit.utils.math.quat_apply_yaw` to compute the yaw quaternion correctly. * Adds functions to convert string and callable objects in the `omni.isaac.orbit.utils.string` module. The function can deal with both module functions and lambda expressions. ## Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
-
Mayank Mittal authored
# Description Previously, type annotation was always required to make the terms follow the order in which they are defined in the configclass. If this was not done, then the terms were getting sorted alphabetically which made it different from the expected behavior (user-defined order). On further inspection, turned out that in our wrappers for configclass, we were using `dir(cls)` to parse the class members, which sorts all the members of the class alphabetically. Changing it to `cls.__dict__` fixed this issue since in Python 3.7 onwards, dictionaries follow the user-defined ordering. Since this behavior changes the way config terms are parsed, the old configclass still exists inside the `omni.isaac.orbit.compat.utils.configclass` module so that people can still run policies trained with the old ordering. ## Type of change - Bug fix (non-breaking change which fixes an issue) - Breaking change (fix or feature that would cause existing functionality to not work as expected) ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
-
- 11 Jul, 2023 1 commit
-
-
Mayank Mittal authored
# Description The `launch.json` file is very user-specific. Previously this was always getting pushed along with other commits which led to merge conflicts when merging branches from different users. Now, the `launch.json` is generated from a template if it doesn't already exist in the `.vscode` directory. The users can modify the `.vscode/launch.json` as they please afterward, but their changes won't get pushed to git itself. Fixes #46 ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - Bug fix (non-breaking change which fixes an issue) ## Checklist - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format` - [ ] 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 updated the changelog and the corresponding version in the extension's `config/extension.toml` file
-
- 07 Jul, 2023 1 commit
-
-
Mayank Mittal authored
-
- 06 Jul, 2023 2 commits
-
-
Mayank Mittal authored
# Description <!-- 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 --> As a step towards supporting sensors as "Views", this PR upgrades the `SensorBase` class to follow a similar definition as `RobotBase` and updates the sensor implementations as well. Now, the following sensors are supported: * `Camera`: This spawns a USD camera object and instantiates it with replicator OmniGraph for different synthetic data * `RayCaster`: This is a virtual sensor that uses a warp kernel for raycasting against static meshes. * `ContactSensor`: This wraps around the `RigidContactView` from PhysX to provide the contact forces on encapsulated prims. Note: Currently camera rendering is not truly parallelized. They are called sequentially inside the `Camera` to fetch their data. Additionally, some camera data such as bounding boxes are not possible to get in the torch backend. Due to this, they are not supported in the new `Camera` class. Old the old sensor implementations have been moved to the `omni.isaac.orbit.compat.sensors` module for backwards compatibility. We will remove them once we have moved to v1.0. Fixes #3 <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - This change requires a documentation update ## 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 - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
-
AutonomousHansen authored
# Description Adds a directory `docker` in the root of the repo, containing a `Dockerfile`, `dockerfile-compose.yaml`, `.env`, and utility script `container.sh` that wraps docker-compose CLI commands. The instructions in the documentation specify the installation steps and how to get the Isaac Sim docker image for completeness. To run a container, the user needs to create NGC credentials via the NVIDIA Developers program. After that they can run the script to launch the container: ```bash ./docker/container.sh start ./docker/container.sh enter ``` Also added an argument `-o` or `--docker` to the `orbit.sh` that calls the above script. The above then becomes: ```bash ./orbit.sh -o start ./orbit.sh -o enter ``` Fixes #23 ## Type of change - New feature (non-breaking change which adds functionality) ## 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 updated the changelog and the corresponding version in the extension's `config/extension.toml` file --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 05 Jul, 2023 1 commit
-
-
Mayank Mittal authored
# Description <!-- 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 --> Previously the `make_plane` function was always offsetting the terrain origin such that the origin of the plane coincides with (0, 0). This was done because when adding a ground plane, we wanted the origin to match the simulation origin. However, it introduced a bug in sub-terrain generator where we assume that all sub-terrains are origin at (size_x * 0.5, size_y * 0.5). The PR fixes this issue by making an explicit argument to `make_plane` called `centered`. Also adds comments to make it clear what the sub-terrain generator and terrain importer does. <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - Bug fix (non-breaking change which fixes an issue) ## Screenshots | Before | After | | ------ | ----- | | |  | ## 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 - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
-
- 04 Jul, 2023 1 commit
-
-
Mayank Mittal authored
# Description <!-- 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 --> Previously, we were having separate markers for frames, spheres, and height scanners, each of them having minute differences. This PR includes a more general wrapping around the [`USDGeom.PointInstancer`](https://graphics.pixar.com/usd/dev/api/class_usd_geom_point_instancer.html) to configure markers through configclass object. Additionally, it moves to faster [`pxr.Vt`](https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/api/pxr.html#module-pxr.Vt) arrays instead of keeping a list of [`pxr.Gf`](https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/api/pxr.html#module-pxr.Gf) arrays. The old markers still exist for now until we move to v1.0 release. They are present in the `omni.isaac.orbit.compat` module. <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - This change requires a documentation update ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
-
- 28 Jun, 2023 4 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
# Description <!-- 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 --> This PR ports in the functions for procedurally generating different terrains. The terrains can be generated as heightfields (2.5 D elevation map) or meshes (through `trimesh`). There are two separate classes: * `TerrainGenerator`: This class only procedurally generates terrains based on the passed sub-terrain configuration. It creates the trimesh object and contains the origins of each terrain in the mesh. Additionally, it performs caching of the sub-terrain meshes based on their configuration. By default, caching is disabled since most developers will change not only the config, but also the function. * `TerrainImporter`: This class mainly deals with importing terrains from different possible sources and adding them to the simulator. In addition to importing terrains, it also stores them into a dictionary called `warp_meshes` that later can be used for ray-casting. The types of terrain sources are as follows: * `import_ground_plane`: creates a grid plane which is default in isaacsim/orbit. * `import_mesh`: takes a trimesh object * `import_usd`: takes a USD file and adds reference to it <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - New feature (non-breaking change which adds functionality) ## Screenshots  <!-- Example: | Before | After | | ------ | ----- | | _gif/png before_ | _gif/png after_ | To upload images to a PR -- simply drag and drop an image while in edit mode and it should upload the image directly. You can then paste that source into the above before/after sections. --> ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
-
AutonomousHansen authored
# Description Adds the class `AppLauncher` which takes configuration arguments to the Isaac Sim `SimulationApp` and several environment variables. It launches the SimulationApp and corresponding extensions in a controlled manner allowing users to decide between different remote deployments, ROS bridges, and viewport rendering. AppLauncher can then be queried for logic on other SimulationApp operations e.g. whether or not `SimulationContext.step()` should render or not based on the resolved flags `AppLauncher.VIEWPORT` and `AppLauncher.RENDER`. Fixes #32 ## Type of change - New feature (non-breaking change which adds functionality) - This change requires a documentation update ## 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 - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file --------- Co-authored-by:
Farbod Farshidian <ffarshidian@theaiinstitute.com>
Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com> -
Farbod Farshidian authored
# Description Adds a helper class that converts a urdf description into an instanceable usd file with separate meshes. If a `usd_dir` is provided, the conversion is lazy: It only performs conversion if the provided `UrdfLoaderCfg` or the main URDF file is modified. The current implementation does not automatically trigger USD generation if only mesh files are changed. Fixes #35 ## Type of change - New feature (non-breaking change which adds functionality) - This change requires a documentation update ## 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 - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 26 Jun, 2023 1 commit
-
-
Mayank Mittal authored
# Description <!-- 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 --> Since many of us are working, it makes sense to have a spell checker to ensure we have the right words everywhere. The PR adds [codespell](https://github.com/codespell-project/codespell) to the pre-commit file that allows checking for typos/spellings in the repository. The tool is available under a GPL-2.0 license and is fetched using its PyPi release. The repo's BSD-3 is compatible with GNU-GPL family of licenses. We do not modify any of the codespell's source code. The license file is included in the repository for the sake of completion. <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - New feature (non-breaking change which adds functionality) <!-- Example: | Before | After | | ------ | ----- | | _gif/png before_ | _gif/png after_ | To upload images to a PR -- simply drag and drop an image while in edit mode and it should upload the image directly. You can then paste that source into the above before/after sections. --> ## 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 updated the changelog and the corresponding version in the extension's `config/extension.toml` file <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
-
- 08 Jun, 2023 1 commit
-
-
Mayank Mittal authored
Setuptools 67.0 onwards does not support malformed strings. As mentioned in their release notes, users must conform to PEP specifications strictly (i.e. will result in build errors if not complied). The MR fixes the `setuptools` package version to be <=66, so that the users can still continue using the gym==0.21.0. Though long-term we should switch to using Gymnasium. Additionally, it removes the malformed strings in Orbit packages to follow the new `setuptools`.
-
- 27 May, 2023 1 commit
-
-
Mayank Mittal authored
* adds info on orbit in isaac ecosystem * simplifies developer guide * updates roadmap * adds isaacsim version note * fixes the bibtex entry
-
- 08 May, 2023 1 commit
-
-
Mayank Mittal authored
-
- 28 Apr, 2023 1 commit
-
-
Mayank Mittal authored
* updates envs to pass all keyword args to isaac-env * adds rendering modes to IsaacEnv * fixes loading of extensions for viewport rendering * adds unit test for recording videos of all envs * adds physx spellings to vscode settings.json * adds video logging to all workflow scripts * updates changelog and version * adds function to print callables in dict * adds documentation on env wrappers --------- Signed-off-by:
Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
-
- 24 Apr, 2023 3 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
-
Kourosh Darvish authored
* adds initialize to rmpflow controller * adds demo script to play rmpflow * fixes bugs in dealing with multiple command types * adds right end-effector frame for franka lula * adds demo script for rmpflow * updates config and changelog --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 23 Apr, 2023 2 commits
-
-
Chenyu Yang authored
* Enlarges the hard-coded success range from 0.002 to 0.02 * Updates observations in BC configs from `object_positions` to `object_relative_tool_positions`
-
Chenyu Yang authored
* Adds `se3_gamepad` and `se2_gamepad` * Update changelog and version * Adds unsubscribing when destroying --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 22 Apr, 2023 3 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
-
Mayank Mittal authored
-
- 15 Apr, 2023 1 commit
-
-
Rosario Scalise authored
add dataclass decorator to SingleArmCfg.DataInfoCfg class
-
- 14 Apr, 2023 2 commits
-
-
Mayank Mittal authored
-
Calvin Yu authored
* updates documentation for creating a new env * updates gitignore for orbit_assets --------- Co-authored-by:
Mayank Mittal <mittalma@leggedrobotics.com>
-
- 13 Apr, 2023 2 commits
-
-
Mayank Mittal authored
* fixes sb3 configs for missing agent seed * fixes encoding issue when loading yaml configs * adds launch.json task for running environment
-
Salar authored
* dealing with negative w component in quat * fix bug on subtract_fram_transform by applying the rotation * update version and changelog
-
- 07 Apr, 2023 2 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
* fixes the feet air time in `LeggedRobot` class * fixes set joint efforts on reset in `RobotBase` class * fix gripper mimic duplication in `GripperActuatorGroup` class * updates version and changelog
-
- 02 Apr, 2023 1 commit
-
-
Mayank Mittal authored
-
- 28 Mar, 2023 2 commits
-
-
Mayank Mittal authored
-
Mayank Mittal authored
* adds creating conda envronment using orbit.sh (-c) * fixes running of formatter in orbit.sh (-f) * adds docs building to orbit.sh (-d) * updates docs with orbit.sh help, vscode instructions and state machine sample
-