For each zone, the robot is put on the centre of the zone and X oriented. It is important to check the IMU compas is calibrate.
Then 20 consecutive “360° scans” are requested using a Java HMI.
The compass information provided by the IMU( called north orientation) and the scan data are associated with the (X,Y) location of the centre of the zone.
Data are stored by the Java interface in a MySql database.
Each unitary scan has an identifier. At the end it important to keep only the good scans (for instance delete all scans that do not contain 15 records).
Figure 12 Example data of 2 scans at the same position
The aim is to feed the learning system with data.
Raw data can be represented as a vector as below
Distances are learning features for the AI. Features number is 15 x 2. A mesurment is mapped to a vector, vector size is 30.
Due ot the fact that 0 measurment mostly occurs when distance is over the sensor capcity, 0 distances are replaced by the maximum distance that can be detected by the ultrasound sensor.
Figure 13 North orientation imprecision
For dealing with the north orientation imprecision (due to the magnetic field variation, the bias of the compass and the robot imprecision), we artificialy add 4 scans to the collected ones adding bias regarding north orientation. 4 new scans as if the robot were -26°,-13°,+13° and +26° oriented versus the original position.
The original scan
The 4 rotated added scans
Five unique identifier are created for each (zone, heading) as below.
The identifiers are the learning labels for the AI. Labels number is 5 x number of zones.
To improve learning performance, distances are centered around of the maximum distance.
At the end the resulting data are splitted in 3 files: train, test and validation data. Train file contains around 75% of the data, test around 10% and validation 5%.