The magnetic sensor are highly affected by the environment.
After calibration done, the calibration status for magnetic sensor will go to 3. but when any distortion happened afterwards, the calibration status will drop to 0. then recalibration is needed to achieve 3 again. the calibration process for magnetic sensor are doing always in background in BSX lite lib.
In your case, the robot cross the building, then the magnetic environment are obviously changed during moving. So the calibration status will be drop to 0 as expected. When the magnetic environment changed, the heading accuracy will also be affected if calibration can not achieve to 3.
... View more