v0.3.0
π 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
- Adds terrain-aware patch sampling into the terrain generator by @nikitardn
- Adds a viewer camera controller to the base environment by @farbod-farshidian
- Adds animation recording for environments by @Mayankm96
- Adds Franka cabinet opening environment from IsaacGymEnvs by @renezurbruegg
- Adds Allegro hand cube manipulation environment from IsaacGymEnvs by @Mayankm96, @arbhardwaj98
- Adds Allegro and Shadow Hand asset configurations by @Mayankm96
- Adds Kinova (Jaco2, Gen3) asset configurations by @Mayankm96
- Adds approximate torque calculation for implicit actuator by @nikitardn
- Adds loading of custom kit experience files using AppLauncher by @Mayankm96
π§ 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
- Drops support for Isaac Sim 2022.2.2 and earlier by @hhansen-bdai
- Removes
compat
submodule from orbit by @Mayankm96 - Removes
omni.isaac.contrib_tasks
in favor of separate project template by @nburger-bdai - Changes link names ordering in articulation to follow PhysX by @Mayankm96
- Renames
RandomizationManager
toEventManager
by @pascal-roth - Renames some terms in
omni.isaac.orbit.envs.mdp
to avoid confusion by @Mayankm96
βοΈ 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_tasks
module 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
- @fyu-bdai made their first contribution in 06ada15
- @arbhardwaj98 made their first contribution in 1a42eb9
- @phenomen21 made their first contribution in #248
- @Ltesfaye made their first contribution in #320
- @KyleM73 made their first contribution in #317
- @VladimirFokow made their first contribution in #321
- @shafeef901 made their first contribution in #300
- @RumblingTurtle made their first contribution in #341