# CS计算机代考程序代写 matlab CS 4610/5335 Kalman Filter

CS 4610/5335 Kalman Filter
Robert Platt Northeastern University 2/10/20
1. Lawson Wong, CS 4610/5335
2. Peter Corke, Robotics, Vision and Control
3. Sebastian Thrun, Wolfram Burgard, & Dieter Fox,
Probabilistic Robotics
4. Marc Toussaint, U. Stuttgart Robotics Course

Kalman Filtering
Another way to adapt Sequential Bayes Filtering to continuous state spaces
– relies on representing the probability distribution as a Gaussian
– first developed in the early 1960s (before general Bayes filtering); used in Apollo program
Image: UBC, Kevin Murphy Matlab toolbox

Kalman Filter
initial position prediction measurement update yyyy
xxxx
Image: Thrun et al., CS233B course notes

Example: Localizing against known map

Example: Localizing against known map

Example: Localizing against known map

Kalman Filter (1-D)
initial position prediction measurement update
x ̇ x ̇ x ̇ x ̇ xxxx
Image: Thrun et al., CS233B course notes

Kalman Idea
Image: Thrun et al., CS233B course notes
Measurement evidence
posterior
prior
Image: Thrun et al., CS233B course notes

System:
Process update:
Measurement update:
Image: Thrun et al., CS233B course
Kalman in 1D
notes
Measurement evidence
prior
posterior
Image: Thrun et al., CS233B course notes

Last time on the board…

Last time on the board…

● Univariate Gaussian:
● Multivariate Gaussian:
Gaussians

Playing w/ Gaussians
● Suppose:
● Calculate:
y
y
x
x

● Suppose:
● Then:
In fact

Illustration
Image: Thrun et al., CS233B course notes

And
Suppose:
Then:
Marginal distribution

Does this remind us of anything?

Does this remind us of anything?
Process update (discrete):
Process update (continuous):

Process update (discrete):
Process update (continuous):
Does this remind us of anything?
transition dynamics
prior

Process update (discrete):
Process update (continuous):
Does this remind us of anything?
transition dynamics
prior

Observation update:
Observation update
Where:

Observation update:
Observation update
Where:

Observation update:
Observation update
Where:

But we need:
Observation update

Suppose: Calculate:
Another Gaussian identity…

Observation update
But we need:

To summarize the Kalman filter System:
Prior:
Process update:
Measurement update:

Suppose there is an action term… System:
Prior:
Process update:
Measurement update:

To summarize the Kalman filter Prior:
Process update:
Measurement update:
This factor is often called the “Kalman gain”

Things to note about the Kalman filter Process update:
Measurement update:
– covariance update is independent of observation
– Kalman is only optimal for linear-Gaussian systems – the distribution “stays” Gaussian through this update
– the error term can be thought of as the different between the observation and the prediction

Example: filling a tank
Level of
tank Fill rate
Process:
Observati on:

Example: estimate velocity
prediction
past measurements
Image: Thrun et al., CS233B course notes

Example: estimate velocity

Example: Localizing against known map

Example: Localizing against known map

But, my system is NON-LINEAR! What should I do?

But, my system is NON-LINEAR! ● What should I do?
Well, there are some options…

But, my system is NON-LINEAR! ● What should I do?
Well, there are some options… But none of them are great.

But, my system is NON-LINEAR! ● What should I do?
Well, there are some options…
But none of them are great.
Here’s one: the Extended Kalman Filter

Extended Kalman filter Take a Taylor expansion:
Where:
Where:

Extended Kalman filter Take a Taylor expansion:
Where:
Where:
Then use the same equations…

Prior:
Process update:
Measurement update:
To summarize the EKF

Prior:
Process update:
Measurement update:
Compare with regular KF

EKF

EKF

Extended Kalman filter
Image: Thrun et al., CS233B course notes

Extended Kalman filter
Image: Thrun et al., CS233B course notes

EKF Mobile Robot Localization
Process dynamics:
state Process noise is assumed to be Gaussian:
Odometry measurement
Suppose we have a mobile robot wandering around in a 2-d world …
noise

EKF Mobile Robot Localization
Actual path of robot
Estimated path based on odometry
But, wheels slip – odometry is not always correct… How do we localize? Extended Kalman Filter!

Process dynamics:
EKF Mobile Robot Localization
noise
Odometry measurement

EKF uncertainty estimate
Dynamics: Linearized dynamics:
Where:
EKF Process Update

EKF Process Update
EKF uncertainty estimate
Dynamics: Linearized dynamics:
Where:
Process update:
With no observations, uncertainty grows over time…

Landmarks
(i.e. features of the env’t)
Observations
Observations:
– range and bearing of a landmark
Observations:
range bearing

Observations Observations:
Landmarks
(i.e. features of the env’t)
where:

EKF Mobile Robot Localization Process Update:
Observation Update:

Mapping using the EKF
How do we use the EKF to estimate landmark positions? State:
Positions of each of the M landmarks (base frame)

SLAM using the EKF
Vehicle/landmark covariance
Vehicle covariance
Estimate both robot position and landmark positions:
robot position
Landmark positions
Landmark covariance

SLAM using the EKF
Landmark covariance drops significantly as soon as “loop closure” occurs.
Image: Thrun

Mud Cards / Feedback
Do not write your name / e-mail / ID number!
1. What did you like?
2. What was unclear / “muddy”?
Feel free to leave any other feedback!
59