This repository implements Lagrangian grid based filter for Terrain aided navigation, and compares it with other state of the art filters. The filters are used for position estimation of a vehicle based on a real world barometric measurements. The code is meant to complement a
publication: 10.1109/MSP.2024.3489969.
For more information please read the paper.
If you are using this code for a publication, please cite the paper.
The parameters of the filters and models used for the publication results are described here and also in the file initModel.m.
The Lagrangiang grid based filter code is run from the main.m. The comparison with other state of the art filters is in the folder comparison, and can be run by mainComparison.m. There are two mex files, they should be compiled and ready to use with windows, linux, intel mac and silicone mac. If there is an issue with these files, please comment out the parts that call them and change the lines for the commented out parts that does not need them. That is
For binarySearch in mainComparison:
% Use this in case the mex file not working
% for ind = 1:1:noParts
% I(ind) = find(cumW >= randomN(ind),1, 'first');
% end
I = binarySearch(cumW, randomN, 'first');
For inplaceprod usade by Lagrangian grid based filter:
% Use this in case the mex file not working
% mesPdfDotDeltasTens = mesPdfDotDeltasTens.*convKerTens;
% Convolution in frequency domain (inplaceprod saves memory)
inplaceprod(mesPdfDotDeltasTens, convKerTens);
The state consists of the vehicle's horizontal position
The state transition is modeled with a time step
where the system matrix
and
where
The measurements are modeled as:
where
representing the noise variances of the altimeter and odometer measurements.
- The proposed LGbF employs
$N_\mathrm{pa} = [51, 51, 41, 41]$ grid points for each state axis. The Particle Filter uses$1.8$ times number of points of the LGbF. - The scaling factor for the grid, which determines how many standard deviations the LGbF grid spans, is set to
$s_\mathrm{factor} = 5$ . - The effective sample size threshold is
$\mathrm{essThrd} = \frac{2}{3}$ number of particles. - The jitter covariance is set-up to be 1% of the measurement estimate covariance.
- The particular details of the Teixiera et. al. Particle filter were not provided in the paper therfore they have been set up so the filter works well: 80% of particles were drawn from prior, and 20% from the uniform distribution, the uniform distribution was set up to cover
$s_\mathrm{factor} = 5$ as in the LGbF case.
- The initial state mean
$\mathbf{x}_0$ is drawn from the GNSS ground truth - The initial state covariance matrix
$\mathbf{P}_0$ is:
The state is the vehicle horizontal position
The model reads:
where the system matrix
The measurements are modeled as:
the
the
representing the noise variances of the altimeter.
- The proposed LGbF employs
$N_\mathrm{pa} = [71, 71, 21]$ grid points for each state axis. The Particle Filter uses$250000$ particles. - The scaling factor for the grid, which determines how many standard deviations the LGbF grid spans, is set to
$s_\mathrm{factor} = 5$ . - The effective sample size threshold is
$\mathrm{essThrd} = \frac{2}{3}$ number of particles. - The jitter covariance is set-up to be 1% of the measurement estimate covariance.
- The particular details of the Teixiera et. al. Particle filter were not provided in the paper therfore they have been set up so the filter works well: 80% of particles were drawn from prior, and 20% from the uniform distribution, the uniform distribution was set up to cover
$s_\mathrm{factor} = 5$ as in the LGbF case.
- The initial state mean
$\mathbf{x}_0$ is drawn from the GNSS ground truth and map. - The initial state covariance matrix
$\mathbf{P}_0$ is: