Fall 2024
EMCH792 – Optimal State Estimation
Final Project
Submission deadline: Tuesday, December 10, 9am
Final Project Instructions
Consider the kinematic bicycle model shown above. Assume that both lr and lf are 1.0m and that the model covariance is Q = diag([0.01, 0.01, 0.1, 0.05]). The state of the system is the position (x, y) of the center of the mobile robot, the orientation angle ψ and the velocity of the center of the robot υ. The inputs are the steering angle δf and the acceleration α. There are two sensors measuring the state of the robot as shown below:
The first sensor measures the distance of the robot from the origin and the second is a “weird” sensor that measures the cube of the orientation. Both sensors are prone to faulty measurements.
Three files are included with the project. First, the ‘FP_data.mat’ that contains deployment data from the robot for 10 seconds. The true position and orientation of the robot are x, y and psi respectively and the velocity is υ. The inputs are a and df and the measurements are y1 and y2. Two more files are included, ‘y1_calib_data.mat’ and ‘y2_calib_data.mat’ . These contain sample data from the sensors while the robot was stationary. Using MATLAB do the following:
I. Using the sensor sample data provided, find the sensor variances.
II. Using rectangular integration to discretize the model, implement a vanilla EKF and UKF. Plot and
comment on both filters’ results. Discuss the difference in the filter accuracy and the estimated error covariance between the filters.
III. Measure the average run time for the EKF and the UKF filters. Present and comment on the results.
IV. Implement measurement gating on both filters and compare the old and new results. Since you
have two different sensors, you are expected to check each measurement separately.
V. For the UKF, use Runge-Kutta integration to discretize the model, and compare the results with
the ones from the rectangular integration. Comment on any difference in the accuracy of the filter.
VI. Measure the average run time for the Runge-Kutta version of the UKF and compare it with the rectangular integration version.
Hints:
i. For the different integration methods, check section 1.5 of the textbook
ii. To measure elapsed time in Matlab, you can use the functions “tic” and “toc” (https://www.mathworks.com/help/matlab/ref/tic.html )
Submission Instructions
All the files you need for the final project are in the ws folder. You are expected to work inside this folder only. Open and edit the “Final_project.m” file. This file needs to contain all the answers to the above problems. Your submission needs to include:
. “Final_project.m” -> The edited MATLAB script with your solutions
. A pdf report that will include all your results and required discussion on the results
Make sure that the scripts you submit can run. Do not copy the results that appear in the command window in your scripts and make sure that if you add any comments in your scripts that they follow the proper MATLAB syntax. Scripts that do not run will not be graded.
Grading Rubric
Problem
|
Points
|
I
|
5
|
II
|
25
|
III
|
10
|
IV
|
25
|
V
|
25
|
VI
|
10
|