This PR switches over to using the LSM6 FIFO feature (instead of reading on an interval). This (should) allow for better angle measurements due to a known time period between values.
Theory of Operation:
The robot object sets up the IMU with the appropriate data rates and kicks off FIFO mode
The IMU continually polls the FIFO status byte, reads off the FIFO and populates an internal "IMU Frame" buffer with the read values
Data is buffered in the IMU object until read externally
This allows the (slower) I2C reading mechanism to be run as quickly as possible, while the (faster) processing mechanism can poll at it's own rate, but still have accurate measurements.
With this change, performing a calibration on the IMU will temporarily pause readings on the robot side.
This PR switches over to using the LSM6 FIFO feature (instead of reading on an interval). This (should) allow for better angle measurements due to a known time period between values.
Theory of Operation:
This allows the (slower) I2C reading mechanism to be run as quickly as possible, while the (faster) processing mechanism can poll at it's own rate, but still have accurate measurements.
With this change, performing a calibration on the IMU will temporarily pause readings on the robot side.