1. 02 Nov, 2023 3 commits
    • Mayank Mittal's avatar
      Modifies the project license and adds CONTRIBUTORS.md (#169) · 137f836d
      Mayank Mittal authored
      # Description
      
      This MR adds the `CONTRIBUTORS.md` file, which lists the following three
      categories:
      
      * **Developers**: Individuals or organizations that are actively
      maintaining and developing the project. They have "ownership" of the
      project.
      * **Contributors**: Individuals or organizations who are providing
      contributions to the project but are not directly involved in its maintenance.
      * **Acknowledgements**: Individuals or organizations who are involved in
      discussions but have not contributed through code to the project.
      
      All files henceforth use the copyright to the "ORBIT Project Developers"
      instead of individuals or organizations.
      
      When sending an MR, the user needs to add their name to this list. This
      is mandatory for license agreements and is meant to protect
      organizations.
      
      ## Type of change
      
      - 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
      - [ ] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      137f836d
    • Pascal Roth's avatar
      Adds raycasting-based camera implementation (#159) · 5c3fa70f
      Pascal Roth authored
      This MR adds the `RayCasterCamera` as a ray-cast-based camera for
      "distance_to_camera", "distance_to_image_plane" and "normals"
      annotations. It has the same interface and functionalities as the USD
      Camera wrapper, while it is, on average, 30% faster.
      
      Fixes #131
      
      - Bug fix (non-breaking change which fixes an issue)
      - New feature (non-breaking change which adds functionality)
      - This change requires a documentation update
      
      - [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
      - [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
      
      ---------
      Signed-off-by: 's avatarPascal Roth <57946385+pascal-roth@users.noreply.github.com>
      Co-authored-by: 's avatarMayank Mittal <mittalma@leggedrobotics.com>
      5c3fa70f
    • Mayank Mittal's avatar
      Reorganizes configuration files for locomotion velocity environment (#220) · e7d43de3
      Mayank Mittal authored
      # Description
      
      This MR does the following:
      
      * Changes the way environment and agent configs are handled. These are
      now moved to their respective `env` folder.
      * Replaces YAML file with configclasses for rsl_rl library
      * Adds examples of other robots for locomotion-velocity task: anymal-b,
      unitree-a1, and anymal-d (placeholder)
      
      The new environment folder structure is as follows:
      
      ```
      my_task (folder)
         |- mdp  (folder where all user's task-specific terms are stored)
         |- config
             |- robot_name_1  (folder)
                  |- robot_specific_env_cfg.py
                  | agents (folder)
                      |- rsl_rl_cfg.py
                      |- sb3_cfg.py
                      |- ....
                  |- __init__.py (register robot-specific tasks)
             |- robot_name_2 (folder)  
         |- my_task_env_cfg.py (base env config)
         |- my_task_env.py (base env -- optional -- should normally use RLEnv)
      ```
      
      Fixes #142 
      
      ## Type of change
      
      - New feature (non-breaking change which adds functionality)
      - 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`
      - [ ] 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: 's avatarNikita Rudin <nrudin@nvidia.com>
      e7d43de3
  2. 01 Nov, 2023 3 commits
    • Mayank Mittal's avatar
      Fixes absolute paths in instanceable meshes with URDF Converter (#225) · a9b5df11
      Mayank Mittal authored
      # Description
      
      With at least Isaac Sim 2023.1 (not checked on 2022.2.1), the URDF
      importer from Isaac Sim seems to save the material paths as absolute
      when trying to save the asset in its instanceable format. The material
      paths are relative when the USD is generated as non-instanceable.
      
      This MR fixes this behavior by adding a post-processing step that
      iterates over the instanced mesh file and resolves all paths to become
      relative.
      
      You can use the tool by running the following:
      
      ```bash
      ./orbit.sh -p source/tools/convert_urdf.py ~/git/anymal_d_simple_description/urdf/anymal.urdf source/extensions/omni.isaac.orbit_assets/data/Robots/ANYbotics/ANYmalD/anymal_instanceable.usda --merge-joints --make-instanceable
      ```
      
      ## 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`
      - [ ] 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
      a9b5df11
    • Mayank Mittal's avatar
      Fixes ground color and setting of ground transformation (#224) · 72035785
      Mayank Mittal authored
      # Description
      
      This MR fixes the color of the ground in Orbit. It is now black since we
      like that color more.
      
      It also fixes the setting of the translation of the ground plane.
      Earlier, it was taking z height from the configuration. Instead, now it
      expects to get the full translation as an argument to its function. This
      is needed to make it consistent with interactive scene designing API.
      
      ## 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)
      
      ## Screenshot
      
      
      ![new_ground](https://github.com/isaac-orbit/orbit/assets/12863862/8e729cb4-875f-476f-aa32-39cab38ad925)
      
      ## 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      72035785
    • Mayank Mittal's avatar
      Changes default value in USD attribute setters and fixes tests (#219) · 552f162c
      Mayank Mittal authored
      # Description
      
      This MR does the following:
      * Removes the default value for argument `camel_case` in the USD setter
      functions. This was causing confusion when reading code.
      * Fixed the UI behavior that material was getting selected on spawning
      * Fixed the unit tests under `sim`
      
      ## Type of change
      
      - 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
      - [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
      552f162c
  3. 31 Oct, 2023 1 commit
  4. 28 Oct, 2023 2 commits
    • Mayank Mittal's avatar
      Puts all environment-related scripts in inference mode (#215) · 73f26f6b
      Mayank Mittal authored
      # Description
      
      When having agent-environment interaction, it is important to ensure
      that PyTorch constructs no computational graph. Otherwise, it will keep
      allocating memory for gradients and result in out-of-memory error.
      
      This MR wraps all scripts with `torch.inference_mode()` to prevent this
      issue.
      
      ## Type of change
      
      - 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
      73f26f6b
    • Mayank Mittal's avatar
      Separates out the UI window from RLEnv class (#214) · 34f8b443
      Mayank Mittal authored
      # Description
      
      This MR implements a long-awaited feature of separating out the UI and
      UI-related operations outside the environment class.
      
      The user can also set the UI window class themselves through the
      configuration. This makes the UI window modular and provides more
      freedom for future additions.
      
      ## Type of change
      
      - New feature (non-breaking change which adds functionality)
      
      ## Screenshots
      
      Also updated the GUI with various functionalities. This was kind of the
      motivation to separate out the UI into a different window.
      
      
      ![new-gui](https://github.com/isaac-orbit/orbit/assets/12863862/813bc39f-a968-4222-a1d9-d5c4df72653d)
      
      ## 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      
      ---------
      Signed-off-by: 's avatarMayank Mittal <12863862+Mayankm96@users.noreply.github.com>
      Co-authored-by: 's avatarDavid Hoeller <dhoeller@ethz.ch>
      34f8b443
  5. 27 Oct, 2023 7 commits
    • Mayank Mittal's avatar
      Modifies behavior of debug visualization for better UI experience (#208) · 571189b1
      Mayank Mittal authored
      # Description
      
      Earlier the UI was disabling buttons for which the config object set
      `debug_vis` flag as False. This wasn't an elegant behavior as users may
      want to enable the visualization from the GUI at runtime. This MR
      modifies the behavior of all classes that provide debug visualization to
      support this behavior.
      
      ## Type of change
      
      - 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      571189b1
    • Mayank Mittal's avatar
      Fixes typo in constructor for physics events (#217) · 6ae3c3fb
      Mayank Mittal authored
      # Description
      
      This MR fixes a bug introduced in #207 which was assigning tuples to the
      `invalidate_handle` member in `AssetBase` and `SensorBase`.
      
      ## 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      6ae3c3fb
    • Pascal Roth's avatar
      Fixes using strings for shapes in `MeshRepeatedObjectsTerrainCfg` (#213) · bac97356
      Pascal Roth authored
      # Description
      
      Meshes such as "box", "cylinder" and "cone" are defined in
      `omni.isaac.orbit.terrains.trimesh.utils.py` and can be used in configs
      such as
      [here](https://github.com/isaac-orbit/orbit/blob/17fc724de7386c919f6f0367980c1d8e9855c446/extensions/omni.isaac.orbit/omni/isaac/orbit/terrains/trimesh/mesh_terrains_cfg.py#L187).
      In the example, their definition as a string is allowed but as they are
      not explicitly imported, the general statement cannot capture the
      missing functions. This PR makes sure that all mesh helper functions in
      `utils.py` are imported and that the string format can be used.
      
      ## Type of change
      
      - 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
      bac97356
    • Mayank Mittal's avatar
      Makes BaseEnv and RLEnv consistent with desired definitions (#197) · 447aa318
      Mayank Mittal authored
      # Description
      
      As discussed in the past, the `BaseEnv` should only contain an
      observation-action interface, while `RlEnv` should contain also the
      task-specific interface. Based on this, the MR introduces the following
      changes:
      
      * Moves randomization manager to the `BaseEnv` class with the default
      settings to reset the scene to the defaults specified in the
      configurations of assets.
      * Moves command generator to `RlEnv` class
      * Adds a `NullCommandGenerator` for no command environments: This is
      easier to work with than having checks for None.
      
      ## 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
      - [ ] 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
      
      ---------
      Signed-off-by: 's avatarMayank Mittal <12863862+Mayankm96@users.noreply.github.com>
      Co-authored-by: 's avatarjsmith-bdai <142246516+jsmith-bdai@users.noreply.github.com>
      447aa318
    • Mayank Mittal's avatar
      Updates pre-commit to latest hooks (#212) · 97d684c3
      Mayank Mittal authored
      # Description
      
      Updates pre-commit to latest hooks to deal with flake8 upgrades.
      
      ## Type of change
      
      - 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
      97d684c3
    • AutonomousHansen's avatar
      Fix broken bash version evaluation in Dockerfile (#211) · 81fa26d1
      AutonomousHansen authored
      # Description
      
      Tiny PR to fix bash evaluation of ISAACSIM_VERSION in Dockerfile.
      Before, it would fail and streaming from Isaac2022.2.1 would fail.
      
      ## Type of change
      
      - 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
      81fa26d1
    • Mayank Mittal's avatar
      Fixes training of anymal rough terrain locomotion (#207) · 42671ec3
      Mayank Mittal authored
      # Description
      
      Fixes the environment standalone scripts and rough terrain locomotion
      training.
      
      
      ## Type of change
      
      - 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      42671ec3
  6. 26 Oct, 2023 2 commits
    • Mayank Mittal's avatar
      d46c8107
    • AutonomousHansen's avatar
      Renames `VIEWPORT_ENABLED` to `OFFSCREEN_RENDERING` for clarity (#167) · f733830f
      AutonomousHansen authored
      # Description
      
      - Made SimulationContext correctly report RenderMode for streaming
      - Changed language about HEADLESS in RenderMode to instead be NO_GUI,
      because headlessness still requires rendering when livestreaming is
      active, whereas NO_GUI is unambiguous. Also did some reordering of
      docstrings for clarity.
      - Removed unnecessary RENDER and VIEWPORT class vars from LauncherApp,
      now that this signal is being taken from SimulationContext.
      
      I will propagate this change to all standalone scripts/update docs once
      I have conceptual approval.
      
      Fixes #90, #145 
      
      ## 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
      
      ---------
      Signed-off-by: 's avatarAutonomousHansen <50837800+AutonomousHansen@users.noreply.github.com>
      Co-authored-by: 's avatarMayank Mittal <mittalma@leggedrobotics.com>
      f733830f
  7. 25 Oct, 2023 6 commits
    • Mayank Mittal's avatar
      Adds observation and action spaces to the `RLEnv` class (#206) · 96737252
      Mayank Mittal authored
      # Description
      
      Adds missing observation and action spaces to the `RLEnv` class. Some
      standalone scripts were using these and were erroring out since they
      were not implemented.
      
      ## Type of change
      
      - 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      96737252
    • jsmith-bdai's avatar
      Add spawner functionality to allow direct loading of OBJ/STL/FBX assets (#138) · 64f810fa
      jsmith-bdai authored
      # Description
      
      This PR enables users to convert meshes from OBJ, STL or FBX format to
      USD with a few options:
      - Asset instanceable
      - Mass properties
      - Rigid body properties
      - Collision properties - including mesh approximation method
      
      The layer hierarchy is as follows;
      ```
      /World/
           [MESH_OBJECT_NAME] - Xform
               [INPUT_MESH_NAME]_xform - Xform
                      /Looks/ - Material
                      [MESH] - Mesh
      ```
      
      Fixes #34. 
      
      ## Type of change
      
      - New feature (non-breaking change which adds functionality)
      
      ## Screenshots
      
      The screenshot below shows this with a duck example.
      
      
      ![image](https://github.com/isaac-orbit/orbit/assets/142246516/142afb96-7e35-427b-94a6-a066a2742b9b)
      
      ## 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
      - [ ] 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
      
      ---------
      Signed-off-by: 's avatarjsmith-bdai <142246516+jsmith-bdai@users.noreply.github.com>
      Co-authored-by: 's avatarMayank Mittal <mittalma@leggedrobotics.com>
      64f810fa
    • Mayank Mittal's avatar
      Adds new operations into different managers (#199) · d2ad4cf6
      Mayank Mittal authored
      # Description
      
      This MR adds new operations to the various managers. These include:
      
      * Adds a method `compute_group` to compute observations based on
      group-names
      * Adds methods to retrieve and set term configurations into some of the
      managers
      * Adds a method to modify reward term's weights as a curriculum
      
      ## 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`
      - [ ] 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
      d2ad4cf6
    • Mayank Mittal's avatar
      Adds support for keyword arguments into `ManagerBase` (#198) · 00702aa3
      Mayank Mittal authored
      # Description
      
      This MR adds support for keyword arguments into the `ManagerBase` class.
      This helps in defining some default arguments into the term function
      call, which makes the configuration for those terms easier. Earlier, we
      had a lot of `SceneEntity("robot")` references, which is redundant for
      most cases that we are interested in.
      
      ## Type of change
      
      - 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`
      - [ ] 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
      
      ---------
      Signed-off-by: 's avatarMayank Mittal <12863862+Mayankm96@users.noreply.github.com>
      Co-authored-by: 's avatarFarbod Farshidian <ffarshidian@theaiinstitute.com>
      00702aa3
    • Mayank Mittal's avatar
      Adds body acceleration and heading data to `RigidObjectData` (#200) · cd645f74
      Mayank Mittal authored
      # Description
      
      This MR adds rigid body acceleration and heading data into the
      `RigidObjectData` class.
      
      ## 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`
      - [ ] 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
      
      ---------
      Signed-off-by: 's avatarMayank Mittal <12863862+Mayankm96@users.noreply.github.com>
      Co-authored-by: 's avatarNikita Rudin <48368649+nikitardn@users.noreply.github.com>
      cd645f74
    • Mayank Mittal's avatar
      Adds support for drift in `RayCaster` and makes fields in `ContactSensorData` optional (#201) · 514baa4a
      Mayank Mittal authored
      # Description
      
      This MR adds support for 2D drift into the `RayCaster`. It also makes
      certain attributes in the `ContactSensorData` optional since they are
      not needed by default.
      
      ## Type of change
      
      - Bug fix (non-breaking change which fixes an issue)
      - 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`
      - [ ] 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
      514baa4a
  8. 21 Oct, 2023 1 commit
    • Mayank Mittal's avatar
      Fix the double ellipsis issue when resolving indices (#196) · c6af307a
      Mayank Mittal authored
      # Description
      
      Earlier in the code, we were using the `Ellipsis` object to index the
      dimensions of the tensor. This led to situations where
      we indexed multi-dimension tensors as: `x[..., ..., 0]`. This now leads
      to errors with Python 3.10.
      
      The MR replaces `Ellipsis` with the `slice(None)` object, which results
      in indexing as: `x[:, :, 0]`.
      
      ## Type of change
      
      - 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
      - [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: 's avatarFarbod Farshidian <ffarshidian@theaiinstitute.com>
      c6af307a
  9. 19 Oct, 2023 3 commits
    • Mayank Mittal's avatar
      0396cf07
    • Mayank Mittal's avatar
      Adds preview features for black formatter (#192) · aa220dbc
      Mayank Mittal authored
      # Description
      
      Adds `--preview` feature to the black formatter which also takes care of
      the string representations in the code. This feature will become the
      default setting in the next release of black
      (https://github.com/psf/black/issues/1802).
      
      ## 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`
      - [ ] 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
      aa220dbc
    • Mayank Mittal's avatar
      Fixes issue with applying actuator model in Articulation (#194) · 36471c3a
      Mayank Mittal authored
      # Description
      
      * Fixed bugs in actuator model implementation for actuator nets.
      Earlier, the DC motor clipping was not working.
      * Fixed bug in applying actuator model in the
      `omni.isaac.orbit.asset.Articulation` class. The new
      implementation caches the outputs from the explicit actuator model into
      the `_joint_pos_*_sim` buffer to
        avoid feedback loops in the tensor operation.
      
      ## Type of change
      
      - 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
      - [x] I have updated the changelog and the corresponding version in the
      extension's `config/extension.toml` file
      36471c3a
  10. 18 Oct, 2023 4 commits
    • Mayank Mittal's avatar
      Adds semantic tags into spawner configuration (#186) · 570dec32
      Mayank Mittal authored
      # Description
      
      This MR adds support for adding semantic tag labels to the spawner
      config. It uses the format provided by replicator to label something as
      a class type name and class data name. For example: ("fruit",
      "avocado").
      
      ## 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`
      - [ ] 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
      570dec32
    • AutonomousHansen's avatar
      Adds method for simulation CLI arguments to the `AppLauncher` class (#160) · 39f95498
      AutonomousHansen authored
      # Description
      
      Adds `add_app_launcher_args` function to the `AppLauncher` class, which
      can be used to add AppLauncher-specific arguments to an existing
      ArgumentParser instance.
      
      Because everything we pass is then passed to SimulationApp as a config,
      the MR also adds the `check_config()` function. This compares the key
      values of a dict and raises a ValueError in the following cases:
      * if they have a key reserved for a SimulationApp config parameter but
      incorrect value types
      * if the value type is correct, it informs the user if a dict item they
      passed will be interpreted as a SimulationApp config parameter.
      Non-SimulationApp relevant keys are cleaned from the dict before it is
      passed to SimulationApp.
      
      Also separated out the giant `AppLauncher.__init__` function into a few
      sub-functions to make things more readable.
      
      ## 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
      - [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
      
      ---------
      Signed-off-by: 's avatarAutonomousHansen <50837800+AutonomousHansen@users.noreply.github.com>
      Co-authored-by: 's avatarMayank Mittal <mittalma@leggedrobotics.com>
      39f95498
    • jsmith-bdai's avatar
      Fixes typo in the Dockerfile (#193) · 3473efb6
      jsmith-bdai authored
      # Description
      Docker was failing to build with: `./container.sh start orbit`, because
      there was a missing `;` inside the Dockerfile. The failure was:
      ```
       => ERROR [orbit 3/9] RUN if [[ "${ISAACSIM_VERSION}" == "2022.2"* ]]; then         sed -i 's/\("omni.isaac.quadruped"\s=\s{}\)/"omni.isaac.quadruped" = {order = 10}/g'         /isaac-sim/apps/omni.isaac.sim.python.kit     fi                                   0.4s
      ------                                                                                                                                                                                                                                                                   
       > [orbit 3/9] RUN if [[ "${ISAACSIM_VERSION}" == "2022.2"* ]]; then         sed -i 's/\("omni.isaac.quadruped"\s=\s{}\)/"omni.isaac.quadruped" = {order = 10}/g'         /isaac-sim/apps/omni.isaac.sim.python.kit     fi:
      0.350 /bin/sh: 1: Syntax error: end of file unexpected (expecting "fi")
      ------
      failed to solve: process "/bin/sh -c if [[ \"${ISAACSIM_VERSION}\" == \"2022.2\"* ]]; then         sed -i 's/\\(\"omni.isaac.quadruped\"\\s=\\s{}\\)/\"omni.isaac.quadruped\" = {order = 10}/g'         ${ISAACSIM_PATH}/apps/omni.isaac.sim.python.kit     fi" did not complete successfully: exit code: 2
      ```
      
      This PR adds in the `;`.
      
      ## Type of change
      
      - 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
      3473efb6
    • Mayank Mittal's avatar
      add5d3d5
  11. 14 Oct, 2023 1 commit
  12. 13 Oct, 2023 2 commits
    • David Hoeller's avatar
      Update tasks.json to use Isaac Sim python (#176) · c719c596
      David Hoeller authored
      Minor fix to have the task being setup correctly in docker/ngc.
      Otherwise it might complain that python3 does not exist.
      Signed-off-by: 's avatarDavid Hoeller <dhoeller@ethz.ch>
      c719c596
    • Mayank Mittal's avatar
      Adds action term for inverse kinematics (#182) · b4adf21c
      Mayank Mittal authored
      # Description
      
      This MR simplifies the `DifferentialInverseKinematics` to expect that
      the user gives the right frame for the end-effector pose as inputs.
      Additionally, it adds the action term corresponding to the controller.
      
      ## Type of change
      
      - 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`
      - [ ] 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
      b4adf21c
  13. 12 Oct, 2023 2 commits
    • Mayank Mittal's avatar
      Adds try-catch in all the scripts for safe app closing (#185) · 07fc74d2
      Mayank Mittal authored
      # Description
      
      Propogates the try-except-finally paradigm from the unit tests to all
      the scripts. This ensures a cleaner exit of the script and allows a
      better traceback print.
      
      ```python
      import traceback
      
      import carb
      
      if __name__ == "__main__":
          try:
              # Run the main function
              main()
          except Exception as err:
              carb.log_error(err)
              carb.log_error(traceback.format_exc())
              raise
          finally:
              # close sim app
              simulation_app.close()
      ```
      
      ## 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`
      - [ ] 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
      07fc74d2
    • Mayank Mittal's avatar
      Fixes the issue with using callbacks inside python classes (#181) · 8ba18efa
      Mayank Mittal authored
      # Description
      
      In Python, memory management is based on reference counts, where an
      object isn't "truly" deleted if it has variables referring to the memory
      address. More details:
      https://www.pythontutorial.net/advanced-python/python-references/
      
      In Orbit code, we provide "self" to various callbacks, which increments
      the reference counts since they "refer" to the object. This means that
      when we do:
      ```python
      robot = Articulation(cfg=ANYMAL_C_CFG)
      ```
      The reference count is 3: one for the `robot` variable and two for the
      callbacks we launched on separate threads.
      
      Now, if we try to delete the object by doing `del robot`, the reference
      count becomes 2. These correspond to the callbacks that were launched.
      However, the destructor `__del__()` isn't called yet because it is only
      done when all the reference counts are 0.
      
      As a fix, this MR uses a proxy weak reference to "self" when passing it
      to underlying callbacks or other classes. This does not increment the
      reference count for the object; thereby, when the main object is
      deleted, all ts proxy references become invalid as well.
      
      ## Type of change
      
      - 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`
      - [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
      8ba18efa
  14. 04 Oct, 2023 1 commit
    • Mayank Mittal's avatar
      Fixes the visualization markers to use the SpawnerCfg class (#162) · 9a61666c
      Mayank Mittal authored
      # Description
      
      * This MR fixes the `VisualizationMarkers` class to use the
      `SpawnerCfg`. This makes it consistent with how assets are spawned and
      allows more variations.
      * The markers also support instanceable meshes. This is done by
      disabling their instancing (as PointInstancer does not support
      pre-instanced assets) and removing any rigid body APIs from the asset.
      
      Fixes #144 
      
      ## Type of change
      
      - Bug fix (non-breaking change which fixes an issue)
      - 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
      
      ## Screenshots
      
      https://github.com/isaac-orbit/orbit/assets/12863862/9d1b095b-99ee-4759-ba30-6175cc3b7d78
      
      ## 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
      - [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
      9a61666c
  15. 26 Sep, 2023 2 commits