Isaac Sensor

About

The Isaac Sensor Extension holds a collection of physics based sensors in the isaac simulator. Currently, this extension supports Contact sensors and IMU Sensors simulations. This extension is enabled by default. If it is ever disabled, it can be re-enabled from the Extension Manager by searching for omni.isaac.isaac_sensor.

Contact Sensor

  • A contact sensor allows sampling at any given rate, and has upper and lower thresholds on the reading limits.

  • Like real sensors, contact cells provide scalar values.

  • The contact sensor interface also provides utilities to read raw contact data from the simulation for closer inspection and visualization to see the location and size of the contact sensor.

See the Conventions Reference documentation for a complete list of Omniverse Isaac Sim conventions.

IMU Sensor

  • The IMU sensor in Omniverse Isaac Sim tracks the motion of the body and outputs simulated accelerometer and gyroscope readings.

  • Like real IMU sensors, simulated IMUs gives acceleration and angular velocity measurements in local x, y, z axis with stage units.

See the Conventions Reference documentation for a complete list of Omniverse Isaac Sim conventions.

API Documentation

See the API Documentation for complete usage information.

Tutorials & Examples

The following tutorials and examples showcase how to best use this extension:

Tutorials

Creating Isaac Sensors with UI

  • Creating sensors with default presets: Create > Isaac > Sensors > Contact Sensor / IMU Sensor

../_images/isaac_isaac_sensor_ui_0.gif

Examples

Contact Sensor Example

  • Contact Sensor Example: Isaac Examples > Sensors > Contact

To run the Example:

  1. Go to the top menu bar and click Isaac Examples > Sensors > Contact.

  2. You should now see a window containing the sensor’s force readings color coded by each ant’s arm.

  3. Press the Open Source Code button to view the source code. The source code illustrates how to load an Ant body into the scene and then add sensors to it using the Python API.

  4. Press the PLAY button to begin simulating.

  5. Press SHIFT + LEFT_CLICK to drag the ant around and see changes in the readings.

../_images/isaac_contact_sensor_0.gif

IMU Example

  • IMU Example: Isaac Examples > Sensors > IMU

To run the Example:

  1. Go to the top menu bar and click Isaac Examples > Sensors > IMU.

  2. You should now see a window containing each axis of the accelerometer and gyro readings being displayed.

  3. Press the Open Source Code button to view the source code. The source code illustrates how to load an Ant body into the scene and then add the sensor to it using the Python API.

  4. Press the PLAY button to begin simulating.

  5. Press SHIFT + LEFT_CLICK to drag the ant around and see changes in the readings.

../_images/isaac_imu_sensor_1.gif

Tensor API Example

Force Sensors can be created for Rigid Bodies within Articulations and readings can be retrieved through the ArticulationView as a tensorized buffer for sensors within the ArticulationView.

Sensors can be added from the UI by right clicking on a Rigid Body inside an Articulation, then from the menu, select Add > Physics > Articulation Force Sensor.

../_images/isaac_sim_add_force_sensor.png

To retrieve readings from the added sensors, first create an ArticulationView, then use the get_force_sensor_forces() API, which will return a buffer of dimension (num_articulations, num_sensors_per_articulation, 6).

robots = ArticulationView(prim_paths_expr="/World/envs/.*/Ant/torso")

# start simulation
...

sensor_readings = robots._physics_view.get_force_sensor_forces()