Task
Complete the Week 8 lab: estimate attitude and position from the noisy IMU +
low-rate GPS (
quadsim.sensors) using a complementary filter and the course EKF
(quadsim.estimators), then close your Week-6 loop on the estimate.
The Week 8 lab sheet walks through the build step by step —
this page defines what you hand in and how it is graded.
What to submit (one zip)
wk8_estimation.py— estimation + closed-loop-on-estimate runwk8_est_error.png— estimate vs ground truth (attitude + position)- Report (PDF, ≤ 3 pages): filter structure, error plots, and what breaks when you skip filtering (fly on raw sensors once and show it)
Pass bar — expected results
- Stable flight on the estimate: final position error ≈ 0.06 m scale, attitude estimate RMSE < 1°
- Runs via
PYTHONPATH=. python examples/wk8_estimation.py(your version)
Assessment criteria
| Criterion | Weight | What earns full marks |
|---|---|---|
| Results & verification | 40% | The pass-bar numbers are met and reproduced by re-running your code from a clean checkout. Partial credit tracks how close you get and whether failures are honestly reported. |
| Code correctness & quality | 25% | Your own implementation (not the reference copied back); runs without edits; readable structure and naming; no dead code. |
| Report: plots & numbers | 20% | Requested plots present, axes labelled, units shown; the key numbers stated in text, not left inside figures. |
| Discussion & insight | 15% | Interpretation goes beyond restating outputs — connects the result to the theory taught that week. |
| Total | 100% | = 5% of the course grade |
Lab-specific checks on top of the rubric:
- The control loop genuinely consumes the estimate (no ground-truth leakage)
- The raw-sensor ablation is shown and explained
Rules
- Individual work. Discussing ideas is encouraged; code and report must be written by you. Identical code or text is treated under the University’s academic-integrity rules.
- AI assistants (ChatGPT, Copilot, …) may be used as a tool, with two conditions: declare the use in your report (one line is enough), and be able to explain every line you submit — you may be asked to, in person.
- Late submission: −20% per day, not accepted after 3 days. One free 48-hour extension per student per semester — ask before the deadline.
- Re-runs. We grade by re-running your code (
PYTHONPATH=. python …on a clean copy of the course simulator plus your files). “Works on my machine” without reproducibility loses the results marks.
📤 Submit via the MUST LMS
What
the zip described above
Filename
MLTE03_Wk8_<studentID>.zipWhere
MUST LMS → MLTE03 → Week 8 Lab dropbox LMS link — TO FILL
Deadline
date / time — TO FILL (before Week 9)