Use ICM-20602 to calculate the vertical and horizontal position of the device as its moved in free space. The key challenge is to combine outputs from the IMU and filter the accelerometer and gyroscope noise, to limit positional drift and provide responsive real-time position.
We need somebody with strong signal processing and firmware programming experience.
1) Code to calibrate ICM-20602. Provide biases/offsets which will need to be stored in the MCU flash memory.
2) Code to initialize ICM-20602 before it can start taking readings. This includes loading calibration values.
3) Code to read data from ICM-20602. This should be filtered, so that at rest, the accelerator reads (0, 1g, 0) and gyro outputs are 0.
4) Code to extrapolate the current position (vertical and horizontal) by using the readings since initialization. Please note that the device fitted with ICM-20602 might rotate, so the vertical and horizontal values should be relative to ground.
* Output, should not drift position when stationary.
* Communication to ICM-20602 will be done using SPI.
* Host Microcontroller is the nRF52840
* Output needs to be responsive and accurately reflect the path moved in free space.
An extension to the project utilizes the 7-Axis ICM-20789 to improve on the above - previous experience with this device is highly desirable.