Mailing List: psas-avionics
The uncertainty team is tasked with achieving things that are unpredictable and very challenging. Of course, things which are certain and easily understood will be handled by other Teams.
We're doing research and implementation of probabilistic algorithms. In particular we are interested in all sorts of filtering: kalman unscented, kalman extended, sigma point kalman, particle and others. These are useful in estimating the position and orientation of a rocket given a diverse array of sensor inputs, all of which are incorrect in their own way. Without such estimation and eventually feeding back this information to our system, controlling a rocket's trajectory can be hugely difficult.
Please join our mailing list, or better yet stop by one of our meetings, we'd love to have your help!
Current projects
- Testing and improving our Bayesian Particle Filtering (BPF) implementation in our simulated rocket environment.
Local Resources
- Introduction to the Kalman fiter
- Introduction to state space representations
- Example:INS Aiding and Error Analysis in 1-D
- ActiveGuidance system links and notes.
- Comparison of small orbital vehicles
- Roll Control
Books
- Jay Farrell, Matthew Barth. The global positioning system and inertial navigation. New York : McGraw-Hill, c1999. ISBN 007022045X. Some errata is here. Local errata here.
- Simon Haykin, Kalman Filtering and Neural Networks. Wiley, October 2001. ISBN: 0-471-36998-5
- Robert Grover Brown and Patrick Y.C. Hwang, Introduction to random signals and applied kalman filtering. John Wiley & Sons, Inc c1992 2nd ed ISBN: 0-471-52573-1
- R.L. Eubank, A Kalman Filter Primer. Chapman & Hall/CRC, c2006 IBSN: 0-8247-2365-1
- Thomas Kailath, Ali H. Sayed, Babak Hassibi, Linear Estimation. Prentice Hall, c2000 IBSN: 0-13-022464-2
Thesis and Dissertations
- Rudolf Van der Merwe, Sigma-Point Kalman Filters for Probabilistic Inference in Dynamic State-Space Models, Dissertation, OGI, April 2004.
- Shelby Brunke, Nonlinear Filtering and System Identification Algorithms for Autonomous Systems, Dissertation, Univ of Wash, 2001.
- Jamie L. Wiegand, A Study of Process Noise Covariance Estimation Techniques using Kalman Filters, MS Thesis, Univ of Wash, 1990.
- Observable: tied to an observable quantity, such that we can correlate it with a sensor. Unobservable quantities affect calculations but don't directly correlate to a sensor.
- Bayesian Filtering Library
- Bayes++ Bayesian Filter Classes
- ReBEL: Recursive Bayesian Filtering, Matlab toolkit, written by Rudolph van der Merwe and Eric A. Wan.
- Kalman filter toolbox for Matlab, written by Kevin Murphy
- The Kalmtool Toolbox Version 2 - for use with Matlab
- Kalman filter for image sequence processing
Other Web Links
General introductory material:
- Wikipedia article
- Engineers Look to Kalman Filtering for Guidance: Barry Cipra, SIAM News, Vol. 26, No. 5, August 1993
- Some tutorials, references, and research on the Kalman filter at the Department of Computer Science at the University of North Carolina at Chapel Hill
- Kalman Filters at Connexions
- Taygeta's Kalman Filter Information and reading list
- Kalman Filtering, Dan Simon, Innovatia Software
Kalman filter extensions:
Other Useful Information:
Haskell resources:
- Matt's DSP library: Modules for matrix manpulation, digital signal processing, spectral stimation and frequency estimation
- HAT: The Haskell Tracer: Source level tracer for ghc and nhc98
General papers
- The Estimation Theoretic Sensor Bias Correction Problem in Map Aided Localization: Linthotage Dushantha Lochana Perera, Wijerupage Sardha Wijesoma, and Martin David Adams; The International Journal of Robotics Research 2006; 25; 645.
Particle filtering
KLD-sampling: Adaptive particle filters and mobile robot localization: Dieter Fox
Multiple object tracking with kernel particle filter: Cheng Chang, R. Ansari, and A. Khokhar; IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2005. 566-573 vol. 1
Kalman Filtering
Study on GPS attitude determination system aided INS using adaptive Kalman filter: Hongwei Bian et al 2005 Meas. Sci. Technol. 16 2072-2079 doi:10.1088/0957-0233/16/10/024
A Java Tool for Exploring State Estimation using the Kalman Filter: Declan Delaney and Tomas Ward. ISSC 2004, Belfast
Implementation of an adaptive EKF to multiple low cost navigation sensors in wheeled mobile robots Ashokaraj, I.A.R.; Silson, P.M.G.; Tsourdos, A.; White, B.A. Control, Automation, Robotics and Vision, 2002. ICARCV 2002. 7th International Conference on Volume 2, Issue , 2-5 Dec. 2002 Page(s): 608 - 612 vol.2
On the identification of variances and adaptive Kalman filtering Mehra, R. Automatic Control, IEEE Transactions on Volume 15, Issue 2, Apr 1970 Page(s): 175 - 184
Robust adaptive Kalman filtering with unknown inputs Moghaddamjoo, A.; Kirlin, R.L. Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on Volume 37, Issue 8, Aug 1989 Page(s):1166 - 1175
A Rare-Update Sigma-Point Kalman Filter as Parameter Estimator Modelling, Identification, and Control ~MIC 2005~
Sigma-Point Kalman Filters for Probabilistic Inference in Dynamic State-Space Models Rudolf van der Merwe & Eric Wan, in Proc. Workshop on Advances in Machine Learning 2003.
Unscented Filtering and Nonlinear Estimation SIMON J. JULIER, MEMBER, IEEE, AND JEFFREY K. UHLMANN, MEMBER, IEEE PROCEEDINGS OF THE IEEE, VOL. 92, NO. 3, MARCH 2004
This is the kinetic model for the MIT Draper X-Cell 90 developed by Rudolph van der Merwe in his dissertation on Sigma Point Kalman Filtering.
This is a 6DOF (Degrees of Freedom) rocket process model with 3D movement (translation and rotation) and has no modeling of forces on moments that act on the rocket. It uses the IMU (inertial measurement unit, that is the linear accelerations and the rotational velocities) to drive the 6DOF differential equations for this model.
An 18 dimension state vector would be used since we have an additional accelerometer q.
| Variable | Description | Variable | Description |
|---|---|---|---|
| x | north position | a,,b,,,,x,, | IMU x accelerometer bias |
| y | east position | a,,b,,,,y,, | IMU y accelerometer bias |
| z | down position | a,,b,,,,z,, | IMU z accelerometer bias |
| q | ??? position | a,,b,,,,q,, | IMU q accelerometer bias |
| v,,x,, | north velocity | w,,b,,,,x,, | (roll) gyro rate bias |
| v,,y,, | east velocity | w,,b,,,,y,, | (pitch) gyro rate bias |
| v,,z,, | down velocity | w,,b,,,,z,, | (yaw) gyro rate bias |
| e,,0,, | attitude quaternion 1st component | e,,1,, | attitude quaternion 2nd component |
| e,,2,, | attitude quaternion 3rd component | e,,3,, | attitude quaternion 4th component |
The models for PSAS would be something equivalent but in addition needs to account for all the Inertial Navigation System (INS) Error Equations.
Create 2 dimensional example
Create Plots of Filtering Last Flight Launch Data [Judy]
Notes from Bart: --- Take data from last flight. Run though Kalman Filters (smoothers). See if it matches. Use pressure altimeter, imu and gps data. Use Dave's simulator to generate data that we could run through the filter.
Notes from Tim: --- To get running quickly, Assume that the IMU data is in XYZ/Theta,Psi,Phi format. (Ignore complexities such as Q.) Model the sensor outputs as
- (output) = B0 + B + G * (value)
Where (value) is the sensed parameter (e.g. accelleration, angular rate), (output) is the sensor output in some units, (G) is the sensor gain, (B0) in the measured initial bias, and (B) is the unknown bias modeled as zero mean independent Guassian noise with known standard deviation.
GPS data should be presented as Position(XYZ), Velocity(XYZ), and altimeter will be meters above ground level.
Possibly work in the Local tangent plane, unless your're sure some other coordinate system will work better for you.
Write Up Web Documentation [Judy]
- Explain Extended Kalman Filter and Unscented Kalman Filter
- Explain PSAS model
- Create Web Page for each Team Member
- Create Tutorial explanation of 1-D case for newbies.
- Explain 2-D case.
- Explain error dynamics
- Vechicle for implementation Octave, C, Graphics?
Update RocketSim to generate bias data [Unassigned]
Suggestions from D. Allen:
If this bias is "real" then modify the RocketModel, if this is a measurement bias then modify the file trunk/c/tools/cppsim/RocketDes/src/AccelSensor.cpp, method DoAccelSensorEvent() for the x, y, z and q accelerometer bias.
Adding sensor bias for they gyro will be more difficult. The gyro sensor is not fully implemented. The code is trunk/c/tools/cppsim/RocketDes/src/GyroSensor.cpp, and the method is DoGyroSensorEvent(), but the gyro sensor data created by this method is static and not tied in with the current rocket model.
The code is located from: http://cvs.psas.pdx.edu/trunk/c/tools/cppsim/. The readme.txt helps explain how to build the code.
The version of the simulator currently in use is under the directory RocketDes.
Adding a bias is probably easy to do. You may want to make the change in trunk/c/tools/cppsim/RocketDes/src/RocketModel.cpp, in the method DoRocketModelEvent(). But it really depends on what kind of bias you are attempting to add.
Tutorials
- Some tutorials, references, and research on the Kalman filter at the Department of Computer Science at the University of North Carolina at Chapel Hill
- Wikipedia article
- Engineers Look to Kalman Filtering for Guidance: Barry Cipra, SIAM News, Vol. 26, No. 5, August 1993
- Kalman Filters at Connexions
- Taygeta's Kalman Filter Information and reading list
- Kalman Filtering, Dan Simon, Innovatia Software
