IImuSensor#
Fully qualified name: isaacsim::sensors::experimental::physics::IImuSensor
-
struct IImuSensor#
Carbonite interface for managing C++ IMU sensors.
Provides engine-agnostic IMU simulation using IPrimDataReader for rigid body velocities and Pose.h for sensor world transforms. Supports configurable rolling average filters and gravity inclusion.
The plugin is self-driving: it subscribes to PhysX simulation events (eResumed / eStopped) and physics step events internally, so it initializes, discovers sensors, and processes each substep without any Python relay.
Lifecycle:
acquire via carb::getCachedInterface or pybind11 acquire function
createSensor() for each IsaacImuSensor prim (plugin self-initializes on eResumed)
getSensorReading() to read data (sensors update automatically each substep)
shutdown() on extension unload
Public Functions
-
virtual void shutdown() = 0#
Shut down the manager, destroying all sensors and freeing resources.
-
virtual bool createSensor(const char *primPath) = 0#
Create an IMU sensor for the given IsaacImuSensor prim.
Finds the parent rigid body by walking up the prim hierarchy and creates an IRigidBodyDataView for velocity data. If a sensor already exists for this prim path the call succeeds without creating a duplicate.
- Parameters:
primPath – USD path to the IsaacImuSensor prim.
- Returns:
true on success (sensor created or already exists), false on failure.
-
virtual void removeSensor(const char *primPath) = 0#
Remove a sensor and free its resources.
- Parameters:
primPath – USD path used when the sensor was created.
- virtual ImuSensorReading getSensorReading(
- const char *primPath,
- bool readGravity,
Get the latest reading for a sensor.
- Parameters:
primPath – USD path used when the sensor was created.
readGravity – If true, include gravity in acceleration output.
- Returns:
Sensor reading. isValid is false if sensor is disabled or not found.