hi, you guys, I am using gyroscope L3GD20 to building navigation system. But I find a wired phenomenon in the process of collecting data from this device and analysing zero-rate level of it. There are some data section extracted from log file followed as below. By the way, those data are recording in real world when vehicle keep stationary may be happened to red light but not stopping.
timestamp temperature counts X Y Z
583372 4 19 3618 542 -493
583473 4 19 3598 612 -358
583575 4 19 3376 739 -395
583676 4 19 3274 692 -1084
583783 4 19 3596 869 -429
583885 4 19 3443 763 -596
583986 4 19 3066 730 -294
584088 4 19 3479 587 -602
584189 4 19 3505 633 -979
584291 4 19 3744 375 -685
584393 4 19 3384 626 -785
584494 4 19 2661 678 -847
584596 4 19 3278 948 -1018
584697 4 19 3093 570 -1003
584799 4 19 3376 454 -856
584900 4 19 3326 623 -410
585002 4 19 3189 890 -446
585104 4 19 3362 651 -438
585205 4 19 3362 625 -807
585307 4 19 3848 756 -860
585408 4 19 3767 640 -493
585510 4 19 3592 299 -568
585611 4 19 3407 988 -373
585713 4 19 2902 518 -449
585814 5 19 3589 608 -520
585916 5 19 3523 815 -389
586018 5 19 3581 879 -414
586119 5 19 3291 506 -702
586221 5 19 3080 570 -458
Every rows from left to right with the meaning of time stamp, current inner temperature(not real temperature of outside), sample counts and three axis output data. so you can find that zero-rate level on three axis makes big volatility, It’s normal for this gyroscope?
I think that are some unnormal results due to car’s engineer trembling, do you think so?
And another question, how to calibrate zero-rate level?
Hello.
The variation of the zero-rate level depends on the measurement range (FS) you are using. You can refer to Table 4 of the L3GD20 datasheet to see what variation you can expect at certain measurement ranges.
To obtain the zero-rate level for your system, you will want to calculate the average value of the sensor when it is at rest. You will then want to subtract it from subsequent readings. However, I am not sure how well this would work if your car is on. I suspect that the vibration from the engine can affect the calibration process. If you continue to get a large variation from your readings, you might consider implementing a software filter to smooth out the readings.
- Jeremy
Hi, JeremyT. Thanks. The data listed above is collected when I select the full scale of 250dps. From datasheet description I know that zero-rate level is +/-10dps, and sensitivity is 0.00875, so the corresponding digit value of raw output yield to +/-(10/0.00875), which equals to +/-1142.85. what do you think about this?
you said that implementing a software filter to smooth out the readings is helpful, how to do it? Can you give me some advise.
Your calculations look correct. It seems like the readings from the x-axis are beyond what is expected. You might try obtaining some readings with your engine off and see how much the vibrations from the engine are affecting the readings.
One simple way to filter the readings might be to compute a running average. You might try searching the web for other examples of software low pass filters.
- Jeremy
There are some data collected in lab environment, also keep device stationary.
1 7 19 2814 500 -360
2 7 19 2470 446 -337
3 7 19 2854 533 -693
4 7 19 2580 486 -590
5 7 19 2772 626 -1165
6 7 19 2553 504 -828
7 7 19 2473 468 -971
8 7 19 2708 459 -761
9 7 19 3001 362 -1017
10 7 19 3005 563 -784
11 7 19 2668 545 -994
12 7 19 2806 518 -984
13 7 19 2568 555 -661
value from X axis is similar to that mentioned above. It seems to be normal but out of expected. what’s wrong do you think about this?
Those values seem high but consistent, so you will probably be able to compensate for the offset via software. If you are using an Arduino or have one, you might try running the demo program from our Arduino library for Pololu L3G boards and see if you get a similar offset.
- Jeremy