I mounted a power bank on the base of my Stretch SE3 and noticed that the IMU readings are significantly disturbed, likely due to magnetic interference. For example, when I query the IMU with:
import stretch_body.robot
r = stretch_body.robot.Robot()
r.startup()
print(r.pimu.status['imu'])
the values for mx, my, mz appear clearly distorted compared to before.
Is there an official calibration procedure or manual for recalibrating the IMU on Stretch SE3?
Hi @seongwoncho, I just confirmed. Unfortunately, the new IMU’s magnetometer can’t be recalibrated since it doesn’t allow the softiron matrix to be set programmatically.
Surprisingly it wasn’t the IMU at all — I realized that my code wasn’t even using the IMU sensor values, and the same rotation errors appeared when I placed a different heavy object (~2 kg) on the base.
So the issue clearly comes from the added weight rather than magnetic interference. I already tried REx_base_calibrate_wheel_separation.py, but it didn’t make much difference.
Are there other calibration steps or adjustments you’d recommend in this situation?
What kinds of rotation errors are you getting? Like your commands aren’t being executed or the base.status['x/y/theta'] odometry reported isn’t accurate?