Static Interval Gyroscope Calibrator
Collects accelerometer and gyroscope measurements by detecting periods when device remains static or dynamic using the accelerometer, using such periods to determine orientation based on gravity vector at the end of static intervals, and integrating values of gyroscope measurements during dynamic ones. This calibrator converts sensor measurements from device ENU coordinates to local plane NED coordinates. Thus, all values referring to a given x-y-z coordinates refers to local plane NED system of coordinates.
Constructors
Constructor.
Types
Interface to notify when a new gyroscope calibration measurement is generated.
Interface to notify when initial gyroscope bias guess is available. If isGyroscopeGroundTruthInitialBias is true, then initial bias is considered the true value after solving calibration, otherwise, initial bias is considered only an initial guess.
Properties
Gets average time interval between accelerometer samples expressed in seconds (s). This is only available once the internal generator completes initialization.
Gets average time interval between accelerometer samples. This is only available once the internal generator completes initialization.
Gets accelerometer measurement base noise level that has been detected during initialization expressed in meters per squared second (m/s^2). This is only available once internal generator completes initialization.
Gets accelerometer measurement base noise level that has been detected during initialization. This is only available once internal generator completes initialization.
Gets measurement base noise level PSD (Power Spectral Density) expressed in (m^2 * s^-3). This is only available once internal generator completes initialization.
Gets measurement base noise level root PSD (Power Spectral Density) expressed in (m * s^-1.5). This is only available once internal generator completes initialization.
Gets or sets accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasAsTriad will be equal to this value, otherwise estimatedAccelerometerBiasAsTriad is obtained from hardware calibration once the accelerometer starts.
Gets or sets x-coordinate of accelerometer bias used as an initial guess and expressed in meters per squared second (m/s^2). This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasX will be equal to this value, otherwise estimatedAccelerometerBiasX is obtained from hardware calibration once the accelerometer starts.
Gets or sets x-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasX will be equal to this value, otherwise estimatedAccelerometerBiasX is obtained from hardware calibration once the accelerometer starts.
Gets or sets y-coordinate of accelerometer bias used as an initial guess and expressed in meters per squared second (m/s^2). This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasY will be equal to this value, otherwise estimatedAccelerometerBiasY is obtained from hardware calibration once the accelerometer starts.
Gets or sets y-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasY will be equal to this value, otherwise estimatedAccelerometerBiasY is obtained from hardware calibration once the accelerometer starts.
Gets or sets z-coordinate of accelerometer bias used as an initial guess and expressed in meters per squared second (m/s^2). This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasZ will be equal to this value, otherwise estimatedAccelerometerBiasZ is obtained from hardware calibration once the accelerometer starts.
Gets or sets z-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasZ will be equal to this value, otherwise estimatedAccelerometerBiasZ is obtained from hardware calibration once the accelerometer starts.
Gets or sets accelerometer scaling factors and cross coupling errors matrix. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer x-y cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer x-z cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer y-x cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer y-z cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer z-x cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer z-y cross coupling error. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets accelerometer sensor being used for interval detection. This can be used to obtain additional information about the sensor.
Delay of sensor between samples.
One of the supported accelerometer sensor types.
Gets or sets accelerometer initial x scaling factor. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer initial y scaling factor. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets or sets accelerometer initial z scaling factor. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets estimated standard deviation of time interval between accelerometer measurements expressed in seconds (s). This is only available once internal generator completes initialization.
Gets estimated standard deviation of time interval between accelerometer measurements. This is only available once internal generator completes initialization.
Gets estimated variance of time interval between accelerometer measurements expressed in squared seconds (s^2). This is only available once internal generator completes initialization.
listener to notify when sensor accuracy changes.
Gets or sets overall absolute threshold to determine whether there has been excessive motion during the whole initialization phase. Failure will be detected if estimated base noise level exceeds this threshold when initialization completes. This threshold is expressed in meters per squared second (m/s^2).
Gets or sets overall absolute threshold to determine whether there has been excessive motion during the whole initialization phase. Failure will be detected if estimated base noise level exceeds this threshold when initialization completes.
listener to notify when calibration solving completes.
listener to notify when calibration solving starts.
listener to notify when a dynamic interval is detected.
listener to notify when a dynamic interval is skipped if its duration is too long.
listener to notify errors.
Gets estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasAsTriad once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets x-coordinate of estimated accelerometer bias expressed in meters per squared second (m/s^2). If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasX once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets x-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasX once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets y-coordinate of estimated accelerometer bias expressed in meters per squared second (m/s^2). If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasY once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets y-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasY once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets z-coordinate of estimated accelerometer bias expressed in meters per squared second (m/s^2). If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasZ once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets z-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasZ once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasAsTriad, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasAsTriad.
Gets norm of estimated standard deviation of accelerometer bias expressed in radians per second (rad/s), or null if not available.
Gets x coordinate of estimated gyroscope bias expressed in radians per second (rad/s). If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasX, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasX.
Gets x coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasX, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasX.
Gets y coordinate of estimated gyroscope bias expressed in radians per second (rad/s). If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasY, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasY.
Gets y coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasY, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasY.
Gets z coordinate of estimated gyroscope bias expressed in radians per second (rad/s). If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasZ, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasZ.
Gets z coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasZ, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasZ.
Gets estimated chi square value for gyroscope or null if not available.
Gets estimated covariance matrix for estimated gyroscope parameters or null if not available. When bias is known, diagonal elements of the covariance matrix contains variance for the following parameters (following indicated order): sx, sy, sz, mxy, mxz, myz, mzx, mzy. When bias is not known, diagonal elements of the covariance matrix contains variance for the following parameters (following indicated order): bx, by, bz, sx, sy, sz, mxy, mxz, myx, myz, mzx, mzy, where bx, by, bz corresponds to bias or hard iron coordinates.
Gets estimated gyroscope G-dependent cross biases introduced on the gyroscope by the specific forces sensed by the accelerometer.
Gets estimated gyroscope scale factors and cross coupling errors, or null if not available. This is the product of matrix Tg containing cross coupling errors and Kg containing scaling factors. So tat:
Gets estimated mean square error respect to provided gyroscope measurements or null if not available.
Gets estimated gyroscope x-y cross-coupling error or null if not available.
Gets estimated gyroscope x-z cross-coupling error or null if not available.
Gets estimated gyroscope y-x cross-coupling error or null if not available.
Gets estimated gyroscope y-z cross-coupling error or null if not available.
Gets estimated gyroscope z-x cross-coupling error or null if not available.
Gets estimated gyroscope z-y cross-coupling error or null if not available.
Gets estimated gyroscope x-axis scale factor or null if not available.
Gets estimated gyroscope y-axis scale factor or null if not available.
Gets estimated gyroscope z-axis scale factor or null if not available.
listener to notify when a new gyroscope calibration measurement is generated.
Gets gyroscope measurement base noise level that has been detected during initialization expressed in radians per second (rad/s). This is only available once generator completes initialization.
Gets gyroscope measurement base noise level that has been detected during initialization. This is only available once generator completes initialization.
Gets gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasAsTriad will be equal to this value, otherwise estimatedGyroscopeBiasAsTriad will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasAsTriad.
Gets x-coordinate of gyroscope bias used as an initial guess and expressed in radians per second (rad/s). This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasX will be equal to this value, otherwise estimatedGyroscopeBiasX will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasX.
Gets x-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasX will be equal to this value, otherwise estimatedGyroscopeBiasX will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasX.
Gets y-coordinate of gyroscope bias used as an initial guess and expressed in radians per second (rad/s). This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasY will be equal to this value, otherwise estimatedGyroscopeBiasY will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasY.
Gets y-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasY will be equal to this value, otherwise estimatedGyroscopeBiasY will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasY.
Gets z-coordinate of gyroscope bias used as an initial guess and expressed in radians per second (rad/s). This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasZ will be equal to this value, otherwise estimatedGyroscopeBiasZ will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasZ.
Gets z-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasZ will be equal to this value, otherwise estimatedGyroscopeBiasZ will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasZ.
Gets or sets initial G-dependent cross biases introduced on the gyroscope by the specific forces sensed by the accelerometer.
Gets or sets initial gyroscope scaling factors and cross coupling errors matrix.
Gets or sets initial x-y cross coupling error for gyroscope calibration.
Gets or sets initial x-z cross coupling error for gyroscope calibration.
Gets or sets initial y-x cross coupling error for gyroscope calibration.
Gets or sets initial y-z cross coupling error for gyroscope calibration.
Gets or sets initial z-x cross coupling error for gyroscope calibration.
Gets or sets initial z-y cross coupling error for gyroscope calibration.
Gets or sets initial x scaling factor for gyroscope calibration.
Gets or sets initial y scaling factor for gyroscope calibration.
Gets or sets initial z scaling factor for gyroscope calibration.
List of gyroscope measurements that have been collected so far to be used for gyroscope calibration. Items in return list can be modified if needed, but beware that this might have consequences on solved calibration result.
mapper to convert collected gyroscope measurements into quality scores, based on the amount of standard deviation (the larger the variability, the worse the score will be).
Confidence of estimated gyroscope calibration result expressed as a value between 0.0 and 1.0. By default 99% of confidence is used, which indicates that with a probability of 99% estimation will be accurate because chosen sub-samples will be inliers (in other terms, outliers will be correctly discarded). This property is only taken into account if a not-null gyroscopeRobustMethod is specified.
Maximum number of iterations to attempt to find a robust gyroscope calibration solution. By default this is 5000. This property is only taken into account if a not-null gyroscopeRobustMethod is specified.
Indicates robust method used to solve gyroscope calibration. If null, no robust method is used at all, and instead an LMSE solution is found.
Size of preliminary subsets picked while finding a robust gyroscope calibration solution. By default this is the minimumRequiredGyroscopeMeasurements, which results in the smallest number of iterations to complete robust algorithms. Larger values can be used to ensure that error in each preliminary solution is minimized among more measurements (thus, softening the effect of outliers), but this comes at the expense of larger number of iterations. This properly is only taken into account if a not-null gyroscopeRobustMethod is specified.
Additional factor to be taken into account for robust methods based on LMedS or PROMedS, where factor is not directly related to LMSE, but to a smaller value. This only applies to accelerometer calibration.
Threshold to be used to determine whether a measurement is considered an outlier by robust gyroscope calibration algorithms or not. Threshold varies depending on chosen gyroscopeRobustMethod. By default, if null is provided, the estimated gyroscopeBaseNoiseLevel will be used to determine a suitable threshold. Otherwise, if a value is provided, such value will be used instead. This properly is only taken into account if a not-null gyroscopeRobustMethod is specified.
Factor to be used respect estimated gyroscope base noise level to consider a measurement an outlier when using robust calibration methods. By default this is 3.0 times gyroscopeBaseNoiseLevel, which considering the noise level as the standard deviation of a Gaussian distribution, should account for 99% of the cases. Any measurement having an error greater than that in the estimated solution, will be considered an outlier and be discarded.
Gets gyroscope sensor being used to obtain measurements, or null if not available. This can be used to obtain additional information about the sensor.
Delay of gyroscope sensor between samples.
One of the supported gyroscope sensor types.
listener to notify when a guess of bias values is obtained.
listener to notify when initialization completes.
listener to notify when initialization starts.
Gets or sets number of samples to be processed initially by the internal measurement generator, while keeping the sensor static in order to find the base noise level when device is static.
Gets or sets factor to determine that a sudden movement has occurred during initialization if instantaneous noise level exceeds accumulated noise level by this factor amount. This factor is unit-less.
Indicates whether estimatedAccelerometerBiasAsTriad is equal to accelerometerInitialBiasAsTriad, or if it is initialized once accelerometer sensor starts. If this is true, estimatedAccelerometerBiasAsTriad will be equal to accelerometerInitialBiasAsTriad If this is false, estimatedAccelerometerBiasAsTriad will be set once the accelerometer is started and depending on accelerometerSensorType, it will be set as: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Indicates whether last dynamic interval must be skipped.
Indicates or specifies whether G-dependent cross biases are being estimated or not. When enabled, this adds 9 variables from Gg matrix.
Indicates or specifies whether z-axis is assumed to be common for gyroscope. When enabled, this eliminates 3 variables from Mg matrix during gyroscope calibration.
Indicates whether gyroscope initial bias is considered a ground-truth known bias. When true, estimated biases are exactly equal to initial biases, otherwise initial biases are just an initial guess and estimated ones might differ after solving calibration.
Indicates whether enough measurements have been picked at dynamic intervals so that the calibration process can be solved.
Indicates whether last static interval must be skipped.
Gets minimum number of required measurements to start gyroscope calibration. Each time that the device is moved, a new measurement is collected. When the required number of measurements for all sensors is collected, calibration can start.
Gets minimum number of required measurements to start calibration. Each time that the device is moved, a new measurement is collected. When the required number of measurements for all sensors is collected, calibration can start.
Number of accelerometer measurements that have been processed.
Number of gyroscope measurements that have been processed.
Gets number of samples that have been processed in a dynamic period so far.
Gets number of samples that have been processed in a static period so far.
listener to notify when enough measurements have been collected and calibrator is ready to solve calibration.
Required number of measurements to be collected before calibration can start. The number of required measurements must be greater than minimumRequiredMeasurements, otherwise at least minimumRequiredMeasurements will be collected before calibration can start.
true to automatically solve calibration once enough measurements are available, false otherwise.
listener to notify when a static interval is detected.
listener to notify when a static interval is skipped if its duration is too short.
listener to notify when calibrator is stopped.
Gets estimated threshold to determine static/dynamic period changes. This is only available once internal generator completes initialization.
Gets or sets factor to be applied to detected base noise level in order to determine a threshold for static/dynamic period changes. This factor is unit-less.
Gets or sets length of number of samples to keep within the window being processed to determine instantaneous sensor noise level during initialization of the internal calibrator measurement generator. Window size must always be larger than allowed minimum value, which is 2 and must have an odd value.
Functions
Solves calibration using collected measurements. This must be explicitly called after enough measurements are collected if solveCalibrationWhenEnoughMeasurements is false.
Gets average time interval between accelerometer measurements. This is only available once the internal generator completes initialization.
Gets sensor measurement base noise level that has been detected during initialization. This is only available once detector completes initialization.
Gets accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasAsTriad will be equal to this value, otherwise estimatedAccelerometerBiasAsTriad is obtained from hardware calibration once the accelerometer starts.
Gets x-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasX will be equal to this value, otherwise estimatedAccelerometerBiasX is obtained from hardware calibration once the accelerometer starts.
Gets y-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasY will be equal to this value, otherwise estimatedAccelerometerBiasY is obtained from hardware calibration once the accelerometer starts.
Gets z-coordinate of accelerometer bias used as an initial guess. This value can be automatically determined once the calibrator starts. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isAccelerometerGroundTruthInitialBias is true, provided value is assumed to be the true bias, and estimatedAccelerometerBiasZ will be equal to this value, otherwise estimatedAccelerometerBiasZ is obtained from hardware calibration once the accelerometer starts.
Gets accelerometer scaling factors and cross coupling errors matrix. This is only taken into account if G-dependent cross biases are used when isGDependentCrossBiasesEstimated is true.
Gets estimated standard deviation of time interval between accelerometer measurements. This is only available once internal generator completes initialization.
Gets overall absolute threshold to determine whether there has been excessive motion during the whole initialization phase. Failure will be detected if estimated base noise level exceeds this threshold when initialization completes.
Gets estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasAsTriad once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets x-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasX once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets y-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasY once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets z-coordinate of estimated accelerometer bias. If isAccelerometerGroundTruthInitialBias is true, this will be equal to accelerometerInitialBiasZ once the accelerometer has started, otherwise depending on accelerometerSensorType this will be one of the following: If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER_UNCALIBRATED, bias will be equal to the value used internally by the device as part of the accelerometer hardware calibration. If accelerometerSensorType is AccelerometerSensorType.ACCELEROMETER, then accelerometer sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero.
Gets estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasAsTriad, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasAsTriad.
Gets x coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasX, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasX.
Gets y coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasY, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasY.
Gets z coordinate of estimated gyroscope bias. If isGyroscopeGroundTruthInitialBias is true, this will be equal to gyroscopeInitialBiasZ, otherwise it will be the estimated value obtained after solving calibration, that might differ from gyroscopeInitialBiasZ.
Gets gyroscope measurement base noise level that has been detected during initialization. This is only available once generator completes initialization.
Gets gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasAsTriad will be equal to this value, otherwise estimatedGyroscopeBiasAsTriad will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasAsTriad.
Gets x-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasX will be equal to this value, otherwise estimatedGyroscopeBiasX will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasX.
Gets y-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasY will be equal to this value, otherwise estimatedGyroscopeBiasY will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasY.
Gets z-coordinate of gyroscope bias used as an initial guess. This value is determined once the calibrator starts. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE_UNCALIBRATED, this will be equal to the value used internally by the device as part of the gyroscope hardware calibration. If gyroscopeSensorType is GyroscopeSensorType.GYROSCOPE, then gyroscope sensor measurements are assumed to be already bias compensated, and the initial bias is assumed to be zero. If isGyroscopeGroundTruthInitialBias is true, this is assumed to be the true bias, and estimatedGyroscopeBiasZ will be equal to this value, otherwise estimatedGyroscopeBiasZ will be the estimated bias after solving calibration, which will differ from gyroscopeInitialBiasZ.
Gets initial gyroscope scale factors and cross coupling errors matrix.
Gets estimated threshold to determine static/dynamic period changes. This is only available once internal generator completes initialization.
Sets accelerometer scaling factors.
Sets initial scaling factors for gyroscope calibration.
Sets initial scaling factors and cross coupling errors for gyroscope calibration.
Starts calibrator. This method starts collecting sensor measurements. When calibrator is started, it begins with an initialization stage where sensor noise is estimated while device remains static. Once initialization is completed, calibrator determines intervals where device remains static when device has different poses, so that measurements are collected to solve calibration. If solveCalibrationWhenEnoughMeasurements is true, calibration is automatically solved once enough measurements are collected, otherwise a call to calibrate must be done to solve calibration.