6
Proceedings of the 2007 IEEE International Workshop on Safety, Security and Rescue Robotics Rome, Italy, September 2007 Fast Detection of Polygons in 3D Point Clouds from Noise-Prone Range Sensors Narunas Vaskevicius, Andreas Birk, Kaustubh Pathak, and Jann Poppinga School of Engineering and Science Electrical Engineering and Computer Science (EECS) Jacobs University Bremen Campus Ring 1, D-28759 Bremen, Germany [email protected], http://robotics. jacobs-university.de Abstract 3D sensing and modeling is increasingly important revised to an incremental version. This allows hence efficient for mobile robotics in general and Safety, Security and Rescue region growing, i.e., the computation of the next best fit when Robotics (SSRR) in particular. To reduce the data and to allow for an additional data point is considered can be based on the efficient processing, e.g. with computational geometry algorithms, it is necessary to extract surface data from 3D point clouds delivered com putato of tep oustbes fit. by range sensors. A significant amount of work on this topic exists The approach is demonstrated with real world data. Note from the computer graphics community. But the existing work relies that Hahnel, Burgard and Thrun in [7] already convincingly on relatively exact point cloud data. As also shown by others, sensors showed that 3D laser scanner data is too error-prone for local suited for mobile robots are very noise-prone and standard approaches normal analysis as used in standard approaches from computer that use local processing on surface normals are doomed to fail. Hence plane fitting has been suggest as solution by the robotics ga phicherne we wil revn or with lasen r typewi community. Here, a novel approach for this problem is presented. even higher noise rates. The reason is that 3D laser scanners Its main feature is that it is based on region growing and that the are extremely slow. This type of sensor is typically based on underlying mathematics has been re-formulated such that an incre- standard 2D scanner that is directly driven with some servo- mental fit can be done, i.e., the best fit surface does not have to be mechanism [8][9][10]. This takes in the order of seconds. completely re-computed the moment a new point is investigated in the Hence a mobile robot has to stop to gather data. Much better region growing process. The worst case complexity is (n log(n)), . X . . . but as shown in experiments it tends to scale linearly with typical alternatves regarding the speed of data acquisiton are stereo data. Results with real world data from a Swissranger time-of-flight cameras for 3D measurements in general [11] as well as for camera are presented where surface polygons are always successfully mobile robots in particular [12], [13]. A common criticism extracted within about 0.3 sec. for stereo vision, especially when compared to laser range Keywords: 3D Map; Point Cloud; Surface Model; Range finders, are its high computational requirements. This true if Sensor; the generation of the disparity image is done in software. But alternatives exist like the stereo-on-chip (STOC) camera from I. INTRODUCTION Videre Design [14], which has an embedded processor. A fur- As mobile robots tend to operate in more and more complex ther alternative are time-of-flight cameras like the Swissranger environments, especially in domains like Safety, Security and SR-3000. The technological principles on which this sensor is Rescue Robotics (SSRR), 3D sensing and modeling is becom- based are described in [15]. Roughly speaking, this type of ing more and more important. One crucial challenge to keep sensor uses an array of cells similar to an imager of a camera the amount of data reasonable and to allow efficient processing to measure the phase-shift of emitted modulated infrared light. with well-known techniques, especially from computational By this, a time-of-flight based distance measurement can be geometry, is to extract surface models from the 3D range done simultaneously in each cell of the array. As shown in sensors used for gathering the data. This is a well known and table I, both sensors are very fast, especially compared to a 3D extensively studied problem in computer graphics [1], [2], [3], URG40-LX laser scanner, which is also available in our lab. [4], [5], [6]. But this work relies on high quality datasets. But the error rates of stereo and range cameras are very high, As pointed out by Hahnel, Burgard and Thrun in [7], the especially they are even higher than for a 3D laser scanner. related approaches of using local analysis of the normals of Here we concentrate due to space limitations on data from a trimeshed data are doomed to fail when using sensors suited Swissranger as more or less prototypical device with fast but for mobile robots. They hence suggests to use plane fitting. error prone 3D range sensor. Their approach is based on a sweeping plane technique, where Our goal is to produce compact surface model using a robust they exploit the assumptions about the environment. Here, no region growing technique, which should deal with very noisy assumptions about the environment are made. Plane fitting data. The approach can be separated into two main parts: can nevertheless be achieved in a fast and robust manner 1) Given a point cloud - identify regions lying on the same as the standard mathematical formulation of the problem is plane. 978-1 -4244-1 569-4/07/$25.00 2007 IEEE.

[IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

  • Upload
    jann

  • View
    217

  • Download
    4

Embed Size (px)

Citation preview

Page 1: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

Proceedings of the 2007 IEEEInternational Workshop on Safety, Security and Rescue RoboticsRome, Italy, September 2007

Fast Detection of Polygons in 3D Point Cloudsfrom Noise-Prone Range Sensors

Narunas Vaskevicius, Andreas Birk, Kaustubh Pathak, and Jann PoppingaSchool of Engineering and Science

Electrical Engineering and Computer Science (EECS)Jacobs University Bremen

Campus Ring 1, D-28759 Bremen, [email protected], http://robotics. jacobs-university.de

Abstract 3D sensing and modeling is increasingly important revised to an incremental version. This allows hence efficientfor mobile robotics in general and Safety, Security and Rescue region growing, i.e., the computation of the next best fit whenRobotics (SSRR) in particular. To reduce the data and to allow for an additional data point is considered can be based on theefficient processing, e.g. with computational geometry algorithms, itis necessary to extract surface data from 3D point clouds delivered com putato of tep oustbes fit.by range sensors. A significant amount of work on this topic exists The approach is demonstrated with real world data. Notefrom the computer graphics community. But the existing work relies that Hahnel, Burgard and Thrun in [7] already convincinglyon relatively exact point cloud data. As also shown by others, sensors showed that 3D laser scanner data is too error-prone for localsuited for mobile robots are very noise-prone and standard approaches normal analysis as used in standard approaches from computerthat use local processing on surface normals are doomed to fail.Hence plane fitting has been suggest as solution by the robotics gaphichernewewil revn or with lasen r typewicommunity. Here, a novel approach for this problem is presented. even higher noise rates. The reason is that 3D laser scannersIts main feature is that it is based on region growing and that the are extremely slow. This type of sensor is typically based onunderlying mathematics has been re-formulated such that an incre- standard 2D scanner that is directly driven with some servo-mental fit can be done, i.e., the best fit surface does not have to be mechanism [8][9][10]. This takes in the order of seconds.completely re-computed the moment a new point is investigated in the Hence a mobile robot has to stop to gather data. Much betterregion growing process. The worst case complexity is (n log(n)), . X...but as shown in experiments it tends to scale linearly with typical alternatves regarding the speed of data acquisiton are stereodata. Results with real world data from a Swissranger time-of-flight cameras for 3D measurements in general [11] as well as forcamera are presented where surface polygons are always successfully mobile robots in particular [12], [13]. A common criticismextracted within about 0.3 sec. for stereo vision, especially when compared to laser range

Keywords: 3D Map; Point Cloud; Surface Model; Range finders, are its high computational requirements. This true ifSensor; the generation of the disparity image is done in software. But

alternatives exist like the stereo-on-chip (STOC) camera fromI. INTRODUCTION Videre Design [14], which has an embedded processor. A fur-

As mobile robots tend to operate in more and more complex ther alternative are time-of-flight cameras like the Swissrangerenvironments, especially in domains like Safety, Security and SR-3000. The technological principles on which this sensor isRescue Robotics (SSRR), 3D sensing and modeling is becom- based are described in [15]. Roughly speaking, this type ofing more and more important. One crucial challenge to keep sensor uses an array of cells similar to an imager of a camerathe amount of data reasonable and to allow efficient processing to measure the phase-shift of emitted modulated infrared light.with well-known techniques, especially from computational By this, a time-of-flight based distance measurement can begeometry, is to extract surface models from the 3D range done simultaneously in each cell of the array. As shown insensors used for gathering the data. This is a well known and table I, both sensors are very fast, especially compared to a 3Dextensively studied problem in computer graphics [1], [2], [3], URG40-LX laser scanner, which is also available in our lab.[4], [5], [6]. But this work relies on high quality datasets. But the error rates of stereo and range cameras are very high,As pointed out by Hahnel, Burgard and Thrun in [7], the especially they are even higher than for a 3D laser scanner.related approaches of using local analysis of the normals of Here we concentrate due to space limitations on data from atrimeshed data are doomed to fail when using sensors suited Swissranger as more or less prototypical device with fast butfor mobile robots. They hence suggests to use plane fitting. error prone 3D range sensor.Their approach is based on a sweeping plane technique, where Our goal is to produce compact surface model using a robustthey exploit the assumptions about the environment. Here, no region growing technique, which should deal with very noisyassumptions about the environment are made. Plane fitting data. The approach can be separated into two main parts:can nevertheless be achieved in a fast and robust manner 1) Given a point cloud - identify regions lying on the sameas the standard mathematical formulation of the problem is plane.

978-1 -4244-1 569-4/07/$25.00 2007 IEEE.

Page 2: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

number of sampling field rangedata points rate of view

3D URG40-LX 683x90 0.3 Hz 2400 x 900 0.2 - 4 mSTOC 640x480 30 Hz 700 x 520 0.75 - 3 mSR-3000 176x144 < 50 Hz 470 x 390 0.6 - 8 m

TABLE I3D RANGE SENSORS FOR DATA ACQUISITION.

set 1El. Now suppose point p' is such that the distance betweenit and the region is less than the distance 6. Then if the meansquare error (MSE) to the optimal plane Q of the region Il Up'is less than c and if the distance between the new point and

Fig. 1. The autonomous version of a Jacobs rugbot - from rugged robot the optimal plane Q is less than 'y, then p' is added to the- with some important onboard sensors, especially the swissranger and thestereo cam, pointed out. current region II. We grow this region until no points can be

added (Algorithm 1, Line 6 - 11). Afterwards if the regionsize is more than 0 we add it to the set of regions R, else wetreat those points as unexplained and add them to the set R'(Algorithm 1, Line 12 - 16). This is repeated until each point

..........................from PC is eitherin R or in R'. Note that each data point can, ;|_ ~~~~~~~~~~~~beassigned to several regions as it could lie in the intersection

line of two or more planes.

image Our approach for regions identification is not sensitiveto local noise and therefore it is suitable for the data pro-duced by fast but error-prone 3D range sensors. Actually,the complexity of the model and sensitivity to noise can becontrolled by using aforementioned parameters (6, c, 'y, 0).The meaning and impact of each parameter will be discussedin the experiments section. Although the algorithm is easy to

(c) Disparity image of (d) Picture of the point understand, a naive implementation of it would lead to a highthe stereo camera cloud of the stereo cam- computational complexity and unreasonable work time even

era for small point clouds of a size around 104. Here, a special

Fig. 2. The figure 2(a) shows a scene shot with a normal camera. Right to it, incremental approach is presented, which is discussed later inthe distance image of a Swissranger SR-3000 (Fig. 2(b)). On the bottom, the the implementation section IV.disparity image of the Videre STOC stereo camera (Fig. 2(c)) and an imageof the corresponding point cloud (Fig. 2(d)). Algorithm 1 Regions identification

1: R - 0

2) Given the regions with their planes - calculate corre- 2: R' 0 0sponding polygons on that plane. 3: while ( PC \ (R U RI) #0 ) do

4: select points pi and p2inPC\(RUR')The first portion has to be resistant to noisy measurements 5: HI- {Pi, P2}therefore we use a robust region growing technique. In doing 6: while ( new point can be found ) doso, we extend the work presented in [7] by re-formulating 7: select nearest neighbor pl with distancethe underlying mathematics to an incremental version, which 8 if (MSE(H U {p'}) < && d(Q,p') < ) thenallows a highly efficient implementation. For the second part, 9: HI- H U pIa standard convex hull algorithm and simple triangulation is 10: end ifused. 11: end while

12: if ( size(IH) > 0 ) thenII. REGION GROWING 13: R - R U H

14: elseIn this section we will describe the main underlying idea 15: RI R' U H

of our algorithm for regions identification. The implementa- 16: end iftion details follow in section IV. Our algorithm proceeds as 17: end whilefollows. We take a random point P1 and its nearest neighborP2 from point cloud data PC. This is our initial set of points First, some background for finding the optimal plane for a- region II (Algorithm 1, Line 4 - 5). Then we try to extend point set is introduced._Suppose we have a set of 3D pointsthis region by considering points in increasing distance from Pij (xi, Yi, zi), i =1, n and we want to find the best fitting

Page 3: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

plane for this data. The optimal plane can not be simply achieved by rotating the plane around the z axis by the angle a,the regression plane as we have a measurement error in all such that the normal vector would end up in ZX plane. Thenthree coordinates, therefore the orthogonal distances have to rotating around the y axis by the angle Q gives the desiredbe considered. So the goal is to minimize the sum of squared result. To avoid precision errors and extra calculations we diddistances to the plane. It can be shown that this is the eigen not calculate a and Q angles implicitly, instead we calculatedvector problem. the sin, cos values of them:The mass center of the given data is defined as:

n=- EPi ( I ) sin(a) nyvTn Pi

Cos(a)=Using this, the following covariance matrix is defined: C = sin(Q) = cE, (-i - mX)(Xi - mx) E,n(Xi - -x)(Yi - my) En'(Xi - -x)(-i - Tnz) cos( n,(NYi my)(Xi T-x) (NYi mY)(Yi mS) ENYi T-Y)(-i mz') C8C( (j i - mz)(xi - mx) E (Zi - mZ)(Yi my) , (Zi mz)(Zi mz)

Then the normal vector of the optimal plane is equal to the These values are used to produce standard rotation matrices.eigen vector n which corresponds to the smallest eigen value Backward transformation is performed in reverse order. Firstlyof the covariance matrix C. Suppose the resulting vector is we rotate around the y axis by angle -Q, then around the znormalized then the bias element - the plane is described by axis by angle -a and finally we translate the plane by t =nmx x +a y + th z + biasel 0 - of the optimal plane can (-nx d, -ny d, -nz d). Note that all formulas assume thatbe calculated: the normal vector is the unit vector.

bias n-(nx mX + nyr, my + nz mZ) B. Graham's scanFor finding the convex hull on a 2D plane we used Graham's

Note that the point m - the mass center (equation 1), is Scan [17]. Lets denote Q to be our point set. The importanton the optimal plane. The normal vector and the bias element steps are shown in algorithm 2.fully define this plane. To find the best fitting plane we needto calculate the eigen values and the eigen vectors for the Algorithm 2 Graham Scancovariance matrix. This operation is crucial as it has to be 1: let po be the point in Q with the minimum

.... ~~~y-coordinate, or leftmost such point inperformed whenever a new point is investigated, therefore case of tieit should be efficient. Therefore, the numerically optimized 2: let <P1,P2, .--.Pm> be the remainingmethods of the GNU Scientific Library (GSL) are used for points in Q, sorted by polar angle inthis purpose. For eigen systems GSL implements methods counterclockwise order around po (if moredescribed in [16]. than one point has the same angle, remove

all but the one that is farthest from po)III. CREATING POLYGONS FROM REGIONS 3: STACK.PUSH (po)

4: STACK.PUSH(pi)Once the regions with their optimal planes are identified, we 5: STACK. PUSH (p2)

can find the corresponding polygons for each region. To do 6: for i <- 3 to m dothis we firstly translate and rotate the plane with the points in 7: while the angle formed by pointssuch way that the normal vector becomes (0, 0, 1) and bias 0, STACK.NEXT-TO-TOP(), STACK.TOP(), andi.e. transform it to the XY plane. Then we set all z coordinates p8 makes a nonleft turn do

to zero, as we assume that they are noise. Note that we deal 9: end whilewith range data. In result we have a group of 2D points on 10: STACK.PUSH(pi)the XY plane on which we apply a convex hull algorithm. 11: end forThen we make a simple triangulation and return all points tothe previous position. Using a convex hull algorithm implies IV. EFFICIENT IMPLEMENTATIONsome limitations especially closing of holes and nonconvexregions, which have to be treated in a post-processing step if As mentioned before, it would be very time consumingneeded. to use a naive implementation for region growing algorithm

1. Here, we introduce a minimization of the computationalA. Rotating planes complexity for this. The implementation of the convex hull

Suppose we have plane which is described by a normal part is straightforward and we did not make any significantvector n and a bias element - d (mnxc + Thyy + mzz + d 0). optimizations for it. This section hence concentrates on theFirstly we have to move the plane to the origin. This can be implementation of region growing.done easily by translating each point with t =(mx d, my Recall that in algorithm 1 we have to select a random pointd d). Now we need to rotate the plane in such a way when the outer loop starts. The key aspect is here that we

that we would end up with the normal (0, 0, 1). This can be have to select not from all the data. We should not consider

Page 4: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

points which are already assigned to a region. Suppose we following expression:have an array of points of size n. At the beginning there is kno point assigned to a region -nm = 0. Now every time we MSE(k) I (n pi + d)2add a point to a region we move it to the n-r -1 position k i=1in the points array, this ensures that the first n -nr elements where n is the normal vector of the plane and d is a biasare always those points which are not assigned to any region. element. Expanding this equation gives us a form which isSo every time when the outer loop starts we sample from the suitable for incremental calculation:first n- nr elements. In addition we created a mapping fromthe original configuration to the resorted one as this is needed 1for the neighbors search. MSE(k) - ES

Another important part of the region growing algorithm is a,bE{x,y,z} i=lthe nearest neighbor selection for a current region (algorithm + 2 d E: naSa(k) + d1, line 7), which is performed every time the inner loop starts. k aESx,y,zlFor that we use a priority queue Q with the minimum distanceon the top. Whenever we add a new point to the region we Here we need to track one more element. This is the productinvestigate k unvisited nearest neighbors nbt, t = 1, k of this matrix: npoint and if distance d(p, nbt) < d we add nbt to the priority [Pab] E p(i)p(i)queue. This allows to extract nearest neighbor for the region i=just by calling Q. TOP () . The question is how to find the k where a e {x,y,z} and x corresponds to 1, y - 2, z - 3.nearest neighbors for a given point. It can be done quite easy This matrix can easily be updated and therefore we have awith the assumption that the point cloud data is produced from fast MSE evaluation.one scan. Then all points are aligned in the grid and can be All optimizations described in the previous section lead tointerpreted as a range image. Though the range image concept a really fast algorithm. Suppose we have a point cloud datais not necessary for finding neighbors, it is good for illustrative of size n. All operations inside the loops are performed inpurposes. Suppose that a given point has (r, c) coordinates constant time except the nearest neighbor search for the currentin the range image; the row can be interpreted as horizontal region which has logarithmic complexity, as we use a priorityscan line, and the column as vertical scan line. Then it makes queue. Now assume that there are few points lying in thesense to define the k nearest neighbors for the given point to intersection of the planes, which means that most of the pointsbe~~~~ ~ ~ ~~~~~~~~~~nescotheset plaes

pointsmean tha most of th p.Obiosl,obe the set of points (r + i, r + j), i:j=-1,1. Obviously, for belongs to exactly one region. Then the complexity of the

edge and corner points we would have less neighbors. This algorithm can be considered to be 0(n. log(m)). The convexapproach allows to find the neighbors in constant time. hull algorithm also has 0 (n log(n)) complexity, therefore theThe last optimization is the most significant one. It deals overall complexity is not changed. The memory complexity is

with the optimal plane calculation. Suppose the covariance clearly to be linear - 0(n).matrix would be calculated from the start every time a newpoint is added to the region. This would mean that one would V. EXPERIMENTSneed to traverse every point in the current region leading For a first test to evaluate the performance on data sets withto a huge overhead. Here a way to an incremental update varying size, we have created an artificial point cloud withof the covariance matrix is presented, which takes previous three walls (figure 3) seen by a virtual 3D range sensor. Wecalculations into account. Lets define S(n) to be the sum of constantly increased the density of the point cloud data andn points and m(n) the mass center of those points. Suppose measured computation time. The results are shown in tablewe want to add a new point Pn+±. Then the update formula II and figure 4. As one can notice time is linearly dependentfor example for C(1,2) (n + 1) is: on the size of the data, this can be explained by the perfect

grid for this virtual range sensor image. The distance betweenC(1,2)(n + l) C(1,2)(n) + Xn+lYn+l neighboring points are the same over all the point cloud. This

-mX(n + 1)Sy((n + 1) + mx(n)Sy(n) means that the priority queue is almost unused, therefore weget linear complexity.

Other elements can be calculated in the analogous way (I WS,M,-corresponds to x, 2 - y, 3 - z). The formula can be derivedby simply calculating the difference C(n + 1) - C(n). Themass center can be easily updated and combined with theupdated covariance matrix, thus providing all information for Vri0X;r 00Xfast calculation of the best fitting plane. The only thing we 030000000need to track is the sum of the points.The plane mean square error for the given point set can Fig. 3. The point cloud data for performance evaluation (left), the identified

also be calculated incrementally. Here we need to evaluate regions (center) and the model (right).

Page 5: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

Point cloud size 3 104 6.75. 104 1.2 105Runtime (sec) 0.25 0.56 1.02Point cloud size 2.7 105 6.25. 105 1.92 . 106Runtime (sec) 2.37 6.91 18.34

TABLE IIPERFORMANCE ON ARTIFICIAL DATA

Fig. 5. Real world point cloud data (left), the identified regions (center) andthe model (right).

20

16

14

12

10

6

4

2 Fig. 6. Real world point cloud data (left), the identified regions (center) and0 the model (right).

0 5oCOOi 1OOOO 15U0CP0 2UOOOOIJ

Fig. 4. The processing time (in sec) for different amounts of points in thepoint clouds. Note that the processing times for real sensor snapshots are in tthe order of several 1/10 of a second. The results for the large scale point This mean that regions will be bigger but may include wrongclouds are included to show that the algorithm indeed scales linearly. points. Smaller MSE means smaller regions and it can overfit

underlying noise. Along with the MSE the 0 parameter shouldbe set up, as it controls the size of the region. With a smaller

The artificial point clouds do not contain any noise, they MSE, a smaller bound is needed as otherwise we would endare only interesting for benchmarking reasons as their size up with no regions. In figure 9 we can see models obtainedcan be easily altered. Our main interest is of course real with a small MSE. The results confirm the previous discussionsensor data which is highly noisy. For our investigation, we - a small MSE combined with a big 0 leaves many pointsused Swissrange SR-3000 point clouds of size 144x176 = uncovered, a small MSE with a small 0 produce a lot of small25244 points. We started with relatively simple data and then regions, but the model is really noisy and it can not be calledproceeded to more complex data sets - Figures - 5, 6, 7. compact. In figure 10 models are shown with a bigger MSE.The results produced by the algorithm are quite nice even The results are much better. A small MSE with a small 0on relatively complicated data (figure 7). The runtime for produced some noisy polygons, which were removed using aall data sets were quite similar, namely about 0.3 sec. In bigger 0. The resulting model is made of 4 regions and 75Table III there are some more details. As one can see, the triangles.compression rates are really high. Not all points were assigned The third parameter d defines a point's neighborhood: If twoto regions, the noisy outliers in the data were successfully points lie in the distance smaller than d they are considered toeliminated. Following parameter values were used: nearest be neighbors. It is obvious that this constant should be adjustedneighbor distance d = 0.1, plane MSEe = 0.001, point-plane according to the scan density. The purpose of the bound -' isdistance -y = 0.05 and smallest region size 0 = 100. These similar to that of the MSE. In a sense, it also describes the levelparameters will be discussed in the next section.

Selecting the right parameters can play a crucial role in theproduction of a good model. Fortunately, a single calibrationstep is sufficient, i.e., the parameters can be tuned for onesensor on a single point cloud and then they can be used fromthen on without adaptation. For demonstration we will usethe data set shown in figure 8. Firstly, lets start to investigatemean square error of the plane. By intuition it is more or lessclear that it controls the allowed level of the noise. The bigger Fig. 7. Real world point cloud data (left), the identified regions (center) and

the model (right).

Data sets Regions detected Triangles Compression rate1st data set 2 55 0.99

3nd data set 14 Lt 184 0.98

SOME DETAILS ON RESULTS FOR REAL POINT CLOUDSFig. 8. The data set for demonstrating parameter selection.

Page 6: [IEEE 2007 IEEE International Workshop on Safety, Security and Rescue Robotics - Rome, Italy (2007.09.27-2007.09.29)] 2007 IEEE International Workshop on Safety, Security and Rescue

ACKNOWLEDGMENTS

The authors gratefully acknowledge the financial support ofDeutsche Forschungsgemeinschaft (DFG).

Please note the name-change of our institution. The SwissJacobs Foundation invests 200 Million Euro in International

Fig.9Left-MSE5060 3R MSE 5106 10 University Bremen (IUB) over a five-year period startingfrom 2007. To date this is the largest donation ever givenin Europe by a private foundation to a science institution.

_ In appreciation of the benefactors and to further promote theuniversity's unique profile in higher education and research,the boards of IUB have decided to change the university'sname to Jacobs University Bremen. Hence the two differentnames and abbreviations for the same institution may befound in this article, especially in the references to previously

Fig. 10. Left - MSE =5 i0-3, 0 - 3, Right - MSE =5 i0-3, ..O= 100 published material.

REFERENCES

of noise control, but it removes outliers, too. The importance [1] J. Klein and G. Zachmann, "Nice and fast implicit surfaces over noisyof this constant increases when regions become bigger. If there point clouds," in SIGGRAPH 2004, Sketches and Applications, 2004.

[2] , "Proximity graphs for defining surfaces over point clouds," inare a lot of points in a region a new point hardly changes the Eurographics Symposium on Point-Based Grahics (SPBG'04), 2004, pp.MSE, even if it is relatively far away from the plane. Again 131-138.0 should be also adjusted according to the value of 'y. Results [3] N. J. Mitra and A. Nguyen, "Estimating surface normals in noisy point

cloud data," in Proceedings of the nineteenth annual symposium onare shown in Figure 11. As one can see in the middle picture, Computational geometry. ACM Press, 2003, pp. 322-328.the front of the box is a trapezium instead of a rectangle. This [4] N. Amenta, M. Bern, and M. Kamvysselis, "A new voronoi-basedis often the side effect of the convex hull. In this case, some surface reconstruction algorithm," in Proceedings of the 25th annual

points fm d i loconference on Computer graphics and interactive techniques. ACMpoints from the ground which lie on the same plane as the box Press, 1998, pp. 415-421.front and are added to the corresponding region. These points [5] C. L. Bajaj, F. Bernardini, and G. Xu, "Automatic reconstruction ofshould be removed by polygon matching algorithm, whereas surfaces and scalar fields from 3d scans," in Proceedings of the 22nd

annual conference on Computer graphics and interactive techniques.the convex hull only packs all points to the convex polygon. In ACM Press, 1995, pp. 109-118.result we get extra triangles, which have only a tiny number of [6] P. Alfeld, "Scattered data interpolation in three or more variables," inpoints inside. The 0 parameter will not be discussed separately Mathematical methods in computer aided geometric design. AcademicPress Professional, Inc., 1989, pp. 1-33.as it is adjusted along with the MSE and -y parameters. As [7] D. Hahnel, W. Burgard, and S. Thrun, "Learning compact 3d modelsmentioned before, it is sufficient to tune the parameters on of indoor and outdoor environments with a mobile robot," Robotics andone point cloud. Autonomous Systems, vol. 44, no. 1, pp. 15-27, 2003.

[8] 0. Wulf and B. Wagner, "Fast 3d-scanning methods for laser measure-

VI. CONCLUSIONS ment systems," in International Conference on Control Systems andComputer Science (CSCS14), 2003.

Extraction of surface models is a well known and well [9] H. Surmann, A. Nuechter, and J. Hertzberg, "An autonomous mobilestudied problem. The disadvantage of standard approach from robot with a 3d laser range finder for 3d exploration and digitalization

of indoor environments," Robotics and Autonomous Systems, vol. 45,computer graphics is that they fail on data delivered by sensors no. 3-4, pp. 181-198, 2003.suited for mobile robots as shown in detail in [7] where plane [10] 0. Wulf, C. Brenneke, and B. Wagner, "Colored 2d maps for robotfitting is suggested as alternative. Here, a new approach is used navigation with 3d sensor data," in IEEE/RSJ International Conference

on Intelligent Robots and Systems (IROS), vol. 3. IEEE Press, 2004,which does not require assumptions about the environment. pp. 2991-2996 vol.3.The main contribution is a re-formulation of the underlying [11] S. T. Barnard and M. A. Fischler, "Computational stereo," ACM Comput.problem in an incremental manner. The speed and robustness Surv., vol. 14, no. 4, pp. 553-572, 1982.

[12] D. Murray and J. J. Little, "Using real-time stereo vision for mobile robotof the algorithm is illustrated in experiments. Real world scans navigation," Autonomous Robots, vol. 8, no. 2, pp. 161-171, 2000.from a very fast but also very noisy Swissranger can be [13] A. Elfes, "Using occupancy grids for mobile robot perception and

successfullyconverted to polygons within about 300 millisec. [14] navigation," Computer, vol. 22, no. 6, pp. 46-57, 1989.[14] Videre-Design, http:Hlwww.videredesign.com/, 2006.[15] R. Lange and P. Seitz, "Solid-state time-of-flight range camera," Quan-

tum Electronics, IEEE Journal of, vol. 37, no. 3, pp. 390-397, 2001.[16] G. H. Golub and C. F. Van Loan, Matrix Computations (Johns Hopkins

Studies in Mathematical Sciences). The Johns Hopkins University

Pe[17]T sH Cormen, C E Leiserso, R L Rivest and C Stein,Intro tion

Fig. 11. Left - ry=0.001, Middle - ry=0.1, Right - ry=0.05