Isaac Sim / IMU not yielding correct measurements when changing its orientation

Hi there,

I found that whenever we change the initial orientation of the IMUSensor on ISAAC, the values it yields are not correct.
These are the steps to follow to reproduce the error:

  • Create a new Physics Scene with its Ground Plane.
  • Add a Cube (with its RigidBody and Colliders properties).
  • Add an IMUSensor to the cube.
  • Change the orientation of the IMUSensor.

Here a little video showing this. When it starts it yields the correct value of acceleration given the local frame. However, when it gets rotated, it yields incorrect values.

It’s hard to tell from your example what orientation the IMU output should be at. However, the IMU gives results in it’s own frame of reference.

Try this. Start the scene as you normally would, where the coordinate system (frame of reference) for the cube is the same as the world. Hit play and see that the IMU reads 0,0,9.8 once the cube is at rest.

Now reset the scene with the stop button, select the cube and enter 180 in the Y component of the cubes orientation. The play again. My result is 0,0,-9.8 as I would expect. Since I rotated the cube 180 around Y, so it’s frame of reference is pointing up instead of down.

Hi, thanks for the answer.

I may have not well explained the problem:

  • The issue is not when you first run the simulation, instead, it arises whenever you start moving the frame during simulation. I attach another video (hope its clearer). So, whenever you rotate the IMU’s frame after stopping the scene, the first value it yields is correct. Then, things get bad when you move the whole rigid body during simulation.
  • In the last video the acceleration should have all of its magnitude in the Y direction, and it is not the case.

In the video, there are two simulations:

  • The first one is with the default IMU’s frame. I run the simulation, I move the rigid body, and measurements are ok.
  • For the second one, I rotate the IMU’s frame 90 degrees in X while simulation stopped, I hit play, and then I move the rigid body. Before moving the rigid body, the measurements are ok. However, after moving it, the gravity appears to be oriented on axis X, with a really small component on Z (and it should be completely on axis Z).

@mcarlson1 I also noticed that if the unit of the the simulation is not 1 the linear measurements are scaled twice when using _is.get_sensor_sim_reading(handle + “/imu_sensor”) and also on the GUI.

Hello, thank you for raising this issue. We are looking at this issue now and will get back to you when we have a fix or a solution. Thanks!