Technical Support Center

Kalman Filter Initialization Procedure

Before starting a measurement, the vehicle should be exposed to lateral and longitudinal dynamics for the initialization of the kalman filter.


When the ADMA measurement gets started, the pre-aligment is executed with the configured duration.

During the pre-alignment phase, the roll- and pitch angles are calculated from accelerometer data, while the vehicle is at standstill. The duration of the pre-alignment determines the expected precision of the angle estimation. Typical time periods are in the range of 5 – 30 seconds.
Make sure the vehicle is not exposed to any other vibrations then the vehicle engine during the pre-alignment period. Especially shocks from closing doors or movements in the vehicle have to be avoided. The LED of the selected CAN interface (if activated) flashes once per second during this period. All data is available at the full data rate once the pre-alignment period has elapsed.

Automatic yaw angle initialization (AutoInit)

If the ADMA is operated with (D)GNSS, you might omit entering a start course, as this will be automatically set by the ADMA’s AutoInit function.

After pre-alignment, a first estimation for roll and pitch is found and set as starting values. The ADMA AutoInit function will overwrite the yaw angle with the GNSS course after exceeding a velocity threshold, which will help Kalman filter settling, and eliminates the need to have the user enter a start course. The velocity threshold can be adapted at the ADMA Webinterface menu 6️⃣ PARAMETERS. Make sure travelling straight ahead when exceeding this threshold (no float angle).

Note: The AutoInit function will only be executed once at each measurement.

For a successful yaw initialisation, it is important to reach a certain vehicle velocity, as the GNSS course is calculated from the GNSS velocity. According to the thumb rule: higher vehicle speed reduces the GNSS course error introduced by GNSS velocity noise. Please keep this also in mind when you are expecting poor GNSS reception.

When analysing data, the successful execution of the AutoInit routine can be detected in the data when the vehicle reaches the configured velocity threshold first time (unless the initial yaw angle was already true). Yaw angle and GNSS course should then be similar, but only if the classic coordinate system is chosen (please see configuration options of the ADMA). Please note, that the coordinate system as stated in DIN 70000 / ISO 8855 is rotated about the roll angle by 180°, hence pitch and yaw angles will have an inverted sign compared to the classic coordinate system. The GNSS course will be output according to the classic coordinate system.

Coordinate system
DIN 70000 / ISO 885590° (west)270° (east)counter clockwise
Classic SAE90° (east)270° (west)clockwise
Shows a car accelerating in a straight line for executing the autoinit of the ADMA.
Autoinit – Go straight ahead exceeding the configured velocity limit

Yaw angle at start

Shows the ADMA webUI configuration panel of the yaw angle at start.
ADMA Webinterface: 8️⃣ Load/Save/Start

If the ADMA is operated without GNSS or the ADMA is operating with (D)GNSS but there is no possibility to exceeding the velocity limit for yaw angle initialization, this parameter will assure that earth rate is compensated correctly. Otherwise it would lead to calculation errors.
Under certain circumstances, incorrect entry during operation with (D)GNSS can cause the filter to behave instable. Incorrect entries in the range of ±5° are tolerated.

Initialization of the kalman filter

The initialization of the Kalman filter can’t be bypassed and takes at least 180-300 seconds depending on the used hardware version. During this time of operation, the ADMA will not conform to the specification. However, the transient condition must be supported by the user of the ADMA. After pre-alignment, the Kalman filter converges faster if the vehicle is moved in circles of eights or is zigzagged down a straight. Straight ahead driving and standstill can accelerate the initialization process.
During this period, the Kalman filter will estimate and correct the errors of the inertial sensors. Long-term errors will be estimated and corrected continuously.

Shows a car driving eights for initializing the kalman filter quickly by exposing the car to lateral and longitudinal dynamics.
Shows a car driving eights for initializing the kalman filter quickly by exposing the car to lateral and longitudinal dynamics.

Driving conditions with accelerations and decelerations is important. The vehicle can be driven brisk in this case. However, drifting should be avoided. The attained Kalman filter adjustment can be indicated via status bit which is designated Status_Kalmanfilter_settled and modelled like a red green lights function.

Shows in a flow diagram, that the kalman filter settled will be 1, when all three kf states are initialized to 100 %.
Kalman filter status data packets

Note: The Kalman filter status will not be provided on ADMA-EL and ADMA-EL+ systems.

Exemplary Kalman filter initialization

Figure 3 shows the driven route of an exemplary ADMA initialization. Figure 4 shows the related Kalman filter status estimates.

Shows the trajectory of an exemplary initialization drive.
Figure 3: Example Kalman Filter transient phase driving route
Shows the signals velocity, acceleration and the different kalman filter initialization states in a diagram.
🟢 Velocity Horizontal X [km/h]
🔵 Velocity Horizontal Y [km/h]
🟣 KF Lateral stimulation [%]
🟠 KF Longitudinal stimulation [%]
🔴 KF steady state [%]

Figure 4: Example Kalman Filter initialization phase status estimates

If the Kalman filter status does not reach the 100% it can be caused by:

  • HW errors
  • no GNSS or bad GNSS condition during initialization
  • wrong compensation of the ADMA mounting angles (Roll/Pitch/Yaw)
  • Auto-Init threshold not exceeded
  • insufficient dynamics or too short initialization
Applikationsingenieur | bei GeneSys seit 2014

Notify me about Updates