ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I think that's an intended behaviour.

You see IMU gives linear and angular acceleration values. These values have to be double integrated to get positions. The problem is, everytime the IMU calculates acceleration, there is an error. And that error gets integrated and multiplied. And within seconds, this accumulated error would be so large that your data from IMU will be useless for calculation position.

IMU by itself is not a reliable way to measure position. What you can do however, is fuse this data with odometry ( if it's a wheeled robot) using a kalman filter, to get accurate results.

There's a package for Extended kalman filter (ekf) in ROS. That might help.

I think that's an intended behaviour.

You see IMU gives linear and angular acceleration values. These values have to be double integrated to get positions. The problem is, everytime the IMU calculates acceleration, there is an error. And that error gets integrated and multiplied. And multiplied and within seconds, this accumulated error would be so large that your data from IMU will be useless for calculation of the position.

IMU by itself is not a reliable way to measure position. What you can do do, however, is fuse this data with odometry ( if it's a wheeled robot) using a kalman filter, to get accurate results.

There's a package for Extended kalman filter (ekf) in ROS. That might help.