For some applications, the Yocto-3D and the Yocto-3D-V2 can be used as inclinometers, as they can estimate their spatial orientation. But you may have noticed that we don't provide any accuracy information on the inclination measure in the specifications. To know more, we are going to compare these two modules today with the Murata SCL3300 precision inclinometer that we interfaced last week with a Yocto-SPI.
To perform this comparison, we built a small graduated swing on which we mounted on one side a Murata SCL3300 sensor and a Yocto-SPI, and on the other side a Yocto-3D and a Yocto-3D-V2. After having carefully aligned the installation to the horizontal on both axes with a certified digital inclinometer, we moved the swing to distinct stable positions and we monitored with the Yocto-Visualization tool the inclination values returned by the different modules.
Our inclinometer comparison system
All following tests have been run with the sensors configured to return measures at 10Hz. The Yocto-3D-V2 uses the default NDOF fusion mode.
First test: absolute accuracy and noise
For this first test, we let the swing in its idle state. We had hoped that gravity would offer us a true zero degree, but we quickly noticed that the very slight force exerted by the USB cables is already enough to distort the idle state by a few tenths of degrees. The zero is therefore checked visually, but with an inaccuracy in the order of +/- 0.2°. Here are the values returned by the three sensors:
Measures at ~0░
First observation: the Murata sensor in blue is without contest the most accurate in absolute value. It's the only one which returns a value in the expected range, the others clearly have a non-negligible offset between 1° and 3°.
Second observation: if the Yocto-3D-V2 provides a surprisingly stable measure, we can't say the same of the Yocto-3D, which has a noise with an amplitude in the order of 0.7°. The reason is as follows: in the Yocto-3D, the inclinometer output is directly produced from the measure of the MEMS accelerometers, which have a lot of noise. While for the Yocto-3D-V2, the inclinometer output is combined with the measures of the gyroscope, and they can cancel the noise of the accelerometers by taking advantage of the knowledge that the module is not rotating at all.
Third observation: the noise of the Murata sensor is extremely low, but we still see three little bumps on the graph. Actually, they aren't measuring noise, but the result of perturbations on the table where the swing was located, when manipulating the computer used for the measures. This is shows the real excellent sensitivity of this sensor.
Second test: amplitude and offset
Here are two measures, taken at 30° and at almost 79°.
Measures at about 30° and 79°
We notice that again the Murata sensor is the most accurate one, both for relative and absolute values. At 30°, the Yocto-3D keeps its 2.5° offset, while the Yocto-3D-V2 gets closer to the Murata measure. But when the move is increased to 79°, we observe that the Yocto-3D-V2 actually underestimates the rotation amplitude and loses therefore one degree.
If we go back in the other direction, we observe the same kind of behavior.
Measures at about -42° and -81°
The Murata sensor faithfully reports the angle. The Yocto-3D remains rather noisy but keeps a coherent offset. The Yocto-3D-V2 provides a stable measure but which can deviate by more than 2° from reality, on one side or the other. This variable error is probably produced by the gyroscopic integration which is used by the BNO055 fusion algorithm.
Third test: slow movement
To better understand the difference between the three measuring methods, we performed a slow movement of a few tenths of degrees, driving the swing with a string and by freeing it gradually of a few millimeters:
Slow transition between two angles
The Murata sensor reproduces the movement the most clearly. We can also guess it in the measures of the Yocto-3D, although it is mostly hidden by the measuring noise. However, the movement is not detected at all by the Yocto-3D-V2. It was visibly too slow to be detected by the MEMS gyroscope and it's amplitude to small for the accelerometers to take over on the gyroscope.
Fourth test: fast movements
As a last test, let's see how the three sensors react to fast movements. First, we performed a 25° transition over about 2 seconds:
Fast transition between two angles
The results are very different from the previous tests. The Murata sensor produces very noisy values during the transition, probably due to the sensor saturation. The Yocto-3D and the Yocto-3D-V2 both provide a much more correct estimation of the movement, the later providing the best results.
Let's now see what happens if we produce a small pendulum movement starting from about 10°:
The movement is rather fast, all the sensors tend to underestimate it slightly. But it's clearly the Yocto-3D-V2 which estimates the movement's amplitude the most correctly, the other two losing the movement maxima in the 10Hz averaging.
There is a clear difference in behavior due to the difference in sensor technology. When the task to perform involves fast movements, the Yocto-3D-V2 provide a much better real-time estimation of the move than the other solutions. However for static inclination measurement, it is not the best candidate.
The inclinometer function of the Yocto-3D is based on the same accelerometer technology as the Murata SCL3300 sensor, but with a less evolved sensor. It can therefore be used as inclinomenter for application requiring an accuracy in the order of 2° only. A use of averaged measures, using timed reports at 30 or 60 measures per minute, can significantly reduce the measuring noise, and a careful calibration should provide a better absolute accuracy.
The inclinometer function of the Yocto-3D-V2 is actually an angular output of the orientation estimation integrating not only accelerometer measures but also the gyroscopic function. It is therefore better to estimate fast angular changes and stability, but not very good in terms of repeatability, so finally not better than the Yocto-3D in terms of absolute accuracy.
The Murata SCL3300 sensor connected to a Yocto-SPI is the only one which you can really use as a precision inclinometer. The only limitation to take into account is the management of fast movements. Given the very promising results of this sensor, it's likely that we'll turn it into a dedicated Yoctopuce module.