US 7084882 B1 Abstract A method for representing shapes of road segments is disclosed. The shape of a portion of road that spans at least one intersection is represented using a single continuous non-uniform B-spline. The single continuous non-uniform B-spline is divided into separate sections by knot insertion at each position corresponding to the location of a spanned intersection. The separate sections of the single continuous non-uniform B-spline are each re-parameterized into multiple separate continuous non-uniform B-splines. Then, data indicating each of the separate non-uniform B-splines is used to represent each of the corresponding road segments in the portion of road.
Claims(34) 1. A computer-implemented method of representing shapes of road segments in a computer-readable medium comprising:
using a single continuous non-uniform B-spline to represent the shapes of two road segments that connect to each other at a location that corresponds to an intersection with a third road segment;
dividing the single continuous non-uniform B-spline into two separate sections by knot insertion at a position along the single continuous non-uniform B-spline that corresponds to the location of the intersection with the third road segment;
parameterizing the two separate sections of the single continuous non-uniform B-spline into two separate non-uniform B-splines; and
storing data indicating the two separate non-uniform B-splines to represent the two road segments respectively.
2. A geographic database that includes representations of road segments formed using the method of
3. A computer-readable medium having stored thereon data representations of road segments formed using the method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method according to
9. A computer database that represents road segments located in a geographic area,
wherein road segments are represented in the database by non-uniform B-splines to indicate shapes thereof;
and wherein the non-uniform B-splines used to represent the shapes of two road segments that connect to each other at a location that corresponds to an intersection with a third road segment have a property such that a single continuous non-uniform B-spline representing the shapes of the two road segments together, if divided into two separate sections by knot insertion at the position corresponding to the location of the intersection with the third road segment and parameterized, would form the two separate non-uniform B-splines.
10. A computer-readable medium having stored thereon data representations of road segments formed using the database of
11. The database of
12. The database of
13. The database of
14. The database of
15. The database according to
16. A computer-implemented method of representing shapes of road segments in a computer-readable medium comprising:
using a single continuous non-uniform B-spline to represent the shapes of multiple segments of a road that connect to each other at locations that correspond to intersections of the road with other roads;
dividing the single continuous non-uniform B-spline into separate sections by knot insertion at positions along the single continuous non-uniform B-spline that corresponds to the locations of the intersections;
parameterizing the separate sections of the single continuous non-uniform B-spline into separate non-uniform B-splines; and
storing data indicating the separate non-uniform B-splines to represent each of the respective multiple segments of the road.
17. A geographic database that includes representations of road segments formed using the method of
18. A computer-readable medium having stored thereon data representations of road segments formed using the method of
19. The method of
20. The method of
21. The method of
22. The database of
23. The database according to
24. A computer-implemented method comprising:
parameterizing a shape of a first road segment and a second road segment into a single continuous B-spline, wherein the first road segment and the second road segment are connected to a third road segment at an intersection;
dividing the single continuous B-spline into two separate sections by knot insertion at the intersection;
re-parameterizing the two separate sections of the single continuous B-spline into two separate B-splines representing respectively a shape of the first road segment and a shape of the second road segment; and
storing data of the two separate B-splines to a cartographic database.
25. The method according to
diving the one of the two separate non-uniform B-splines into another two separate sections by knot insertion at each of the other intersections;
re-parameterizing the another two separate sections into another two separate non-uniform B-splines representing respectively a shape of two further road segments of the second road segment; and
storing data of the another two separate non-uniform B-splines to the cartographic database.
26. The method according to
storing at least portion of control points and knot values of the two separate B-spline to the cartographic database.
27. The method according to
28. The method according to
29. The method according to
30. The method of
31. The method of
32. The method according to
33. A geographic database that includes representations of road segments formed using the method of
34. A computer-readable medium having stored thereon data representations of road segments formed using the method of
Description The present application is a continuation-in-part of Ser. No. 09/729,939, filed Dec. 5, 2000, the entire disclosure of which is incorporated by reference herein. The present invention relates generally to cartographic databases, and more particularly, to the representation of geographic features using polynomial splines. Computer-based navigation systems for use on land have become available in a variety of forms and provide a variety of useful features. These types of navigation systems can be used to display maps, provide route guidance, or to help a user find locations of specific restaurants, hotels, airports, and shopping centers, for example. These navigation systems use data that represent the geographic features located in a region. The geographic features that are represented include the road network located in the region, intersections, points of interest (such as hotels, gas stations, ATMs, government buildings, etc.), lakes, golf courses, and so on. In some geographic databases, each road is represented as one or more discrete road segments, each of which is represented by a separate data entity. A representation of a road segment includes, among other things, information about its location (i.e., latitude, longitude, and possibly altitude) and shape. If a road segment is straight, it can be represented by identifying its endpoints. However, if a road is other-than-straight, additional information is required to indicate the shape of the road. One way to represent the shape of an other-than-straight linearly extending feature, such as a road segment, is to use shape points. Shape points are points through which a road segment passes between its end points. By providing the coordinates of one or more shape points, the shape of an other-than-straight road segment can be represented. There are other ways of representing other-than-straight linearly extending features. For example, linearly extending features may be represented using mathematical expressions, such as splines. Use of mathematical expressions, such as splines, may provide for a smooth and possibly more realistic way to represent linearly extending geographic features. Although use of mathematical expressions, such as splines, provides advantages, there is still room for improvement. One consideration associated with the use of splines, or other mathematical expressions for representing linearly extending geographic features, relates to the representation of intersections. Where two road segments, each represented by separate splines, connect to each other end to end, the spline that represents one of the road segments may not necessarily align with the spline that represents another road segment. In other words, there may not necessarily be a smooth transition between the splines that represent road segments that connect to each other end to end. This may occur even if the actual road segments in the real world connect to each other with a smooth transition. Accordingly, it is an objective to represent geographic features, such as road geometry, in a way that provides smooth curve geometry at intersections. According to an exemplary embodiment, a computer-readable medium that has computer readable data stored thereon for representing geographic features in a geographic region is provided. The computer readable data includes a polynomial spline representation of a geographic feature. Points of the polynomial spline representation that correspond to road intersection points are associated with a parametric value in order to divide the polynomial spline representation into segments based on the road intersection points. In another respect, the exemplary embodiment may take the form of a method for storing computer readable data for representing geographic features in a geographic region. The computer readable data includes a polynomial spline representation of a geographic feature. The method includes identifying points of the polynomial spline representation that correspond to road intersection points, and associating a knot value with each road intersection point. The method further includes storing data entities in the geographic database to represent the polynomial spline representation. In this respect, the data entities include the knot values associated with the road intersection points. In still another respect, the exemplary embodiment may take the form of a method of producing a geographic database. The method includes forming a polynomial spline that represents a geographic feature in a geographic region in which the polynomial spline is associated with a set of knot values. The method also includes determining points of the polynomial spline that correspond to road intersection points. The method further includes subdividing the polynomial spline, by performing knot-insertions at the intersection points, into individual reparameterized splines that maintains the shape of the original spline and storing data entities representing the control points and knots of the new splines in the geographic database. Any of the methods of the exemplary embodiment may be stored in the form of computer-readable data on a computer readable medium. A processing unit may then access the computer readable medium, execute the computer-readable data, and perform the methods. These as well as other features, advantages and alternatives will become apparent to those of ordinary skill in the art by reading the following detailed description, with appropriate reference to the accompanying drawings. I. Representing Geographic Features in Cartographic Databases In an exemplary embodiment, a method for representing geographic features in cartographic databases is provided. Data entities including shape points and nodes can be used to represent geographic features within a geographic region. In one embodiment, shape points and nodes comprise coordinate triples (longitude, latitude, altitude) or coordinate pairs (longitude, latitude), which represent specific locations along geographic features. (Coordinate triples and coordinate pairs are only two possible ways of representing these locations and other ways for representing locations may be used.) Nodes are special cases of shape points, representing, for example, intersections between road segments and end points of geographic features. The shape points can be included in a cartographic database used for map display. The cartographic database itself may be part of a larger geographic database, which may include other kinds of databases used for functions such as route calculation, maneuver generation, and other navigational functions. Data stored in a shape point database can be organized on a per geographic feature basis, i.e., each geographic feature is represented as a sequence of nodes and shape points. A pair of nodes and zero or more shape point entries can be associated with each geographic data entity. For entities representing straight or substantially straight geographic features, the nodes are sufficient to accurately represent the feature; and therefore, for straight geographic features, the nodes alone can be stored without shape points. Generally, for each geographic feature data entity in the shape point database, a processor can generate a corresponding set of control points and other parameters that define a “spline.” These control points and other parameters can be used to compute a spline function, which can be used to represent the geographic feature in a displayable map. A polynomial spline refers to any composite curve formed with piecewise polynomial functions representing curve sections and satisfying specified conditions at boundaries of the sections. Thus, there are many types of spline curves. For example, the polynomial spline can be any type of spline, for example, a uniform or nonuniform nonrational B-spline, Non-Uniform Rational B-Spline (NURBS), or a uniform or nonuniform Catmull-Rom spline. With spline curves, other-than-straight map features, such as curving road portions, are represented by polynomial equations whose coefficients have been determined so as to generate curves that match the shapes of the geographic features with the desired degree of accuracy. Thus, splines are a means of describing the shape of a series of points by specifying the coefficients of a polynomial equation. Referring now to the drawings, and in particular to A polynomial spline consists of piecewise polynomial functions which are joined end to end with some continuity condition imposed at the join points. The polynomial spline of Generally, the number of control points per segment of a spline is set to be less than the number of shape points per segment. This results in smaller database storage requirements. The number of control points per segment can be set to a predetermined value or fraction of the number of shape points, or alternatively, the number can be selected by a user or be dynamically computed on a per segment basis depending on the desired level of representational accuracy. A geographic feature that has a straight section and an other-than-straight section can be represented by shape points and polynomial spline control points. For example, for geographic features that have long straight sections, the straight sections can be represented using conventional linear interpolation and curved sections can be represented by splines. The shape point coordinates of the endpoints of the straight section, the control points corresponding to the curved sections and other defining parameters can be stored in a single geographic feature data entity. The points at which individual polynomial curve segments of a polynomial spline curve join together are referred to as “knots.” The segments are joined in such a way as to provide smoothness of the complete curve. A knot vector is an ordered list of non-decreasing floating point numbers that describe points along the spline curve where segments begin and end. At each interior knot, the polynomial segments on each side are constrained to have the same value of the spline function and some of its derivatives. The spline curve has a polynomial degree p (as defined by the degree of the spline function) with up to p−1 continuous derivatives at the knots of the curve. An example of a spline curve composed of cubic polynomial pieces joined so that the curve and its first and second partial derivatives are all continuous is shown in When the knot spacing is uniform, the spline is referred to as being uniform, and conversely, when the knot spacing is non-uniform, the spline is termed as a non-uniform spline. Knot spacing may be determined based on the length of the segments of the spline. For example, a straight section of a geographic feature may be represented by long spline segments, and thus may have large knot spacing. In contrast, a sharp curve of a geographic feature will be represented by short spline segments through the turn, and thus will have small knot spacing. A knot vector is usually parameterized within the range of 0 to 1, and the magnitude of each knot spacing, t A spline can be fit to the shape points and nodes representing each geographic feature by applying a least squares approximation or any other regression method (e.g., Least Trimmed Squares, Least Median of Squares, etc.) to the shape points and other parameters that define the geographic feature to generate the selected number of spline control points for each segment. Present embodiments are not limited to any particular method of performing a least squares approximation or any other regression method, such as Least Trimmed Squares, Least Median of Squares, and so on. The least squares methodology should be used with any type of spline function, including uniform B-splines, non-uniform B-splines, or Catmull-Rom splines, for example. II. Representation of Splines in a Geographic Database The spline database Furthermore, the spline database In the exemplary embodiment, the control points and knot values for respective splines and/or spline segments are arranged in an ordered sequence to simplify generation of the spline representation. For example, referring back to In another embodiment, the knot values for splines may be stored in any manner, and after the processor The intersection database IV. Method to Create Non-Uniform B-Splines Across Multiple Road Segments In an exemplary embodiment, a single non-uniform B-spline is divided into multiple splines across multiple road segments to maintain geometry continuity at locations of the represented geographic feature that represent intersections. In particular, in one embodiment, locations of the polynomial spline representation that correspond to road intersection points are represented by knot values in order to divide the polynomial spline representation into multiple segments. Since the spline may be divided arbitrarily without altering the resulting curve shape, knot-insertion may be used to split the spline into individual splines, one for each road segment. The splines constituting each road segment between the inserted knots are then re-parameterized into individual non-uniform B-splines. Thus, a single continuous and smooth (“smooth” is defined in terms of curvature of the road across the boundaries between road segments) spline is fitted across multiple road segments. Points As shown in In general, the first and last control points of a spline are chosen to be intersection points, such that a spline traverses between two points that represent intersections. However, the spline does not have to traverse between two adjacent intersections. The length of a spline, and the number of road crossing points (e.g., intersections) of the spline depend upon many factors including application-specific desired use of this data and system designer preferences. In the exemplary embodiment, the parametric values for the knots to be inserted are determined using a closest-point technique, which involves projecting a known intersection point onto the spline. For example, if intersection locations are known, as may be determined from the intersection database Using the closest point-technique, a data point from a cross-road that determines the intersection that is close to the spline is selected and projected onto the spline. If there are multiple points on the crossing road that are close to the spline, a few points near the intersection are selected and projected onto the spline. Subsequently, the cross-road data point that is closest to the spline can be selected as an estimation of the intersection point, and its closest-point parametric value on the spline is used for knot-insertion. In another embodiment, intersection locations can be determined based on crossing points between splines. For example, crossing splines can be determined from the intersection database After the knot insertions, the original spline In addition, after the knot insertions, the knot values of the three subdivided sections Data representing intersection locations can be updated to the intersection database In another embodiment, if intersection points are known, for example, by obtaining the intersection points from the intersection database In addition, the new individual splines can be associated with individual road segments and stored in a road database. For example, each of the splines Next, as shown at block The method illustrated in V. Exemplary Implementation Spline representations of geographic features according to the exemplary embodiment may be used by driver assistance systems to improve radar and vision-oriented applications. For example, this type of cartographic data can provide useful information that cannot reliably be provided by vision-oriented systems, such as speed limits, traffic and lane restrictions, or the like. In addition, road geometry information of the exemplary embodiment can be used to determine the road ahead of the vehicle around corners or beyond obstructions. Representing road geometry using polynomial splines, as described herein, provides an accurate and compact way of representing such information in databases suitable for use in driver assistance systems. Further, the exemplary embodiment provides smoothness in a spline representation across represented boundaries where two road segments physically meet. Solving this problem is helpful for applications that, for example, aid in lane keeping for vehicles or otherwise aid a vehicle in keeping its course. The vehicle path, therefore, needs to be smooth across intersection points of road segments to better provide a correct picture of a curvature of roads at an intersection, for example. It is intended that the foregoing detailed description be regarded as illustrative rather than limiting, and that it is understood that the following claims including all equivalents are intended to define the scope of the invention. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |