4

I'm doing some simulations in C++ and OpenGL (2D and 3D) for navigating a robot in unknown environment known as SLAM. I'm using Extended Kalman filter as an optimal estimator. In SLAM problem, once the robot detects a beacon (aka landmark or feature) in based-feature map, the robot must decide whether this beacon has been observed before or it is a new landmark. The most common approach for solving this problem is by using The Nearest Neighbor Standard Filter (NNSF). In this method, we first generate an predicted measurement to a landmark and compare it with the observed measurement that is coming from the sensor. Based on this comparison, we decide whether the predicted and observed measurement indeed belong to a specific landmark. All papers I've read refer readers for this book Tracking and Data Association, a very well known book in this field for more information about NNSF. Basically they use the Mahalanobis distance which is

$$ (z^{i} - \hat{z}^{j})^{T}S^{-1}(z^{i} - \hat{z}^{j}) \leq \chi^{2}_{k,\alpha} $$ where $(z^{i} - \hat{z}^{j})$ is the innovation (i.e. the difference between the observed and the predicted measurements), $S$ is the innovation covariance, $k$ is degree of freedom, and $\alpha$ is the confidence level. For short,

$$ d^{2} \leq \gamma $$

where $d^{2}$ is the squared Mahalanobis distance and $\gamma$ is the threshold of the validation gate.Unfortunately all papers that I've read state that this value $\chi^{2}$ can be obtained from the chi-square distribution with some confidence in our measurements and how accurate our sensors with no further information regarding this matter which makes me wonder if this is a basic stuff in statistics and object recognition. My question is how can I choose this value? Since I'm doing simulation, I know the uncertainty of my sensors. How can I determine the confidence level from my sensor noise (i.e. $\mathcal{N}(0, \sigma^{2})$)? Every time I choose a sensible value, the filter fails to decide whether the observed measurements belong to existing landmarks which leads to the divergence of EKF. This is because every time the robot observes a landmark, the robot adds it to its state vector.
This is what I've done to determine the threshold $\gamma$. Since I have $k = 2$ and I will assume some confidence level $\alpha = 0.05$, so from the chi-square table, I get

$$ \chi^{2}_{2,0.05} = 5.991 $$

kjetil b halvorsen
  • 63,378
  • 26
  • 142
  • 467
CroCo
  • 253
  • 4
  • 8

0 Answers0