MATLAB particle filtering examples for terrain-referenced navigation (TRN, also called terrain-aided navigation), comparing standard, auxiliary, mixture, and out-of-sequence measurement particle filters for nonlinear position estimation.
This is Youngjoo Kim's research code accompanying “Utilizing Out-of-Sequence Measurement for Ambiguous Update in Particle Filtering,” published in IEEE Transactions on Aerospace and Electronic Systems (2018), an established peer-reviewed journal covering aerospace systems, navigation, and target tracking. See the paper and citation and canonical repository.
Use the source and method guide to study ambiguity handling in terrain navigation and compare particle-filter update strategies.
The particle-filtering reference explains the update sequence and data contracts for adapting the ideas in Python, C++, or other languages.
When the terrain likelihood is ambiguous, retain the measurement and reconsider it after later observations provide more context. The supplied simulation compares this idea with standard, auxiliary, and mixture particle filtering.
All four filters run in main_OOSM.m; the algorithm reference maps the paper to implementation details.
| Method | Paper location | Source entry points |
|---|---|---|
| Standard PF with sequential importance resampling (SIR) | Section II-B, Algorithm 1 | %% PF section; Resample.m, likelihood.m |
| Out-of-sequence measurement PF (OOSMPF) | Section III, Algorithms 2–3 | %% OOSM section; OOSM.m |
| Auxiliary PF (APF) | Section IV-B1 | %% APF section |
| Mixture PF (MPF) | Section IV-B2; mode analysis in IV-D | %% MPF section; NumMode.m, Cluster.m |
| Terrain model and error metrics | Section IV-A, IV-C, Eqs. (10)–(13) | DEM_height.m, RMSE.m, covAnal.m |
Run from the repository root with MATLAB, Statistics and Machine Learning Toolbox (ksdensity), and Image Processing Toolbox (imregionalmax). The terrain file DB_part.mat is included; shell commands use matlab -batch (R2019a or later).
Run the four-filter comparison without opening figure windows:
matlab -batch "set(groot,'defaultFigureVisible','off'); main_OOSM"For visible plots, select the repository root as MATLAB's current folder and enter main_OOSM. The script writes or overwrites result.mat and result_mode.mat in that folder.
See the simulation guide for settings, data layout, outputs, randomness, and a small synthetic helper example. Keep all RUN_* switches enabled for the complete script; its final plots depend on all four filter outputs.
The source contains standard and auxiliary particle filters, plus experiments with stored measurements and mode-based particle updates. The APF includes likelihood-ratio weight correction; update mechanics describe the relationship between the source and published procedures.
Run the focused APF importance-weight checks, which use base MATLAB:
matlab -batch "addpath('tests/integration/auxiliary'); verify_auxiliary"For academic attribution, please acknowledge this repository when adapting its code or examples.
If you use or adapt this work, please cite:
Youngjoo Kim, Kyungwoo Hong, and Hyochoong Bang. “Utilizing Out-of-Sequence Measurement for Ambiguous Update in Particle Filtering.” IEEE Transactions on Aerospace and Electronic Systems, 54(1), 493–501, February 2018. doi:10.1109/TAES.2017.2741878.
CITATION.cff provides machine-readable software and publication metadata.
The repository includes an MIT license. See provenance for the source revision and third-party notices.