A Technique for Fast Magnetometer Calibration with Little Space Coverage (2013)

Using absolute navigation systems, such as Global Navigation Satellite System (GNSS), has proved to be insufficient for indoor navigation or when navigating in urban canyons due to multipath or obstruction. This opened the gate widely for sensors-based navigation systems to develop especially after the development of low-cost micro-electro-mechanical systems (MEMS) sensors. Although MEMS sensors are low-cost, light-weight, small-size, and has low-power consumption, they have complex error characteristics. A lot of research work was done for modeling their errors and different techniques were developed for calibration. Heading determination is one of the most important aspects of navigation solutions. Gyroscopes are inertial sensors that can provide the angular rate from which the heading can be calculated, one problem of using gyroscopes as a sole source of heading is that errors in gyroscopes readings are drifting with time in addition to the accumulated errors due to mathematical integration operation. Magnetometer is another low-cost sensor that does not suffer from mathematical integration errors and can provide an absolute heading from magnetic north by sensing the earth’s magnetic field. 

Magnetometers readings are usually affected by magnetic fields, other than the earth magnetic field, and by other error sources; these effects result in an inaccurate heading measurement due to corrupted magnetometer readings. Different error sources are such as: (i) hard iron effect which is considered a constant offset added to each axis of sensor output, it comes from permanent magnets or magnetized iron or steel placed close to the magnetic sensor; (ii) soft iron distortion which arises from the interaction of earth’s magnetic field and any magnetically soft iron material such as nickel or iron; (iii) sensor sensitivities which causes a scale factor error since the magnetic sensor along each axis usually have different sensitivities; (iv) other error sources such as sensor material, sensor fabrication, and temperature. Therefore a calibration procedure should be applied to the magnetometer to correct the effects of the different error sources. Calibration parameters can be calculated to correct these readings where each calibration parameter can correct for the effects of one or more error sources. 

Different approaches are used in literature for calibrating magnetometers such as the classical compass swinging; it was used long ago for compass calibration to use the compass for heading determination in marine and aviation. Compass swinging depends on rotating a levelled compass through a series of previously known and defined headings such as for example on a compass rose at the airport. The main drawbacks of using traditional compass swinging are that the method cannot be used to calibrate a 3D compass and that it requires the user to be instructed to rotate the compass in certain predefined directions. Another approach for compass calibration that does not require an external heading source is depending on the fact that if the compass is rotated assuming there is no ferrous interference with the earth’s field the locus made by magnetometer readings in 2D forms a circle, while it forms a sphere in 3D. In some implementations it is assumed that if a 2D compass is rotated in the presence of ferrous interference the locus of its readings forms a translated hyperbolic shape in case of 2D, for example an ellipse, while in 3D it forms a translated hyperboloid shape, for example an ellipsoid. Either geometric or mathematical based methods can be used to best fit the magnetometer measurements to the assumed manifold. The main drawback of this approach is that it requires the device having the magnetometers to rotate 360 degrees in horizontal plane in case of 2D, or cover a big portion of an ellipsoid in 3D which requires rotating the device having the magnetometers in all orientations. This drawback makes the calibration process either slow in order to to achieve the necessary coverage or it may require the user to move the device in certain movement (such as “figure eight” if the device is portable) or rotates the vehicle for one complete loop to cover 360 degrees. 

The aforementioned approaches and other approaches from literature either have the drawback of requiring a full rotation which makes the calibration process slow, or the user is usually involved in the calibration process which is not efficient in daily life scenarios when the user requires an accurate heading either from his portable device (such as smart phone) or from his vehicle navigation device without getting involved in a calibration process. 

This paper is proposing a new method for magnetometer calibration, the method is fast and requires little space coverage compared to different magnetometer calibration approaches. It does not need the user to get involved in the calibration process; there are no instructions or certain specific movements of the device that the user should perform to obtain calibration results. The presented method performs magnetometer calibration depending on the regular movements of the device comprising the magnetometer whether it is tethered or untethered, and whatever the application that the magnetometer is used in. This enables the proposed technique to work online without the user noticing it or being involved.

The method for fast magnetometer calibration proposed in this paper does not require full rotation like other approaches it only requires little space coverage to perform magnetometer calibration. The calibration process involves a data collection phase for little space coverage, when data collection is accomplished calibration parameters are calculated to correct the magnetometer readings from the effects of different error sources.

To assure the calibration quality the presented method can perform quality checks on the calibrated readings to make sure that the calibrated magnetometer readings can be used unfailingly for heading determination.

In a nutshell a method is presented for fast magnetometer calibration capable of calibrating magnetometer readings from different error sources and making magnetometer a reliable heading source in various navigation applications either dead reckoning or integrated navigation when absolute navigation systems are available such as GNSS. Several datasets are collected for both portable navigation and vehicular navigation, and the results demonstrate the capabilities of the proposed technique.