Changes

no edit summary
Line 1: Line 1: −
{{{calibration_feature|
   
==Accelerometer Calibration==
 
==Accelerometer Calibration==
   −
Accelerometer auto calibration functionality has one purpose - determine how {{{model|FMX}}} device
+
Calibration algorithm is used to recalculate accelerometer axes to represent vehicle‘s axes (see Picture below). Vehicles axes are as follows:<br>
 +
1. X is front.<br>
 +
2. Y is left.<br>
 +
3. Z is down.<br>
 +
 
 +
[[File:Vehicle axis.PNG.png|center|800px|Vehicle Axis]]
 +
 
 +
Once vehicle‘s axes are calculated, device is considered calibrated.<br>
 +
<br>
 +
Note: moving forward along any axis will generate negative values. This means acceleration will generate -X values, accordingly breaking will generate X values. Same goes for other axes. <br>
 +
 
 +
Configurable parameters can be found at [[{{{model|FMB1YX}}}_System_settings#Accelerometer_Auto_Calibration|System Settings Accelerometer Auto Calibration]]
 +
 
 +
Commands that can be used during calibration:<br>
 +
<center>
 +
{| class="wikitable"
 +
|-
 +
!Command!!Response!!Description
 +
|-
 +
|auto_calibrate:set||Yes||Request auto calibration task start
 +
|-
 +
|auto_calibrate:get||Yes||Request calibration info (time, ground vector, side vector)
 +
|-
 +
|auto_calibrate:clear||Yes||Request calibration clear from flash and stop calibration task
 +
|-
 +
|auto_calibrate:status||Yes||Request calibration status and calibration task status
 +
|}
 +
</center>
 +
====Auto calibration before firmware version 03.25.07.Rev.00.====
 +
Accelerometer auto calibration functionality has one purpose - determine how FMB device
 
is mounted in a vehicle. After the calibration process ''eco driving'' functionality becomes active
 
is mounted in a vehicle. After the calibration process ''eco driving'' functionality becomes active
and calibration data will be used to determine harsh acceleration, braking and cornering events.<br/>
+
and calibration data will be used to determine harsh acceleration, braking and cornering events.<br />
There are two conditions when auto calibration takes place:<br/>
+
There are two conditions when auto calibration takes place:<br />
* If on device startup no calibration was detected;
+
 
* If the device receives an SMS/GPRS message with ''auto_calibrate:set'' text.<br/>
+
*If on device startup no calibration was detected;
After functionality has started {{{model|FMX}}} device periodically checks current appliance GNSS,
+
*If the device receives an SMS/GPRS message with ''auto_calibrate:set'' text.<br />
ignition and movement source parameters and if the conditions match:<br/>
+
 
* position fix got;
+
After functionality has started FMB device periodically checks current appliance GNSS,
* GNSS speed is zero;
+
ignition and movement source parameters and if the conditions match:<br />
* ignition is ON;
+
 
* first calibration vector was not saved yet;<br/>
+
*position fix got;
 +
*GNSS speed is zero;
 +
*ignition is ON;
 +
*first calibration vector was not saved yet;<br />
 +
 
 
Then first vector is taken. Saved vector will be considered as ground vector and it will be
 
Then first vector is taken. Saved vector will be considered as ground vector and it will be
used at further calibration calculations.<br/>
+
used at further calibration calculations.<br />
''Note: When {{{model|FMX125}}} device saves first ground vector vehicle must be parked on flat ground''.
+
''Note: When FMB device saves first ground vector vehicle must be parked on flat ground''.
Crooked vector may have an impact on further calculations.<br/>
+
Crooked vector may have an impact on further calculations.<br />
Afterwards first ground vector was taken, device analyses conditions:<br/>
+
Afterwards first ground vector was taken, device analyses conditions:<br />
* position fix got;
+
 
* GNSS speed is at least 20 km/h;
+
*position fix got;
* ignition is ON;
+
*GNSS speed is at least 20 km/h;
* second vector was not saved yet;
+
*ignition is ON;
* vehicle driving in the same direction with 5⁰ tolerance;
+
*second vector was not saved yet;
* vehicle speed increase by 7km/h within 1 second.<br/>
+
*vehicle driving in the same direction with 5⁰ tolerance;
 +
*vehicle speed increase by 7km/h within 1 second.<br />
 +
 
 
For next vector. Second vector will be taken if all conditions match. Immediately after
 
For next vector. Second vector will be taken if all conditions match. Immediately after
 
second vector is received, it will be multiplied by first (ground) vector, the result of these
 
second vector is received, it will be multiplied by first (ground) vector, the result of these
Line 30: Line 64:  
same vector multiplication method, device front, left side will be calculated. At this point
 
same vector multiplication method, device front, left side will be calculated. At this point
 
calibration is successfully ended as indication device sends an SMS/GPRS message with
 
calibration is successfully ended as indication device sends an SMS/GPRS message with
''Device is calibrated, to recalibrate send:auto_calibrate:set''.<br/>
+
''Device is calibrated, to recalibrate send:auto_calibrate:set''.<br />
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by
+
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by''
SMS/GPRS message''.<br/>
+
SMS/GPRS message''.<br />''
 
For user convenience in case auto calibration functionality fails then notification message
 
For user convenience in case auto calibration functionality fails then notification message
will be sent. For exact messages, check algorithm section.<br/>
+
will be sent. For exact messages, check algorithm section.<br />
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by
+
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by''
SMS/GPRS message''.<br/>
+
SMS/GPRS message''.<br />''
 
To get current calibration status ''auto_calibrate:get'' SMS/GPRS command must be sent to
 
To get current calibration status ''auto_calibrate:get'' SMS/GPRS command must be sent to
 
the device. If device is calibrated it will respond with ''Calibration state: calibrated'' or otherwise
 
the device. If device is calibrated it will respond with ''Calibration state: calibrated'' or otherwise
''Calibration state: not calibrated''. Also this command returns saved Ground and Side vectors.<br/>
+
''Calibration state: not calibrated''. Also this command returns saved Ground and Side vectors.<br />
 
After every TRIP START event, device starts shadow calibration. This type of calibration is
 
After every TRIP START event, device starts shadow calibration. This type of calibration is
 
running in parallel with already saved vectors (this means that vectors does not reset until
 
running in parallel with already saved vectors (this means that vectors does not reset until
 
shadow calibration have both new vectors). After shadow calibration is done, device updates the
 
shadow calibration have both new vectors). After shadow calibration is done, device updates the
 
vector values to the new ones. There are two conditions when shadow calibration does not run
 
vector values to the new ones. There are two conditions when shadow calibration does not run
at TRIP start event:<br/>
+
at TRIP start event:<br />
* Normal calibration is still running.
+
 
* Shadow calibration is still running from previous TRIP event.<br/>
+
*Normal calibration is still running.
To take ground vector these conditions should be met:<br/>
+
*Shadow calibration is still running from previous TRIP event.<br />
* Ignition is ON
+
 
* Device got GPS FIX
+
To take ground vector these conditions should be met:<br />
* Vehicle speed = 0km/h<br/>
+
 
Device will check these conditions every 1sec until they will pass.<br/>
+
*Ignition is ON
To take side vector these conditions should be met:<br/>
+
*Device got GPS FIX
* Vehicle speed >= 20km/h
+
*Vehicle speed = 0km/h<br />
* Device got GPS FIX
+
 
* Ignition is ON
+
Device will check these conditions every 1sec until they will pass.<br />
* Device angle does not change more than 5 degrees in past 1 sec
+
To take side vector these conditions should be met:<br />
* Speed need to increase by 7km/h in 1s period.<br/>
+
 
Device will check these conditions every 1 sec until they will pass.<br/>
+
*Vehicle speed >= 20km/h
}}}
+
*Device got GPS FIX
 +
*Ignition is ON
 +
*Device angle does not change more than 5 degrees in past 1 sec
 +
*Speed need to increase by 7km/h in 1s period.<br />
 +
 
 +
Device will check these conditions every 1 sec until they will pass.<br />
 +
 
 +
 
 +
====Auto calibration rework and improvements from firmware version 03.25.07.Rev.00.====
 +
 
 +
*Exponential moving average (EMI) Filter added.
 +
 
 +
=====Auto-calibration Improvement=====
 +
 
 +
Auto calibration task is launched on one of these conditions (assume calibration is enabled in configuration):<br>
 +
1. Every time device turns on, it checks whether it was previously calibrated and has calibration stored in flash. If device has no calibration in flash, auto calibration task is started.<br>
 +
2. Device calibration was previously disabled by configuration and now is enabled.<br>
 +
3. SMS “auto_calibrate:set” is received. Note: SMS response is sent after calibration has been acquired.<br>
 +
This SMS triggers an SMS response to be sent. Response is sent when calibration is acquired. When 1 hour passes without successful calibration, failed SMS response is sent.<br>
 +
4. Calibrated device’s mean axes of set interval  differ more than set amount from desired (0,0,1) calibration is considered inaccurate. Calibration is deleted from flash and auto calibration task started.<br>
 +
After auto calibration task has been started, it will go on indefinitely until satisfactory calibration is acquired.<br>
 +
 
 +
=====Data Required=====
 +
 
 +
Auto calibration need to fill two buffers to calibrate device:<br>
 +
1. All accelerometer data – buffer which collects all data from accelerometer at 10Hz frequency. To fill this buffer set seconds of data samples are needed. When buffer is full, oldest data is dumped and new data is placed into the buffer.<br>
 +
2. Straight accelerometer data – buffer which collect straight accelerations data from accelerometer at 10Hz frequency. To fill this buffer set seconds  of data samples (set times Hz samples) are needed. When buffer is full, oldest data is dumped and new data is placed into the buffer. Algorithm rules to acquire these samples:<br>
 +
2.1. GPS fix is present.<br>
 +
2.2. Ignition is on.<br>
 +
2.3. GPS speed is more than 5 km/h.<br>
 +
2.4. GPS heading is equal to last GPS heading (+/-1 degree) at GPS sample rate 1Hz.<br>
 +
2.5. GPS speed more then 5 km/h from last sample (accelerating).<br>
 +
Once both buffers are full, auto calibration is attempted. If calibrated values pass calibration quality threshold, calculated calibration is written to flash as current calibration – device is calibrated. <br>
 +
Note: If GPS fix is lost or ignition is turned off, buffers’ data is dumped and must be gathered from 0 again.<br>
 +
 
 +
 
 +
=====Re-Calibration=====
 +
 
 +
When calibration is present, device checks for re-calibration every 60s indefinitely. Re-calibration requires fix and ignition to run also re-calibration is turned off when vehicle is stopped for more than 15s until conditions are satisfied again. When calibrated device’s mean axes of set interval(calibrated accelerometer data) differ more than set amount from desired (0,0,1) (perfect vehicle’s axes) calibration is considered inaccurate, or device’s position has changed and re-calibration is needed. Calibration is cleared from flash and auto calibration task is started.<br>
 +
 
 +
Note: turning device around calibrated Z axis will not trigger re-calibration, after turning device around Z axis manual re-calibration is advised.
 +
After calibration if quality value is less than 0.80, calibration update functionality is run. Calibration update constantly tries calibrating device in background until 0.80 quality is reached. Calibration update functionality does not change calibration if calculated new calibration quality is less than 0.80.
 +
{{{excessive_idling|
 +
 
 
==Excessive Idling==
 
==Excessive Idling==
   Line 66: Line 143:  
When vehicle stops for a specific amount of time the scenario is activated, a record will be generated and digital output status will be changed to 1 when configured. You can configure the time it takes to turn on this scenario (''Time to Stopped''). Scenario is activated until the vehicle starts moving (movement is detected only by the accelerometer) and keeps moving for an amount of time that is configured. You can configure the time it takes to turn off this scenario (''Time to Moving'')<br/>{{{dout|info}}}
 
When vehicle stops for a specific amount of time the scenario is activated, a record will be generated and digital output status will be changed to 1 when configured. You can configure the time it takes to turn on this scenario (''Time to Stopped''). Scenario is activated until the vehicle starts moving (movement is detected only by the accelerometer) and keeps moving for an amount of time that is configured. You can configure the time it takes to turn off this scenario (''Time to Moving'')<br/>{{{dout|info}}}
 
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
 
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
 +
}}}
 +
    
{{{unplug_feature|
 
{{{unplug_feature|