So far, you have been struggling with traditional and RL controllers. The
main pedagogical objective of this assignment is to provide and demonstrate
an understanding of Kalman filter being used alongside any of the covered
controllers. We will take into account the same inverted pendulum case study.
The main difference with the previous assignments is the usage of images as
the accessible data to estimate the required states. In summary, there are
three different issues to be addressed:
1. Visual Tracking: Assuming that the measurements are images given by
a camera, you have to perform object tracking to provide observations
for the Kalman Filtering part.
2. Kalman Filter: Using the observations obtained from the previous step,
you will estimate the states needed to control the system.
3. Controller: Based on the estimated states, you will implement a PID
controller to stabilize the pole angle.
You may use any of the previous provided basic codes; however, note, the
cart and the pole must be displayed in two different colors like the ones in
assignment3, so that you can handle the image processing task.
2 Visual Tracking (25%)
In this section, assume that there is no direct access to the states, but measurements coming from a camera. This provides us with the observations
that can be processed to extract and estimate the required state/states to
control the system.
Write a code to process the incoming images and track the cart-pole system
while providing the controller with the necessary states.
(You may perform some thresholding on the image to extract the center of
mass for both the pole and the cart; then, use this information to observe
the pole angle. Be careful, this observation might be noisy!)
3 Kalman Filter (50%)
Implement the Kalman Filter equations to estimate theta and theta dot. For
this part, consider the observation of the pole angle given by the previous
vision part. Note, as the Kalman Filter is a linear algorithm, you are supposed to define a simple linear model while considering (theta, theta − dot)
as the states. Do not use the existing inverted pendulum dynamic as its not
There are some important points to mention for this part:
1. When defining the model, be careful about the sampling time ∆t in
the model, as it plays a key role in estimating theta − dot correctly.
2. The only observation you have is the images; thus, you are not allowed
to use the provided states directly, unless as ground truth to evaluate
(In the base code that you used for the previous assignments, we assumed the states are accessible (no need to estimate them); Take them
as true values for the purpose of evaluation of your estimator).
3. Note, Q and R are the two main parameters for tuning the Kalman
Filter. Q stands for the covariance of the process noise, while R corresponds to the covariance of the measurement noise. Taking R > Q
means you more trust on the model, whereas Q > R represents that
the measurements are more accurate.
4 Designing the Controller (25%)
Design a PID controller to stabilize the angle using the states estimated in
the previous step (keep the pole balanced and as close to vertical as possible).
5 Things to submit
You will need to submit both your code and a report(in pdf format please)
zipped together. Please be concise and report interesting things like challenges.
1. For the vision part, report a plot showing the observations of the angle
vs. its true values. Furthermore, provide us with a visualization of your
results for 3 to 6 consecutive frames so that the tracking procedure can
2. For the Kalman Filter part, report the estimated states vs. their true
values. Furthermore, as you have two states to be estimated, report
the estimation error variance of each with respect to time (these can
be obtained from the P matrix).
3. For the controller part, report a plot of theta vs. time showing your
controller performance in a conducted simulation with a brief explanation.