At the beginning we have no idea where the robot is. So particles are created randomly spread over the available locations.
Particles orientations are distributed around X axis with a Gaussian law. σ is chosen to fit with the robot compass precision.
The tool that create particles take into account the robot shape and orientation.
For instance graph of 5000 particles spread all over the room 10 particles coordinates among 5000 (H corresponding to the shift versus X axis in°)
To determine location we have to do a 360° scan in the orientation as close as possible as during the data collect.
We use the compass to set the robot in this requested orientation.
Then we do a 360° scan and 2 computed scans are added corresponding to a virtual -13° and +13° orientation.
The resulting 3 scans are submited to the deep learning AI.
Hx in [-26,-13,0,13,26] et ∑px < 1.
Below for instance data in return of one scan (fig 16). ScanId=1 corresponding to the raw data, ScanId=2 corresponding to the -13° data , ScanId=2 corresponding to the +13° data
Probabilies of ScanId 2 and 3 are multiplied by 0.9 in order to increase the raw data weight.
All scan probabilities are combined by location (x,y) to produce a new locations probalility values (combined predictions) (fig 17)
Raw predictions Combined predictions
For each particle and for each and for all the combined predictions the normal distribution centered on the prediction we compute:
At the we normalize weight and it becomes new particles probability
The location of the particle with the highest probability is selected and used to set the robot new location (downloaded inside the robot)
Based on the last 360 scan the robot move in a free direction.
Move the robot and the particles, restart the process and estimate the new position
At the end of the move the robot returns his new estimated position based on the actual rotation angle and straight move lengh.
After a few moves if new theoritical positions and new estimated position are consistent we found the actual location.
Below an example of 7 iterations that lead to a correct localization.