I experienced some drifting when coming near to magnetic fields with my IMU, so I wondered if it is possible to completely shield the IMU from external influences. Would this be theoretically possible or does the IMU rely on external fields like the earth magnetic field? Are there maybe alternatives to IMUs that are less susceptible to magnetic interferences? I only need the rotational data of the sensor and don't use translational output.
Nope. Magnetometers measure the magnetic field. The field it's measuring is going to be the sum of fields from a variety of sources. The field you're interested in is the earth's. But it is not possible to separate the earth's nominal field from the field near an I-beam in your building.
You can calibrate the magnetometer to remove any biases that are being picked up from your vehicle. Also, I would recommend twisting all wires that carry lots of current that run near the mag.
If you aren't interested in heading, switching to an accelerometer would be a simple. You can measure gravity (+other accelerations) and pull out roll and pitch data. You could use a camera to track the environment though this may be overkill. If you are interested in keeping inertial heading and you want the solution to fit in a shoe box it's unlikely you'll be able to do better than a magnetometer.
The short answer, as the others already commented is no for external (buildings) or dynamic (moving magnet on your robot) influences.
One technique we used to account for the buildings is to estimate the building-induced bias in the position filter, based on the idea that the bias would change "slowly" w.r.t. the travel of the system (i.e. within meters, not centimeters).
Yes, this person, who experimented with the BNO055 IMU and reported a lot of problems getting reliable readings from the magnetometer, said these problems were partially fixed by:
- surrounding the sensor in a Faraday cage (i.e. metal shielding)
- shortening the wires connecting the sensor to the other electronics