This application claims priority from Korean Patent Application No. 10-2016-0002082, filed on Jan. 7, 2016, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
1. Field
Apparatuses and methods consistent with exemplary embodiments relate to optimal path generation, and more particularly, to optimal path generation by using a Bezier curve.
2. Description of the Related Art
To connect two points, a Bezier curve is widely used as a flexible curve that allows unlimited adjusting of magnification. The Bezier curve may also be used to generate a movement path of a mobile robot connecting a start point and a final point to each other.
One or more exemplary embodiments provide a method and apparatus for optimal path generation, whereby a movement path having high realizability may be provided when a mobile robot is driven, by minimizing a curvature variation between a start point and a final point.
Various aspects will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the presented exemplary embodiments.
According to one or more exemplary embodiments, there is provided a method for optimal path generation. The method may include: generating a candidate path to be taken by a platform to move from a start point to a final point; splitting the candidate path into a preset number of sections; calculating a curvature variation of each of the sections; acquiring an optimal path parameter that minimizes a sum of the curvature variations, by changing a path parameter of the candidate path; and determining, as an optimal path, the candidate path corresponding to the optimal path parameter.
The generating the candidate path may include determining adjusting points based on the path parameter; and generating a Bezier curve based on the adjusting points.
The determining the adjusting points may include determining four adjusting points based on the path parameter, state information of the platform at the start point, and state information of the platform at the final point, and the generating of the Bezier curve may include generating a quintic Bezier curve based on the four adjusting points.
According to one or more exemplary embodiments, there is provided an apparatus for optimal path generation which may include: a candidate path generator configured to generate a candidate path to be taken by a platform to move from a start point to a final point; a section splitter configured to split the candidate path into a preset number of sections; a curvature variation calculator configured to calculate a curvature variation of each of the sections; an optimal path parameter acquirer configured to acquire an optimal path parameter that minimizes a sum of the curvature variations, by changing a path parameter of the candidate path; and an optimal path determiner configured to determine the candidate path corresponding to the optimal path parameter as an optimal path.
These and/or other aspects will become apparent and more readily appreciated from the following description of the exemplary embodiments, taken in conjunction with the accompanying drawings, in which:
As the inventive concept allows for various changes and numerous embodiments, particular exemplary embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the inventive concept to particular modes of practice or the presented embodiments, and it is to be appreciated that all changes, equivalents, and substitutes that do not depart from the spirit and technical scope of the inventive concept are encompassed in the inventive concept. In the description of the exemplary embodiments, certain detailed explanations of the related art are omitted when it is deemed that they may unnecessarily obscure the essence of the inventive concept.
While such terms as “first,” “second,” etc., may be used to describe various components, such components must not be limited to the above terms. The above terms are used only to distinguish one component from another.
The terms used in the present specification are merely used to describe particular embodiments, and are not intended to limit the scope of the inventive concept. An expression used in the singular encompasses the expression of the plural, unless it has a clearly different meaning in the context. In embodiments below, it is to be understood that the terms such as “including,” “having,” and “comprising” are intended to indicate the existence of the features, numbers, steps, actions, components, parts, or combinations thereof disclosed in the specification, and are not intended to preclude the possibility that one or more other features, numbers, steps, actions, components, parts, or combinations thereof may exist or may be added.
The exemplary embodiments including
Like reference numerals in the specification and drawings denote like elements, and thus their description will be omitted.
Referring to
The candidate path generator 110 generates a candidate path to be taken by a platform to move from a start point to a final point.
The platform may be a mobile robot having a predetermined length and a predetermined width.
The candidate path generator 110 may generate a candidate path to be taken by a center point of the platform to move from the start point to the final point. The candidate path generator 110 may generate a candidate path connecting the start point and the final point to each other in a Bezier curve shape.
According to an exemplary embodiment, the section splitter 120 splits the candidate path into a preset number of sections. According to an exemplary embodiment, the section splitter 120 may split the candidate path into a plurality of sections at a preset time interval. The preset time interval is defined as a section interval. According to an exemplary embodiment, the section splitter 120 may split the candidate path into a plurality of sections at a preset distance interval. The preset distance interval is defined as a section interval.
The curvature variation calculator 130 calculates a curvature variation at each of the sections of the candidate path. The curvature variation calculator 130 may calculate a curvature variation for each of the sections by using (n−1) splitting points for splitting the candidate path into n sections and curvature values at both end points of the candidate path. In this case, (n+1) points obtained by adding the (n−1) splitting points for splitting the candidate path into n sections to both end points of the candidate path are defined as curvature calculating points.
The curvature variation calculator 130 may calculate a curvature variation of a specific section by dividing a difference between a curvature of a start point of the specific section and a curvature of a final point of the specific section by the section interval. In this case, a start point of an n-th section may be an n-th curvature calculating point, and a final point the n-th section may be an (n+1)th curvature calculating point. In other words, the curvature variation calculator 130 may calculate a curvature variation of the n-th section by dividing a difference between a curvature of the n-th curvature calculating point and a curvature of the (n+1)th curvature calculating point by the section interval.
According to an exemplary embodiment, a curvature variation may always be represented as a positive number by applying an absolute value.
The optimal path parameter acquirer 140 acquires an optimal path parameter that minimizes a sum of the curvature variations, by changing a path parameter of the candidate path.
The path parameter may be a parameter required for specifying the candidate path. For example, when the candidate path is generated in a Bezier curve shape, the path parameter may be a parameter required for determining an adjusting point for specifying the Bezier curve.
According to an exemplary embodiment, the optimal path parameter acquirer 140 may acquire an optimal path parameter that minimizes a sum of the squares of the curvature variations. In this case, even when the curvature variation calculator 130 does not apply absolute values to the curvature variations, the curvature variation calculator 130 may acquire the same result. When the curvature variation calculator 130 performs a Jacobian calculation to acquire an optimal path parameter, the curvature variation calculator 130 may reduce the number of required calculations, compared with when the curvature variation calculator 130 applies absolute values to the curvature variations.
The sum of the curvature variations or the sum of the squares of the curvature variations may be used as a performance index (IP), which is an evaluation index of the candidate path. For example, the IP may be the same as Equation 1.
where J(h) may indicate the IP, n may indicate the number of sections into which the candidate path is split, cj may indicate a curvature variation at a j-th section, kj may indicate a j-th curvature calculating point, and sj may indicate the section interval.
The optimal path determiner 150 determines, as an optimal path, a candidate path corresponding to the optimal path parameter.
As such, in an optimal path generating method according to an exemplary embodiment, a high-realizable movement path may be provided by providing a path on which a curvature variation between a start point and a final point is minimized.
The candidate path generator 110 of
The adjusting point determiner 210 determines adjusting points by using the path parameter. Specifically, the adjusting point determiner 210 may determine four adjusting points by using state information of a platform at a start point, state information at the platform of a final point, and Equations 2 below.
where B0 may indicate location information of the start point, B1, B2, B3 and B4 may indicate location information of the adjusting points, B5 may indicate location information of the final point, (xs, ys, θs, κs) may indicate state information of the platform at the start point, (xf, yf, θf, κf) may indicate state information of the platform at the end point, and a, b, c, and d may indicate path parameters.
In (xs, ys, θs, κs), xs may indicate an x-coordinate of the start point, ys may indicate a y-coordinate of the start point, θs may indicate a direction of the platform at the start point, and κs may indicate a curvature at the start point.
In (xf, yf, θf, κf), xf may indicate an x-coordinate of the final point, yf may indicate a y-coordinate of the final point, θf may indicate a direction of the platform at the final point, and κf may indicate a curvature at the final point.
As such, the adjusting point determiner 210 may determine the locations of the four adjusting points B1, B2, B3 and B4 by using the state information of the platform at the start point and at the final point and the four path parameters a, b, c, and d.
The Bezier curve generator 220 generates a Bezier curve, based on the adjusting points. The Bezier curve generator 220 may generate a quintic Bezier curve by using the four adjusting points B1, B2, B3 and B4 determined by the adjusting point determiner 210.
Referring to
In operation S310, the candidate path generator 110 of
In operation S320, the section splitter 120 of
In operation S330, the curvature variation calculator 130 of
In operation S340, the optimal path parameter acquirer 140 of
In operation S350, the optimal path determiner 150 of
Referring to
In operation S410, the adjusting point determiner 210 of
In operation S420, the Bezier curve generator 220 of
Referring to
In (xs, ys, θs, κs), xs may indicate an x-coordinate of the start-point, ys may indicate a y-coordinate of the start point, θs may indicate a direction of the platform at the start point, and κs may indicate a curvature at the start point.
In (xf, yf, θf, κf), xf may indicate an x-coordinate of the final point, yf may indicate a y-coordinate of the final point, θf may indicate a direction of the platform at the final point, and κf may indicate a curvature at the final point.
A path connecting the start point B0 to the final point B5 may be generated in a quintic Bezier curve shape based on four adjusting points B1, B2, B3 and B4. The four adjusting points B1, B2, B3 and B4 may be determined according to path parameters a, b, c, and d and above Equation 2.
First, as shown in
The candidate path 610a may be generated using a preset path parameter.
Next, as shown in
In this case, curvatures 621b and 622b of a start point 611 and a final point 612 of the optimal path 610b are smaller than curvatures 621a and 622a of a start point 611 and a final point 612 of the candidate path 610a, and a curvature variation curve 630b of the optimal path 610b has a gentler inclination at the start point 611 and the end point 612 than a curvature variation curve 630a of the candidate path 610a.
As such, curvature variation is minimized at the start point 611 and the end point 612 of the optimal path 610b, according to an exemplary embodiment, and thus the platform has high realizability.
According to a method and an apparatus for optimal path generation of the above exemplary embodiments, a movement path having high realizability when a mobile robot is driven may be provided by minimizing a curvature variation between a start point and a final point of the mobile robot.
The above-described exemplary embodiment may be implemented in the form of a computer program executable via various elements on a computer. Such a computer program may be recorded on a computer readable medium. Examples of the computer readable medium include a magnetic medium (e.g., a hard disk, a floppy disk, or a magnetic tape), an optical medium (e.g., a compact disk-read-only memory (CD-ROM) or a digital versatile disk (DVD), a magneto-optical medium (e.g., a floptical disk), and a hardware device specially configured to store and execute program commands (e.g., a ROM, a random-access memory (RAM), or a flash memory). Examples of the computer readable medium may further include an intangible medium that may be transmitted over a network. For example, the computer readable medium may be a medium implemented as software or an application that may be transmitted and distributed over a network.
The computer program may be specially designed and configured for the above exemplary embodiments or may be well-known to and be usable by one of ordinary skill in the art of computer software. Examples of the computer program include advanced language codes that can be executed by a computer by using an interpreter or the like as well as machine language codes made by a compiler.
The particular implementations shown and described herein are illustrative exemplary embodiments and are not intended to otherwise limit the scope of the inventive concept in any way. For the sake of brevity, conventional electronics, control systems, software development and other functional aspects of the systems may not be described in detail. Furthermore, the connecting lines, or connectors shown in the various figures presented are intended to represent exemplary functional relationships and/or physical or logical couplings between the various elements. It should be noted that many alternative or additional functional relationships, physical connections or logical connections may be present in a practical apparatus. Moreover, no item or component is essential to the practice of the inventive concept unless the element is specifically described as “essential” or “critical”.
The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other embodiments.
While the inventive concept has been particularly shown and described with reference to the above exemplary embodiments, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the inventive concept as defined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2016-0002082 | Jan 2016 | KR | national |
Number | Name | Date | Kind |
---|---|---|---|
20090276194 | Kidera | Nov 2009 | A1 |
20100076640 | Maekawa | Mar 2010 | A1 |
Number | Date | Country |
---|---|---|
2010-73080 | Apr 2010 | JP |
2014-26516 | Feb 2014 | JP |
10-2012-0098152 | Sep 2012 | KR |
Entry |
---|
Elbanhawi, M., Simic, M., & Jazar, R. N. (2015). Continuous path smoothing for car-like robots using B-spline curves. Journal of Intelligent & Robotic Systems, 80, 23-56. doi:http://dx.doi.org/10.1007/s10846-014-0172-0 (Year: 2015). |
Number | Date | Country | |
---|---|---|---|
20170201457 A1 | Jul 2017 | US |