2023-08-04 06:41 PM
Hi!
We are a group trying to get reliable rotation data out of the LSM6DSV16X sensor. The accumulated error values in the datasheet seemed promising. However, we are currently in a state, where the sensor is returning gyroscope data, but the actual observed drift is much higher (upwards of 20 degrees of drift over the period of 5 minutes).
I'll try to summarize what we are doing, but the code for the project can be found here .
We are setting up the ODR for the gyroscope and the accelerometer to be 120Hz, as that is our polling frequency. We then set the BDR of the SFLP to be also at that frequency. We then run through the FIFO every iteration, extract out the relevant data and send it to our server software, where it gets displayed. This part works, we get about 120 updates every second, and the actual rotation data seems accurate. However if the sensor is continuously moved over 5 minutes, we get unacceptably big drift.
We are currently only really using the fusioned game vector for this problem, the gravity vector and the gyro bias are mostly just ignored. We are running with limits of 4g acceleration and 2000dps. We tried setting the ODR rate for the sensors higher (up to the maximum 7.86k limit), but that didn't help.
So the question is, how do you achieve the claimed accuracies listed in the datasheet?
2023-08-04 07:10 PM
How is the hardware structure? Is it something like a drone, with no fixed reference, just gravity? The sensor seems to be operating relatively, it would be interesting if it could operate absolutely.
There are two ways that encoders represent rotation and angle information: a relative angle and an absolute angle, and the format of an electrical signal output from encoders differ depending on each expression way.
Source: https://www.akm.com/us/en/products/rotation-angle-sensor/tutorial/type-mechanism-2/
2023-08-04 07:23 PM
It's an on body device. Think mocap mainly. the rotation is relative to a 0,0,0 gotten from a rotation reset. The returned quaternion is offset like that.
2023-08-05 11:14 AM
I'd appreciate any input on this. The current path we are trying to go down is manually setting gyroscope bias. But if we are doing something incorrectly, a pointer would be appreciated.
2023-08-05 01:21 PM
I found this:
"the gyroscope angle readings drift by itself" "The error was just some delay in the gyroReading() function, I just deleted it"
https://forum.arduino.cc/t/mpu6050-gyroscope-readings-are-drifting/1113217
2023-08-05 01:44 PM
Thank you for the link, but we don't have anything of that sort in our library functions.