Mobile Robot: SLAM Implementation for Unknown Indoor Environment Exploration

: The autonomy is the most crucial criteria in mobile robots. This operation aims to offer the ability of finding the position and build a map of the environment to the robot. Many methods have been proposed to solve this problem. In this study, an implementation of SLAM approach for unknown indoor environment exploring by mobile robot is proposed. In fact, the proposed approach touch on the unknown indoor environments exploring with static obstacles, based on robot mobile abilities (extereoceptive and proprioceptive sensors). In one hand, the measurements given by the proprioceptive sensor (odometry) are used for the auto localization system. In the other hand, the map building based on extereoceptive sensor scanning and robot position. Therefore, the approach maintains two maps: (1) (OM) map grid describe the occupancy of environment; (2) (TM) map grid memorizes the robot former positions. Furthermore, the use of the proposed maps afford an efficient description and exploitation of the environment resources over time. Finally, the results in simulation and real robots experiments using random exploration (for test), demonstrate the fusibility of the proposed approach.


Introduction
For an autonomous mobile robot, self-localization and map building are essential requirements. It empowers the robot to move from an initial position to a final one, in an unknown environment a priori. A global and recent study on this domain are discussed in (Choset et al., 2005;Ge and Lewis, 2006). The robot equipped with odometry and exteroceptive sensors (e.g., sonar, range laser, CCD sensor), this sensors provides a set of measurements to solve the problem. For the localization system in indoor environment, odometry is the most used, while the sensor (exteroceptive) utilized by mapping system.
An occupancy grid map (Elfes, 1989;Schiele and Crowley, 1994) is a discrete probabilistic map. For modeling the environment with grid map, the environment must divide into cells. Every cell has a probability of occupation which is determined based on the exteroceptive sensor data. Borenstein and Koren (1991) use a metric sonar model that increases all measured cell value then decreases the cells corresponding to free space. Arleo et al. (1999) use a neural network to form a local grid map, this local map is used subsequently to identify obstacle boundaries for building the variable-resolution partitioning map. Thrun (1998) proposed a method who trains an artificial neural network using Back-Propagation to convert sonars readings into occupancy grid values. Multi sonars interpretations are used over time to form a global map grid using Bayes rule. Oriolo et al. (1997;1998) giving a fuzzy reasoning method to update the map. Song and Chen (1996a) method based on Heuristic Asymmetric Mapping (HAM) (Song and Chen, 1996b), in which the probabilities of multiple cells that correspond to real occupied region, using one sonar reading. The probability of the cells is then integrated in a global grid map through a first-order digital filter to generate a certainty value from -1 to 1.
In literature we come across two approaches for the localization problem, absolute and relative. Advantages and disadvantages of the two approaches are contrasted in Table 1. The relative localization; determine the current position of mobile robot, based on previous position and the travel measurements (distance, rotation angle). For the absolute localization, the current position determined by performing by measurements on known position beacons. Position tracking (relative localization) is the must use for a mobile robot explore an unknown indoor environment. Position tracking with odometry is a basic, easily work in real time and inexpensive system. The disadvantage of odometry system is the unbounded accumulation of errors over time. Two types of errors marked; systematic errors and non-systematic ones.
Several sources can be the cause of the systematic errors such as: Limitation of the encoder resolution and sampling frequency, uncertainty about the length of the center distance, misaligned wheels and unequal wheels diameters. All these defects lead to an unbounded accumulation of the localization error. A proposed solution and study of this type of error can be found in (Borenstein and Feng, 1996;1995;Martinelli, 2001).
Non-systematic errors caused by the exploring environment such as uneven environment, slippery ground, passing over unexpected objects, an excessive acceleration, extreme sharp turning and external forces. Martinelli (2002a;2002b) proposed an evaluation method of the non-systematic of errors. This paper is organized as follows: Section 2 presents the overall framework for grid map building; Section 3 discusses our localization system and we terminate with Summary.

Map Building
Our solution of map building, presents the environment using grid cells. The map defined as a vector MA (A, B, L), where L is the length of cell and (A, B) represent the rows and columns. In the aim to determine (a, b); the robot coordinate in the grid map, we must transform the coordinate (x, y) given by the localization system (odometry in our case). The real physical position of the robot is transformed (mapped) into a position in the grid map, in order to save the corresponding information in the map. The coordinate mapping equations are given as follows: where, int(a) represent the integer part of a. Moreover, the proposed map building system use two maps grid cell; Obstacle Map (OM) and Trajectory Map (TM). The values OM (i, j) of OM map indicates the level of confidence that an obstacle occupies the cell (i, j), where i = 1, 2, …, A and j = 1, 2, …, B. For the TM map values, the TM (i, j) indicates how much robot traverses the cell (i, j). The TM map is made in order to record the previously traversed cells as well as the cost to traverse the cell area. The TM information exploited for robot online path-planning. The given information are saved and updated in the maps every control period (10 ms in our case). The update algorithm is described in Section (The map update).

Sonar Interpretation
For the obstacles detection, we exploit an ultrasonic sensor. The sensor is equipped with engine in the front face, the engine can rotate from 65° up to 155°, which make the sensor able to cover the substantially all the front. Six measurements are taken for each engine turn (65° to 155°), which provides an excellent detection of obstacles in front face.
So as to determine the positions of the obstacle (xo, yo), we base on the position of the robot (Xr, Yr, θr) and the obstacle position (d, θo). With d is the distance between the robot and the obstacle in the angle θo ( Fig. 1):

Building Map System
The proposed map use the localization system and sonar scanning. The system includes two modules: Map post processing and map update.

The Map Update
The map update module used to analyze the sensor measurements (obstacles position) and include them into OM map who models the occupancy. The sonar measurements are transformed into frequency values (i.e., OM's values) which represent the confidence of the cells if they are reserved by obstacles. The OM values are combined over time to get an integrated estimation of occupancy in a map using addition or subtraction of OM values. In the other hand the update of TM map concerned only the cell present the current position of robot, the cell value increment in each control period.
The update method of the proposed map involves two things: The update of TM map and OM map. Furthermore, both OM and TM are made at zero in the start (unknown environment): The update of OM map process by increment the value of one cell for each angle reading (i.e., the cell occupied by obstacle). In parallel, the cells represent free areas in this range reading remains unchangeable. The update algorithm makes the update fast. The update cell is the one corresponds to the measured distance d and lies on the current angle. The incremental cell is updated by Equation 6: where, OM max is a constant representing the maximum value of OM cells (if the value of a cell has OM max, then the robot classify this cell occupies OM max times), experimentally determine this value (in our case 20), it depend on the environment complexity and algorithm used for the navigation. The increment is 1. In the end, only the cells that are presented inside a circular sector of radius centered at the angle position (confidence sector) are updated. In our case the radius of the confidence sector is fixed at 1 meter, which is an acceptable value to have a correct measurement for the robotic system. Owing to the update method, a likelihood distribution of occupancy is given by continuously reading the sonar sensor in each turn angles as the robot moving.
The update method of the TM map is simple (Equation  7). Only the cell where the robot is located, is incremented for each control cycle. Where, TM max represent the maximum of TM. The TM max value experimentally determined (in our case 15), based on the max number of trajectory planning that can be done on a cell. The trajectory experienced by the robot cannot be forgotten.
For every control cycle (10 ms for our system), the presented algorithm in below is called to update a grid map (TM and OM): Input: (x0, y0) = current robot location; Oi = current robot heading angle; di (i = 0, 1, …, 5) = sonar readings from current turn angle.
Output: OM= The OM matrix; TM = The TM matrix. BEGIN: Step 1. Update the TM matrix TM.

Read current sonar angle Oi (i=0 to 5) IF the sonar reading di is less than the radius of confidence sector, THEN
Step 2.

Calculate the coordinate (xSd, ySd) of obstacle cell Sd based on the sonar angle's coordinate (xSi, ySi) and sonar reading di;
Step 2.

Map Post Processing
The post processing model is working offline to filter the learned map for updating the misclassified cells and to obtain a consistent and complete map. The first task is the threshold operation in order to update the misclassified cells from the perspective of cell's value (OM value). The second task relates to the delete operation who remove the most misclassified cells from the perspective of neighboring correlation. The final task is the insert operation in order to add some undetected cells.

The Threshold Task
This operation eliminates some of misclassified cells from the perspective of cell's value. The misclassified cells for this operation are the free cells classified as occupied because of the sonar measurements errors. Using this operation, the OM's value set to free of each cell not larger than threshold, otherwise it is set to the OM max value.

The Delete Task
The objective of the operation is to appreciate the next heuristic rule: Isolated cells (i.e., cells with free neighbors) come from erroneous sonar measurements. Each cell of map don't have at least surround by four occupied neighbors is matched. For example, if the cell surround by occupied cells, in this case the cell matched successfully (occupied cell), otherwise it fails. The OM's value of the cell is updated in the global map if it's detected successfully. If it fails to match, the OM's value of the cell is set to free.

The Insert Task
The occupied cells mistakenly classified as free cells (undetected cells) because of sonars errors and robot moving. The objective of this task is to realize the following heuristic rule: The cells with neighbors on both sides are occupied, should be occupied. If any it detected successfully, the OM value of the detected cell is set to OM max, otherwise its value is maintained.

Experimentation
For testing the map accuracy, we evaluate the robotic system with an interactive control model for communication (Emharraf et al., 2012), in limited unknown indoor environment (about 20 m square), with variable size of cells. For the navigation we exploit a random exploration system (avoid the obstacles while the robots move).
The quality of map former for small size of cell are close and relatively larger for the important size of cell. Experimentally we find that the size 10 cm 2 of cell provides a good compromise between map accuracy and space requirement of map storage. The next (Fig. 2) present the results of exploring simple environment.

Localization
The odometer is the most used method for land mobile robotics notably for the small dimensions environment (up to a hundred meters). Its operating as follows: A mobile robot equipped with two independents wheels not aligned with the direction of movement and an increments encoders (optical encoders) in each wheel. The encoders used to measure the displacement of each wheel. These displacements called dUg and dUd (Fig. 3).
The localization by odometry exploits the knowledge of the previous positions to determine the new one. the method start from the known position Pn(X n , Y n , Ψ n ) and use the values given by the encoders to determine the new position P n+1 (X n+1 , Y n+1 , Ψ n+1 ). Using geometrical relations (Wang, 1988) Form the equations shape, we finds that the errors accumulated each iteration. If we add more slippage of the wheels, the weaknesses of odometry is key. Two sources of errors that can be identified: • Systematic errors, can be identified and corrected by calibration methods • The validity of assumptions underlying model of rolling without sliding of the robot on level ground pose the non-systematic errors. This type of errors are almost impossible to compensate without using absolute localization methods. Martinelli et al. (2003) proposed in a method of estimating this type of error

Reduction of Systematic Errors
Practically, systematic errors, are weak for an odometry localization when the robot travel a certain distance (about ten meters). To minimize the influence of those errors, a first approach consist to identify the errors in order to introduce a compensation in the localization process. The identification or calibration is usually done by making the robot follow a reference trajectory set (e.g., a square, circle). By measuring the means of the offset between the reconstructed trajectory by odometry and the real one, it is possible to detect the systematic errors and correct them. An example of correcting those errors is given in (Martinelli, 2002b).
As a second approach to reduce odometry errors, we get as close to the conditions of validity of the model used in rolling, without sliding odometry equations (Wang, 1988).

Experimentation
In order to test the feasibility of the proposed localization system, the following experiment are performed, in an environment without slippage, the beginning position known and the measurements of the wheels rotation (odometry) allow to evaluate approximately the position of the robot. The experiment results show in Fig. 4.
For the first experiment the robot used with a great acceleration and without calibration. The gap between the real trajectory and the experimental one are very large, which allow to an important variable accumulation of errors over time. As result the error correction came impossible. The localization system diverges once the exploring trajectory becomes more than 20 m square.
To achieve our goal which is reduction of errors. We calibrate the localization system and we use an acceptable average acceleration (Experiment 2). The localization errors still existing, but for an indoor environment (about 100 m 2 ) exploration the error is bounded, which provides acceptable results for localization.

Conclusion
The present article proposes a map grid learning and auto-localization approach. The approach includes a localization model, map model, a map update method and a map post processing method. The localization system use odometry, which exploit the sensor measurements and the start position to locate the current position of the robot. The proposed map adopts a gridbased representation and uses probability value to measure the confidence that a cell is occupied or not. The fast map update system make the approach a strong candidate for real-time implementation on mobile robots. The proposed map post processing method, including a threshold operation, a template operation and an insert operation, is useful to improve the accuracy of the learned map offline.