The objective of checkpoint #1 is to create a short How-To manual that describes how to estimate attitude the pitch angle with an IMU. You will need to describe how to filter data, estimate angles, and fuse data together. The manual should be written such that you could read the manual in several years and be capable of digitally filter sensor data and implementing a complementary filter.
Within your manual you need to:
- Describe how to estimate the pitch angle using the accelerometer and the rate gyro sensors (both how it works and how to program).
- Describe in detail the digital filters you implemented including filter type, order, cutoff frequency, filter coefficients, etc. Make sure to explain why you chose those parameters. This section should include any and all necessary equations to actually implement the filter.
- Show results comparing raw data to the filtered values.
- Show results comparing the two methods of calculating the roll angle with the Navio+ Raspberry Pi filtered sensor data. Compare your estimates to the motion you imposed (using visual estimation of 45 deg, 90 deg excitation) on the system.
- Describe how a complementary filter works, and how to implement one in C++.Include any necessary figures, references, or block diagrams to have a clear description.
- Showresultscomparingyourpitchanglecomplementaryfilter.Commentonhowwellthe complimentary filter estimates the pitch angle.
The manual should be written in a standard report style format. The next several checkpoints will be structured similar to Checkpoint #1, such that by the end of the semester you will have a comprehensive state estimation and control “How-To” manual. For this checkpoint you are limited to 5 pages, including any references/figures.
- Attitude Estimation
1.1. Conceptual Pitch Estimation § Describe how to estimate pitch using accelerometer and gyro sensors. Include equations as needed 1.2. Practical Pitch Estimation
§ Describe how to code the pitch estimation in C++. Note any challenges/limitations § Show results from the laboratory activities (as noted in the manual description) and discuss
- Digital Filtering
- Describe how a filter works (FIR, IIR, butterworth, moving average, etc.)
- Different filter types and what they do (high pass, low pass, etc.)
- Determining and using filter coefficients 2.2. Implementing a digital filter in C++
- How to practically implement the HPF and LPF on the Pi.
- This should include brief psuedocode/C++ code
- Results from laboratory with a discussion
- Sensor Fusion 3.1. Complimentary Filter Theory
§ Describe how the complimentary works. When can it be used? Block diagram/figures and equations are likely needed here 3.2. Implementing a Complimentary Filter § How to fuse the data on the Raspberry Pi. Equations may be helpful and/or psuedocode or C++ code.
- Show results and discuss as mentioned above.