IMU's are extremely useful in SLAM.
Here is just a basic list of some of the benefits/uses.
- Provides an initial guess on pose for optimization methods.
- Helps filter out outliers for computer vision feature matching.
- Provides scale in monocular slam.
- Provides global pitch and roll estimates.
- Works much better for Kalman filters prediction then a basic velocity model.
- Only sensor that can reliably work everywhere.(Cameras need lighting, GPS needs a connection, LIDAR problems with reflections and rain)
- An easy source of angular velocity which is useful for getting rid of motion blur in cameras and LIDAR.
- Scenario identification: In car odometry it can help detect when the wheels are slipping.
- And more that I can't think of the moment.
When should they be used?
Always. You should never have a sensing platform/robot without an IMU.
More generally, how do you handle the horrible accumulation of error
making the item essentially useless for localization?
You always have to pair it with a sensor that is more accurate in the long term. LIDAR,GPS, Cameras, are all viable options. The IMU is there to estimate the pose in the short time between these other measurements.
Also if your motion model is good for something like a car then you can also get some really good estimates. Take a look at https://github.com/mbrossar/ai-imu-dr. The results with purely an IMU is on par with several state of the art SLAM methods.