In-run Compass Calibration (ICC) and Representative Motion

Disclaimer: ICC was first released in MT Software Suite 4.7 and is currently still in beta for all MTi devices. 



In-run Compass Calibration (ICC) provides a solution to calibrate the sensor for magnetic distortions caused by objects that move with the MTi. The magnetic norm can be used as an indicator for magnetic distortions. Examples are the cases where the MTi is attached to a car, aircraft, ship or other platforms that can distort the magnetic field. It also handles situations in which the sensor has become magnetized. ICC is an alternative for the offline MFM (Magnetic Field Mapper). It results in a solution that can run embedded on different industrial platforms (leaving out the need for a host processor like a PC) and relies less on specific user input. The MFM tool, which does require a host PC, is however still recommended over or in addition to the ICC. The ICC feature is aimed at applications for which the MFM solution cannot be used (e.g. MTi-1 series embedded that cannot be connected to a PC), when MFM is not sufficient (e.g. applications that move outside of the plane of motion used during the calibration), or when the user uses the same MFM result performed for one sensor to calibrate different sensors (typical for large volume applications).

It should be noted that magnetic distortions present in the environment of the motion tracker that move independently or change over time are not compensated by ICC. Such distortions do not affect the parameter estimation; they are simply not compensated for. This also means that (ferromagnetic) objects should not be attached to or detached from the sensor while ICC is running. 

Let's suppose the scenario where the MTi sensor is rigidly mounted on a car. The user can perform a MFM in a homogeneous environment by performing a circle with the car. Probably it would result in an almost 2D path (e.g. roll and pitch values < 10°). After that, the user can exploit the ICC to improve the calibration during the application. In this case, when the MTi reaches orientations that were not yet reached during the MFM (e.g. roll and pitch values > 10°), ICC will use this data to improve the calibration. 

See Figure 1 for a guide on which tool to use for tackling magnetic field distortions. 


Figure 1: Flowchart for tackling magnetic field distortions.


How to enable ICC

ICC is disabled by default. The user can enable ICC through a Low Level Communication or from MT Manager:

Low Level Communication

Configure the device at  Low Level Communication. See the SetOptionFlags command in MT Low Level Communication Protocol Documentation.


Use the setDeviceOptionFlags function. Refer to the XDA library (found in your MT SDK Documentation folder) for more information. 

MT Manager
  • Go to Device Settings -> Device Settings.
  • Tick "In-Run Compass Calibration (ICC)".
  • Write To MT.



Representative Motion (RepMo)

If the user is able to perform a calibration motion in a homogeneous magnetic field or environment that is representative for the application, then it is possible to use "Representative Motion" feature (RepMo). For example, in the case of a car trial, the distortions caused by the running engine cannot be removed, however the user can take care that during the "RepMo" trial recording the car does not drive past large external magnetic distortions. This is a procedure similar to the offline MFM, but embedded. When using the "RepMo" the user should be careful that the calibration motion is performed in a homogeneous field (ideally, just the object attached to the sensor should distort the magnetic field). Exploiting the knowledge that the sensor is in a homogeneous environment, all magnetometer sensor data will be used for the calibration without any disturbance checks, speeding up the calibration process. Based on the sensor mounting environment and application platform, the accuracy might vary. We encourage users to try this feature if they are aware of typical application dynamics and have a good knowledge of the environment of operation. This might be a valid option for trials that do not encounter any distortions in the environment like ships and airplanes (but not only).

RepMo is available in MT Manager, XDA and Low-Level Communication Protocol (Xbus protocol). The results of an MTi 1-series attached to a battery are shown in Figure 2. It is important to note that the magnetic norm should be constant if the sensor is properly calibrated and it is moving in a magnetically homogeneous environment. This is clearly not the case for the first part of the magnetometer signal shown in Figure 2. After the initial period of 13 seconds, Representation Motion is switched ON for ~25 seconds.  This is indicated with the status bit flag (violet in Figure 2). The user then clicks the "Store In-Run Compass Calibration results" button in MT Manager to write the ICC results to the device memory. Once the results are written to the non-volatile memory, the magnetic calibration is applied and the magnetic field norm is nearly constant, showing a meaningful calibration done (for sensor-fixed distortions). Note that although MT Manager was used, this procedure fully takes place inside the MTi on the onboard processor during operation. As the ICC-evaluated calibration parameters need to be stored in Config Mode, writing the results in the eMTS after RepMo mode (or ICC) is the only time when the sensor fusion algorithm is interrupted. ICC will keep running in the background and will reset itself each time new calibration parameters are stored

In case ICC results have been written to memory, but they are not satisfactory, one can always restore the factory calibration parameters by clicking ''Revert'' under Device Settings (device_settings_icon.png).


Figure 2: Effects of Representative Motion on magnetic field measurements. 


How to enable "Representative Motion"

The RepMo can be set in Low Level Communication. See the IccCommand section in MT Low Level Communication Protocol Documentation. In MT Manager, it is possible to stop and start the RepMo mode with this button: 


During the RepMo mode, the RepMo status bit in the Status Word will be 1. After stopping RepMo mode, an info dialog will come up, informing you about the results. It will tell you whether a 2D or 3D calibration was performed. For some applications, such as Ground Vehicles, a planar 2D calibration suffices. In addition, a score of the "Estimated distortion level" or "ddt score" is returned. This value indicates how homogenous the magnetic environment was during the calibration. The closer the score is to 1, the better. Try performing multiple calibrations at different locations to see whether your results can be improved. 


Storing the ICC parameters

Once the ICC parameters are estimated, either in RepMo mode or when ICC is running in the background, the calibration parameters can be stored. This is done by the IccCommand command in Low Level Communication (see MT Low Level Communication Protocol Documentation) or by pressing the button in MT Manager: 


Once this button is pressed, the MTi will go to config mode and the ICC parameters and magnetometer calibration parameters will be copied from the RAM memory to the non-volatile memory where the previous calibration parameters will be updated. Note that if the connection with the MTi is lost before the calibration parameters are stored (e.g. by power cycling the MTi or rescanning in MT Manager), the updated calibration parameters will be lost

The ICC parameters are estimated in the background. The magnetometer readings shown in MT Manager are not compensated by the ICC/RepMo calibration results, unless these are stored in non-volatile memory (see the diagram below). 


Figure 3: Data from the sensors (magnetometer and inertial sensors) are calibrated with the calibration parameters in the eMTS. The initial calibration parameters are a result of the factory calibration by Xsens. If ICC or the Representative Motion feature is on, filter states and compensation parameters are available in the RAM-memory. The magnetic field data (data output as shown in MT Manager) are not influenced by parameters in the RAM-memory. 


Once stored (see the diagram in Figure 4), the magnetometer measurements, calibrated with the new calibration parameters obtained by ICC/RepMo, can be observed in MT Manager


 Figure 4Once the command is given by the user to store the ICC calibration parameters, the MTi will write the parameters to the eMTS on the non-volatile memory. This way, the magnetometer sensor readings are calibrated with the ICC parameters before they are fed into the sensor fusion algorithm. Also, the magnetic field data will be outputted using the new calibration parameters. 


ICC and RepMo are designed to be used embedded. However, it is possible to apply ICC and RepMo when processing log files offline. The ICC can be enabled in the MTi interface when opening an ".mtb'' file. The user can start RepMo off-line only if the trial has been recorded  with the "onboard processing'' preset in Output configuration (i.e. orientation output is enabled in the output configuration. However, it is possible to tick the extra inertial data and magnetic field output).



The ICC/RepMo feature is a useful alternative for calibrating for hard and soft iron effects when using the Magnetic Field Mapper (MFM) tool is not possible. When using ICC/RepMo, the newly obtained calibration measurements are immediately used in the sensor fusion algorithm. Once the calibration data are stored in non-volatile memory as well, the factory magnetometer calibration parameters will be overwritten and magnetometer readings will be processed by the new calibration parameters. After storing calibration parameters, ICC can remain enabled to run in the background and further improve parameter estimation. 


Frequently Asked Questions

  • What happens when Representative Motion is activated while ICC is already running?
    Unless stored before activating, Representative Motion will reset the progress made by ICC on updating magnetic calibration parameters. Representative Motion will then operate as usual. After RepMo has ended, ICC will continue to improve parameter estimation. 
  • How can I perform an orientation/alignment reset in combination with ICC/RepMo?
    We recommend performing the heading/orientation reset after calibrating for magnetic field distortions. This is because you would like to have your North reference as correct as possible before applying a heading/orientation reset. If you apply a reset while having an error in your North reference due to magnetic field distortions, then this error may remain, also when using ICC. Make sure to store the new magnetometer calibration parameters before applying the orientation/alignment reset 


Was this article helpful?
1 out of 1 found this helpful
Do you have a question? Please post your question in our Community Forum