Skip to content

Releases: isaac-sim/IsaacLab

v1.0.0

26 Jun 08:37
Compare
Choose a tag to compare

👀 Overview

Welcome to the first official release of Isaac Lab!

Building upon the foundation of the Orbit framework, we have integrated the RL environment designing workflow from OmniIsaacGymEnvs. This allows users to choose a suitable task-design approach for their applications.

While we maintain backward compatibility with Isaac Sim 2023.1.1, we highly recommend using Isaac Lab with Isaac Sim 4.0.0 version for the latest features and improvements.

Full Changelog: v0.3.1...v1.0.0

✨ New Features

  • Integrated CI/CD pipeline, which is triggered on pull requests and publishes the results publicly
  • Extended support for Windows OS platforms
  • Added tiled rendered based Camera sensor implementation. This provides optimized RGB-D rendering throughputs of up to 10k frames per second.
  • Added support for multi-GPU and multi-node training for the RL-Games library
  • Integrated APIs for environment designing (direct workflow) without relying on managers
  • Added implementation of delayed PD actuator model
  • Added various new learning environments :
    • Cartpole balancing using images
    • Shadow hand cube reorientation
    • Boston Dynamics Spot locomotion
    • Unitree H1 and G1 locomotion
    • ANYmal-C navigation
    • Quadcopter target reaching

🔧 Improvements

  • Reduced start-up time for scripts (inherited from Isaac Sim 4.0 improvements)
  • Added lazy buffer implementation for rigid object and articulation data. Instead of updating all the quantities at every step call, the lazy buffers are updated only when the user queries them
  • Added SKRL support to more environments

💔 Breaking Change

For users coming from Orbit, this release brings certain breaking changes. Please check the migration guide for more information.

✈️ Migration Guide

Please find detailed migration guides as follows:

🤗 New Contributors

🌟 Acknowledgements

We wholeheartedly thank @Mayankm96, @kellyguo11 and the Boston Dynamics AI Institute for their significant contributions to the framework.

v0.3.1

31 May 13:05
Compare
Choose a tag to compare

👀 Overview

This is an intermediate release with minor patch fixes and improvements.

Note: This is the final release of the framework under the name "Orbit". The framework will soon be renamed to "Isaac Lab" and be moved to a new GitHub organization. More details will be provided shortly.

Full Changelog: v0.3.0...v0.3.1

✨ New Features

🔧 Improvements

  • Removes duplicated cassie configuration in core extension by @MuhongGuo
  • Fixes type-hinting for articulation properties in from_files_cfg.py by @MuhongGuo
  • Adds X11 setup checks for the Docker container by @hhansen-bdai

🐛 Bug Fixes

  • Fixes configclass shared references to keep compound objects independent across subclass instances by @hhansen-bdai
  • Fixes loading of ContactSensor when using it in an extension by @fyu-bdai
  • Fixes RSL-RL ONNX exporter for empirical normalization by @Nemantor

🤗 New Contributors

v0.3.0

17 Apr 20:01
f71340e
Compare
Choose a tag to compare

👀 Overview

This release includes various fixes and improvements to the framework. It additionally includes many new features, as listed below.

Full Changelog: v0.2.0...v0.3.0

✨ New Features

🔧 Improvements

  • Adds a runner script to execute all tests in the source directory by @jsmith-bdai
  • Allows loading of initialized configs in load_cfg_from_registry by @nikitardn
  • Checks default joint states are configured within limits by @Dhoeller19
  • Expands on unit tests for rigid object asset and terrain importer classes by @jsmith-bdai
  • Adds unit tests for contact sensor class by @fyu-bdai
  • Adds signal interrupt handle to AppLauncher by @Mayankm96
  • Adds ROS2 Humble to Dockerfile by @hhansen-bdai
  • Improved usage instructions for cluster deployment by @pascal-roth
  • Removes unnecessary future imports for Python 3.10 by @Mayankm96

🐛 Bug Fixes

  • Fixes running environments with a single instance by @Dhoeller19
  • Fixes source frame indexing in FrameTransfomer sensor by @jsmith-bdai
  • Fixes handling of time-out signal in RSL-RL and RL-Games wrapper by @Mayankm96
  • Fixes unwanted squeeze in Articulation class for 1-joint assets by @Mayankm96
  • Fixes shape argument ordering in hf_terrains.random_uniform_terrain by @nikitardn
  • Fixes joint and body sub-indexing for observations and rewards by @Dhoeller19
  • Fixes camera sensor for Isaac Sim 2023.1 update by @hhansen-bdai
  • Fixes imitation learning workflow for lift environment by @jsmith-bdai
  • Fixes apply actions method in the NonHolonomicAction action term class by @KyleM73
  • Fixes the tensor shape for the contact sensor's force matrix data by @abmoRobotics
  • Fixes missing max raycast distance in RayCaster sensor by @renezurbruegg
  • Fixes rendering of RTX sensors within the environment stepping by @Dhoeller19

💔 Breaking Changes

✈️ Migration Guide

Renaming of Randomization Manager to Event Manager

While the randomization manager referred to all possible " randomizations " in the environment, many users felt that the triggering
of the terms was not apparent. Additionally, for non-RL use-cases, randomization seemed like a misnomer. Hence, we renamed the class to be called event manager.

Replace the following import and usage:

from omni.isaac.orbit.managers import RandomizationTermCfg as RandTerm

@configclass
class RandomizationCfg:
    """Configuration for randomization."""

    reset_base = RandTerm(
        func=mdp.reset_root_state_uniform,
        mode="reset",
        params={"pose_range": {}, "velocity_range": {}},
    )

@configclass
class MyEnvCfg:

     randomization: RandomizationCfg = RandomizationCfg()

with the following:

from omni.isaac.orbit.managers import EventTermCfg as EventTerm

@configclass
class EventCfg:
    """Configuration for events."""

    reset_base = EventTerm(
        func=mdp.reset_root_state_uniform,
        mode="reset",
        params={"pose_range": {}, "velocity_range": {}},
    )

@configclass
class MyEnvCfg:

     events: EventCfg = EventCfg()

Renaming of MDP terms

We observed that several of the MDP terms had close to overlapping names, such as the reward term joint_pos_limits and termination term joint_pos_limit. To avoid errors, we decided to make the term names clearer.

Please note the following changes in MDP terms:

  • Observation: joint_pos_norm -> joint_pos_limit_normalized
  • Event: add_body_mass -> randomize_rigid_body_mass
  • Termination: base_height -> root_height_below_minimum
  • Termination: joint_pos_limit -> joint_pos_out_of_limit
  • Termination: joint_pos_manual_limit -> joint_pos_out_of_manual_limit
  • Termination: joint_vel_limit -> joint_vel_out_of_limit
  • Termination: joint_vel_manual_limit -> joint_vel_out_of_manual_limit
  • Termination: joint_torque_limit -> joint_effort_out_of_limit

Removal of omni.isaac.contrib_tasks

Initially, we intended to have the contrib_tasksmodule for developers to send their environment implementations. However, many users preferred a more isolated development environment for their projects. Hence, we removed the contrib_tasks and now provide a separate template repository for building projects that use Orbit.

However, we encourage the community to provide their environment implementations directly to the orbit_tasks extension. This allows us to ensure the environments are maintained during future releases of the framework.

For more details, please check: https://github.com/isaac-orbit/orbit.ext_template

🤗 New Contributors

Release 0.2.0

10 Feb 12:22
Compare
Choose a tag to compare

👀 Overview

This release refactors Orbit APIs to make them more modular and performance-efficient. It also introduces various new functionalities, such as batched sensors and managers handling randomization, termination, action spaces, and curriculum.

Full Changelog: v0.1.0...v0.2.0

✨ New Features

  • Procedural terrain generation using height-fields and trimesh library
  • Sensors for contact sensing, frame transformations, and GPU-based ray-casting
  • Scene manager to handle a collection of assets and sensors
  • Managers to handle various aspects of environment designing - action space, observation space, randomization, termination, rewards, and curriculum
  • Spawning support to load meshes in different formats (OBJ, FBX, STL) and URDF files into simulation directly
  • Support for docker and cluster-based deployments
  • New environments for flat and rough terrain locomotion from legged_gym

🔧 Improvements

  • Merged the previous type-specific static markers into a unified VisualizationMarkers class
  • Switched to using PhysX interfaces directly instead of Isaac Sim interface classes for performance
  • Migrated the gym.Env class from the OpenAI Gym 0.21 version to the Gymnasium v0.29 version

💔 Breaking Changes

This release is incompatible with v0.1.0 due to heavy refactoring and changes. We recommend users revisit the tutorials to familiarize themselves with the new APIs. We apologize for any inconvenience caused but believe the enhancements in this release justify the transition.

🤗 New Contributors

Release 0.1.0

18 Jan 09:21
Compare
Choose a tag to compare
Release 0.1.0 Pre-release
Pre-release

👀 Overview

The initial release of the ORBIT framework. It includes the core APIs built around Isaac Sim for robot learning. In addition, provides an initial set of environments for learning.

The main set of features includes:

  • Python configuration handling system using the decorator @configclass
  • Different explicit actuator models for processing commands
  • Actuator groups to handle complex articulations
  • Support for different robots:
    • legged robots: ANYmal-C, ANYmal-B, Unitree A1
    • fixed-arm manipulators: Franka Emika arm, UR5
    • wheel-based mobile manipulators: Clearpath Ridgeback with Franka Emika arm or UR5
    • legged mobile manipulators
  • Batched implementation of motion generators
    • differential inverse kinematics
  • Initial set of environments for learning
    • classic: cart-pole, humanoid, ant
    • locomotion: legged locomotion on flat terrain
    • manipulation: table-top object lifting, end-effector tracking
  • Demonstrations of different learning workflows