============= Release Notes ============= .. toctree:: :maxdepth: 1 ./known_issues ./old_docs 2022.2.1 -------- Tutorials ######### - Updated ROS2 MoveIt tutorial - Extension Templates for python extensions. - Links to writing custom C++ extensions tutorials - Custom python/C++ omnigraph nodes - Deprecated ROS Migration Tutorial from Sim 2021.2.1 and Isaac Sim 2022.2.0 - Reorganized “Advanced Tutorials” Highlights ########## Basic UI for Composer Surface Materials added for RTX Lidar Examples Extension: - Added vibrating table feature and extra bolts to Franka Nut and Bolt demo Omniverse Isaac Gym Environments - Added Factory Nut/Bolt Pick environment and SAC Ant/Humanoid environments - Added support for docker and live stream, along with multi-GPU training - Fixed run-time material randomization affecting friction and restitution. There was previously a bug that prevented run-time updates of friction and restitution parameters during simulation. This has now been fixed in Isaac Sim 2022.2.1. - Fixed a bug in the contact reporting APIs that may have caused incorrect values to be returned as contact forces on the GPU Omni.Anim.People: - Reduced steps for setting up characters by automating attaching behavior scripts and anim.graph. - New spawn command introduced for characters. Allows a simulation to be tied to only the command file and not a USD. - Navigation API changes based on feedback from users. - Added a new command text box as an alternative to provide commands from within the App. - Revamped UI. Orbit: - Support for skrl library for reinforcement learning - Added utility to convert URDF to USD using command line arguments - Fixed issue with setting camera pose in ROS convention. Added support for other camera models offered by Replicator Cortex - Cleanup: docstring, comments, type hints, remove unused functions/files. - Convert all monitors to use add_monitors() API in examples. - DfContext converted to DfRobotApiContext (base class) and DfBasicContext (instantiation). - Backward compatible API update to CortexObjectsRos and CortexSimObjectsRos to fix hard coded in_coords. Isaac Replicator - Simplified SD Recorder code using newer Replicator API functionalities - Added a basic UI for Composer to view/preview the generated scenarios Omni.isaac.extension_templates - UI tool under Isaac Utils -> Generate Extension Templates to download python extension templates locally - Extension Templates significantly reduce the complexity of building a custom UI application in Isaac Sim. Omni.isaac.ui.element_wrappers - Created a set of UI element wrappers in omni.isaac.ui that significantly reduce the complexity of making a UI-based extension in Isaac Sim that aesthetically matches other extensions - Available wrappers are shown in the extension template “UI Component Library” Other ##### - Ubuntu 18.04 is no longer supported. - Isaac Sim ROS1, ROS2 workspaces moved to ``. They are still in the 2022.2.1 release package and will be removed in the next major 2023.x release. Extensions ########## - **omni.isaac.app.selector** - Added - Added dropdown menu for selecting ROS bridge to enable on startup. - **omni.isaac.app.setup** - Changed - Added setting to enable ROS bridge on startup. - Updated to force a couple of required OmniGraph settings on startup. - Updated link to forums. - Enabled tests. - **omni.isaac.articulation_inspector** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.asset_browser** - Changed - Updated default asset paths to those for the 2022.2.1 release. - Added "Sensors" folder. - **omni.isaac.assets_check** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.conveyor** - Changed - Updated default asset path. - Fixed - Fixed UI regression where selected track card was not updated correctly. - Updated tests to use Fabric for getting PhysX updates. - Fixed error message when generating UI with image URL and destroing element before image finished loading. - Created dedicated hidden scope for conveyor instead of using `/Render`. - Removed unnecessary C++ OGN files from extension. - Fixed `onclick_fn` warning. - **omni.isaac.core** - Added - Added joint efforts to the `get_applied_action()` method in `ArticulationView` and `Articulation` (was returning `None` previously). - Added `texture_translate` option to `OmniPBR` class. - Added `destroy_all_viewports()` utility function. - Changed - Made `omni.kit.viewport.window` and `omni.kit.viewport.utility` optional dependencies. - Updated default asset paths to those for the 2022.2.1 release. - Fixed - Fixed minor issues in cloth prims. - Fixed several unit test errors and warnings. - Fixed warnings about no hydra render context when running tests. - Fixed warning about `SimulationContext` and `World` needing reinitialization after new stage creation so that the warning only appears if they were previously initialized. - **omni.isaac.core_nodes** - Added - Added `BaseWriterNode` for nodes that have to attach and detach writers. - Added interface for caching and retrieving handles. - Fixed - Fixed issue where pressing pause would reset classes derived from `BaseResetNode`. - Added missing fisheye parameters to `OgnIsaacReadCameraInfo` node. - Updated `RGBAToRGB` node so it passes buffer size and SWH frame number. - Updated core nodes so that each only subscribes to the type of stage event it needs. - Removed unnecessary C++ ogn files from extension. - **omni.isaac.cortex** - Changed - Updated extension configuration so that `omni.isaac.cortex` python module is exposed on startup. - Fixed - Fixed examples so that they use the explicit context types `DfBasicContext` or `DfRobotApiContext` in place of `DfContext`. - Converted all monitor additions in behavior to use the built-in `add_monitors()` function. - Fixed a bug in `CortexGripper.step()` affecting the case where the optional `command.speed` parameter is set to `None`. - Added comments and type hints, and performed some general cleanup. - Removed `df_behavior_watcher.py` file (no longer used). - Removed unused `cortex_task.py` file. - **omni.isaac.cortex_sync** - Fixed - Updated extension configuration so that `omni.isaac.cortex_sync` python module is exposed on startup. - Updated `CortexObjectsRos` and `CortexSimObjectsRos` to allow user specification of `in_coords` (with defaults for backward compatibility). - Fixed an issue where `CortexControlRos` joint states callback was being queried for `dof_names` before robot was initialized. - Added additional type hints, comments, and docstrings. - Removed some unused utilities. - **omni.isaac.debug_draw** - Fixed - Fixed crash triggered when trying to draw without a valid renderer. - **omni.isaac.demos** - Fixed - Fixed issue with bin releasing at beginning of UR10 palletizing sample. - Fixed `onclick_fn` warning. - **omni.isaac.diff_usd** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.dynamic_control** - Fixed - Added `isaac::nameOverride` attribute, for use when multiple objects share the same prim name. - **omni.isaac.examples** - Fixed - Made various improvements to Franka nut and bolt demo, improving the screw controller, fixing the vibrating table, and enabling 6 bolts by default. - Fixed "missing button" error when running tests. - Fixed `onclick_fn` warning. - **omni.isaac.extension_templates** - Added new `omni.isaac.extension_templates` extension. - **omni.isaac.gain_tuner** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.gym** - Added - Added option to enable livestream. - Fixed physics device parameter. - Fixed render flag in headless mode. - Improved handling of viewport in `VecEnvBase`. - Added the option to run headless with rendering enabled, via a new app file (`omni.isaac.sim.python.gym.headless.render.kit`) and a new `enable_viewport` parameter in the `VecEnvBase` constructor. - Changed - Refactored tests to use a shared base class. - Updated tests to use a temporary directory for cloning the OIGE repository. - Fixed - Fixed error message that would appear on stage close. - **omni.isaac.kit** - Added - Added a minimal `AppFramework` class. - Changed - Updated `SimulationApp` to ensure that Replicator is stopped before closing application. - Fixed - Fixed startup warnings. - Added error checking to `set_camera_view()` to ensure viewport extension is loaded. - **omni.isaac.lula** - Changed - Upgraded Lula from release 0.8.1 to release 0.8.2. This fixes a bug in the trajectory generator's task-space path conversion that could result in suboptimal interpolation of orientations. In addition, a new option was added to the trajectory generator allowing user specification of time values at waypoints. - **omni.isaac.lula_test_widget** - Added new `omni.isaac.lula_test_widget` extension. - **omni.isaac.merge_mesh** - Fixed - Updated extension to include `primvars:normals` attribute when merging meshes. - Fixed `onclick_fn` warning. - **omni.isaac.mjcf** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.motion_generation** - Fixed - Fixed typo in variable name in `ArticulationTrajectory.get_robot_articulation()`. - **omni.isaac.motion_planning** - Fixed - Removed dependency on `dynamic_control` assets from tests in favor of Nucleus assets. - **omni.isaac.occupancy_map** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.ocs2** - Fixed - Fixed unit test for end effector tracking. - Fixed startup errors due to missing symbols. - **omni.isaac.onshape** - Added - Added Preferences panel for setting importer preferences. - Added direct import capability using current asset folder as destination (or default import folder if new stage). - Added support for Assembly configurations. - Added base and edit layer so user changes are preserved when changing assembly configuration. - Added namespace configuration for Omniverse Enterprise users. - Fixed - Fixed tests so they take into account USD stage. - Ensured proper alignment of the document workspace/version across every component being imported. - Fixed an issue where some parts wouldn't load due to wrong part ID vs. encoded part ID being used in the request. - Improved overall performance and UI responsiveness. - **omni.isaac.partition** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.physics_inspector** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.physics_utilities** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.quadruped** - Removed - Removed dependency on `dynamic_control` extension. - Removed `Quadruped` class (no longer needed). - Changed - Updated extension to use `omni.isaac.sensor` classes for contact and IMU sensors. - **omni.isaac.range_sensor** - Added - Added Fabric support. - Fixed - Fixed an issue that resulted in incorrect lidar semantic IDs when rotation rate was nonzero. - Fixed a bug where parent xform scale would cause lidar beams to be incorrect. - Fixed `onclick_fn` warning. - Removed unnecessary C++ OGN files from extension. - **omni.isaac.robot_benchmark** - Changed - Moved `standalone_benchmark_runner.py` to top-level `standalone_examples/` directory. - Fixed - Fixed "missing button" error when running tests. - Fixed `onclick_fn` warning. - **omni.isaac.robot_description_editor** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.ros2_bridge** - Added - Added Fabric support. - Added `resetSimulationTimeOnStop` to `ROS2CameraHelper` node. - Changed - Modified Omnigraph for MoveIt example to match tutorials provided by MoveIt 2. - Fixed - Updated Camera and RTX lidar helpers to ensure settings are updated on stop/play. - Fixed an issue where image-based messages always used increasing simulation time. - Fixed an issue that resulted in RTX lidar not publishing flatscan data correctly. - Updated semantic label publisher to avoid producing an invalid JSON string in cases where the semantic message is empty. - Fixed computation of 2D and 3D bounding box positions, orientations, and sizes to avoid incorrect values in certain cases. - Changed `semanticId` in `PublishBbox2d` and `PublishBbox3d` from `int` to `string`. - Enhanced `TF_Tree` to handle the case when multiple objects share the same prim name, using the `isaac:nameOverride` attribute. - Updated tests to use a fixed QOS profile to improve determinism. - Fixed crash that could result when using an old context handle. - Removed unnecessary C++ OGN files from extension. - Fixed `onclick_fn` warning. - **omni.isaac.ros2_bridge-humble** - Added - Added Fabric support. - Added `resetSimulationTimeOnStop` to `ROS2CameraHelper` node. - Changed - Modified Omnigraph for MoveIt example to match tutorials provided by MoveIt 2. - Fixed - Updated Camera and RTX lidar helpers to ensure settings are updated on stop/play. - Fixed an issue where image-based messages always used increasing simulation time. - Fixed an issue that resulted in RTX lidar not publishing flatscan data correctly. - Updated semantic label publisher to avoid producing an invalid JSON string in cases where the semantic message is empty. - Fixed computation of 2D and 3D bounding box positions, orientations, and sizes to avoid incorrect values in certain cases. - Changed `semanticId` in `PublishBbox2d` and `PublishBbox3d` from `int` to `string`. - Enhanced `TF_Tree` to handle the case when multiple objects share the same prim name, using the `isaac:nameOverride` attribute. - Updated tests to use a fixed QOS profile to improve determinism. - Fixed crash that could result when using an old context handle. - Removed unnecessary C++ OGN files from extension. - Fixed `onclick_fn` warning. - **omni.isaac.ros_bridge** - Added - Added Fabric support. - Added `resetSimulationTimeOnStop` to `ROS1CameraHelper` node. - Fixed - Fixed an issue where image-based messages always used increasing simulation time. - Fixed an issue that resulted in RTX lidar not publishing flatscan data correctly. - Updated semantic label publisher to avoid producing an invalid JSON string in cases where the semantic message is empty. - Fixed computation of 2D and 3D bounding box positions, orientations, and sizes to avoid incorrect values in certain cases. - Enhanced `TF_Tree` to handle the case when multiple objects share the same prim name, using the `isaac:nameOverride` attribute. - Removed unnecessary C++ OGN files from extension. - Fixed `onclick_fn` warning. - **omni.isaac.scene_blox** - Changed - Moved `scene_blox` tool to `omni.isaac.scene_blox` extension. - **omni.isaac.sensor** - Added - Updated RTX lidar to output normals at hit location. - Added option to ignore unlabeled points when enabling pointcloud generation. - Changed - Updated extension to use `SdRenderVarPtr` node instead of `IsaacRenderVarToCpuPointer`. - Updated `Camera` so removing an annotator also detaches it. - Changed `LidarRtx` to ensure data is updated on app update. - Fixed - Fixed an issue where lidar flatscan node would access data before it was ready. - Fixed an issue that resulted in the IMU sensor not reading physics scene gravity correctly. - Fixed a bug that prevented occlusion annotator from being enabled. - Fixed a bug that resulted in RTX lidar not returning data. - Fixed an issue where `IsaacComputeRTXLidarFlatScan` would disconnect upon activation. - Fixed an issue causing RTX point cloud publishers to publish twice per frame. - Updated Sensor classes so that each only subscribes to the type of stage event it needs. - Fixed test failures and added extra test warnings. - Removed unnecessary C++ OGN files from extension. - Fixed `onclick_fn` warning. - **omni.isaac.shapenet** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.surface_gripper** - Changed - Updated extension to a new action-based menu system. - **omni.isaac.synthetic_recorder** - Added - Added timeline control. - Added `pointcloud_include_unlabelled` parameter, enabling the capture of pointcloud data for prims without semantic labels. - Removed - Removed manual control UI. - Changed - Switched to async functions from Replicator 1.7.1 API. - Fixed - Added `wait_until_complete()` to ensure final frame is written to S3 bucket (OM-82465). - Added support for incremental folder naming with S3 (OM-80864). - Updated extension to allow empty (`None`) values for `s3_region` and `s3_endpoint`, not required by S3. - Updated extension so it only subscribes to the type of stage event it needs. - Updated extension so it cleans up properly on shutdown. - Fixed `onclick_fn` warning. - **omni.isaac.synthetic_utils** - Fixed - Fixed test errors due to missing button. - **omni.isaac.ui** - Added - Added `element_wrappers` module, providing helpful wrappers around UI elements that simplify button and frame creation and management. - Changed - Renamed `tests/startup.py` to `tests/test_ui.py`. - Updated `on_startup()` to use `make_menu_item_description()`, enabling use of the action registry. - Fixed - Refactored calback tests to reduce spurious errors. - **omni.isaac.ui_template** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.unit_converter** - Fixed - Fixed converter to ensure payloads as well as references are included when scaling. - Fixed `onclick_fn` warning. - **omni.isaac.universal_robots** - Changed - Changed values for surface griper torque and force limits for bin filling so that the grip breaks after filling the bin. - **omni.isaac.urdf** - Added - Added unit test for joint limits. - Added URDF data file for joint limit unit test (`test_limits.urdf`). - Fixed - Removed implicit scaling of max joint effort (by factor of 60) during import. - Fixed spurious warnings when setting the joint damping and stiffness to 0 for `NONE` drive type. - Removed custom collision API when the shape is a cylinder. - Fixed an issue where imported negative URDF effort and velocity joint constraints set the physics constraint value to infinity. - Fixed `onclick_fn` warning. - **omni.isaac.utils** - Fixed - Fixed `onclick_fn` warning. - **omni.isaac.wheeled_robots** - Fixed - Fixed a spurious error on stop for holonomic and differential controllers. - Updated Stanley controller and corresponding OmniGraph node to allow user specification of parameters (as opposed to hardcoded values). - **omni.kit.property.isaac** - Added - Added `NameOverrideWidget`. - **omni.replicator.isaac** - Fixed - Fixed `OgnDope` node so it returns proper value for occlusion. - **omni.usd.schema.isaac** - Added - Added `nameOverride` attribute. 2022.2.0 -------- - Kit SDK 104.1 - NVIDIA cuOpt Integration - Human simulation via omni.anim.People - Improved RTX Lidar Support and Lidar Models - ROS/ROS2 Replicator Post Processing support - ROS2 Windows Beta - ROS2 Humble Beta - Conveyor Belt Utility - Omniverse Isaac Gym Performance Improvements - Omniverse Replicator Performance Improvements - Motion Generation (e.g., RMPflow) usability improvements, including a graphical editor for Lula robot description files - Flexible task-space and c-space trajectory generation for manipulators, exposed through Motion Generation extension Tutorials ######### Warehouse Asset Tutorial Extended Offline Dataset Generation Replicator Tutorial Creating Lula Robot Description Files Using Lula Trajectory Generator Assets ###### - Added the Clearpath Dingo and Jackal mobile bases - Added the following manipulators: - Kawasaki rs007l, rs007n, rs0013n, rs025n, and rs80n - Universal Robots UR3, UR3e, UR5, UR5e, UR10 (slightly updating an older UR10 asset), UR10e, and UR16e - Flexiv RIZON 4 - Festo Cobot - Added simple terrain environments Omniverse Isaac Gym Environments ################################ - Introduce flag for faster contact processing and reporting - Introduce runtime mass randomization for Domain Randomization - Improved environment creation performance - Improved and updated implementation for ShadowHandOpenAI_FF, AnymalTerrain, and Quadcopter Other ##### - `Ubuntu 20.04 Dockerfile for ROS2 Humble support `_ Extensions ########## - **omni.isaac.app.selector** - Fixed - Made `show_console` setting persistent. - **omni.isaac.app.setup** - Changed - Updated menu structure to match |composer|. - Added replicator menu layout. - Moved "Help" menu to the end. - Updated menu icons. - Removed unused call to legacy viewport. - Fixed - Disabled App Selector auto start when running from the Help menu. - Switched to F3 key for launching Isaac Sim docs, avoiding overloading of F1 key. - **omni.isaac.asset_browser** - Added - Added `People` folder. - Changed - Updated to use new viewport interfaces. - **omni.isaac.benchmarks** - Added new `omni.isaac.benchmarks` extension. - **omni.isaac.cloner** - Added - Added option to use `omni.physics` replication. - Fixed - Fixed crash when cloning with single environment. - **omni.isaac.conveyor** - Added - Added "Digital Twin Library" conveyor authoring tool. - Added support for curved conveyors - Changed - Changed default path for creating conveyor command to be prim parent instead of rigid body prim. - Reorganized assets. - Fixed - Fixed adaptive scaling for assets not in the same "meters per unit" as the open stage. - Updated documentation for `CreateConveyorBelt` command. - Updated `do()` method for `CreateConveyorBelt` command to only return the created prim, rather than a tuple. - Fixed a bug that resulted in the OmniGraph node not updating if the node direction changed. - **omni.isaac.core** - Added - Added particle cloth simulation support through `physics.tensors` extension. - Moved `ArticulationSubset` to `omni.isaac.core` from `omni.isaac.motion_generation`. - Added `set_targets()` to prim utils. - Added sleep threshold setter and getter in `RigidPrimView`. - Added `articulationView` API functions to get the commanded and computed joint efforts. - Added `get_body_index()` to return queried body index - Added base sensor class. - Added backend utilities (for both torch and numpy) for `pad()`, `stack()`, `matmul()`, `sin()`, `cos()`, `inverse()`, and `transpose_2d()`. - Added `mesh.py` and `random.py`. - Added `utils.render_product`. - Added `RigidContactView` class and APIs within `RigidPrimView` to retrieve net contact forces and contact forces from a subset of prims. - Added support for applying rigid body forces in local coordinates and also at a specified position. - Added `get_id_from_index()` for converting a legacy viewport ID index into a proper viewport ID. - Added `clear_xform_ops()` and `reset_and_set_xform_ops()`. - Added `set_prim_hide_in_stage_window()` and `set_prim_no_delete()`. - Added `add_aov_to_viewport()` - Added viewport helper functions `get_viewport_names()` and `get_window_from_id()`. - Deprecated - Deprecated `get_joint_efforts()` in favor of `get_applied_joint_efforts()`. - Changed - Updated `ArticulationSubset` to handle sparse `ArticulationActions`. Previously, it None-padded the `ArticulationAction`. - Made some additional modifications to `ArticulationSubset` to simplify error checking and adopt better member names. - Moved standalone pose estimation example utilities to `core.utils`. - Moved utility functions from `core/utils/pose_generation.py` to `core/utils/transformations.py`, `.../mesh.py`, and `.../random.py`. - Moved `get_mesh_vertices_relative_to()` from `ycb_video_writer.py` to `mesh.py`. - Set `persistent.isaac.asset_root.nvidia` to main NVIDIA asset path. - Changed default values of shape sizes from 0.05 to to 1.0. - Added support for manually setting `dt` if loop runner is available outside of `SimulationApp`. - Switched to blocking `update_simulation()` call in warm_start(). - Updated `reset_xform_ops()` so it now resets to Isaac Sim defaults. - Removed unused `velocity` argument from `set_camera_view()`. - Removed default arguments from `set_camera_view()` to make it more general. - Switched to `omni.kit.viewport.utility` from legacy viewport. - Updated `SimulationContext` and `World` to remove explicit caching and restoration of the frame rate when a new stage is created. This is no longer needed with Kit 104, which resets the frame rate automatically when a new stage is loaded. - Improved API documentation. - Fixed - Fixed bug that resulted in the data logger modifying the `_data_frames` variable when `save()` was called. - Fixed getter and setter for sleep threshold. - Fixed `RigidContactView` for `GeometryPrim` / `GeometryPrimView`. - Updated `get_joint_efforts()` in `Articulation` so it's consistent with that in the `ArticulationView` class. - Fixed behavior of `set_local_poses()` when indices are provided. - Fixed device for `max_efforts` in `ArticulationView`. - Fixed order of matrix multiplications for variable `source_to_target_column_major_tf` in function `get_relative_transform()` in `utils/pose_generation.py`. - Fixed bug in `sphere.py` and `cylinder.py` where incorrect prim type was used in `IsA` check. - Fixed bug in `disable_rigid_body_physics()`. - **omni.isaac.core_archive** - Removed - Removed `certifi` package from archive. - Changed - Made extension OS-specific. - **omni.isaac.core_nodes** - Added - Added function to handle writer activation requests in order to avoid race conditions from camera helpers. - Added `IsaacSetCameraOnRenderProduct` node. - Added `IsaacCreateRenderProduct` node. - Added `IsaacGetViewportRenderProduct` node. - Added render product support for `ReadCameraInfo`. - Added fisheye parameter support for `ReadCameraInfo`. - Added `linearAcceleration` and `angularAcceleration` to `IsaacComputeOdometry`. - Added utility function to cache writer attach calls until the next frame. - Added python bindings for timing-related APIs. - Deprecated - Deprecated viewport support in `ReadCameraInfo`. - Changed - Added support for setting `IsaacSimulationGate` step value to zero in order to stop execution. - Updated `CreateViewport` to only create one viewport. - Updated `CreateViewport` to take a name as input, falling back to `viewportId` as the name if name is not set. - Updated to use `omni.kit.viewport.utility` in place of legacy viewport APIs. - Fixed - Fixed errors with SDG template registration. - Fixed errors in default OGN tests. - Fixed issue with Articulation Controller node skipping single array inputs. - Updated `CreateViewport` to use an ID rather than the legacy viewport index. - Fixed bug with hiding `/Render`` prim when it didn't exist. - **omni.isaac.cortex** - Added - Added Cortex version of the UR10 bin-stacking example. - Added a simple "follow" example. - Added Cortex task tools for native use of decider networks and the motion commander from the core API. - Added `MotionCommander.soft_reset()` method to reset only the C-space integration state. - Changed - Updated `omni.isaac.cortex` extension so that it no longer depends on ROS. - Moved ROS-dependent tools and extensions to `omni.isaac.cortex_sync` extension. - Refactored extension to expose the cortex pipeline reset separate from the full world reset. This is used by `cortex_ros` now when synchronizing with a sim/physical robot. - Updated "commander" API framework with explicit logical state monitoring, behavior stepping, and commander stepping. - Improved the cortex task API so it takes the commander rather than just the target prim. - Added `loop_fast` param in cortex world `run()` method, and renamed `step_loop_runner()` to `run()`. - Renamed `decider` parameter in `DfNetwork` to `root` to make its purpose more explicit. - Made various updates to standalone examples. - Made `peck_decider_network.py` example align better with its `peck_state_machine.py` counterpart. - Fixed - Updated so that during cortex reset, commanders are reset before behaviors. (Motion commander reset adds obstacles back; behavior might disable them.) - Fixed a motion commander reset bug, ensuring that the target prim is reset to the end-effector. - **omni.isaac.cortex_sync** - Added new `omni.isaac.cortex_sync` extension. - **omni.isaac.debug_draw** - Added - Added a point cloud node. - **omni.isaac.demos** - Added - Added Carter v2 robot to navigation demo. - Changed - Removed direct legacy viewport calls. - **omni.isaac.diff_usd** - Changed - Moved "Diff USD" to "Isaac Utils" menu. - **omni.isaac.dynamic_control** - Removed - Removed USD files local to the extension. - Fixed - Fixed handling of prim deletion. - **omni.isaac.examples** - Added - Added "nut and bolt" example. - Changed - Removed direct legacy viewport calls. - Removed - Removed `dynamic_control` examples `joint_controller.py` and `read_articulations.py`. Similar functionality is now provided by the `Articulation` and `ArticulationView` classes in `omni.isaac.core`. - **omni.isaac.examples_nodes** - Added - Added new `omni.isaac.examples_nodes` extension. - **omni.isaac.franka** - Removed - Removed USD files local to extension. - **omni.isaac.gym** - Fixed - Fixed issues with dependency installation. - **omni.isaac.isaac_sensor** - Deprecated - Deprecated `omni.isaac.isaac_sensor` in favor of `omni.isaac.sensor`. - **omni.isaac.kit** - Added - Added `fast_shutdown` configuration option. - Removed - Removed `memory_report` configuration option. - Changed - Improved startup times. - Fixed - Fixed an error message when closing stage before closing simulation app. - Fixed an issue where fast shutdown caused Jupyter notebooks to crash. - **omni.isaac.lula** - Changed - Upgraded Lula to release 0.8.1. Among other improvements, this adds a flexible trajectory generator and collision sphere generator. In addition, the robot description file format has been simplified, with "root_link" and "cspace_to_urdf_rules" now optional and "composite_task_spaces" and "subtree_root_link" removed/ignored. - Changed default Lula log level to `WARNING`. - **omni.isaac.manipulators** - Added - Added support for running only first N phases of the pick-and-place controller (instead of full 10). - Renamed `start_picking_height` parameter in pick-and-place controller to `end_effector_initial_height`. - Added documentation. - Fixed - Fixed typo in `suction_gripper.py` warning message. - **omni.isaac.mjcf** - Added - Added material and texture support. - **omni.isaac.motion_generation** - Added - Added `Trajectory` interface, `ArticulationTrajectory`, and Lula trajectory generators. - Added function to get default RMPflow c-space target. - Added RMPflow configs for Kawasaki rs007l, rs007n, rs0013n, rs025n, and rs80n. - Added RMPflow configs for Universal Robots UR3, UR3e, UR5, UR5e, and UR16e. - Added RMPflow config for Festo Cobot. - Added RMPflow config for Flexiv RIZON 4. - Changed - Made a small change to Denso Cobotta RMPflow configs for consistency with tutorials. - Moved Cortex UR10 RMPflow config file and corresponding policy config to new directory; it was previously unused. - Updated old robot description YAML files for Franka, UR10, DOFbot, and Denso Cobotta to remove unnecessary fields that had no effect. - Moved `ArticulationSubset` to `omni.isaac.core` from `omni.isaac.motion_generation`. - Updated `ArticulationMotionPolicy` to use sparse `ArticulationActions`. - Added support to `ArticulationMotionPolicy` for setting a (possibly varying) `dt` on each frame, as opposed to a constant default value. - Replaced RMPflow parameter `evaluations_per_frame` with `maximum_substep_size` to account for a possibly varying framerate. - Updated outdated Franka URDF with new joint limits on joint 7. - Fixed - Fixed missing import statement for `ArticulationTrajectory` in `MotionGeneration`. - **omni.isaac.occupancy_map** - Fixed - Fixed duplicate symbol issue under linux by statically linking against octomap. - **omni.isaac.ocs2** - Added - Added new `omni.isaac.ocs2` extension. - **omni.isaac.onshape** - Added - Added "Ball" (spherical) Mates support. - Added support for getting document directly by pasting the URL in the search bar. - Fixed - Fixed missing icons under Windows. - Fixed slider mates with limits that were breaking on import. - Fixed importing on newer versions that would break when creating USD stages. - Fixed issue where installing `requests-oauthlib` would return an error even when the package was installed successfully. - **omni.isaac.quadruped** - Changed - Removed direct legacy viewport calls. - Fixed - Updated camera pipeline with writers. - Fixed viewport name. - Fixed issue that resulted in viewports not docking correctly. - **omni.isaac.range_sensor** - Added - Added option to either stream data or repeat data for generic sensor. - Removed - Removed USD files local to extension. - Changed - Removed legacy viewport calls. - Fixed - Updated so data streaming in menu for lidar and ultrasonic sensor are updating and refreshed when new sensors are loaded. - Enforced that zenith range is (0,0) if high LOD is `false` and lidar is 2D. - Updated so multiple lidars now have the same semantic colors, using a fixed random seed for debug semantic color generation. - Updated generic sensor API to use `getPointCloud()` instead of `getHitPosData()`. - **omni.isaac.robot_benchmark** - Changed - Updated UR10 tests to use UR10 asset from Nucleus. - Removed direct legacy viewport calls. - Fixed - Fixed a determinism issue. - **omni.isaac.robot_description_editor** - Added new `omni.isaac.robot_description_editor` extension, providing a graphical editor/generator for Lula robot description files, including editing and automatic generation of collision spheres. - **omni.isaac.ros_bridge** - Added - Added `rtx_lidar_helper` node. - Added node template for `rtx_radar`. - Added `renderProductPath` input for camera helper. - Deprecated - Deprecated viewport input for camera helper. - Changed - Updated publishing nodes to use replicator writer backend. - Changed node template name for `rtx_lidar`. - Removed direct legacy viewport calls. - Fixed - Updated RTX lidar transform tree publisher for compatibility with latest Isaac RTX lidar sensor API. - Fixed warning when setting semantic class input. - **omni.isaac.ros2_bridge** - Added - Added `rtx_lidar_helper` node. - Added node template for `rtx_radar`. - Added `renderProductPath` input for camera helper. - Deprecated - Deprecated viewport input for camera helper. - Changed - Updated publishing nodes to use replicator writer backend. - Changed node template name for `rtx_lidar`. - Removed direct legacy viewport calls. - Fixed - Fixed errors that manifested when switching between ROS2 (Foxy) and ROS2 Humble bridges. - Updated RTX lidar transform tree publisher for compatibility with latest Isaac RTX lidar sensor API. - Fixed warning when setting semantic class input. - **omni.isaac.ros2_bridge-humble** - Added - Added new `omni.isaac.ros2_bridge-humble` extension as a Humble variant of the ROS2 bridge. - **omni.isaac.sensor** - Added - Added contact sensor and IMU sensor wrappers. - Added RTX lidar and rotating physics lidar wrappers. - Added `Camera` class, providing many utilities for interacting with a camera prim in a stage. - Added node template for `rtx_radar`. - Added `PrintRTXRadarInfo` and `ComputeRTXRadarPointCloud` nodes for `rtx_radar`. - Added `ReadRTXLidarData`` node for getting lidar data without computing point cloud. - Added profile support for lidar point cloud creation. - Added `IsaacSensorCreateRtxRadar` command. - Added `IsaacRenderVarToCpuPointer` node to replace `rtx_lidar` use of `SdRenderVarToRawArray`. - Added `ReadRTXRaw` node. - Added `PrintRTXLidarInfo` node. - Added `ReadRTXLidarFlatScan` node. - Added output on demand for all possible attributes in `ReadRTXLidarPointCloud` node. - Added intensity output to `ReadRTXLidarPointCloud` node. - Added `transform` attribute to `ReadRTXLidarPointCloud` node. - Added `keepOnlyPositiveDistance` flag to `ReadRTXLidarPointCloud` node. - Added accuracy error post process to `ReadRTXLidarPointCloud` node. - Added `IsaacRtxLidarSensorAPI` applied schema to differentiate regular cameras from RTX lidar cameras. - Added synthetic data template for `DebugDrawPointCloud`. - Added lidar config file location as `data/lidar_configs`. - Removed - Removed `ReadRTXRaw` node, and moved pointer passthrough functionality to `IsaacRenderVarToCpuPointer`. - Removed USD files local to extension. - Changed - Renamed `omni.isaac.isaac_sensor` to simply `omni.isaac.sensor`. - Switched debug draw nodes to use replicator writer backend. - Hid RTX lidar menu on Windows as RTX sensor is not yet supported on that platform. - Updated RTX nodes to pass reasonable defaults if sensor is not found. - Changed node template name for `rtx_lidar`. - Renamed `ReadRTXLidar` nodes to `ComputeRTXLidar` - Changed inputs to `ReadRTXLidarPointCloud` and `ReadRTXLidarFlatScan` nodes to use `cpuPointer` from `IsaacRenderVarToCpuPointer`. - Updated `ReadRTXLidarPointCloud` to ignore zero values. - Updated `ReadRTXLidarPointCloud` to output in lidar coordinates. - Changed the backend contact API to use updated batched update instead of notifications. - Updated to use xform utilities instead of `XformPrim` for commands. - Fixed - Updated `do()` method for `IsaacSensorCreateContactSensor`, `IsaacSensorCreateImuSensor`, `IsaacSensorCreateRtxLidar`, and `IsaacSensorCreateRtxRadar` commands to only return the created prim, rather than a tuple. - Removed extra copy of `BaseResetNode` in favor of the one in `core_nodes`. - Fixed positions of points in `ReadRTXLidarPointCloud`. - **omni.isaac.surface_gripper** - Added - Added additional robots and environments to menu. - Changed - Moved surface gripper to `Create -> Isaac -> End Effector` menu. - Fixed - Added logic for preventing the surface gripper from closing until it reaches some object. - Updated `CreateSurfaceGripper` command documentation. - Updated `do()` method for `CreateSurfaceGripper` command to only return the created prim, rather than a tuple. - **omni.isaac.synthetic_recorder** - Added - Rewrote extension to leverage Replicator OV API. - Added button to reset directory to default. - Added support for loading custom writers. - Changed - Renamed `extension.py` to `synthetic_recorder_extension.py`. - Renamed extension class from `Extension` to `SyntheticRecorderExtension`. - Fixed - Empty strings are no longer saved to config files. - Fixed menu toggle value when user closes the window. - Fixed issue where annotators would block other annotators from writing data if their requirements were not met. - **omni.isaac.synthetic_utils** - Changed - Removed legacy viewport calls not related to synthetic data generation. - Fixed - Updated an internal function call to eliminate a deprecation warning. - **omni.isaac.ui** - Added - Added D-pad (directional pad) controller class, providing a clickable D-pad UI element. - Fixed - Fixed a bug resulting in an additional error in situations where a web browser could not be opened for browsing an extension's documentation. - Fixed missing min/max limits for `int` field. - **omni.isaac.ui_template** - Fixed - Fixed limit issues with `int` field. - **omni.isaac.universal_robots** - Changed - Changed values for surface griper torque and force limits. - **omni.isaac.urdf** - Changed - Removed direct legacy viewport calls. - Modified default gains in URDF-to-USD converter to match gains for Franka and UR10 robots. - Fixed - Fixed materials for instanceable imports. - **omni.isaac.utils** - Changed - Revamped `Create -> Isaac` menu. - Removed legacy viewport calls. - Fixed - Improved default settings for the default cameras for "office," "hospital," and "simple room." - **omni.isaac.wheeled_robots** - Added - Added `OgnQuinticPathPlanner`, `OgnCheckGoal2D`, and `OgnStanleyControlPID` nodes. - Changed - Removed excessive `db.inputs` calls to improve efficiency/speed. - Removed path drawing; this may be added in the future as an option. - Fixed - Fixed an issue with targeting using coordinates instead of prim. - **omni.isaac.window.about** - Changed - Updated menu icons. - **omni.kit.loop-isaac** - Added - Added `set_manual_mode()` to enable/disable manual setting of `dt` during runtime. - Changed - Renamed `set_runner_dt()` to `set_manual_step_size()`. - Changed behavior so setting `dt` no longer enables manual mode automatically. It's now necessary to call `set_manual_mode(True)`. - **omni.replicator.isaac** - Added - Added `Random3f` node. - Added `save_mesh_vertices` option to `ycb_video` writer. - Changed - Changed `PytorchWriter` annotator to CUDA version of `LdrColor` annotator. - Updated to allow run-time mass randomization with GPU pipeline. - Changed DOPE writer to use `BackendDispatch` from `omni.replicator.core` for S3 writes. - Fixed - Fixed `OgnDope` node to have proper return type for `return_data_dtype_bbox_3d`. - Fixed device for `max_efforts` in `ArticulationView`. - Fixed `OgnPose.py`` node to read height and width from `imageWidth` and `imageHeight`. - Changed DOPE writer to write to folder within S3 bucket instead of root directory. - Added mising version field to PyTorch writer. - Updated render product paths for PyTorch writer test. - Cleaned up `extension.toml`. - Fixed `register_rigid_prim_view()` for `RigidPrimViews` that are non-root-link. - **omni.usd.schema.isaac** - Removed - Removed DR and ROS bridge schemas. 2022.1.1 -------- - Kit SDK 103.1 - Replicator APIs used for Composer - RTX Lidar sample ROS/ROS2 PCL publishing - Isaac Gym Performance improvements Tutorials ######### - Added - Configuring RMPflow for a New Manipulator - Motion Generation: RRT - Rigging Robots - Domain Randomization for RL - Instanceable Assets - Adding a New Manipulator - ROS1: Publishing Custom Messages in Extension Scripting - ROS1/2: Joint Control: Extension Python Scripting - ROS1/2: Sending Goals Programmatically for Multiple Robots - ROS1/2: Camera tutorials Assets ###### - Added Robots - Balance Bot - Crazyflie CX2 - Denso Cobotta Pro 900 - Denso Cobotta Pro 1300 - Ingenuity - Quadcopter Extensions ########## - **omni.isaac.cloner** - Changed - Added setting and deleting the different xform properties used by omni.isaac.core - Optimized cloning and collision filtering logic - Moved common utility functions to base Cloner class - Fixed - Preserve scale property from source prim - **omni.isaac.ros2_bridge** - Added - ROS2Context node has a useDomainIDEnvVar flag that can be set to true so that the ROS_DOMAIN_ID variable is used - omni.syntheticdata template to publish RTX lidar point cloud - ROS2 IMU publisher node - Removed - Unused carb settings - Fixed - Activating image publishers should not cause a crash anymore - File watcher patterns for extension - Quaternion input descriptions - Changed - Removed articulation control from OgnROS2SubscribeJointState - Added JointState message outputs to OgnROS2SubscribeJointState allowing users to connect outputs to articulation controller core_node - OgnROS2PublishSemanticLabels to accept string data type - Timestamp data now appended to JSON msg output - Improved image publisher perf - **omni.isaac.core** - Fixed - fixes `set_max_efforts` function: device must be on cpu - Reshape jacobian shape to match with shape of jacobian tensor. - Articulation Controller bugfix: `get_applied_action` was indexing joint_positions even if simulation is not running. - Articulation bugfix: `get_max_efforts` was always returning the `max_efforts` from PhysX instead of the joint-indices result when `clone=True`. - Articulation bugfix: `get_linear_velocity`, `get_angular_velocity` and `get_joint_velocities` was calling view's method twice once with indices then once without. The second time should be selecting the single element of the batch array from the `result` rather than calling the method again. - Articulation bugfix: `get_joint_positions` was calling view's method twice once with indices then once without. The second time should be selecting the single element of the batch array from the `result` rather than calling the method again. - Fixed GPU buffer attribute mismatch in physics context config parsing. - Added - get_semantics to return all semantic APIs applied onto a prim - Added joint_indices to the different get_joint_* methods in the Articulation. - Increase hang detection timeout (OM-55578) - Added setting gravity from sim config in physics context. - Added reset_xform_properties parameter to view classes for efficiency when the objects already have the right set of xform properties. - Added new APIs for ArticulationView and RigidPrimView - added get_first_matching_parent_prim, is_prim_non_root_articulation_link to prim utils - Parse GPU device ID from carb settings /physics/cudaDevice. - Changed - single prim classes inheritance structure to avoid duplication of code - get_all_matching_child_prims to return a list of prims instead of a list of prim_paths - get_first_matching_child_prim returns a prim instead of a prim path - statistics.py moved to omni.isaac.statistics_logging extension - Size to be a float for Cuboid instead of 3 dimensional (scale to be used instead for consistency with USD) - save_stage allows in place saving without reloading stage. - **omni.isaac.app.setup** - Added - Force PhysX reset on stop to be true - Increase hang detection timeout (OM-55578) - **omni.isaac.examples** - Added - Path Planning Example with resiazable and movable walls - Added keep_window_open parameter to BaseSampleExtension to keep a sample's window visible after hot-reloading. - **omni.isaac.synthetic_utils** - Removed - removed isaac replicator style DOPE Writer - removed isaac replicator style YCB Video writer - YCB Video writer using OV Replicator style added to omni.replicator.isaac - Changed - Raise exception in DOPE writer when s3 bucket name is invalid - Added - Change output folder structure for DOPE writer - Write to s3 bucket for DOPE Writer - DOPE Writer - Occlusion sensor in SyntheticDataHelper - initialize_async - Fixed - get_groundtruth works in an async function - **omni.isaac.ml_archive** - Changed - Use pip_torch extension instead of packaging torch directly. - make extension kit sdk version specific - Updating version for publishing - **omni.isaac.partition** - New Extension - **omni.isaac.conveyor** - Changed - Convert node to cpp backend - Conveyor node renamed to IsaacConveyor - Added - Simplified creating multiple conveyors, multiple prims can be selected on creation using menu - **omni.isaac.tests** - New Extension - **omni.replicator.isaac** - New Extension - **omni.isaac.franka** - Removed - Deleted GripperController class and used the new ParallelGripper class instead. - Changed - Changed gripper_dof_indices argument in PickPlaceController to gripper - Changed gripper_dof_indices argument in StackingController to gripper - Added - Added deltas argument in Franka class for the gripper action deltas when openning or closing. - Fixed - Bug with adding a custom usd for manipulator - **omni.isaac.urdf** - Added - Cobotta 900 urdf data files - Add instanceable option to importer - Fixed - Missing argument in example docstring - **omni.isaac.gym** - Fixed - Fix warnings generated on stage close - Added - Check for setting to disable viewport extension - Pass physics device ID to simulation app for GPU physics - Added support for headless gym app - **omni.isaac.range_sensor** - Fixed - Semantic APIs that ended with a random id are supported now, only the first semantic API applied is used. - Active semantic IDs only updated if Lidar was moved/changed, IDs are now cleared each frame to fix this - **omni.isaac.benchmark_environments** - Added - Added Cage environment - **omni.isaac.physics_inspector** - Fixed - Previously hardcoded unit strings - **omni.isaac.robot_benchmark** - Changed - Modified workflow for adding robots and controllers to robot_benchmark extension to be mostly code-based - Modified standalone script to run every permutation of (environment,robot,controller) that are passed in as arguments - Modigified robot_benchmark.py to teleport robots to a constant starting position that can be configuring in ./benchmark_config - Added - Added RRT planner - Added RRT+RMP hybrid planner - Added example for adding example robot and controller - **omni.isaac.dofbot** - Removed - Deleted GripperController class and used the new ParallelGripper class instead. - Changed - Changed gripper_dof_indices argument in PickPlaceController to gripper. - Added - Added deltas argument in Franka class for the gripper action deltas when openning or closing. - Fixed - Bug with adding a custom usd for manipulator - **omni.isaac.manipulators** - New Extension - **omni.isaac.synthetic_recorder** - Fixed - Error message when there was no instance data to write - **omni.isaac.ros_bridge** - Removed - Unused carb settings - Fixed - Activating image publishers should not cause a crash anymore - File watcher patterns for extension - Quaternion input descriptions - Added - omni.syntheticdata template to publish RTX lidar point cloud - ROS IMU publisher node - Changed - Removed articulation control from OgnROS1SubscribeJointState - Added JointState message outputs to OgnROS1SubscribeJointState allowing users to connect outputs to articulation controller core_node - OgnROS1PublishSemanticLabels to accept string data type - Timestamp data now appended to JSON msg output - Improved image publisher perf - **omni.isaac.onshape** - Changed - Using Local onshape_client package - Improvements on import process. - Fixed - Increased concurrent pool size to avoid issues on large assemblies. - Fixed download tracker to only vanish once process is complete - Handling of errors so import can continue without failures. - **omni.isaac.cortex** - Fixed - Switch to new gripper API - Bugfix: behavior modules don't load if the file doesn't exist on startup. - **omni.isaac.shapenet** - Removed - web access to models - http server for receiving external commands - **omni.isaac.motion_generation** - Changed - Updated RMPflow parameters in config YAML files for Denso robots: Turned on velocity_cap_rmp - Changed gripper_controller argument to gripper in the PickPlaceController. - moved PickPlaceController and StackingController to omni.isaac.manipulators - Changed docstrings for PathPlannerVisualizer and Lula RRT implementation - Updated ArticulationSubset to wait until robot joint states are queried to access the Articulation object. This avoids annoying errors when attempting to initialize an ArticulationMotionPolicy before the "play" button has been pressed. - Updated MotionPolicy to not assume a default orientation. It now passes None to the MotionPolicy. - Added - Added Cobotta Pro 900 and Cobotta Pro 1300 as supported robots with provided RMPflow config files and test cases. - Added set_param() function to Lula RRT implementation. - Added PathPlanningInterface with Lula RRT implementation and simple class for aiding visualization - Fixed - `ArticulationSubset.get_joint_subset_indices()` fixed (was returning function rather than return value of function call.) - Fixed unreliable test case for lula RRT by reducing the RRT step size - Fixed bug in RmpFlow.set_cspace_target() which changed the end effector target when it shouldn't have - Fixed bug in RmpFlow.get_internal_robot_joint_states() which resulted in a TypeError - **omni.isaac.statistics_logging** - Added - statistics.py from omni.isaac.core - read_log_file - summarize_statistics_log - Changed - Track and log memory usage and scene triangles, assets, & dimensions - **omni.isaac.dynamic_control** - Added - cMassLocalPose to DcRigidBodyProperties - Changed - Removed simple_articulation.usd, test_articulation_simple uses Nucleus asset - **omni.isaac.isaac_sensor** - Changed - Removed simple_articulation.usd, test_imu_sensor uses Nucleus asset - Added an exec out on the ReadContact and ReadIMU nodes - IsaacSensorCreateContactSensor, renamed offset to translation to be consistent with core - IsaacSensorCreateImuSensor, renamed offset to translation to be consistent with core - Use XformPrim to initialize sensors for consistency with core - Make return values for commands consistent, they now return: command_status, (success, prim) - Renamed BindingsContactSensorPython to BindingsIsaacSensorPython - Contact sensor resets on stop/start - Fixed - Removed extra print statement - Imu mRawBuffer resets upon stop/start - Added - ReadRTXLidarPointCloud Node - Read contact sensor omnigraph node and tests - Orientation reading to Imu sensor sample - Absolute orientation output to Imu sensor + tests - Read Imu node - **omni.isaac.core_archive** - Added - boto3, s3transfer - Changed - Make extension kit sdk version specific - Updating version for publishing - **omni.isaac.mjcf** - Added - Add armature to joints - Add instanceable option to importer - Fixed - Display Bookmarks when selecting files - **omni.isaac.wheeled_robots** - Fixed - Issue with holonomic controller returning an error on reset - Changed - pulled out the internal state classes for both holonomic and differential controller - Added - unit tests for nodes and controllers - doc strings for python files and comments for omnigraph nodes. - **omni.isaac.proximity_sensor** - New Extension - **omni.isaac.universal_robots** - Removed - Deleted GripperController class and used the new ParallelGripper class instead. - Changed - Changed gripper_dof_indices argument in PickPlaceController to gripper. - Changed gripper_dof_indices argument in StackingController to gripper. - Fixed - Bug with adding a custom usd for manipulator - **omni.isaac.core_nodes** - Added - utility function to cache node activations till the next frame. This solves an issue where activating node templates from other nodes would cause a race condition - Additional unit test for Articulation Controller node for cases where no joint names or indices were given - Unit test for Articulation Controller node - Added node to read file contents from path - Added node to read OS environment variables - Fixed - IsaacSetViewportResolution node forces window aperture to reset if the resolution is changed. - In OgnIsaacArticulationController, added validity check for joint_indicies list to prevent unnecessary warning message - In OgnIsaacArticulationController, added validity check for joint_indicies list to prevent unnecessary warning message - Quaternion input descriptions - Extension will still load if replicator templates fail to register. This prevents dependent extensions from also failing to load due to a replicator.core failure - Changed - IsaacComputeOdometry takes either an articulation root or a valid rigid body prim for the chassisPrim input - **omni.isaac.kit** - Added - Increase hang detection timeout (OM-55578) - added physics device parameter for setting CUDA device for GPU physics simulation - Deprecated - deprecated memory report in favor of using statistics logging utility 2022.1.0 --------------------- - Kit SDK 103.1 - Windows Support - Omniverse Replicator - Omniverse Gym and Physics Tensor API - Isaac Cortex - Scene Blox Scene Generation Tool - omniverse xr/vr support on Windows Documentation ############# - Tutorials - Restructured Introductory tutorials - Added OmniGraph tutorials - Additional ROS & ROS2 tutorials - Motion Generation - Lula Kinematics - Isaac Cortex - Isaac Gym - Updated tutorials to use Omniverse Replicator - Scene Blox Scene Generation Assets ###### - All assets are now in meters - Added Robots - Allegro Handle - Ant - ANYbotics ANYmal - Cartpole - Humanoid - Fraunhofer O3dyn - Shadow Hand - Unitree A1 - Unitree Go1 - Added Environments - Modular Warehouse Extensions ########## - Removed - omni.isaac.robot_engine_bridge - omni.isaac.gamepad - **omni.isaac.app.selector** - Changed - Use omni.isaac.version.get_version() - Rename Headless Kit Remote app to Headless Native app - Rename App Launcher to App Selector - **omni.isaac.app.setup** - Changed - Use carb.tokens to get kit exe path (OM-48462) - Fixed - Fixed hot reloading - Added - Use omni.isaac.version.get_version() - Added Isaac Sim App Selector to the Help Menu. - Added Isaac Sim full version tag in log file. - Removed - Moved Nucleus Check to its own extension (OM-43459) - **omni.isaac.articulation_inspector** - Removed - Joint Animation UI - Moved Gain Tuning UI to separate extension - Added - New Selection UI and bug fixes - **omni.isaac.assets_check** - New Extension - **omni.isaac.asset_browser** - New Extension - **omni.isaac.benchmark_environments** - Changed - Updated all hard coded USD object values to meters - updated object instantiation to use Core API - **omni.isaac.cloner** - New Extension - **omni.isaac.conveyor** - New Extension - **omni.isaac.core** - Fixed - handles_initialized in Articulation class - Setting pd gains in the gpu pipeline. - Object classes to use RigidViews if initialized - Bug is set_local_poses in RigidPrimView and ArticulationView - Object classes to wrap existing prims without changing its properties - Setting gains to persist across resets - GPU warmup - Reset in World was always resetting the physics sim view - issue with getting next stage free path slash parsing - missing args for `convert()` method - Fixed create_prim method to support sequence data type - Fixed prim interfaces to use sequence data type for setters and getters for pose and velocities - Added method `convert()` to backend utils to convert into respective object container - Fixed issue with specifying a USD path for a view regex - Fixed assets version file check. - acceleration spelling mistake in articulation_controller - cleaned up imports and comments in the utils - fixing visibility on XFormPrimView - docstring issues - Deleting a reference always when trying to delete a prim under the ref - Physics start on construction of XFormPrim to be able to use dc interface to query if its under an articulation. - XFormPrimView: fixed setting translation on init - converting gains from dc to usd units when saving to usd - Fix setting of local pose in XFormPrim constructor - Use a SDF Change block when deleting prims - Do not delete /Render/Vars prim when clearing stage - GeometryPrim was not setting the collision approximation type correctly - disable_gravity() for Articulation was enabling gravity - Changed - move and rename persistent.isaac.asset_root.cloud from assets_check extension - Replaced .check on physics views with an event callback for efficiency. - Adds checking for prim/prms in remove-object - Renamed copyAssetsURL to cloudAssetsURL. - Passing physics materials instead of physics material path along with its properties. - Use omni.isaac.version.get_version() - Removing redundant api in ArticulationView and RigidPrimView - Raise Exceptions when using set_linear_velocities and set_angular_velocities with the gpu pipleine - RigidPrim class using RigidPrimView, GeometryPrim uses GeometryPrimView and Articulation uses ArticulationView class - Added the option to enable flatcache in physics_context - Disabled updateToUsd in physics_context when flatcache is enabled to allow faster load time - Reorganized the functions in World and SimulationContext to make them clearer to understand - Update DOF path parsing in ArticulationView to use tensor API directly - Use tensor APIs when available for DOF properties - replaced find_nucleus_server() with get_assets_root_path() - Adapts the hierarchy of classes in object prims: The inheritance is as follows: - Visual(GeometryPrim): collision is disabled - Fixed(Visual): collision is enabled - Dynamic(Fixed, RigidPrim): collision is enabled and rigid body API applied (which enables the influence of external forces) - world.py: add step_sim param to step() paralleling the render flag - XFormPrim class to use XFormPrimView class internally - Changed default value of visibility in the XFormPrim class - replaced find_nucleus_server() with get_assets_root_path() - _list and _recursive_walk in omni.isaac.core.utils.nucleus to list_folder and recursive_list_folder - isaac.nucleus.default is now a persistent carb setting - get_intrinsics_matrix uses vertical_aperture set on camera prim - set_camera_view can take a user specified camera path - kinematics.py to omni.isaac.motion_generation extension - physx and usd tranformations update parameters are read from carb - Added feature to detect and update downloaded Isaac Sim assets on Nucleus (OM-41819) - Added - Added APIs to get/set Enable Scene Query Support attribute - Physics Handles check to avoid calling tensor api when the view is not valid. - Added persistent.isaac.asset_root.default - Added get_full_asset_path() - initialize_physics function in World and SimulationContext - Added persistent.isaac.asset_root.nvidia and persistent.isaac.asset_root.isaac setting - Added get_nvidia_asset_root_path() and get_isaac_asset_root_path() - Added get_url_root() and verify_asset_root_path() - Disable GPU usage warnings from tensor APIs in Core APIs - articulation: added an accessor for getting the default state. (previously you could only set it) - Added reset(), reset_async(), clear() methods to SimulationContext - API to enable/disable omni.physx.flatcache extension in PhysicsContext - API to track whether GPU pipeline is enabled - density in rigid prim view - Added checks for setters/getters of Geometry prim in the case collision is disabled - An argument to clear scene registery only - rotation and cross product util functions - added rotation conversion functions to and from quaternions - Added implementations of set_gains, set_max_efforts, set_effort_modes, switch_control_modes and the their getters in ArticulationView. - Forced physics to start on init of ArticulationView to initialize the num_dofs and other variables. - Added unit tests for ArticulationView. - Added initial docstrings for the added functions. - added pose_from_tf_matrix() to omni.isaac.core.utils.transformations - First version of Tensor API integration - added get_assets_server() - set gains in usd option is added to the articulation controller - get/set_rigid_body_enabled to omni.isaac.core.utils.physics - default predicate to omni.isaac.core.utils.prims.get_all_matching_child_prims - test_prims to omni.isaac.core.tests - is_prim_hidden_in_stage - dof_names property to Articulation - enable/disable rigid_body_physics for RigidPrims - enable_gravity() for Articulation - remove_all_semantics util function - add set_intrinsics_matrix function - Added set_defaults to SimulationContext, World and PhysicsContext - Removed - Removed persistent.isaac.nucleus.default setting - Removed find_nucleus_server() and find_nucleus_server_async() - Sim start in XFormPrim view and ArticulationView doesn't create a dummy physics view anymore - **omni.isaac.core_archive** - Added - osqp, qdldl - Split Isaac Pip Archive into Core and ML archives - **omni.isaac.core_nodes** - New Extension - **omni.isaac.cortex** - New Extension - **omni.isaac.debug_draw** - Added - Added flag to disable depth check - **omni.isaac.demos** - Changed - Updated reference to RmpFlow config files: - omni.isaac.motion_generation/policy_configs -> omni.isaac.motion_generation/motion_policy_configs - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.diff_usd** - New Extension - **omni.isaac.dofbot** - Changed - Changed InverseKinematicsSolver class to KinematicsSolver class, using the new LulaKinematicsSolver class in motion_generation - Updated RmpFlowController class init alongside modifying motion_generation extension - Updated RmpFlowController class alongside changes to motion_generation extension - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.dynamic_control** - Changed - non-backwards compatible change: dof indexing matches physx tensor API - Fixed - Handle physx unwrapped revolute joints - Properly delete handles on prim deletion - Error message when waking up a kinematic rigid body - Error message when setting linear velocity on a body with simulation disabled - Error message when setting angular velocity on a body with simulation disabled - **omni.isaac.examples** - Removed - ROS examples - Changed - stage setting changed from cm to m. - robofactory and roboparty uses hard coded position in meters (instead of cm) - Jetbot keyboard example replaced by omnigraph_keyboard, using scripting omnigraph to resizing a cube instead of moving a robot - Changed init functions for Franka, UR10, and DofBot controller classes alongside changes to motion_generation - Replaced kaya holonomic controller with the generic controller - Replaced find_nucleus_server() with get_assets_root_path() - Jetbot Keyboard example and Kaya Gamepad example are now powered by Omnigraph - Updated references to MotionGeneration - Added - Cleaned up BaseSample UI - Added Toggle Buttons to FollowTarget Example - **omni.isaac.franka** - Changed - Changed InverseKinematicsSolver class to KinematicsSolver class, using the new LulaKinematicsSolver class in motion_generation - Updated RmpFlowController class init alongside modifying motion_generation extension - Fix Franka units in gripper open config. - Updated RmpFlowController class alongside changes to motion_generation extension - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.gym** - New Extension - **omni.isaac.isaac_sensor** - General - fix property orientation loading bug - Moved sensor data aquisition function from tick to onPhysicsStep - Fixed component visualization - Fixed visualization error of the isaac sensors - Changed draw function to run onUpdate instead of physics call back - Added Imu sensor to isaac sensor - Changed extension name to omni.isaac.isaac_sensor - Changed Imu sensor getSensorReadings to output the readings from the last frame - Updated index.rst documentation for contact sensor and imu sensors - Converted contact sensor namespaces to isaac sensor namespaces - Add UI element to create contact sensor - Modified draw function to use USD util's global pose - Converted contact sensors into usdSchemas - Enable visualization of contact sensors in the stage - Bugfix for failing tests and missing updates - Compatibility for sdk 103 - **omni.isaac.kit** - Changed - a .kit experience file can now reference other .kit files from the apps folder - Make startup/close logs timestamped - Simulation App starts in cm instead of m to be consistent with the rest of isaac sim. - Fixed - Comment in simulation_app.py - Dlss is now loaded properly on startup - Added - Multi gpu flag to config - Windows support - memory_report to launch config. The delta memory usage is printed when the app closes. - automatically add allow-root if running as root user - **omni.isaac.lula** - Changed - Removed wheel from extension, provide installed wheel as part of extension instead. This removes the need for runtime installation. - Updated Lula from release 0.7.0 to 0.7.1. This fixes a bug in Lula's kinematics that had the potential to cause a segfault for certain robots. - **omni.isaac.mjcf** - New Extension - **omni.isaac.ml_archive** - New Extension - **omni.isaac.motion_generation** - Added - Added conversion to numpy if articulation backend is GPU/torch - Added getter to get the MotionPolicy from a MotionPolicyController. - Added some accessors to ArticulationMotionPolicy and ArticulationSubset. - Added Kinematics interface with a Lula implementation - Added ArticulationKinematicsSolver wrapper for interfacing kinematics with USD robot - Created ArticulationSubset class to handle index mapping between Articulation and MotionPolicy - Added RmpFlowSmoothed to lula/motion_policies.py to support cortex. - Separated RmpFlow visualization functions for end effector and collision spheres - Added test case for visualization - Added Sdf.ChangeBlock() to visualization functions for efficiency - test case for motion_generation extension: test for proper behavior when add/enable/disable/remove objects to RmpFlow - interface_config_loader: a set of helper functions for checking what config files exist directly in the motion_generation extension and loading the configs as keyword arguments to the appropriate class e.g. RmpFlow(loaded_config_dict) - Updated internal RMPflow implementation to allow for visualizing Lula collision spheres as prims on the stage - moved kinematics.py from omni.isaac.core.utils to this extension - Changed - Updated all hard coded USD object values to meters in motion_generation tests - Replaced InverseKinematicsSolver(BaseController) object with ArticulationKinematicsSolver - Renamed MotionGenerator to ArticulationMotionPolicy - Extracted methods from MotionPolicy to form a WorldInterface class. This has no functional effect on any code outside MotionGeneration - Obstacles are now marked as static explicitly when added to MotionPolicy - Fixed typo in interface_config_loader.py. - modified default RmpFlow configs have fewer updates per frame (10 was unnecessary) and to not ignore robot state updates by default - updated golden values in tests as a direct result of config change - Restructured MotionGeneration extension to place emphasis on MotionPolicy over MotionGeneration. The user is now expected to interact directly with a MotionPolicy for adding/editing obstacles, and setting targets. MotionGeneration is a light utility class for interfacing the simulated USD robot to the MotionPolicy (get USD robot state and appropriately map the joint indeces). - RmpFlowController -> MotionPolicyController: - The RmpFlowController wrapper that was used to interface Core examples with RmpFlow has been expanded to wrap any MotionPolicy - omni.isaac.motion_generation/policy_configs -> omni.isaac.motion_generation/motion_policy_configs: changed folder containing config files for MotionPolicies to be named "motion_policy_configs" to leave room for future interfaces to have config directories - Path to RmpFlow: omni.isaac.motion_generation.LulaMotionPolicies.RmpFlow -> omni.isaac.motion_generation.lula.motion_policies.RmpFlow - Updated MotionGeneration to use Core API to query prim position and control the robot - Fixed - Fixed bug in RmpFlow.create_ground_plane() related to unit conversion - ground plane handling: enable/disable/remove ground_plane didn't work - static obstacle handling: dictionary key error when enable/disable/remove static obstacles - Undefined joint in dofbot USD referenced by RMPflow config - **omni.isaac.motion_planning** - Added - Added Windows support. - Fixed - Fix physx sequential write issue. - **omni.isaac.occupancy_map** - Fixed - block world default to meters - scale_to_meters parameter - Deadlock when generating data - Changed - Replaced find_nucleus_server() with get_assets_root_path() - Api's always return 3d point data - Added - Add ability to generate 3d occupancy data - **omni.isaac.onshape** - General - Improvements on import process. - General improvements. - Add joint values API - Use current stage meters per unit scaling when importing stage. - Bugfix for cross-failure when omnigraph USD notice listener captured changes on the stage done within not the main thread. - stability improvements - Fix bug where cylindrical mates with same name get overriden. - Change naming convention for duplicate names - bugfix for non-ascii parts name that were failing to create usd due to empty filename. - Update dependencies list for standalone import. - **omni.isaac.physics_inspector** - Fixed - Switched to using USD RigidBodyAPI filter instead of dynamics control's type filter, in case the body is both an articulation root/link as well as a rigid body. - **omni.isaac.quadruped** - New Extension - **omni.isaac.range_sensor** - Fixed - Lidar semantics not getting visualized properly - Lidar sensor to prevent first frame from being outputted - Changed - Output data type from float to pointf in Isaac Read Lidar Point Cloud OG Node - Improved perf for Isaac Read Lidar Beams OG Node - Use orient op for commands that create sensors - Lidar sensor is now fully multithreaded per sensor and per ray - Improved use of tasking framework and simplified scan logic - added fabric support to lidar - Added - Isaac Read Lidar Point Cloud OG Node - Isaac Read Lidar Beams OG Node - Sequence number to track frame count - AzimuthRange and ZenithRange in Lidar sensor to track beginning and end angles of a scan - **omni.isaac.repl** - New Extension - **omni.isaac.robot_benchmark** - Changed - Updated all hard coded USD object values to meters - Removed redundant robot initialization that caused warnings in test case - Updated test golden values with change to motion_generation extension - Added verbosity to test failures - Updated extension alongside motion_generation to use MotionPolicy directly - Replaced find_nucleus_server() with get_assets_root_path() - Updated extension alongside motion_generation to use Core API - **omni.isaac.robot_engine_bridge** - Changed - capnp is now provided as a module instead of a wheel - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.robot_engine_bridge_gxf** - Changed - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.ros2_bridge** - Fixed - Removed Teleport sample from "Isaac Examples" Menu - Crash when switching extension on/off and simulating - Corrected stereoOffset input in OgnROS2CameraHelper - OG ROS2 pub/sub clock nodes now able to namespace topic names - Issue with lidar init on first frame - Issue with camera init on first frame - Crash when changing a camera parameter when stopped - laserScan publisher in RosLidar to be able to synchronize with Lidar sensor after any live user changes to USD properties - pointCloud publisher using seperate caching variables from laserScan to prevent accidental overwriting - TF Tree publisher parent frame to include filter for articulation objects, separately from rigid body. - Added - ROS2 examples in "Isaac Examples" Menu - ROS2 Image publisher node - ROS2 Camera Info publisher node - OG ROS2 Odometry publisher node - OG ROS2 Twist subscriber node - OG ROS2 Transform Tree publisher node - OG ROS2 Raw Transform Tree publisher node - OG ROS2 Joint State Publisher node - OG ROS2 Joint State Subscriber node - OG ROS2 LaserScan publisher node - OG ROS2 PointCloud2 publisher node for lidar - Utility method, addTopicPrefix for namespacing ROS2 topics - ROS2 Context - ROS2 pub/sub clock - Added ROS2 topic name validation - odometryEnabled setting to toggle both Odometry and TF publishers in differential base components - Changed - Fully switched to OG ROS2 bridge nodes - Added 32SC1 image type option to OgnROS2PublishImage - Output data types to vectord and quatd in ROS2 Odometry, Raw TF publisher nodes and Twist subscriber node - Added dropdown menu and validation for encoding input in ROS2 image publisher node - Output data type from float to pointf in ROS2 point cloud publisher node - ROS2 point cloud publisher node to read generic point cloud buffer - ROS2 laser scan publisher node to read generic lidar data buffers - Replaced find_nucleus_server() with get_assets_root_path() - Removed Cyclone DDS to allow defualt FastRTPS DDS to run instead - ROS2 Bridge to initialize rclcpp in onResume and shutdown rclcpp in onStop - Switch depth to new eDistanceToPlane sensor - **omni.isaac.ros_bridge** - Fixed - Updated OgnROS1ServiceTeleport to check for invalid prim to avoid crash - Corrected stereoOffset input in OgnROS1CameraHelper - ROS image publisher node name - ROS Raw TF publisher node description and warning message - Normalized robotFront vector when calculating odometry - Cross-product used to find robot's y-component of linear velocity in OG ROS Odometry publisher node - Issue with lidar init on first frame - Issue with camera init on first frame - Crash when changing a camera parameter when stopped - laserScan publisher to be able to synchronize with Lidar sensor after any live user changes to USD properties - pointCloud publisher using seperate caching variables from laserScan to prevent accidental overwriting - TF Tree publisher parent frame to include filter for articulation objects, separately from rigid body. - Added - ROS examples in "Isaac Examples" Menu - ROS Camera Info publisher node - ROS image publisher node - OG ROS teleport service - OG Isaac Read Odometry node - OG ROS Raw Transform Tree publisher node - OG ROS Odometry publisher with odom->chassis frame TF publish node - OG ROS Twist subscriber node - OG ROS Transform Tree publisher node - Utility method, addFramePrefix for namespacing frameIds - OG ROS Joint State Publisher node - OG ROS Joint State Subscriber node - OG ROS PointCloud2 publisher node for lidar - OG ROS laserscan publisher node - odometryEnabled setting to toggle both Odometry and TF publishers in differential base components - Changed - Fully switched to OG ROS bridge nodes - Add bbox2d,3d,instance, segmentation, camera_info to camera helper - renamed sensor to type for camera helper - added 32int output to image publisher - Added camera helper node - Added 2d bbox, 3d bbox, semantics nodes - Output data types to vectord and quatd in ROS Odometry, Raw TF publisher nodes and Twist subscriber node - Added dropdown menu and validation for encoding input in ROS image publisher node - Output data type from float to pointf in ROS point cloud publisher node - Added frameId input to ROS Image publisher node - Included row length calculation for image buffer in ROS Image publisher node - ROS point cloud publisher node to read generic point cloud buffer - ROS laserscan publisher node to accept data from Isaac Read Lidar Beams core node - Removed bundle input and added odometry related vector inputs to OG ROS Odometry publisher node - Updated UI Names for ROS OG nodes - Updated nodeNamespace descriptions for all ROS OG nodes - ROS OG nodes to use nodeNamespace as input - Default topic name for OG clock nodes - Add OG nodes for clock topic - Replaced find_nucleus_server() with get_assets_root_path() - Switch depth to new eDistanceToPlane sensor - Enable OmniGraph - **omni.isaac.shapenet** - Fixed - Make webserver thread a daemon so it does not block fast exit - jupyter_notebook.sh can now take file names with spaces in them - Changed - Add defaults to http commands - clearer message when shapenet.org login fails - allow random ids to work outside the ui - **omni.isaac.statistics_logging** - New Extension - **omni.isaac.surface_gripper** - Changed - Change Tests to use meters as distance unit - Added - Surface Gripper Omnigraph Node - **omni.isaac.synthetic_utils** - Changed - Modify the initialize() function to wait until sensor data is available - Replaced find_nucleus_server() with get_assets_root_path() - updated code to match API changes in omni.syntheticdata - Added - YCB Video writer - **omni.isaac.ui** - General - expose labels for file/folder picker - Windows support to open vscode and folders - **omni.isaac.ui_template** - Added - Fixes layout issues - **omni.isaac.unit_converter** - General - bugfix when Joints are nested in Meshes or Primitive shapes get double-scaled - bugfix when Update All referenced stages is uncheckeced - local delta to complete the conversion. - **omni.isaac.universal_robots** - Changed - backwards compatible change to UR10's post_reset() implementation. Removed the hard coded override, and added the hard coded config as a default config in initialize(). Functionality equivalent but uses the underlying Articulation objects's default config functionality. - Changed InverseKinematicsSolver class to KinematicsSolver class, using the new LulaKinematicsSolver class in motion_generation - Updated RmpFlowController class init alongside modifying motion_generation extension - Updated RmpFlowController class alongside changes to motion_generation extension - Replaced find_nucleus_server() with get_assets_root_path() - Fixed - Adding a gripper to UR10 - **omni.isaac.urdf** - Changed - Fix title for file picker - Fix units for samples - Add joint values API - Add Texture import compatibility for Windows. - Revamped UI - Fixed bug where missing mesh on part with urdf material assigned would crash on material binding in a non-existing prim. - Fix bug where material was indexed by name and removing false duplicates. - Add Normal subdivision group import parameter. - **omni.isaac.utils** - Changed - Replaced find_nucleus_server() with get_assets_root_path() - **omni.isaac.version** - New Extension - **omni.isaac.wheeled_robots** - New Extension - **omni.isaac.window.about** - Changed - Use omni.isaac.version.get_version() - **omni.usd.schema.isaac** - Added - Add Isaac Sensor USD Schema - Add Contact Sensor USD Schema - Add IMU Sensor USD Schema 2021.2.1 --------------------- Documentation ############# - New Tutorials - Tutorial for Jetbot Stable Baselines RL - Record & Replay Data logging tutorial - Generic range sensor tutorial - Lidar range sensor tutorial - Docker + ROS tutorial - New GUI tutorial - Shapenet Importer Tutorial - Manuals - All manuals modified to have a more consistent structure Extensions ########## - **omni.isaac.app.setup** - Added: feature to detect and update downloaded Isaac Sim assets on Nucleus - Fixed: nucleusCheck running during post-install and warm-up - Changed: settings to use camel case - **omni.isaac.core** - Added - feature to detect and update downloaded Isaac Sim assets on Nucleus - isaac.nucleus.default setting moved from omni.isaac.utils - get_memory_stats to return a dictionary with memory usage statistics - Fixed - XformPrim now checks if orient is in single or double precision before setting - Changed - gf_quatf_to_np_array and gf_quatd_to_np_array to gf_quat_to_np_array - control_index to time_step_index in pre_step in BaseTask - recompute_extents now takes an argument to include children in recomputation - Extensions updated due to changes in omni.isaac.core - omni.isaac.dofbot - omni.isaac.universal_robots - **omni.isaac.examples** - Added - replay follow target example to showcase data logging and how to replay data in simulation. - Stop button greys out the buttons of the sample so the user presses reset for a proper reset. - pre_reset function in base sample - Fixed: Follow Target example when adding an obstacle and then resetting - Changed - post_reset is not called after load anymore - Propagation of core api changes - Rename kaya joystick to kaya gamepad - **omni.isaac.manip** - Renamed to omni.isaac.gamepad - **omni.isaac.imu_sensor** - Fixed: Acceleration due to gravity takes stage units into account - **omni.isaac.kit** - Added: reset_render_settings API to reset render settings after loading a stage. - Changed - Remove omni.isaac.core and omni.physx dependency - Shutdown print statements are now consistent with startup - **omni.isaac.motion_generation** - Changed - Removed deprecated fields from the Lula robot description files and RMPflow configuration files for the DOFBOT and Franka robots. This also corrects an oversight in the Franka robot description file that had resulted in a lack of collision spheres (and thus obstacle avoidance) for panda_link6. - event_velocities to events_dt in PickPlaceController - Added new phase of wait in PickPlaceController - **omni.isaac.onshape** - Removed mass properties when Import physics is not selected - Live import / Add to scene as meshes get imported - Add option to display/Hide unsupported documents - General UI improvements - Add Cylindrical Mates support - Change all transforms to Translate/Orient pairs - Fix document search bug when an empty string is provided after something was typed in and no results were showing. - **omni.isaac.range_sensor** - Fixed issue with generic sensor outputting sensor pattern image file - **omni.usaac.ros_bridge** - Fixed - odometry frame matches robot's starting frame, not the world frame. - horizontal and vertical aperture use camera prim values instead of computing vertical aperture - lidar components publish point cloud data as PCL2 messages instead of PCL - lidar PCL2 messages only contain points that hit - lidar publisher publishes a full scan for point cloud data - Added: usePhysicsStepSimTime setting and use_physics_step_sim_time to use physics step events to update simulation time - **omni.usaac.ros2_bridge** - Fixed - odometry frame matches robot's starting frame, not the world frame. - horizontal and vertical aperture use camera prim values instead of computing vertical aperture - lidar components publish point cloud data as PCL2 messages instead of PCL - lidar PCL2 messages only contain points that hit - lidar publisher publishes a full scan for point cloud data - Added: usePhysicsStepSimTime setting and use_physics_step_sim_time to use physics step events to update simulation time - **omni.isaac.ui** - adjust tooltip for ui Buttons with changed background color - **omni.isaac.unit_converter** - Add Physx Collision attributes - Disable Update All Referenced Stages by default - Do not save current stage unless Update All Referenced Stages is enabled - **omni.isaac.urdf** - Use double precision for xform ops to match isaac sim defaults - Default to save Imported assets on a new USD and reference it on open stage. - Change base robot prim to also use orientOP instead of rotateOP - Change behavior where any stage event (e.g selection changed) was resetting some options on the UI - Texture support for OBJ and Collada assets. - Remove bug where an invalid link on a joint would stop importing the remainder of the urdf. raises an error message instead. - **omni.isaac.utils** - isaac.nucleus.default setting moved to omni.isaac.core 2021.2.0 --------------------- Robotics Experience ############################## - Documentation - Added - Keyboard shortcuts Reference - Isaac Sim Conventions Reference - ROS & ROS2 installation Guide - Python Installation Guide - Riemannian Motion Policy Manual - Simplified: - Installation Guides - Documentation structure and redirection - New Tutorials: - Required tutorials for all users - Advanced tutorials for specific topics - Replicator Tutorials for synthetic data generation - ROS & ROS2 tutorials - Assets: - Added: - Full Warehouse environment - Hospital environment - Office environment - Dofbot robot model - AWS robomaker jetbot - Higher fidelity carter v2 model - Renamed - carter_sphere_wheels_lidar.usd renamed to carter_v1.usd - Changed - UR10 gripper structure changed to allow for more flexibility in adding new grippers. - Standalone Samples and Tools: - Replicator Composer Data Generation Tools - Jupyter Notebook Samples - Standalone samples split by extension they represent - Simplified & combined synthetic data generation examples - Removed Jetbot RL samples, these are being re-factored with the new omni.isaac.core APIs and will be added back in the future - ROS, ROS2: - Changed - ros_samples folder renamed to ros_workspace - ros2_samples folder renamed to ros2_workspace - ros_workspace is now a full ros workspace - ros2_workspace is now a full ros2 workspace - General - Nucleus and Cache included in the Docker container - Livestream WebRTC removed - Jupyter Notebook support - Faster Startup time - Reduced System memory usage - Improved Stability - Extensions: - Newly added or moved - **omni.isaac.demos**: Collect older samples that are difficult to tutorialize and show more complex features. - **omni.isaac.core**: Provide a place to define core |isaac-sim_short| APIs - **omni.isaac.dofbot**: Provides controllers and tasks for dofbot manipulator - **omni.isaac.examples**: New example extensions used for tutorial purposes - **omni.isaac.imu_sensor**: Extension provides IMU simulation support - **omni.isaac.franka**: Provides controllers and tasks for franka manipulator - **omni.isaac.jetbot**: Provides controllers and tasks for jetbot base - **omni.isaac.lula**: Low level extension provides RMP interfaces, see omni.isaac.motion_generation for higher level interface - **omni.isaac.kaya**: Provides controllers and tasks for kaya base - **omni.isaac.kit**: Provides a new SimulationApp class used for standalone python samples, replaced omni.isaac.kit - **omni.isaac.proximity_sensor**: Sample extension showing how a custom proximity sensor can be made using PhysX overlap API - **omni.isaac.physics_utilities**: Moved from omni.isaac.utils into its own extension - **omni.isaac.replicator_playground**: Sample showing a workflow to generate synthetic data and train in an interactive UI - **omni.isaac.synthetic_recorder**: Moved from omni.isaac.synthetic_utils - **omni.isaac.ui**: Extension provides UI building blocks used in |isaac-sim_short| extensions so there is a consistent visual style - **omni.isaac.ui.template**: Example extension showing all of the different building blocks - **omni.isaac.universal_robots**: Provides controllers and tasks for ur10 manipulator - **omni.isaac.motion_generation**: Extension provides a general interface for motion generation algorithms like RMPs, replaces - **omni.isaac.surface_gripper**: Moved extension from omni.isaac.utils - **omni.isaac.contact_sensor** - Fixed: Total contact impulse is calculated correctly - Readings only generate interpolations between last two physics time steps - **omni.isaac.debug_draw** - Added: world space flag to specify if width value is in world coordinates. - **omni.isaac.dr** - Changed: - DR scope is hidden by default - Mesh component requires a parent prim to be specified - DR layer is created on extension startup - Traverse child prims to make sure no extra DR components exist in referenced prims. - **omni.isaac.dynamic_control** - Changed - DriveMode is now either DRIVE_FORCE or DRIVE_ACCELERATION, default is acceleration - Position/Velocity drive is not specified via DriveMode - All API calls verify if simulating, return otherwise - set_dof_properties will not enable or change drive limits - set_dof_state takes StateFlags to apply specific states - get_dof_state takes StateFlags to set which states to get - apply_effort -> set_effort - apply_articulation_dof_efforts -> set_articulation_dof_efforts - handle refresh messages are printed out as info messages, instead of always printing - apply_body_force now has a bool to specify if the force is global or local - Added - State variables can be printed - ArticulationProperties to control articulation settings - RigidBodyProperties can control iteration counts and contact impulse settings - get_articulation_properties - set_articulation_properties - get_articulation_dof_position_targets - get_articulation_dof_velocity_targets - get_articulation_dof_masses - set_rigid_body_properties - get_dof_properties - unit tests for most articulation, rigid body, dof and joint apis - utilities for common scene setup and testing - Sleep functions for rigid bodies and articulations - apply_body_torque - Removed - get_articulation_dof_state_derivatives - DriveModes DRIVE_NONE, DRIVE_POS, DRIVE_VEL - Fixed - apply_body_force now applies a force at a point - set_dof_properties does not break position/velocity drives - dof efforts report correct forces/torques due to gravity - when changing state of a dof or a root link, unrelated state values are not applied anymore - set_dof_state applies efforts now - get_dof_properties works correctly now - get_effort - get_articulation_dof_efforts - crash when stepping with a zero timestep as first step - Known Issues - dof efforts do not contain forces from external interactions, this will be added in the future using articulation sensors - **omni.isaac.merge_mesh** - Added - Instanceable lookup - Override Material support - **omni.isaac.motion_planning** - Deprecated in favor of omni.isaac.motion_generation - **omni.isaac.occupancy_map** - Added - 3D Occupancy Map support that allow 2D maps to be generated from 3D volumes - Block World Extension that allows a 2D map image to be converted to 3D geometry - Improvements - Simplified UI - Faster performance - Debug visualization - **omni.isaac.onshape** - Updated UI - Minor Bugfixes to import and physics - Performance Improvements - **omni.kit.cad_importer** - Changed - Ui Changes - Incorporated on the Import buttons path - Added - IGES file format support - Adding free surfaces importing - Improved - Performance and stability - Deprecated - Multi-LOD importing - **omni.isaac.python_app** - Deprecated in favor of omni.isaac.kit and omni.isaac.core - OmniKitHelper is replaced by SimulationApp and SimulationContext - **omni.isaac.range_sensor** - Fixed: - Sensors were not obeying enabled floating - Added - Basic USS material support - **omni.isaac.robot_engine_bridge** - Added - API to publish custom messages to bridge SDK Applications - API to get sim and app times in nanoseconds - **omni.isaac.ros_bridge** and **omni.isaac.ros2_bridge** - Improved: - Camera point cloud publisher performance - Pose Tree warnings - Added: - Distortion info to Camera messages - PCL Depth Camera Message - Changed: - Interpolate joint velocity is used for Joint State - Namespace is used to automatically prefix topic/frame names. - Publish Joint Efforts - Fixed: - ROS TC Camera convention is now correct - Lidar publishing issue for full set_articulation_properties - Lidar point cloud publishing works when switching from 2D to 3D - **omni.isaac.synthetic_utils** - Added - APIs for mapped semantic information - kitti writer supports both loose and tight 2d bounding boxes for labels - Base writer classes for numpy and kitti writers - Functions to initialize sensors - API to get DR layer name - Removed - Removed domain randomization helper file. Use commands directly. - Moved shapenet utility file to omni.isaac.shapenet. - Helper functions which are now part of omni.syntheticdata - Fixed - Issues with synthetic data not being available when requested - Issues with ground truth and camera pose - **omni.isaac.urdf** - Changed - create physics scene is false for import config - create physics scene will not create a scene if one exists - set default prim is false for import config - distance_scale sets the stage to the same units for consistency - None drive mode still applies DriveAPI, but keeps the stiffness/damping at zero - rootJoint prim is renamed to root_joint for consistency with other joint names. - Spheres and Cubes are treated as shapes - Cylinders are by default imported with custom geometry enabled - Joint drives are default force instead of acceleration - Added: - Support to specify usd paths for urdf meshes. - Floating joints are ignored but place any child links at the correct location. - Default position drive damping to UI - Fixed: - warnings when setting attributes as double when they should have been float - Crash when urdf contained a floating joint - Default config parameters are now respected - Meshes were not imported correctly, fixed subdivision scheme setting - Removed: - Parsing URDF is not a separate step with its own UI - **omni.isaac.utils** - Removed: - Most python utility functions have been moved to omni.isaac.core - Extensions moved to their own standalone extension folders Omniverse Kit ############################## - Based on |kit| SDK 102.1.2 2021.1.1 Open Beta --------------------- Robotics Experience ############################## - Added New Samples: - ROS MoveIt sample - Native Python Asset converter sample - Native python ROS samples - Native python livestream sample - Added Documentation - Clarify python setup - Missing python samples - Omnikithelper - ROS Setup, python usage - Debug Drawing utilities - Improvements: - Added omniverse commands for all ROS bridge python API calls - Added ability to tick ROS components manually - Can specify command line arguments from launcher directly - Added nucleus server configuration dialog at startup - Contact sensor provides dt for raw data - Omnikithelper config can control window size - Overall documentation cleanup - Bug Fixes: - URDF importer improperly handled zero joint velocity limit - Fixed incorrect asset converter version in Docker image - Fixed issue with certain browsers not opening documentation links - Handle exception with shapenet extension if multiple isaac-sim instances are launched - Removed default extension registry - REB rigid body sink published incorrectly with large number of objects - Fixed RMP replay sample initialization 2021.1.0 Open Beta --------------------- Omniverse Kit ############################## - Based on |kit| SDK 101.0 Isaac SDK ############################## - Support |isaac-sdk_short| 2021.1 Robotics Experience ############################## - Added new features: - Contact force sensor support - Ultrasonic sensor support - Onshape CAD import support - ROS2 bridge - Native Rospy and Rclpy integration - Multi Camera support with |isaac-sdk_short|, ROS/ROS2 - Multi Camera based Synthetic Data Recorder - Kitti format writer for synthetic data - Segmented lidar point cloud - Added new samples: - ROS/ROS2 Navigation - ROS April Tag, Stereo Cameras - RMP Sample - Several new pure python samples - Synthetic data generation - Multiple/Stereo cameras - DofBot Sim2Real Mirroring, Synthetic Data Training & Deploying - New Assets: - DofBot - Carter 2.0 - Improvements: - UI Improvements - Performance Improvements - DLSS integration - Enhanced Domain Randomization: - New Components - Random Distribution Support - Polygonal and path based movement behaviors - Improved Python API documentation - Improved Python Debugging - Documented useful |isaac-sim| tips - Websocket livestreaming support - JetBot training in Sim, deploying on real JetBot - Bug Fixes: - URDF Importer - Dynamic Control stability - ROS bridge stability 2020.2.2 Early Access --------------------- Omniverse Kit ############################## - Based on |kit| Release 2020.2.2 Isaac SDK ############################## - Support |isaac-sdk_short| 2020.2 Robotics Experience ############################## - Added Factory Asset - |isaac-sdk_short| Supported Applications - Matrix Production - 3D Object Pose Estimation - Modifications on the JetBot and JetRacer RL Samples - Several Minor Bug Fixes 2020.2 Early Access ------------------- Omniverse Kit ############################## - Based on |kit| Release 2020.2 + Hotfix release Robotics Experience ############################## - STEP Importer for importing advanced CAD files - Improved URDF Importer - Added tools for sensors - Visualizer for RGB, Depth, Segmentation and 2D BBox - Synthetic Data Recorder - Added Ground Truth Data - 3D BBox - Added to the set of supported messages and ROS services to ROS Bridge - Segmentation & BBox Messages - Velocity Control - TurtleBot Example - Simple Differential Base Controller - Live Physics Inspector - Occupancy Grid 2D Map Generator - April Tag MDL - Added Robot Models - JetBot - JetRacer Provided Samples ############################## - Reinforcement Learning - JetBot Lane Following - JetRacer Lane Following - Synthetic Data Generation - Domain Randomization - Offline dataset generation - Dataset Generation with Physics and Glass 2020.1 Early Access ------------------- Omniverse Kit ############################## - Based on |kit| Release 2020.1 - Nucleus Server support Isaac SDK ############################## - Support |isaac-sdk_short| 2020.1 Robotics Experience ############################## - Sensor models: Depth, Lidar - Ground Truth: Depth, Segmentation, 2D Bounding Box - ShapeNet Importer - Domain Randomization: Randomize lighting, color, texture, pose - |isaac-sdk_short| machine interface for manipulation and navigation: Scene loader, Joint Control, Differential Base, Scissor Lift, Surface Gripper, Two finger Gripper, Rigid Body Sink, Teleport, Scenario From Message, Lidar, Camera, Contact Monitor - Added to the set of supported messages and ROS services to ROS Bridge: Camera topics, joint state topics, tf topics, lidar topic, joint commands, pose teleport services - Added to robot models: Carter, Kaya, STR, UR10 - Added environments: Grid Room, Simple Room, Simple Warehouse - Added object models: Blocks, Dolly, Flip_stack, Forklift, KLT_Bin, Mounts, Pallet, Rubiks_cube, sortbot housing, skies Provided Samples ############################## - Dynamic Control - Articulation Info - Joint Monkey - Lidar Info - Domain Randomization - Component Sample - Simple Room Sample - Warehouse Sample - Kaya Joystick - URDF - Carter - Franka - Kaya - UR10 Preview - Stack Bins - Fill Bins - Surface Gripper Example - Headless Synthetic Data Generation Example - |isaac-sdk_short| Samples - Warehouse Navigation with Carter - Cart Delivery - Shuffle Box with Simulator - Simple Joint Control System Configuration ############################## - Requires a workstation equipped with RTX card 2019.3 Leonardo Preview ------------------------ Omniverse Kit ############################## - Editor - RTX Rendering - PhysX 5 - Python Scripting Robotics Experience ############################## - URDF Importer - Sensor Models: RGB - Franka Manipulator Model Provided Samples ############################## - Leonardo Preview - Ghost Robots - Simple Stack - Multiple Obstacles System Configuration ############################## - Cloud: Running on AWS