Difference between revisions of "CDS 110b: Sensor Fusion"

From MurrayWiki
Jump to: navigation, search
(Frequently Asked Questions)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{cds110b-wi06}}
+
{{cds110b-wi08 lecture|prev=Kalman Filters|next=Robust Performance}}
In this lecture we show how the Kalman filter can be used for sensor fusion and explore some variations on the basic Kalman filter, including the extended Kalman filter. __NOTOC__
+
In this set of lectures we discuss discrete-time random processes and the discrete-time Kalman filter.  We use the discrete-time formulation to consider problems in (multi-rate) sensor fusion and sensor fusion in the presence of information/packet loss.  We also introduce the information filter, which provides a particularly simple method for sensor fusion.
  
== Lecture Outline ==
+
{| border=1 width=100%
<ol type=I>
+
|- valign=top
<li> Sensor fusion using Kalman filters
+
| width=50% |
<li> The extended Kalman filter
+
===== Monday =====
* Ducted fan example: {{cds110b-pdfs|dfan_kf.m|dfan_kf.m}}, {{cds110b-pdfs|pvtol.m|pvtol.m}}
+
<ol type="A">
<li> Parameter estimation using EKF
+
<li>Discrete-time Kalman filter</li>
 +
* Discrete-time stochastic systems
 +
* Main theorem (following AM08)
 +
* Predictor-corrector form
 +
<li>Sensor fusion</li>
 +
* Problem setup {{to}} inverse covariance weighting
 +
* Example: TBD
 +
<li>Variations</li>
 +
* Multi-rate filtering and filtering with data loss
 
</ol>
 
</ol>
 
+
|
== Lecture Materials ==
+
===== Wednesday =====
* {{cds110b-pdfs|L6-1_fusion.pdf|Lecture presentation}} ({{cds110b-pdfs|L6-1_fusion.mp3|MP3}})
+
<ol type="A">
* {{cds110b-pdfs|kalman.pdf|Lecture Notes on Kalman Filters}}
+
<li>Application: Autonomous driving</li>
* Reading: Friedland, Chapter 11
+
* Low-level sensor fusion in Alice (Gillula)
* {{cds110b-pdfs|hw5.pdf|HW #5}}, due 13 Feb (Mon)
+
* Sensor fusion for urban driving (DGC07)
** [http://www.nsd.es.northropgrumman.com/Html/LN-200/ LN-200 IMU data sheet]
+
<li>Information filters</li>
 +
* Problem setup
 +
* Kalman filter derivation
 +
* Sensor fusion example revisited
 +
<li>Modern extensions of Kalman filtering</li>
 +
* Moving horizon estimation
 +
* Particle filters
 +
</ol>
 +
|}
 +
<p>
 +
* {{cds110b-wi08 pdfs|L8-1_fusion.pdf|Lecture notes on sensor fusion}}
 +
* {{cds110b-wi08 pdfs|L8-2_kfexts.pdf|Lecture slides on applications and extensions of Kalman filters}}
 +
* {{cds110b-wi08 pdfs|hw7.pdf|HW #7}} (due 5 Mar 08)
 +
</p>
  
 
== References and Further Reading ==
 
== References and Further Reading ==
 +
* R. M. Murray, ''Optimization-Based Control''. Preprint, 2008: {{obc08 pdfs|stochastic_25Feb08.pdf|Chapter 5 - Sensor Fusion}}
 +
* {{cds110b-wi07 pdfs|gro02_infofilter.pdf|Appendix}} from [http://www.grasp.upenn.edu/~bpg/ Ben Grochalsky's] thesis on information filter.
 +
* [[NCS:_Kalman_Filtering|CDS 270-2 (Networked Control Systems) page on Kalman Filtering]] - provides additional notes and lecture materials (including some nice references)
  
 
== Frequently Asked Questions ==
 
== Frequently Asked Questions ==
'''Q: How do you deal with time correlated noise (eg, GPS jumps on Alice)?'''
 
<blockquote>
 
<p>Correlated noise can be put into the Kalman filtering framework by using a (linear) filter to give a correlated noise source with a given correlation function (or spectral density).  Suppose that <math>H(s)</math> is a transfer function that filters Gaussian white noise and provides the desired correlation.  Let <math>(A_f, B_f, C_f)</math> be a state space representation for the filter.  Then the entire system can be written as
 
<center>
 
{|
 
|-
 
| <math>
 
  \left[\begin{matrix} x \\ z \end{matrix}\right] =
 
  \left[\begin{matrix} A & F C_f \\ 0 & A_f \end{matrix}\right] \left[\begin{matrix} x \\ z \end{matrix}\right] +
 
  \left[\begin{matrix} B \\ 0  \end{matrix}\right] u +
 
  \left[\begin{matrix} 0 \\ B_f  \end{matrix}\right] v
 
</math>
 
|-
 
| <math>
 
  y = \left[\begin{matrix} C & 0 \end{matrix}\right] \left[\begin{matrix} x \\ z \end{matrix}\right]  + w
 
</math>
 
|}
 
</center>
 
This system takes a Guassian white noise input <math>v</math>, filters it to give the desired spectrum, and uses it to drive the system.</p>
 
 
<p>For Alice, the most correct approach would be to model the noise as something other than a Gaussian process (in which case the theory we have studied doesn't directly apply).  However, we can also take data from the sensor and develop the correlation function numerically, then determine the linear system that best models the correlation.</p>
 
</blockquote>
 
 
'''Q: In problem 1(a), can we assume <math>\alpha</math> and <math>\beta</math> as given in homework #2 when doing our plots?  Can we also assume them when doing the calculations?'''
 
<blockquote>
 
Getting an expression first in terms of <math>\alpha</math> and <math>\beta</math> would be good, and then plugging in the values from homework #2.  (And as always, if you used different values, please be sure to clearly state that.)
 
</blockquote>
 
 
'''Q: In problem 1(b), what transfer function should we use to calculate the gain margin?  I know we want open loop, but do we want to break the loop such that it's SISO?'''
 
<blockquote>
 
Yes, break the loop so it's SISO.  In the coming weeks we'll make clear exactly where we'd want to break the loop and why based on precisely where the disturbances and noise are, but for now...just pick a SISO break spot.
 
</blockquote>
 
 
'''Q: In dfan_kf.m, shouldn’t P22 be y1(:,20) and P33 be y1(:,27)?'''
 
<blockquote>
 
Good catch!  There is a mistake in the file.  You need to add 7 to each entry to go from one diagonal entry to the next.  The code as written will plot the first column of the P matrix.
 
</blockquote>
 
 
'''Q: What's up with the units of the power spectral density on the LN200 datasheet?  Why is it in degrees/sqrt(hr)?'''
 
<blockquote>
 
Sometimes, the square root of the PSD is given instead of the PSD, as in this case.  Thus, to get the PSD, you'll need to square the given value.  (Also, remember that the units of PSD are not the same as the units of the covariance, e.g. <math>\sigma^2</math>.  Because integrating the PSD over a band of frequencies will give you the correlation in the frequency band, the units of the PSD should be the units of <math>\sigma^2</math>divided by Hz.)
 
</blockquote>
 

Latest revision as of 03:23, 2 March 2008

CDS 110b Schedule Project

In this set of lectures we discuss discrete-time random processes and the discrete-time Kalman filter. We use the discrete-time formulation to consider problems in (multi-rate) sensor fusion and sensor fusion in the presence of information/packet loss. We also introduce the information filter, which provides a particularly simple method for sensor fusion.

Monday
  1. Discrete-time Kalman filter
    • Discrete-time stochastic systems
    • Main theorem (following AM08)
    • Predictor-corrector form
  2. Sensor fusion
    • Problem setup → inverse covariance weighting
    • Example: TBD
  3. Variations
    • Multi-rate filtering and filtering with data loss
Wednesday
  1. Application: Autonomous driving
    • Low-level sensor fusion in Alice (Gillula)
    • Sensor fusion for urban driving (DGC07)
  2. Information filters
    • Problem setup
    • Kalman filter derivation
    • Sensor fusion example revisited
  3. Modern extensions of Kalman filtering
    • Moving horizon estimation
    • Particle filters

References and Further Reading

Frequently Asked Questions