2020-07-22 09:32 AM
In Design Tip DT0106, is it mentioned that:
Another technique which can be of help in controlling the integration error is known as Zero-Velocity-Update (ZVU): when the modulus of the acceleration is 1g and the output of the gyroscope is near 0, then it is assumed that the velocity is zero, and the corresponding integrator is reset to 0. If all the conditions are met in the above code, this instruction is executed: velhp(i,:)=[0,0,0].
What does it mean for the "modulus of the acceleration is 1g"? How could I determine this from the accelerometer data? Furthermore, does the output of the gyroscope being near 0 mean that the gyroscope data in all x,y,z axes be 0? I am quite new to these sensors, so I hope that I could get some clarification on these. Thank you!
2020-07-22 12:54 PM
2020-07-23 09:58 AM
Hi @NLe.1, you can determine the velocity value from the acceleration value by integrating it in time, via the classical formula v=a*t+v0, where v0 is the integration constant which can be a variable parameter. To fix this "gauge", the suggestion is to start integrating the acceleration when the sensor is in a "rest condition": since we are on Earth, the rest condition is the 1g gravity, and since the sensor is 3 axial, the design tip refers to the modulus of the, i.e. the "vectorial" sum of the components of gravity vector, as Piranha pointed out in his comment. Supposing then that you are running integration from long time, the error in speed (and in displacement, if you double integrated the acceleration value) will increase with time (since it is multiplied at least by first power of the time): to periodically check and cancel this error, you can analyze "real-time" the acceleration value and, when you read 1g module, you know that you are reading only the gravity vector and, so, you are stationary on moving in uniform velocity (that is a theoretical frame, indeed). Regards