@@ -9,14 +9,106 @@ The red cross is true position, black points are RFID positions.
99
1010The blue grid shows a position probability of histogram filter.
1111
12- In this simulation, x,y are unknown, yaw is known.
12+ In this simulation, we assume the robot's yaw orientation and RFID's positions are known,
13+ but x,y positions are unknown.
14+
15+ The filter uses speed input and range observations from RFID for localization.
16+
17+ Initial position information is not needed.
18+
19+ Filtering algorithm
20+ ~~~~~~~~~~~~~~~~~~~~
21+
22+ Histogram filter is a discrete Bayes filter in continuous space.
23+
24+ It uses regular girds to manage probability of the robot existence.
25+
26+ If a grid has higher probability, it means that the robot is likely to be there.
27+
28+ In the simulation, we want to estimate x-y position, so we use 2D grid data.
29+
30+ There are 4 steps for the histogram filter to estimate the probability distribution.
31+
32+ Step1: Filter initialization
33+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
34+
35+ Histogram filter does not need initial position information.
36+
37+ In that case, we can initialize each grid probability as a same value.
38+
39+ If we can use initial position information, we can set initial probabilities based on it.
40+
41+ :ref: `gaussian_grid_map ` might be useful when the initial position information is provided as gaussian distribution.
42+
43+ Step2: Predict probability by motion
44+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45+
46+ In histogram filter, when a robot move to a next grid,
47+ all probability information of each grid are shifted towards the movement direction.
48+
49+ This process represents the change in the probability distribution as the robot moves.
50+
51+ After the robot has moved, the probability distribution needs reflect
52+ the estimation error due to the movement.
53+
54+ For example, the position probability is peaky with observations:
55+
56+ .. image :: histogram_filter_localization/1.png
57+ :width: 400px
58+
59+ But, the probability is getting uncertain without observations:
60+
61+ .. image :: histogram_filter_localization/2.png
62+ :width: 400px
63+
64+
65+ The `gaussian filter <https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_filter.html >`_
66+ is used in the simulation for adding noize.
67+
68+ Step3: Update probability by observation
69+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
70+ In this step, all probabilities are updated by observations,
71+ this is the update step of bayesian filter.
72+
73+ The probability update formula is different by the used sensor model.
74+
75+ This simulation uses range observation model.
76+
77+ The probability of each grid is updated by this formula:
78+
79+ .. math :: p_t=p_{t-1}*h(z)
80+
81+ .. math :: h(z)=\frac{\exp \left(-(d - z)^{2} / 2\right)}{\sqrt{2 \pi}}
82+
83+ - :math: `p_t` is the probability at the time `t `.
84+
85+ - :math: `h(z)` is the observation probability with the observation `z `.
86+
87+ - :math: `d` is the known distance from the RD-ID to the grid center.
88+
89+ When the `d ` is 3.0, the `h(z) ` distribution is:
90+
91+ .. image :: histogram_filter_localization/4.png
92+ :width: 400px
93+
94+ The observation probability distribution looks a circle when a RF-ID is observed:
95+
96+ .. image :: histogram_filter_localization/3.png
97+ :width: 400px
98+
99+ Step4: Estimate position from probability
100+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
101+ In each time step, we can calculate the final robot position from the current probability distribution.
102+ There are two ways to calculate the final positions:
103+
104+ 1. Using the maximum probability grid position.
105+
106+ 2. Using the average of probability weighted grind position.
13107
14- The filter integrates speed input and range observations from RFID for
15- localization.
16108
17- Initial position is not needed.
18109
19110References:
20111~~~~~~~~~~~
21112
22- - `PROBABILISTIC ROBOTICS `_
113+ - `PROBABILISTIC ROBOTICS `_
114+ - `Robust Vehicle Localization in Urban Environments Using Probabilistic Maps <http://driving.stanford.edu/papers/ICRA2010.pdf >`_
0 commit comments