2012 12th International Conference on Control, Automation and Systems. Oct. 17-21, 2012 in ICC, Jeju Island, Korea. 1. I
2012 12th International Conference on Control, Automation and Systems Oct. 17-21, 2012 in ICC, Jeju Island, Korea
Natural Corners Extraction Algorithm in 2D Unknown Indoor Environment with Laser Sensor Ruijun Yan1, Jing Wu2, Weijun Wang2, Sungjin Lim2, Jiyeong Lee2, Changsoo Han2 1
Department of Mechatronics Engineering, Hanyang University, Ansan, 426-791, Korea (Tel : +82-10-9406-0837; E-mail:
[email protected])
Abstract: The algorithm of line extraction and corner extraction in unknown indoor environment with laser sensor is presented in this paper. The corners, the intersection point of two line segments and the two endpoints of each line segment extracted from raw sensor data, can be chosen as landmarks to estimate the position of mobile robot or used to do mapping unknown environment without artificial landmarks intentionally. Sufficient landmarks are the precondition for realizing robot localization and Mapping Environment very well. In addition, the covariance matrix of corners, propagated from covariance matrices of line segments, is derived using the first-order Taylor expansion and it is proved by comparing the uncertainty ellipse drawing from the ellipse of line segments and that from covariance matrix of corners in real experiments. Experiment results of line extraction and corner extraction in the complex environment with the HOKUYO laser sensor located on the Pioneer mobile robot are presented to proving the validity of this algorithm. Keywords:
Line extraction, Corner extraction, Laser sensor, and Unknown environment. Split-and-Merge in [7], [10], Incremental Probabilistic Technique in [11], Hough Transform in [12], and so on. Some experiments is done to comparing with the different line extraction method to find one with best correctness and superior speed in [13], which gives a conclusion that Split-and-Merge and Incremental have best performance. The Split step, dividing all the sensor data into several lines, and Merge part, merging several line segments into one line segment if they belong to the same line, are the main steps in this method with just one input parameters. The principle of realization of line segments extraction is based on Split-and-Merge in this paper with greatly modification and the uncertainty of extracted corner is propagated from the uncertainty of lines, calculated in [14]. There are five sections in this paper. The line extraction algorithm with its covariance matrix and corner extraction algorithm with the propagation of uncertainties are presented in section II and section III respectively. Then the experiment results are explained in section IV to prove the availability of this algorithm. Finally, the last section of this paper shows the conclusion of the whole contents of the paper.
1. INTRODUCTION The landmarks in unknown environment take an important effect in the robot localization, navigation, perception, 2D mapping and 3D mapping. Most experiments, with laser sensor or vision sensor, of robot localization and mapping environment estimate the position of mobile robot using man-made landmarks, like Cup in [1], Green Circle in [2], and other artificial landmarks as in [3], [4]. The reason of using landmark in these applications to correct the position of mobile robot is its low accuracy with only odometry, integrating the incremental information over time to measuring the distance or angle transformed. Nevertheless, not all the natural landmarks can be chosen as landmarks because of its shape complexity or calculation complexity. The landmarks are easy or difficult to be extracted from the capture data is based on the choice of landmarks features, which should be prudently considered because the uncertainties of the landmarks position play an important role in both the simultaneous position of mobile robot and the position of other landmarks. The corners, there are too many in indoor environment, can be chosen as the landmarks without other external instruments or money in the robot localization experiments but now most of them are used in the experiments with vision sensors in [5], [6]. A little of them is realized with sonar or laser sensor but without the clearly calculation of distance uncertainty and angle uncertainty of corner landmarks in [7]. The basis of corner extraction is the line extraction, the essential part of which is achieving the line segmentation from the raw sensor data successfully. In the past several decades, line features, used in robot localization with laser sensor or vision sensor, run well in many experiments in [8], [9]. Also there are too many methods about line extraction, including
978-89-93215-04-5 95560/12/$15 ⓒICROS
2. LINE SEGMENTS EXTRACTION The data from laser sensor are just some points with angle and distance, which must be extracted as line segments because most of the features cannot be identified by just points. Line extraction is the basis for classifying the special geometrical characteristics from the whole environment features. In the following part, the improved line extraction algorithm, including two parts which are line segmentation and line merging, is explained in detail and its covariance matrix is derived step by step. The experiment of this algorithm is stated in the experiment results part.
983
solution for extracting line segments from the set with smaller numbers of sensor point.
2.1 Line Extraction Algorithm The precondition of corners extraction is separating the sensor data into different data sets to extracting the line segments. There are three big steps in Table 1, confining the distance dp between adjacent points si and si+1 from line 1 to line 6, restricting the angle of closed four points from line 7 to line 13 and limiting the distance of every points in the corresponding line segments with extracted line from line 14 to line 20. The maximum distance value dmax, not a constant, in first step is changed dynamically with the different measuring distance of raw sensor data of i-th point, whose value is the addition of 0.3 meter and 0.05 times of the sum of sensor distance si and si+1. If the distance of i-th point and i+1-th point is bigger than dmax, these two points will be separated into two different line segment sets.
Fig. 1 The special case of line segmentation 2.2 Line Merging Algorithm After dividing the raw sensor data into different set and extracting the corresponding line segment equation, the following task is combining the line segments belonging to the same line but segmented by the line extraction algorithm. The line merging algorithm, stated in Table 2, combines the line segment Ln and Ln+1 by finding the angle αmerge of these two lines and the distance dmerge from the begin point of Ln+1 to the end point of Ln. If the distance dmerge is smaller than limit distance dmergMae and αmerge is smaller than the limit angle αmergeMax, the two line segments will be merged and stored by replacing the previous twos. Here, Vline is the set of line segments constructed in the line segmentation part and updated in this merging part.
Table 1 The line extraction algorithm Algorithm 1: Line Segmentation Input: The raw sensor data {si} Output: The line segments vector Vline 1: for si do 2: Find the distance dp of point si and si+1 3: if dp > dmax then 4: Insert the line segment from the next point of end point of last line to point si 5: end if i = i + 1 6: end for 7: for Lk in Vline do 8: for sj in Lk do 9: Calculate angle δα of line (sj, sj+1) and (sj+2, sj+3) 10: if δα < αmax do 11: Insert the new line segment, end if 12: j = j + 1, end for 13: k = k + 1, end for 14: for Lm in Vline do 15: for sn in Lm do 16: Find the distance λ from point sn to Lm 17: if λ < λmax then 18: Insert line segment separated at point sn 19: end if, n = n + 1, end for 20: m = m + 1, end for
Table 2 The Line Merging Algorithm Algorithm 2: Line Merging Input: The line segments vector Vline Output: The line segments vector Vline 1:for Ln in Vline do Calculating the distance dmerge of the end point of Ln and the begin point of Ln+1 and angle αmerge between two line segments 2: If(dmerge < dmergMae and αmerge < αmergeMax) then 3: Merging line segments Ln and Ln+1 4: Insert new segment Ln, delete the old twos 5: else then 6: n = n + 1 7: end if 8:end for 2.3 The Uncertainty of Line Segments The line equation cannot very accurate because uncertainty exists in sensor detecting and sensor rotation. Here assuming that the Sensor-Reading data is Gaussian distributed like: (1) Pi ~ N ( ρi , σ ρ2 ), Qi ~ N (θ i , σ θ2 )
Moreover, the angle between two small line segments, line (sj, sj+1) and line (sj+2, sj+3), is compared with αmax for extracting the corners with special case, for example, as in Fig. 1 explained after 3-th step. In the final step of line extraction, the vertical distance between the points of line segment set and the extracted line of this set will be computed and compared with the maximum distance λmax to check whether this line set should be divided into two sets, which is introduced in [10] as The Split-and-Merge algorithm. But here the limit value λmax in line 17 is chosen as ten percent of the length of the line already extracted. In some case like Fig. 1, if the distance λ is smaller than λmax, the line segments may be extracted as the heavy line and our desired line is the dotted line. Based on this case, the 2-th step is a good
i
i
in which the uncertainty of sensing distance Pi and uncertainty of rotation angle Qi are independent as in [14]. The sum of the square of all errors together with weighted value wi =(1/σρ)2 for all measurement points can be expressed as: 2 (2) S = wd wi (ρi cos(θiκ −α)-r)2 i i =
∑ i
∑ i
The derivative of (2) with respect to variable α and r respectively can obtain the line equation (3) and (4):
984
1 ⎡ 2 ⎢ ∑ wi ρi sin 2θi − w 1 ∑ i α = a tan ⎢ 2 ⎢ w ρ 2 cos 2θ − 1 i ⎢∑ i i ∑ wi ⎣
r=
i
∑ w ρ cos(θ ∑w i
Table 3 The Corner Extraction Algorithm
⎤ sin(θi + θ j ) ⎥ (3) ⎥ ⎥ ρ ρ θ θ + cos( ) w w ∑∑ i j i j i j ⎥ ⎦
∑∑ w w ρ ρ
i
i
j
i
j
−α )
Algorithm 3: Corner Extraction Input: The line segments vector Vline Output: The corners vector Vcor 1:for li do 2: j = i +1 3: Calculate the distance d, angle φ of li and lj 4: If(d< dmin) 5: Insert the two end points of line li, lj in Vcor 6: continue; 7: End If 8: While (d< dmin and φmin