imrasp / LearnVI_Drone

7 stars 1 forks source link

Kalibr Calibration #1

Open imrasp opened 6 years ago

imrasp commented 6 years ago
imrasp commented 6 years ago

should come with the following structure

+-- dataset-dir
    +-- cam0
    │   +-- 1385030208726607500.png
    │   +--      ...
    │   \-- 1385030212176607500.png
    +-- cam1
    │   +-- 1385030208726607500.png
    │   +--      ...
    │   \-- 1385030212176607500.png
    \-- imu0.csv

The imu0.csv file uses the format below: (timestamps=[ns], omega=[rad/s], alpha=[m/s^2])

timestamp,omega_x,omega_y,omega_z,alpha_x,alpha_y,alpha_z
1385030208736607488,0.5,-0.2,-0.1,8.1,-1.9,-3.3
 ...
1386030208736607488,0.5,-0.1,-0.1,8.1,-1.9,-3.3

cmds and additional information in following link https://github.com/ethz-asl/kalibr/wiki/bag-format

teeramoo commented 6 years ago

Angular random walk calculation

https://robotics.stackexchange.com/questions/8860/angle-random-walk-vs-rate-noise-density-mpu6050

imrasp commented 6 years ago

https://robotics.stackexchange.com/questions/1449/how-are-units-of-noise-measurement-related-to-units-of-a-sensors-data-measureme/1459#1459 image

"μg/√Hz" means the power spectral density in micro-g's (1μg≃0.000098m/s21μg≃0.000098m/s2). If the power spectral density is flat, then you can square this number, multiply it by the bandwidth, take the square root, and get to the noise as LSB RMS. The power spectral density is useful when you try to figure out the effect of sensor noise on velocity and/or position when integrating.

"∘/s-rms" has a similar meaning to the "LSB RMS", except the noise is referred to the rate measurement rather than the ADC bits.

"∘/s/√Hz" is, again, the power spectral density.

Root mean square - RMS Least significant bit - LBS

imrasp commented 6 years ago

Called angular random walk in case of the gyro, and velocity random walk for the accel.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.1133&rep=rep1&type=pdf

Angle random walk (ARW) is a noise specification, in units of deg/hr1/2, that is directly applicable to angle calculations. ARW describes the average deviation or error that will occur when you integrate the signal. This is an error occurring specifically because of noise in the rate signal, independent of other characteristics that contribute to angle error (such as scale factor error or bias error.) This error will increase the longer you integrate, and provides a fundamental limitation to any angle measurement that relies solely on the integration of rate.

The “Random walk” is used in statistics to describe a situation where the output of a system is driven by random, uncorrelated “steps”

Added www.kvh.com/~/media/A4A8B05CD37241EAB9C6D7BCC4F40769.aspx Key Gyro Performance Factors This paper will look at five critical areas in which industrial/tactical grade gyros must outperform consumer grade gyros while maintaining small form factor and low cost. These areas are:

  1. Noise or Angle Random Walk (ARW) - The average error that occurs as a result of high frequency white noise.

  2. Bias Offset Error - A stationary gyro can incorrectly register some rotation; this is called bias offset error. Its deviation from zero is typically given at 25°C for an ideal environment (i.e. no temperature change, vibration, shock, or magnetic field applied).

  3. Bias Instability - Instability of the bias offset at any constant temperature and ideal environment.

  4. Temperature Sensitivity - Bias offset and absolute scale factor (SF) of a gyro will vary slightly with temperature changes. This can be improved with calibration.

  5. Shock and Vibration Sensitivity - Shock and vibration can be modeled as noise and bias offset in the gyro output, causing inaccuracies too large to accommodate. These inaccuracies are not easily improved with calibration.

imrasp commented 6 years ago

http://www.itl.nist.gov/div898/software/dataplot/refman1/ch2/allan_sd.pdf

a loglog scale / a loglog plot

http://cache.freescale.com/files/sensors/doc/app_note/AN5087.pdf Creating an Allan Deviation Plot for Noise Identification in a Gyroscope

two ways. • Averages of the output rate samples (over each cluster), section 2.1 • Output angles θ corresponding to each gyro rate sample, section 2.2 2.1 Calculate Allan Variance using Output Angles 2.2 Calculate Allan Variance Using Averages of Output Rate Samples

teeramoo commented 6 years ago

https://github.com/hanley6/IMUSensorModels Matlab code for Allan Variance calculation. The owner of this repo claims that his code is included in Kalibr repo

imrasp commented 6 years ago

Allan variance is is a method of representing RMS random drift error as a function of averaging time

https://github.com/ethz-asl/kalibr/issues/76

https://github.com/ethz-asl/kalibr/issues/64

Note that a.) the precision of the Allan deviation estimate naturally decreases for higher integration times \tau and b.) sensors rarely show a noise behavior that matches the "white noise + random walk" model you refer to (which would indeed lead to a monotonic increase for \tau -> \infty), but rather show flickering or other noise characteristics.

a ballpark figure or a ballpark estimate A ballpark figure or a ballpark estimate is an approximate figure or quantity. Note: A ballpark is a park or stadium where baseball is played. But what are we talking about here — a few thousand, millions, two bucks? Give me a ballpark figure. I think just in a ballpark estimate — about 60-40. Sixty would support, 40 percent would be opposed.

code explanation :

result extraction :

sample result :

Inputs: % meas = set of measurements (number of rows is number of % measurements)

related paper

video from David Allan - https://www.youtube.com/watch?v=oRkDKsod6Qk

teeramoo commented 6 years ago

Another Allan variance tool with MATLAB

https://www.mathworks.com/matlabcentral/fileexchange/61777-tools-for-inertial-allan-variance-analysis-and-simulation

teeramoo commented 6 years ago

Tested kalibr_allan library with our sample IMU values. The application works fine. Currently running a 6-hour recorded IMU data and it should take a while.

Obtained the result but it does not look like what it should be. Will take a look at the format of an example file

imrasp commented 6 years ago
imrasp commented 6 years ago
teeramoo commented 6 years ago

Finally got IMU values !!!

Results can be viewed and downloaded from the following link ** You must log in to google drive with you AIT account to view this link

Note that the HIGH_RES_IMU messages are used to calculate the values. You can calculate IMU values of your own device by downloading the kalibr_allan folder in this repo or visit kalibr_allan.

imrasp commented 6 years ago

precision is matter for logging imu should be complete precision digit

imrasp commented 6 years ago

https://github.com/raulmur/ORB_SLAM2/issues/293 https://github.com/raulmur/ORB_SLAM2/issues/338#issuecomment-306564368