When it comes to navigating in environments such as indoors or dense urban areas, using an absolute navigation system, such as Global Navigation Satellite System (GNSS), has proven to be inefficient. This inefficiency is due to multipath or obstruction experienced in these environments. This opened the door 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, lightweight, small-size, and have low-power consumption, they have complex error characteristics. A great deal of research work was done for modeling their errors, and different techniques were developed for calibration. One of the most important aspects of navigation solutions is the heading determination. Gyroscopes are inertial sensors that can provide the angular rate from which the heading can be calculated. One issue with 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. Magnetometers are 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. Readings provided by magnetometers are usually affected by magnetic fields, other than the Earth’s magnetic field, and by other error sources. The effects of these errors result in an inaccurate heading measurement due to corrupted magnetometer readings. Errors come from a variety of different sources such as: (i) Hard iron effect, which is considered a constant offset added to each axis of sensor output. It results 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 cause 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. To correct the effects of these different error sources, a calibration procedure should be applied to the magnetometer. Calibration parameters can be calculated to correct these readings, where each calibration parameter can correct for the effects of one or more error sources. Many different approaches are used in literature for calibrating magnetometer, with the classical compass swinging being an example. It was used long ago for compass calibration to use the compass for heading determination in marine and aviation applications. Compass swinging depends on rotating a levelled compass through a series of previously known and defined headings, such as on a compass rose at the airport. There are a few drawbacks of using traditional compass swinging such as 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 magnetic 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 the case of 2D, an ellipse is an example. While in 3D it forms a translated hyperboloid shape, such as 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 2D or cover a big portion of an ellipsoid in 3D, which requires rotating the device and having the magnetometers in all orientations. This slows the calibration process to achieve the necessary coverage, or it may require the user to move the device in a certain pattern, such as a figure eight. It may also rotate the vehicle for one complete loop to cover 360 degrees. The approaches discussed above as well as other approaches from literature either have the drawback of requiring a full rotation, which significantly slows the calibration process, or the user is usually involved in the calibration process. This is not efficient in daily life scenarios when the user requires an accurate heading either from their portable device (such as smart phone) or from their vehicle navigation device, without getting involved in a calibration process.
This paper is proposing a new method for magnetometer calibration that is fast and requires little space coverage in comparison to alternative magnetometer calibration approaches. This method does not require the user to get involved in the calibration process and there are no specific movements of the device that the user needs to perform to obtain calibration results. The presented method performs magnetometer calibration depending on the regular movements of the device and the magnetometer readings whether it is tethered or untethered, and regardless of 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 in other approaches. The device only requires minimal space coverage to perform magnetometer calibration. The calibration process involves a data collection phase, and when data collection is completed, calibration parameters are calculated to correct the magnetometer readings from the effects of different error sources. To assure calibration quality, the presented method can perform quality checks on the calibrated readings to make sure that the calibrated magnetometer readings can be used with certainty for heading determination. Essentially, the method presented is for fast magnetometer calibration capable of pulling readings from multiple sources and correcting for error sources. This makes the magnetometer a reliable heading source for navigation applications such as dead reckoning. It may also be integrated into navigation systems to compensate for when signals such as GNSS are unavailable. Several datasets are collected for both portable navigation and vehicular navigation, and the results demonstrate the capabilities of the proposed technique.