The present disclosure relates generally to a method for generating a map, and more specifically to a method for generating a three-dimensional map of terrain.
Analysis of three-dimensional data sets in order to obtain terrain maps has been explored for some time. Processing the three-dimensional problem generally consumes a considerable amount of computing resources. Dividing the larger three-dimensional problem into smaller three-dimensional and two-dimensional problems, and applying swarm intelligence methods can provide efficiency improvements. The need also exists for identifying objects contained within the three-dimensional data set.
One example is disclosed by Raed Abu-zitar et. al., “Application of ACO to the Terrain Generation in 3 Dimensional Continuous Search Space,” which uses Ant Colony Optimization to generate artificial terrain. The generated terrain is used for computer graphics, games, simulations, and other similar applications. This work does not provide real-time analysis of actual three-dimensional data, nor does it identify objects in the three-dimensional data set.
In one aspect of the disclosure, a method for generating a three dimensional grid of terrain is shown. The method includes receiving data representing a three-dimensional point cloud, generating a plurality of orthogonal slices of the data, evaluating the slices using a swarm intelligence algorithm, identifying terrain as a function of the evaluation, and generating a three-dimensional grid of the identified terrain.
In another aspect of the disclosure, a method for generating a three-dimensional map of traversable terrain is shown. The method includes the steps of receiving data representing a three-dimensional point cloud, generating a series of three-dimensional slices of the data, dividing each three-dimensional data slice into sub-slices, each associated with a two-dimensional reference plane, accumulating points normal to the two-dimensional reference plane into a series of two-dimensional planes, identifying a lowest cost path across each of the series of two-dimensional planes using a swarm intelligence algorithm, and merging the lowest cost paths to produce a three-dimensional grid of terrain.
In yet another aspect of the disclosure, a method for analyzing three-dimensional terrain using a two-dimensional algorithm is shown. The method includes the steps of receiving data representing a three-dimensional point cloud, generating a plurality of three-dimensional slices, each associated with a two-dimensional reference plane, and accumulating points normal to the two-dimensional reference plane into pixels of brightness proportional to the number of points accumulated, the pixel brightness indicating points of substantially equal elevation.
In yet another aspect of the disclosure, a computer-based system for generating a three-dimensional grid of terrain is shown. The system includes a receiving module for receiving data representing a three-dimensional point cloud, a slice generating module for generating a plurality of slices of the data, a swarm intelligence module for evaluating the slices using a swarm intelligence algorithm, a terrain identifying module for identifying terrain as a function of the evaluation, and a three-dimensional grid generating module for generating a three-dimensional grid of the identified terrain.
a shows an illustration of a two-dimensional lateral projection.
b shows an illustration of a two-dimensional longitudinal projection.
a shows an example of terrain with an object
b shows an example of the resulting terrain mapping
c shows another example of the resulting terrain mapping
The current disclosed method involves processing 3D point cloud data 10 and providing an estimate of terrain 5. The 3D point cloud 10 may be obtained from a sensor 120 mounted on a vehicle 115. The sensor could use LIDAR, RADAR, stereo vision, or other well-known technology. The data could also be generated from a source other than a vehicle-mounted sensor, such as satellite data or surveying data.
The method described takes advantage of both local and global analysis and fitting. A set of two-dimensional (hereon referred to as 2D) orthogonal models replaces the three-dimensional (hereon referred to as 3D) global model. In one implementation, longitudinal 75 and lateral 80 models replace the 3D global model. Alternatively, radial and concentric models or another orthogonal model may be employed. This greatly reduces the computational complexity of the problem. Each of these models represents the projection of a 3D point lying of a world “slice” with a given width. The local terrain of these projections is estimated by applying a swarm intelligence algorithm (25). An example of a swarm intelligence algorithm is the Ant Colony Optimization algorithm (hereon referred to as ACO): this biologically inspired evolutionary algorithm identifies the optimal terrain as a shortest path problem, cutting out those 2D points that are not part of the terrain. The resulting longitudinal and lateral curves 35 and 40 will then be fused together to obtain a 3D Cartesian grid 45. Note that a polar system or other grid system could also be used.
Details about the ACO algorithm are provided below. Key aspects of the terrain definition are encoded into the ACO cost functions 30 and movement rules.
In some applications, terrain may be further classified as traversable if the surface is sufficiently smooth and horizontal to allow safe vehicle travel. Details how to define the ACO's cost function 30 and ant's movement rules on the basis of the maximum steepness allowed are provided below.
The method can be described as a four step procedure:
1) 3D world points cloud: The algorithm needs a data set of 3D world points 10 px;y;z. The data set must provide enough points to support the desired resolution over the area of interest. Similar to other optimization algorithms, the ACO exploits the richness of the data set to avoid problems of local minima.
2) 2D projections: The world is divided into orthogonal slices. Longitudinal and lateral slices 15 and 20 of fixed width, height, and length are one representation. Each 3D point is projected onto its corresponding 2D reference planes 50 Pi and 55 Pj (longitudinal and lateral reference planes) to capture the profile associated with each slice. The profile includes all points in the slice whether they represent terrain 5, an object 100, or spurious noise. The dimensions of the slices are defined by the region of interest, the required resolution, and density of the original 3D point cloud 10. If a Cartesian representation with uniform slice width, w, is used, the resulting map has Cartesian cells of area w·w meters squared. Implementation details are shown in a later section. If a polar representation is used, the parameters would be expressed in terms of radius and degrees or radians.
3) 2D projections slope estimation: The goal is to extract from each 2D projection 75 and 80 the corresponding 2D longitudinal and lateral curves 35 and 40 representing the terrain.
4) 3D grid mapping: At this point a set of longitudinal and lateral terrain curves 35 and 40 are available, each one representing a limited portion of the region of interest. The orthogonal slices are then merged together at their intersecting points to produce a grid of the terrain as a set of (x; y) coordinates with their corresponding height z. Interpolating these points in the 3D grid map 45 then gives an estimate of the terrain throughout the region of interest.
Inliers and Outliers: As a side effect, each 3D point from the original point cloud can now be easily classified in the terrain as an inlier 60 or outlier 70. Inliers are considered terrain points while outliers are considered non-terrain points based on proximity to the appropriate curves 35 and 40. Non-terrain points may be further analyzed to define objects 100.
Two-dimensional projections 75, 80 are grey scale images representing the Cartesian projection of the 3D-points belonging to a slice of the world (15, 20), onto their slicing plane 50, 55; so they are actually bi-dimensional views of several cross-sections of the world.
In addition to the Cartesian representation, a polar method could also be used.
To better illustrate the method, imagine that all 3D points in the shaded slices collapse onto the planes 50, 55 identified by their respective dashed or dotted trace; the result of the operation is shown in
The output example shown in
The impact of the realtime constraint of this method is determined by two parameters: number of projections and resolution of projections. It is important to highlight that this step implies the processing of M*N images at each execution loop, so it is necessary to tune both parameters in order to find a good tradeoff between, computational time, output accuracy, and point cloud density according to the available processing hardware. In practice, multicore CPU technologies allow highly parallel processing of the independent 2D image creation and profile extraction calculations.
The method allows analysis of the world as a grid, and splits the problem of terrain estimation into the analysis of several ground profiles, one for each projection 75, 80; after that, it will be possible to fuse all the information extracted from each 2D projection image, without losing information of the globality of the terrain in any step.
Once the 2D projections 75, 80 are ready, it is possible to analyze those images and extract a terrain approximation at every projection. Several methods can be used for extracting ground profiles from the projection images, including swarm intelligence algorithms. Any of the known swarm intelligence algorithms could be used. This disclosure will focus on Ant Colony Optimization. This method uses a distributed meta-heuristic for combinatorial optimization problems, inspired by the communication system of biological ants. Experimental observations show that a colony of real ants, after a transitory phase, always finds the shortest path from the nest to the food. This is achieved by depositing pheromone, an odorous substance, on the terrain to attract following ants. Arriving at a decision point, ants make a probabilistic choice based on the amount of pheromone they smell in correspondence to all the possible roads. Due to this autocatalytic process, the shortest path (the one covered in fewest steps) emerges as the one with the largest amount of pheromone. Returning to the terrain estimation problem, the goal becomes that of building one ant colony for each 2D projection (75, 80), moving pixel by pixel, and finding the optimal slope curve for each projection.
A brief summary of ACO mathematical entities is shown below.
1) A finite set A of connections λij among components xi and yj in X.
2) A cost function Γ(λij, t) with which assigns to each λij its own cost value, defined as Γλij≡Γ(λij, t) where t is a time measure.
3) A finite set of Ω(X, Λ, t) of constrains between X and Λ elements
4) A set Σ of states defined as variable length sequences of components σ=<xi, xj, . . . , xk . . . >
5) A set Σ(t)εΣ if feasible states, defined by Ω(X, Λ, t)
6) A state σl is a feasible neighbor of the state σ2 if i) both σ1 and σ2 are in Σ(t), ii) σl can be reached from σ2 in one single step; since xi is the last element of the σ2 sequence, σ1 is a neighbor of σ2 if ∃xjεX: ∃λijεΛ and σ1=<σ2, xj. The set of feasible neighbors of σ is called Nσ(t).
7) A solution ψ is an element of Σ(t) that meets some exit condition e.
8) An objective cost function Γψ which assigns a cost value to each solution reached.
The ACO algorithms are implemented by building a colony of artificial ants that tries to approximate the optimal solution of a shortest path problem in the following way:
Hence, the problem of finding an optimal projection terrain estimation must be formalized in terms of shortest path problem through a graph, where each solution is represented by a path satisfying the constraints and meeting some exit condition. In particular we have:
Focusing on motion rules and constraints, the rules determine the ants' ability to follow only a given range of slopes' crest steepness. Hence, they implicitly define what is terrain and what is not. When an ant faces a slope too steep for its motion ability, it will inevitably cut it off. Since there is a direct mapping between the projection's pixels and 3D world points, defining the maximum and minimum bounds of steepness for the pixels slopes, automatically sets the corresponding 3D world points slope's steepness limits for the mapped terrain.
According to the definition of projection images 75, 80 given earlier, each row always represents a given height z in the world reference system, while columns represent a given x or y distance, respectively for longitudinal and lateral projections 75, and 80. Regardless of the particular orientation, the aim of the ant colony is to find a mapping (i.e. function) from each column to the corresponding row, represented as a sequence (i.e. path) of (x or y; z) points. These paths define the projection curves 35 and 40. Hence, each ant has to move, on the image, from left to right, trying to connect the starting leftmost pixel with the final rightmost one, while overlapping projections of 3D points.
It can so happen that columns may be blank, due to lack of 3D points in those regions. For sensor-based data sets, objects or terrain may occlude the sensor resulting in a lack of 3D points. This is evident in
At each step, ants move from pixel to pixel. In particular, each ant can move from the current pixel to a limited subset of the neighboring (moving left to right) column's pixels (see
The random-proportional rule may be described as follows:
ax
σh is the current state
ax
σ
=Nσ
α is a parameter with which it is possible to tune the balance between edge-exploitation and pheromone-exploitation behavior of the ants
The second level consists of the so-called pseudorandom-proportional rule, using which it is possible to improve the exploitation behavior of the ants. This rule reviews the previous choice made with random-proportional, thus giving new chances to pixels with higher brightness. This is particularly useful in the final iterations, where the pheromone deposit is very strong. The destination pixel is chosen from among the same neighborhood set, made of the next column's subset pixels.
The pseudorandom-proportional rule may be described as follows:
Where q is a random variable with a uniform probability distribution, and q0 is a threshold defined as follows:
Parameter γ is used to vary the balance between global exploitation and exploration behavior.
Cost function 30, pheromone update and pheromone evaporation: once the ants reach one of the final pixels, each ant has to evaluate its own path by the cost function: the higher the traversed pixels' brightness, the lower the cost. So the path cost is inversely proportional to the average brightness accumulated over the collection of its pixels. A path formed by bright pixels costs less than a path formed by dim pixels. On the basis of the value, each ant updates the pheromone deposit 95 along its path, the lower the path's cost, the higher the ant's contribution.
The cost function 30 may be described as follows:
The pheromone deposit 95 is described as follows:
Otherwise Δkij=0 (Eq. 8)
Where Q is a fixed parameter and Lk-best is the cost of the current best solution. The pheromone update rule may be described as follows:
Where t is a time measure representing the evolution of the pheromone deposit and ρε(0,1) is the pheromone evaporation ratio.
With time, the previously deposited pheromone 95 evaporates at a given rate, in this way early paths no longer covered by recent ants will be penalized and eventually forgotten, while giving more weight to those paths (and deposits) reconfirmed and reinforced by subsequent ants.
The projections numbered in
In summary, a colony of intelligent ants is created for each projection. As ants try to find the best path connecting starting pixels to the final pixels, adopting a collaborative behavior, the best path on each projection emerges as the optimal slope estimation.
The output of the ACO algorithm is a list of points representing the corresponding projection's terrain. The points are further simplified with a polyline prior to fusion resulting in the final slice profiles.
An example of a use of the method may be object detection for human-operated, autonomous, or semi-autonomous machines. The terrain estimate process uses inlier terrain points 65 to define terrain. The outlier terrain points 70 therefore identify non-terrain. Non-terrain points may be the result of sensor noise or a plurality of objects 100. The location of the objects 100 would be identified to the machine or machine operator. The machine or machine operator would then take an action based on the objects 100 and their location. The objects 100 could be obstacles to be avoided during machine operation. The objects 100 could also be targeted by the machine or machine operator. For instance, the objects 100 could be items or material for the machine to move, or an object to be manipulated. The object 100 could also be designated as a target to be engaged or destroyed.
Another example of the use of the method may be terrain estimation for an autonomous or semi-autonomous machine. Such machines need to estimate traversability and associated cost functions. A coarse estimate of the terrain can be used for inclination or grade. Fine estimates can be used to avoid puddles and loose material. Human operators employ feed-forward techniques to optimize one or more elements (such as comfort, energy, or time) of travel. Similar techniques may be useful for autonomous machines and applying this capability for semi-autonomous machines can help with training/optimization where less skilled operators are responsible for machine controls. As an example, a terrain estimate may trigger increased fuel flow immediately before the blade engages rather than have the engine lug in response to the increased load. As another example, a terrain estimate indicating a washboard road can be used to improve ride comfort and reduce material spillage.
Still another use of the method may be to measure material in a bucket or bowl (such as a wheel tractor scraper bowl). It can also be used to estimate the volume of material in a stockpile or to help an operator manage loads within a machine.
Yet another use of the method may be to identify specific features in the environment represented by the three-dimensional data set. Mines often place material (known as berms) along the sides of haul roads and at dump sites. Terrain estimates can be used to estimate the displacement of a machine relative to these berms.
Other uses of the method may be to estimate progress towards finished contours, or to allow on-the-fly surveying. The terrain estimate can be used to plan material requirements and scheduling delivery to minimize re-handling. This can be especially useful for estimating gravel requirements to backfill around a buried pipe since the trench is an irregular shape. The terrain estimate can be used to estimate volumetric compaction (soil, landfill, paving compactors). In all cases, the output of the terrain estimate may be used immediately or stored for later use.
From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications or variations may be made without deviating from the spirit or scope of inventive features claimed herein. Other embodiments will be apparent to those skilled in the art from consideration of the specification and figures and practice of the arrangements disclosed herein. It is intended that the specification and disclosed examples be considered as exemplary only, with a true inventive scope and spirit being indicated by the following claims and their equivalents.
This application is based upon and claims the benefit of priority from U.S. Provisional Application No. 61/325,503 by Andrea Cappalunga et al., filed Apr. 19, 2010, the contents of which are expressly incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61325503 | Apr 2010 | US |