Skip to content

v2.1.1

Choose a tag to compare

@Mayankm96 Mayankm96 released this 30 Jul 12:59
· 358 commits to main since this release
90b79bb

👀 Overview

This release has been in development over the past few months and includes a significant number of updates, enhancements, and new features across the entire codebase. Given the volume of changes, we've grouped them into relevant categories to improve readability. This version is compatible with NVIDIA Isaac Sim 4.5.

We appreciate the community’s patience and contributions in ensuring quality and stability throughout. We're aiming for more frequent patch releases moving forward to improve the developer experience.

Note: This minor release does not include a Docker image or pip package.

Full Changelog: v2.1.0...v2.1.1

✨ New Features

  • Asset Interfaces
    • Adds position argument to set external forces and torques at different locations on the rigid body by @AntoineRichard in #1680
    • Adds body_incoming_joint_wrench_b to ArticulationData field by @jtigue-bdai in #2128
    • Allows selecting articulation root prim explicitly by @lgulich in #2228
  • Sensor Interfaces
    • Draws connection lines for FrameTransformer visualization by @Mayankm96 in #1754
    • Uses visualization marker for connecting lines inside FrameTransformer by @bikcrum in #2526
  • MDP Terms
  • New Example Tasks

🔧 Improvements

Core API

  • Actuator Interfaces
  • Asset Interfaces
  • Sensor Interfaces
    • Updates to ray caster ray alignment and more customizable drift sampling by @jsmith-bdai in #2556
    • Extends ContactSensorData by force_matrix_w_history attribute by @bikcrum in #2916
    • Adds IMU projected_gravity_b and IMU computation speed optimizations by @jtigue-bdai in #2512
  • Manager Interfaces
    • Adds serialization to observation and action managers by @jsmith-bdai in #2234
    • Adds option to define the concatenation dimension in the ObservationManager by @pascal-roth in #2393
    • Supports composite observation space with proper min max in manager based env by @ooctipus in #2811
    • Changes counter update in CommandManager by @pascal-roth in #2393
    • Integrates NoiseModel to manager-based workflows by @ozhanozen in #2755
    • Updates NoiseModelWithAdditiveBias to apply per-feature bias sampling by @ozhanozen in #2760
    • Fixes isaaclab.scene.reset_to to properly accept None as valid argument by @ooctipus in #2970
    • Resets step reward buffer properly when weight is zero by @bikcrum in #2392
  • Terrain Generation
    • Allows for custom TerrainGenerator without modifications of the TerrainImporter by @pascal-roth in #2487
    • Adds option for terrain border to above or below the ground by @pascal-roth in #2394
    • Adds ability to set platform height independent of object height for terrain by @jtigue-bdai in #2695
    • Adds absolute and relative noise to MeshRepeatedObjectsTerrain by @jtigue-bdai in #2830
  • Simulation
    • Raises exceptions from initialization callbacks inside SimContext in #2166
    • Applies semantic_tags to ground by @KumoLiu in #2410
    • Sets enable_stabilization to false by default by @AntoineRichard in #2628
    • Fixes deprecation warning for pxr.Semantics by @kellyguo11 in #2721
  • Math Utilities
  • General Utilities

Tasks API

  • Adds support for module:task and updates gymnasium to >=1.0 by @kellyguo11 in #2467
  • Adds available RL library configs on error message if entry point is invalid by @Toni-SM in #2713
  • Enables hydra for all play.py scripts by @ooctipus in #2995
  • Fixes ray lazy metric reporting and hanging processes by @ozhanozen in #2346
  • Adds gradient clipping parameter for distillation using RSL-RL by @alessandroassirelli98 in #2454
  • Makes GRU-based RNNs exportable in RSL RL by @WT-MM in #3009
  • Adds wandb native support in rl_games by @ooctipus in #2650
  • Optimizes Stable-Baselines3 wrapper and additional training configs by @araffin in #2022
  • Enables sb3 to load checkpoint to continue training by @ooctipus in #2954
  • Supports sb3 wrapper to pre-process env's image obs-space to trigger sb3 natively supported cnn creation pipeline by @ooctipus in #2812

Infrastructure

🐛 Bug Fixes

Core API

  • Actuator Interfaces
    • Fixes DCMotor clipping for negative power and adds actuator tests by @jtigue-bdai in #2300
  • Asset Interfaces
    • Fixes inconsistent data reading in body, link, com for RigidObject, RigidObjectCollection and Articulation by @ooctipus in #2736
  • Sensor Interfaces
  • Manager Interfaces
    • Fixes ObservationManager history buffer corrupted by external calls to ObservationManager.compute by @patrickhaoy in #2885
    • Fixes check for manager term class inside event manager by @miguelalonsojr in #2357
    • Fixes the issue of using Modifiers and history buffer together by @ZiwenZhuang in #2461
    • Fixes check for re-initializing terms in ManagerBase by @Mayankm96 in #2612
    • Fixes collision filtering logic on CPU by @kellyguo11 in #2553
    • Fixes import inside InteractiveScene and LiveVisualizer by @Mayankm96 in #2611
    • Fixes broken import in Live Visualizer image plot by @pascal-roth in #2486
  • MDP Terms
    • Fixes shape mismatch in body COM randomization by @shendredm in #2561
    • Fixes visual prims handling during texture randomization by @KumoLiu in #2476
    • Resets joint position/velocity targets in reset_scene_to_default by @wghou in #2692
    • Fixes joint out of position limits terminations by @GiulioRomualdi in #2442
    • Fixes reset_joints_by_scale and reset_joints_by_offsets to only affect the joint_names specified in SceneEntityCfg by @ooctipus in #2899
  • Math Utilities

Tasks API

Example Tasks

📜 Documentation

💔 Breaking Changes

While this release mainly focuses around various improvements and bug fixes, there are some noticeable behavior changes that are worth highlighting. These are summarized below.

Disabling of additional stabilization pass in PhysX settings

Previously, we were setting the PhysxCfg.enable_stabilization to True by default. This flag enabled additional stabilization processing by the underlying physics engine to improve the stability of complex interactions between large number of bodies.

As discussed in the PR #2628, enabling this flag led to incorrect contact forces report. Under the hood, PhysX introduces various non-physical heuristics to perform stabilization of large number of contacts. However, since the solver has improved, these heuristics are no longer applicable or needed for robotics applications. Hence, we have changed the flag enable_stabilization to False by default.

Clipping of torques inside the DC Motor

Previously, the clipping of torques inside the DC Motor did not account for the negative power regions properly. With the changes introduced in PR #2300, this should be handled properly.

🤗 New Contributors