Moved extraneous chapters to appendix.
This commit is contained in:
parent
2c8a2d0a8e
commit
85eccf7a21
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,5 +3,5 @@
|
||||
__pycache__
|
||||
*.pyc
|
||||
short.pdf
|
||||
13*
|
||||
11*
|
||||
Kalman_and_Bayesian_Filters_in_Python.pdf
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -13,11 +13,8 @@ The preface available from the link above has all the information in this README
|
||||
|
||||
PDF Version
|
||||
-----
|
||||
I used to keep a PDF version of the book in this repository. However, git does not do well with binary blobs like that, and the repository was getting too big. I deleted it and it's history from git. I am now providing it in a couple of places; I haven't decided on a final home.
|
||||
|
||||
On PDF-archive you can access it [here](http://document.li/ZS1b)
|
||||
|
||||
From my google drive page you can acces it [here](https://drive.google.com/file/d/0By_SW19c1BfhSVFzNHc0SjduNzg/view?usp=sharing)
|
||||
I used to keep a PDF version of the book in this repository. However, git does not do well with binary blobs like that, and the repository was getting too big. I deleted it and it's history from git. I am now providing it
|
||||
on my google drive [here](https://drive.google.com/file/d/0By_SW19c1BfhSVFzNHc0SjduNzg/view?usp=sharing)
|
||||
|
||||
The PDF will usually lag behind what is in github as I don't update it for every minor check in.
|
||||
|
||||
|
@ -37,19 +37,17 @@ if __name__ == '__main__':
|
||||
['../00_Preface.ipynb',
|
||||
'../01_g-h_filter.ipynb',
|
||||
'../02_Discrete_Bayes.ipynb',
|
||||
'../03_Least_Squares_Filters.ipynb',
|
||||
'../04_Gaussians.ipynb',
|
||||
'../05_One_Dimensional_Kalman_Filters.ipynb',
|
||||
'../06_Multivariate_Kalman_Filters.ipynb',
|
||||
'../07_Kalman_Filter_Math.ipynb',
|
||||
'../08_Designing_Kalman_Filters.ipynb',
|
||||
'../09_Nonlinear_Filtering.ipynb',
|
||||
'../10_Unscented_Kalman_Filter.ipynb',
|
||||
'../11_Extended_Kalman_Filters.ipynb',
|
||||
'../12_Designing_Nonlinear_Kalman_Filters.ipynb',
|
||||
#'../13_Particle_Filters.ipynb',
|
||||
'../14_Smoothing.ipynb',
|
||||
'../15_Adaptive_Filtering.ipynb',
|
||||
'../03_Gaussians.ipynb',
|
||||
'../04_One_Dimensional_Kalman_Filters.ipynb',
|
||||
'../05_Multivariate_Kalman_Filters.ipynb',
|
||||
'../06_Kalman_Filter_Math.ipynb',
|
||||
'../07_Designing_Kalman_Filters.ipynb',
|
||||
'../08_Nonlinear_Filtering.ipynb',
|
||||
'../09_Unscented_Kalman_Filter.ipynb',
|
||||
'../10_Extended_Kalman_Filters.ipynb',
|
||||
#'../11_Particle_Filters.ipynb',
|
||||
'../12_Smoothing.ipynb',
|
||||
'../13_Adaptive_Filtering.ipynb',
|
||||
'../Appendix_A_Installation.ipynb',
|
||||
'../Appendix_B_Symbols_and_Notations.ipynb',
|
||||
'../Appendix_C_Walking_Through_KF_Code.ipynb'])
|
||||
|
@ -24,70 +24,60 @@
|
||||
"\n",
|
||||
"Introduces the discrete Bayes filter. From this you will learn the probabilistic (Bayesian) reasoning that underpins the Kalman filter in an easy to digest form.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 3: Least Squares Filter**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/03_Least_Squares_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Introduces the least squares filter in batch and recursive forms. I've not made a start on authoring this yet. Many authors develop KF explanations by covering least squares first. I am not, so I may move this chapter deeper in the book, or remove it.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 4: Gaussian Probabilities**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/04_Gaussians.ipynb)\n",
|
||||
"[**Chapter 3: Gaussian Probabilities**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/03_Gaussians.ipynb)\n",
|
||||
"\n",
|
||||
"Introduces using Gaussians to represent beliefs in the Bayesian sense. Gaussians allow us to implement the algorithms used in the discrete Bayes filter to work in continuous domains.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 5: One Dimensional Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/05_One_Dimensional_Kalman_Filters.ipynb)\n",
|
||||
"[**Chapter 4: One Dimensional Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/04_One_Dimensional_Kalman_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Implements a Kalman filter by modifying the discrete Bayes filter to use Gaussians. This is a full featured Kalman filter, albeit only useful for 1D problems. \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 6: Multivariate Kalman Filter**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/06_Multivariate_Kalman_Filters.ipynb)\n",
|
||||
"[**Chapter 5: Multivariate Kalman Filter**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/05_Multivariate_Kalman_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"We extend the Kalman filter developed in the previous chapter to the full, generalized filter for linear problems. After reading this you will understand how a Kalman filter works and how to design and implement one for a (linear) problem of your choice.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 7: Kalman Filter Math**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/07_Kalman_Filter_Math.ipynb)\n",
|
||||
"[**Chapter 6: Kalman Filter Math**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/06_Kalman_Filter_Math.ipynb)\n",
|
||||
"\n",
|
||||
"We gotten about as far as we can without forming a strong mathematical foundation. This chapter is optional, especially the first time, but if you intend to write robust, numerically stable filters, or to read the literature, you will need to know the material in this chapter. Some sections will be required to understand the later chapters on nonlinear filtering. \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 8: Designing Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/08_Designing_Kalman_Filters.ipynb)\n",
|
||||
"[**Chapter 7: Designing Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/07_Designing_Kalman_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Building on material in Chapter 6, walks you through the design of several Kalman filters. Only by seeing several different examples can you really grasp all of the theory. Examples are chosen to be realistic, not 'toy' problems to give you a start towards implementing your own filters. Discusses, but does not solve issues like numerical stability.\n",
|
||||
"Building on material in Chapters 5 and 6, walks you through the design of several Kalman filters. Only by seeing several different examples can you really grasp all of the theory. Examples are chosen to be realistic, not 'toy' problems to give you a start towards implementing your own filters. Discusses, but does not solve issues like numerical stability.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 9: Nonlinear Filtering**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/09_Nonlinear_Filtering.ipynb)\n",
|
||||
"[**Chapter 8: Nonlinear Filtering**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/08_Nonlinear_Filtering.ipynb)\n",
|
||||
"\n",
|
||||
"Kalman filters as covered only work for linear problems. Yet the world is nonlinear. Here I introduce the problems that nonlinear systems pose to the filter, and briefly discuss the various algorithms that we will be learning in subsequent chapters.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 10: Unscented Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/10_Unscented_Kalman_Filter.ipynb)\n",
|
||||
"[**Chapter 9: Unscented Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/09_Unscented_Kalman_Filter.ipynb)\n",
|
||||
"\n",
|
||||
"Unscented Kalman filters (UKF) are a recent development in Kalman filter theory. They allow you to filter nonlinear problems without requiring a closed form solution like the Extended Kalman filter requires.\n",
|
||||
"\n",
|
||||
"This topic is typically either not mentioned, or glossed over in existing texts, with Extended Kalman filters receiving the bulk of discussion. I put it first because the UKF is much simpler to understand, implement, and the filtering performance is usually as good as or better then the Extended Kalman filter. I always try to implement the UKF first for real world problems, and you should also.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 11: Extended Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/11_Extended_Kalman_Filters.ipynb)\n",
|
||||
"[**Chapter 10: Extended Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/10_Extended_Kalman_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Extended Kalman filters (EKF) are the most common approach to linearizing non-linear problems. A majority of real world Kalman filters are EKFs, so will need to understand this material to understand existing code, papers, talks, etc. \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 12: Designing Nonlinear Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/12_Designing_Nonlinear_Kalman_Filters.ipynb)\n",
|
||||
"[**Chapter 11: Particle Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/11_Particle_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Works through some examples of the design of Kalman filters for nonlinear problems. *This is still very much a work in progress.*\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 13: Particle Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/13_Particle_Filters.ipynb)\n",
|
||||
" \n",
|
||||
"**in progress, not checked in**\n",
|
||||
"Particle filters uses Monte Carlo techniques to filter data. They easily handle highly nonlinear and non-Gaussian systems, as well as multimodal distributions (tracking multiple objects simultaneously) at the cost of high computational requirements.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 14: Smoothing**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/14_Smoothing.ipynb)\n",
|
||||
"[**Chapter 12: Smoothing**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/12_Smoothing.ipynb)\n",
|
||||
"\n",
|
||||
"Kalman filters are recursive, and thus very suitable for real time filtering. However, they work extremely well for post-processing data. After all, Kalman filters are predictor-correctors, and it is easier to predict the past than the future! We discuss some common approaches.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Chapter 15: Adaptive Filtering**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/15_Adaptive_Filtering.ipynb)\n",
|
||||
"[**Chapter 13: Adaptive Filtering**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/13_Adaptive_Filtering.ipynb)\n",
|
||||
" \n",
|
||||
"Kalman filters assume a single process model, but manuevering targets typically need to be described by several different process models. Adaptive filtering uses several techniques to allow the Kalman filter to adapt to the changing behavior of the target.\n",
|
||||
"\n",
|
||||
@ -126,6 +116,20 @@
|
||||
"\n",
|
||||
"Listings of important classes from FilterPy that are used in this book.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[*Appendix G: Designing Nonlinear Kalman Filters**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/Appendix_G_Designing_Nonlinear_Kalman_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"Works through some examples of the design of Kalman filters for nonlinear problems. *This is still very much a work in progress.*\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"[**Appendix H: Least Squares Filter**](http://nbviewer.ipython.org/urls/raw.github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/master/Appendix_H_Least_Squares_Filters.ipynb)\n",
|
||||
"\n",
|
||||
"**not written yet**\n",
|
||||
"\n",
|
||||
"Introduces the least squares filter in batch and recursive forms. I've not made a start on authoring this yet. Many authors develop KF explanations by covering least squares first. I am not, so I may move this chapter deeper in the book, or remove it.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Github repository\n",
|
||||
"http://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python\n"
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user