Hello fellows.
I am trying to track movements accurately for at least one second and find it impossible.
I am struggling with accelerator noise wich gives quite unusable results for my case.
you will find below the results of read from raw accel, sensor at rest, set to values (+-2g/16k precision, about 100hz, filter at 42hz)
On Z, i get values with what i think is a pretty big imprecision.
In sample below, you will see that they range from 16368 to 16486, which makes a 0.007g span. When i graph on a longer period, it has +-0.005g.
With such data, i compute that the sensor is moving by some millimeters to a centimeter per second when in fact it is at rest.
I know for sure that error will add and i will not be able to track anything accurately for more than a few seconds. This is what i read on forums and articles, and i understand this.
However not being able to track for at least a second is a huge disappointment. Am i crazy to believe in this being possible or am i getting incorrect values?
Thank you.
(303.0, 128.0, 16399.0)
(282.0, 132.0, 16408.0)
(298.0, 128.0, 16416.0)
(278.0, 160.0, 16444.0)
(282.0, 138.0, 16461.0)
(316.0, 144.0, 16486.0)
(308.0, 114.0, 16410.0)
(310.0, 136.0, 16415.0)
(327.0, 141.0, 16439.0)
(296.0, 152.0, 16377.0)
(296.0, 102.0, 16443.0)
(294.0, 144.0, 16368.0)
(292.0, 104.0, 16440.0)
(304.0, 118.0, 16436.0)
(284.0, 143.0, 16408.0)
(312.0, 127.0, 16436.0)
(276.0, 133.0, 16423.0)
(321.0, 144.0, 16412.0)
(290.0, 103.0, 16402.0)
(289.0, 138.0, 16425.0)
(285.0, 112.0, 16440.0)
(265.0, 139.0, 16406.0)
(291.0, 110.0, 16407.0)
(316.0, 137.0, 16416.0)
(300.0, 167.0, 16391.0)
(317.0, 147.0, 16374.0)
(262.0, 113.0, 16390.0)
(276.0, 104.0, 16410.0)
(281.0, 115.0, 16428.0)
(291.0, 149.0, 16406.0)
(296.0, 127.0, 16445.0)
Re: Re: accelerometer noise. To be expected?
Looks about right and consistent with the spec noise density Na= 0.4mg/rt-Hz. Here is my first attempt at estimating the significance of this error to velocity and position estimation.
With your 42Hz measurement bandwidth you could expect Na*sqrt(42)=2.5mg rms noise. If you calibrated bias (averaged) for 10 seconds you could have Ba~ Na*sqrt(1/10)=0.13mg rms bias residual before temperature and other drift effects dominate.
With 0.4mg/rt-Hz noise density your get a velocity random walk of VRW=Na*g*60=0.235m/s/rt-hr or 3.9mm/s/rt-sec. So after calibrating bias for 10 sec then in 1 second you would have a velocity drift of 0.13*9800*1=0.98mm/s and a random velocity error of 3.9mm/s*sqrt(1).
Position error due to residual bias error is Bp=1/2*Ba*g*T^2=0.62mm and due to random noise is Np=sqrt(1/3)*Na*T^(3/2)=2.26mm [ref]. So after 1 sec of integration (after accelerometer bias calibration) the total position error would be p=sqrt(Bp^2+Np^2)=2.3mm.
[ref: http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-696.pdf page 16]
What accuracy are you looking for?
For reference here is what I measured with an MPU9150EVB using UDL set to 50Hz.(The board was not that level and scale factor was not calibrated)
2270 710 16626
2268 662 16558
2342 712 16468
2388 756 16540
2354 746 16554
2286 712 16538
2304 700 16506
2342 666 16484
2356 682 16514
2352 726 16512
2332 686 16544
2292 718 16506
2310 662 16444
2292 716 16516
2296 706 16514
2302 678 16614
2306 718 16584
2374 726 16458
2310 686 16554
2262 678 16428
Re: Re: accelerometer noise. To be expected?
Dear,
I printed the accelration values as
accel: -0.031 -0.011 1.032
accel: -0.032 -0.011 1.032
accel: -0.028 -0.011 1.033
accel: -0.030 -0.011 1.034
accel: -0.031 -0.010 1.033
accel: -0.030 -0.010 1.033
accel: -0.031 -0.010 1.033
accel: -0.030 -0.011 1.033
accel: -0.030 -0.011 1.032
accel: -0.768 0.003 1.103
accel: -0.185 -0.038 1.081
accel: 0.112 0.013 1.097
accel: -0.108 -0.014 1.017
accel: 0.013 -0.017 1.042
accel: -0.063 -0.008 1.033
accel: -0.016 -0.020 1.033
accel: -0.008 0.001 1.029
accel: -0.079 -0.026 1.019
accel: -0.002 0.007 1.026
accel: -0.047 -0.032 1.035
accel: -0.011 0.006 1.032
accel: -0.035 -0.019 1.041
accel: 0.135 -0.012 1.075
accel: -0.111 -0.013 1.016
accel: 0.033 -0.012 1.023
accel: -0.044 -0.003 1.034
accel: -0.038 -0.034 1.035
accel: -0.030 0.022 1.036
accel: -0.056 -0.050 1.036
accel: 0.006 0.023 1.037
accel: -0.076 -0.048 1.033
I do not which FSR as you have discussed in the forum , I got mems sensor I didnt change any parameters since i dont have ARM board .
With these values could you tell me how to calculate the exact linear acceleration. I read from the post that i had subract the gravity , how do i get that gravity value.
viewtopic.php?f=3&t=737&start=10
Waiting for your reply eagerly for my progress.
Re: Re: accelerometer noise. To be expected?
It appears from this data, with some assumptions, that your accelerometer moved about 0.4m in 1 second. How does that compare with your actual observation?
I assume you were constrained to a track along the x-axis.
I assume the accelerometer was at rest for the first 9 samples
yielding an accelerometer bias of Ax0= -0.03033 g =-0.2979 m/s^2
I assume you were sampling at 20Hz so dt=0.05sec.
(I based this on the standard deviation of ax for the first 9 samples and
a typical noise for the InvenSense in-plane accelerometer of 240micro-g/rt-Hz; its customary for you to provide the sampling rate)
Integrating linear acceleration first to get velocity:
Vx=cumsum((accelx-Ax0)*9.8*dt)
[accelerates in 0.1 sec up to constant approx velocity -0.4m/s at about 0.5 sec]
then integrating velocity to get displacement
Dx=cumsum(Vx*dt)
yields at the end of 31 samples or t=1.5sec a Dx value of -0.406 m.
QED
(Unfortunately, I don't have a url to post to, so I will email the plots)
Re: Re: accelerometer noise. To be expected?
Dear ,
Could you please help me with sensor fusion algorithms or how to combine accel and gyro values. It would be great if you can write me an email.