The system consisted of a pendulum arm with a IMU attached at the pivot point. The purpose of the project was to use the IMU data to reliably estimate the angle of the pendulum arm. To do this, we used the accelerometer as a tiltmeter and fused the readings with the gyroscope to get a reading that almost perfectly matched the encoder ground truth.
To be able to have the system fully operational my team had to perform tasks that can be broken down into three main categories
The first phase of the project involved simply calibrating each sensor so that we can get as reliable of a reading as possible. This involved testing the sensor at many operating points and determining the bias voltage and sensitivity associated with them.
Now that we have reliable sensor readings, we moved onto understanding what frequency ranges each sensor was most reliable at. To do this, we excited the pendulum arm at varying frequencies and compared the readings against the encoder ground truth. We were able to determine that the gyroscope was reliable above 2 Hz and the accelerometer was reliable below 2 Hz. We used this information to design a complimentary filter that effectively did a weighted average of the sensor readings depending on the frequency content. This gave use a simple design and leveraged the sensors where they are most accurate.
We implemented our sensor fusion design on a NI myRIO using labVIEW. This phase involved generating a labVIEW program as well as slightly tuning our sensor fusion to give the most reliable angular position reading. The result was a sensor fusion scheme that gave us angular position readings almost identical to the encoder ground truth.
The end result of the entire project yielded the following products:
Calibration parameters for all of the sensors
A complimentary filter based sensor fusion scheme
A labVIEW program that implements the sensor fusion