I've been reading up on magnetometer calibration (sensor fusion in general) recently and got confused about some things.
To my understanding, hard iron effects (e.g. inductors and magnets) which are constant in the coordinate system of the sensor (i.e. moving together with the sensor) cause a translation of the measurements while soft iron effects cause rotation and scaling of the measurements along certain axes. When both are combined, the theoretically spherical measurements which should be obtained when measuring the magnetic field at a certain point in space along arbitrary axes of the magnetometer will be observed as an arbitrary ellipsoid.
This is mathematically expressed as an affine transformation (rotation and scaling) of the unit sphere such that the original orthonormal axes are transformed into the semi-principal axes of a translated ellipsoid. The calibration is the inverse operation.
My problem is that this method assumes the semi-principal axes of the ellipsoid correspond with the three axes of the sensor. Why is this assumption made? Shouldn't you need to know the direction of the magnetic field beforehand in order to align it with one of the magnetometer axes and then check the rotation? Could we not just stretch the semi-principal axes of the ellipsoid to obtain a sphere without rotation? Also, this calibration technique does not take the true magnitude of the magnetic field into account (i.e. the magnitude of measurements after calibration will only be relative to the magnitude during calibration)?