Because a magnetometer usually rotates through a full range of 3-D rotation, the ideal
measurements from a magnetometer should form a perfect sphere centered at the origin if the
magnetic field is unperturbed. However, due to distorting magnetic fields from the sensor
circuit board and the surrounding environment, the spherical magnetic measurements can be
perturbed. In general, two effects exist.
The soft-iron effect is described as the distortion of the ellipsoid from a sphere
and the tilt of the ellipsoid, as shown in the left figure. This effect is caused by
disturbances that influence the magnetic field but may not generate their own magnetic
field. For example, metals such as nickel and iron can cause this kind of distortion.
The hard-iron effect is described as the offset of the ellipsoid center from the
origin. This effect is produced by materials that exhibit a constant, additive field
to the earth's magnetic field. This constant additive offset is in addition to the
soft-iron effect as shown in the figure on the right.
The underlying algorithm in magcal
determines the best-fit
ellipsoid to the raw sensor readings and attempts to "invert" the ellipsoid to produce a
sphere. The goal is to generate a correction matrix A
to account for
the soft-iron effect and a vector b
to account for the hard-iron
effect. The three output options, 'eye'
, 'diag'
and
'sym'
correspond to three parameter-solving algorithms, and the
'auto'
option chooses among these three options to give the best
fit.