Attitude measurements with digital sensors falling out of synch
I have worked quite extensively in the area with 9d0f boards and let me say that it is possible to sync devices, it's just a matter of how you decide to implement your solution. The L3GD20 device that your refer to has like most other gyroscopes by ST a mode called bypass.
In Bypass mode, the FIFO is not operational and for this reason it remains empty. As
described in
Figure 7
below, for each channel only the first address is used. The remaining
FIFO slots are empty. When new data is available, the old data is overwritten.
Why is this mode useful?
Well let's say that you sample an accelerometer, immediately after you can sample your gyroscope and here's the key part.. Even if you gyroscope hasn't had a chance to update its own values you will get the previous sampled reading of your gyroscope which will be a close enough estimate and thus alleviates the time sync problem.
In most cases the procedure should be:
Sample all sensors.
Perform attitude calculation.
Then repeat.
Bypass mode in your Gyro allows you to do this and you won't need to worry about time syncing an FIFO readings or the like.
Personally I'd recommend you use interrupts. If this isn't possible you'll need a delta timer to determine the period of time that has passed between samples so your attitude calculation is correct.
There are many fusion algorithms and to discuss them in depth will be extensive.
Some of them include:
Kalman Filters.
Complementary Filters
Sebastian Madgwick/Robert Mayhony’s IMU AHRS algorithm with a demonstration and source that can be found here
Good luck!