This article proposes a computationally effective motion planning algorithm for autonomous ground vehicles operating in a semi-structured environment with a mission specified by waypoints, corridor widths and obstacles. The algorithm switches between two kinds of planners, (i) static planners and (ii) moving obstacle avoidance manoeuvre planners, depending on the mobility of any detected obstacles. While the first is broken down into a path planner and a controller, the second generates a sequence of controls without global path planning. Each subsystem is implemented as follows. The path planner produces an optimal piecewise linear path by applying a variant of cell decomposition and dynamic programming. The piecewise linear path is smoothed by Bézier curves such that the maximum curvatures of the curves are minimized. The controller calculates the highest allowable velocity profile along the path, consistent with the limits on both tangential and radial acceleration and the steering command for the vehicle to track the trajectory using a pure pursuit method. The moving obstacle avoidance manoeuvre produces a sequence of time-optimal local velocities, by minimizing the cost as determined by the safety of the current velocity against obstacles in the velocity obstacle paradigm and the deviation of the current velocity relative to the desired velocity, to satisfy the waypoint constraint. The algorithms are shown to be robust and computationally efficient, and to demonstrate a viable methodology for autonomous vehicle control in the presence of unknown obstacles.
Exploitation of the versatility of autonomous vehicles for academic, industrial and military applications will have a profound effect on our collective future. Unmanned ground vehicles (UGVs), when integrated into our vehicle-centric lives, have some very promising applications. One such application is demonstrated by vehicles designed for the Defence Advanced Research Projects Agency Urban Challenge (DUC) [1, 2].
Motivations
This work is motivated by the applications of UGVs operating on highways or racecourses. For such applications of UGVs to be viable, it is imperative that a safe motion path should be generated in real-time. To achieve this goal, the autonomous motion planning system should handle not only global path planning but also local obstacle avoidance. The development of wireless technology and a ubiquitous data/computing environment enables the UGV to easily obtain the required information for global path planning, such as GPS coordinates and/or road information, at any location and at any time. As the vehicle follows this globally planned path based on high-level information, it is necessary to detect and safely miss local obstacles, such as pedestrians, debris or other cars on the road. In the real world, the local environment of the vehicle is unknown and dynamically changing due to limited vehicle sensor range, making it critical for obstacle avoidance to be performed within very tight time bounds. This research proposes a computationally efficient motion planing algorithm for the UGV to operate in this type of cluttered environment.
Related Works
A significant amount of work has been dedicated to the problem of motion planning over recent decades.
Despite many external differences, the various path planning algorithms can be formulated into queries as graph searches, in which discrete robot states (vertices) are connected by motion segments (edges). Adequate techniques for constructing search graphs are selected depending on the type of map: (i) feature-based and (ii) location-based. The feature-based maps specify the shapes and locations of objects in the environment. While feature representation is compact and makes it easier to adjust the position of an object, it may be very difficult to update unknown environments in real-time due to the computational complexity involved in recognizing features. Visibility graph-type [3] approaches produce the shortest Euclidean paths in the map with polygonal obstacles. The method has been widely used to implement path planners for mobile robots [3, 4]. The Voronoi diagram approach, introduced by Ó'Dúnlaing et al. [5], provides a retracted configuration space that maximizes the clearance between the robot and obstacles. Sahraei et al. [6] and Choi et al. [7] have presented a motion planning algorithm for omnidirectional vehicles by applying the Voronoi diagram method in combination with Dijkstra's shortest path search algorithm.
Another approach, called cell decomposition, consists of decomposing the vehicle's free space (Cfree) into a collection of non-overlapping cells and constructing the connectivity graph between cells. The concept of cell decomposition has been extended into a large number of path planning techniques. Chatila [8] applied an exact decomposition of the workspace into convex cells for motion planning with incomplete knowledge for a mobile robot. Avnaim et al. proposed a variant of cell decomposition to plan the path of the vehicle among polygonal obstacles by decomposing Cfree's boundary rather than Cfree. Lingelbach [9] combined cell composition with probabilistic sampling to obtain a method called Probabilistic Cell Decomposition.
Another type of map is location-based. A classical map representation known as occupancy grid map is location-based. The map assigns to each coordinate a binary value which indicates whether or not a location is occupied with an object. Occupancy grid maps are an efficient means for quickly updating any unknown local terrain surrounding the robot, but they tend to pay the price of large memory requirements. While conventional grid-based path planners use discrete state transitions connecting centre points of grid cells so that the robot's motion is constrained to a small set of headings, Ferguson and Stentz used linear interpolation to calculate accurate path cost estimates for arbitrary positions within each grid cell in order to produce paths with a range of continuous headings [10]. Pivtoraiko and Kelly efficiently converted occupancy grid maps into graph representations for differentially constrained motion queries [11]. The search graphs were constructed by connecting a finite set of feasible motion segments between repeating pairs of discrete robot states.
Performing search algorithms on the resulting graphs may produce free paths. A*, proposed by Hart [12], is one of the most widely used search algorithms in path planning. Most of the DUC teams [1, 2] have demonstrated robust path generation by adapting A* or its variants, such as [13, 14]. While A* is a deterministic search, rapidly-exploring random trees (RRT), introduced by LaValle and Kuffner [15], is one of the most popular probabilistic search algorithms. Randomized approaches are thought to be incomplete but nonetheless exhibit effectiveness in solving many challenging problems, ranging from autonomous navigation [16] to robotic manipulation [17]. When it is possible to give the robot maps in advance, the search performance can be further improved by applying dynamic programming (DP) which pre-calculates and reuses the shortest path information on the maps provided. Suh [18] placed a sequence of dividing lines to partition a free space (Cfree) and discretized the lines into a finite number of points. Afterwards, the optimal path was constructed by each point determined using DP on each line. Barraquand [19] discussed potential-based DP applied to various submanifolds of the configuration space. Flint [20] proposed a model of a cooperative path planning system for multiple autonomous vehicles within the framework of a DP decision process.
Even though many path search algorithms [10, 13, 14] provide computationally efficient methods in discrete state spaces, the resulting paths tend not to be smooth (piecewise linear) and, hence, do not indicate the kinematic feasibility of the robot. It is necessary to smooth the paths. The B-spline is a well-known parametric curve for smoothing a linear path. The continuity of the derivatives of a given order at the joint nodes between elementary segments leads to smoothness. Many researchers have come up with B-spline-based path planning methods. However, when spline methods are applied to a piecewise linear path, there is no guarantee of a collision-free path in a cluttered environment [21]. Since B-splines exhibit a high degree of dependency between their elementary segments, it is difficult to find an efficient way to adjust the path such that it misses a colliding obstacle. Most approaches proposed so far manually move the control points until the path misses the obstacle [4, 21]. To avoid this inefficiency, Bézier curves have been used for path smoothing. Yang and Sukkarieh et al. [21] used cubic Bézier spiral curves to produce obstacle avoiding curvature continuous paths. Choi et al. [22] produced curvature continuous piecewise Bézier curve paths by minimizing the cost determined by arc length and curvature under a boundary constraint in Cfree.
One of the most challenging problems in autonomous motion planning may be moving obstacle avoidance. Fiorini [23] proposed the concept of a velocity obstacle (VO), which is the set of velocities that leads to a collision with an obstacle at some moment in time. Variations of the concept have been discussed. For example, the nonlinear velocity obstacle (NLVO) generalizes (VO) to obstacles moving along arbitrary trajectories [24]. The reciprocal velocity obstacle (RVO) was proposed for multi-agent navigation. RVO takes into account the reactive behaviour of the other agents to guarantee collision- and oscillation-free motions for each agent [25]. Velocity obstacles remain an ongoing area of robot navigation research.
Problem Statement
The problem we address here is formulated as follows. Consider the motion planning problem of an autonomous ground vehicle to operate in the route in-bounds area specified by a sequence of waypoints W = {w1, …, wN} and corridor widths between two successive waypoints L = {l1,…, lN-1}, and filled with unknown obstacles O = {o1,…, oM}, as shown in Figure 1. We assume that the vehicle is given the road information W, L in advance. This may be legitimate in real world applications equipped with mobile computing systems; however, the local obstacles O surrounding a vehicle are unknown and dynamically changing in the real world.
A mission route in-bounds area specified by five waypoints and four corridor widths and containing three obstacles
The motion of the vehicle is modelled by z = (x, y,ψ)T, the state, and u = (v,k)T, the control vector, where (x,y) and ψ represent the position and orientation, and v and k are the longitudinal velocity and the instantaneous curvature of the vehicle (Figure 2). Then, the kinematic equation of the vehicle is given by:
Schematic drawing of dynamic model of vehicle motion
The control signal is bounded due to the limits on the tangential and radial acceleration, atMax and arMax:
System Architecture
Our goal is to develop and implement a computationally efficient algorithm for the real-time navigation of a vehicle operating in the mission route specified by W, L, O. Figure 3 shows our autonomous navigation system architecture, which exploits two kinds of motion planners - namely, static planners and moving obstacle avoidance manoeuvre planners - in a mutually exclusive way, depending on the mobilities of the detected obstacles.
The autonomous navigation system architecture
When the vehicle operates in a stationary workspace, a classic motion planner which combines a path planner and a controller will be selected. Given the free configuration space Cfree determined by W, L, O, an initial state zinit and a goal state zgoal of the vehicle, the path planner produces a free path Γ:
subject to the kinodynamic constraints (1) and (2) and the boundary constraint:
(Section 2 presents the path planning algorithm in detail.)
The basic task of the controller is to generate a control command u to be exerted by the actuator such that the vehicle follows the path Γ. Typically, the transformation is divided into two steps. The first step, called trajectory generation, computes the time dependence of the continuous sequence of states by determining velocity profile along γ. Prior to motion execution, the output is fed into the next step as the desired trajectory zd(t). The second step, called trajectory tracking, computes the control command from the deviation of the current state zs relative to zd, such that the vehicle's actuator performs the desired motion. Iteratively, zs is fed back into the controller to compute u, as illustrated in Figure 3. (Section 3 details the implementation of the controller.)
While the static obstacle avoidance manoeuvre has the advantage of breaking down the motion planning problem into clearly defined sub-problems, it may be inefficient when the vehicle operates in a dynamic workspace among mobile obstacles, and when the task to be accomplished is within tight time bounds. In such cases, it is more efficient to incorporate the dynamic constraint of the vehicle during motion planning to produce time-optimal motions for execution, as detailed in Section 4
Contributions
This article demonstrates significant contributions in kinodynamic motion planning for UGVs operating in a semi-structured environment.
To deal with the path planning problem addressed in Section 1.3, we propose an efficient algorithm which works better than the widely-known A* or RRT as applied to occupancy grid maps, for the following reasons: (i) Classical A* and RRT incrementally construct search graphs by using discrete motion primitives. While these methods have been proven to be efficient for many path planning problems in unknown environments, they have the drawback of requiring a relatively large number of variables to convert grid maps into graphs. Since the complexity of a search increases as the size of the graph increases, incremental methods may be inadequate for application to large environments, such as MR, which we address. On the other hand, our method converts a feature-based map W, L into a more compact graph representation by applying cell decomposition (CD) and, hence, reducing complexity. The implementation of CD is enabled by the assumption that the vehicle is given feature-based maps in advance. (ii) In the context of re-planning, algorithms such as A* and RRT compute the shortest paths from scratch. On the other hand, our algorithm applies dynamic programming (DP) for offline computation and to reuse the globally shortest path information, thereby reducing the computation time used for re-planning. D* – Lite [13], a variant of A*, updates the knowledge of the local environment and reuses information from previous searches to find solutions. However, the size of the updated information and the degree of complexity of re-planning for grid maps remain greater than those of our method. The uniqueness of our method is to use cutting edges determined by dividing parameters on boundary of the Cfree so that a relatively large environment is represented by a few variables. Every time the vehicle detects obstacles, Cfree is efficiently re-decomposed using the edges. Incorporating DP with the graph efficiently generates smooth and safe paths. (Section 2.1–2.2.)
For the task of path smoothing with an obstacle avoidance constraint, many of the approaches proposed so far manually move the control points of splines until the path misses the obstacle [4, 21]. Meanwhile, this paper provides analytic solutions to minimize the maximum curvature of the smoothing curves while satisfying the constraint. (Section 2.3)
The analysis on the constrained curvature minmax problem is effectively incorporated to generate the highest admissible velocity profile along reference paths, consistent with the vehicle's dynamic constraint. (Section 3)
This paper also proposes a velocity obstacle-based (VO-based) manoeuvre for real-time moving obstacle avoidance. A common property of VO-based algorithms is that the velocity of the vehicle should be selected from or toward the outside of VO regions to avoid obstacles. The algorithm proposed here calculates a set of safe velocities in discrete time by minimizing the cost expressed in terms of expected collision times and the safety of the current velocity against obstacles in the VO paradigm. While previous work has generated safe motions in free space, it is demonstrated that the algorithm is applicable to the avoidance of moving obstacles with waypoints and corridor constraints. (Section 4)
Path Planning
This section proposes a computationally efficient path planning algorithm to satisfy the mission route (MR) constraint.
The algorithm uses cell decomposition to convert MR into a graph composed of a finite set of points cutting the MR (in Section 2.1). Next, dynamic programming (DP) is applied to search the sequence of points constructing the shortest path (in Section 2.2). DP allows the shortest path information on the graph to be pre-calculated and reused and, thereby, reduces the re-planning time. Since the output of the path searching method is a piecewise linear path which violates the nonholonomic nature of the vehicle, it is necessary to smooth the path. We present an efficient path smoothing method based on Bézier curves (in Section 2.3). Finally, we present the re-planning process as knowledge of local space changes due to newly detected obstacles (in Section 2.4). The set of cutting points is used to re-decompose Cfree. Incorporating DP with the modified graph generates smooth and safe paths within tight time bounds.
Route Decomposition
The constrained in-bounds area S (Figure 1) is defined as of the DARPA Grand Challenge 2005. According to the challenge's rule, S can be represented as the union of the route segments denoted by Gi, i = 1, …, N − 1. The i-th segment Gi is constructed by inflating wiwi+1 by li, as shown in Figure 4(a). Let us introduce additional notation by referring to the figure. The inside (or outside) boundary line segment of Gi is denoted by aiinbiin (or aioutbiout). The pivot point is the intersection point of the two successive inside boundary line segments.
An example of the route decomposition
Note that there is an intersection area of two successive route segments. This is a poor structure for the proposed path planning algorithm presented in Section 2.2, because the algorithm applies dynamic programming. That is, the path planning problem is broken down into sub-problems to compute the points constructing the optimal path in each segment comprising S. Hence, it is desirable to decompose S into a finite number of non-overlapping and non-empty cells, Sj, j = 1, …, 2N − 3. To avoid confusion with the route segment Gi, we refer to Sj as the route cell. The cell is constructed by cutting each route segment Gi with two line segments ciinciout and diindiout, called the barricades, as shown in Figure 4(b). Both of the line segments cut the rectangle aiinbiinbioutaiout across the centre line wiwi+1. None of the four points lie inside any route segment. Under the constraints, ciinciout and diindiout are determined such that the area of the polygon ciincioutdioutdiin is maximized.
Figure 4(c) shows the resulting partition of S. S2i-1 called the straight cell, is bounded by the polygon ciincioutdioutdiin at the straight area between wi and wi+1. S2i, called the corner cell, is bounded by the least restrictive boundary of diindiout, ci+1inci+1out, and the larger circular arcs bioutwi+1biin and ai+1inwi+1ai+1out at the corner area around wi+1. As a result, the total number of cells in the route is 2N − 3.
Consider the edge that connects one point on the left outer boundary and the other on the right of the route cell, as shown in Figure 5. Since the edge cuts S across the centre line that connects two successive waypoints, it is called the cutting edge, and the reference path must cross over the edge to satisfy the corridor constraint. Let ekl and erk denote the two points to construct the cutting edge, on the left and on the right outer boundaries of Sk, respectively. The points are generated by dividing each boundary with the same ratio, τ ∊ (0,1). Given τ, the points are denoted as ekl (τ) and ekr (τ). Figure 5 shows the geometry of the points for each type of cell. Since the left and the right outer boundaries of the straight cell S2i-1 are line segments, cildil and cirdir (Figure 5(b)), its cutting edge points for τ are represented as:
Definition of cutting edges depending on types of cells
Unlike the straight cell, the left and the right outer boundaries of the corner cell S2i are a circular arc, and . To represent the edge points, let ζil and ζir denote the headings of the vectors dil − wi+1 and dir − wi+1. Let ϕil 0 and ϕir > 0 denote the central angles of and (Figure 5(a)). Also, let T(θ) denote the unit vector corresponding to the angle θ. The edge points can be represented in terms of the notations:
Note that when the pivot point exists, e2iin (τ) is set to the point for all τ (Figure 5(c)).
It is straightforward that, as τ varies from 0 to 1, the cutting edge ekl (τ)erk (τ) sweeps the containing cell Sk. So, every point inside of S, denoted by r, can be considered to be on the cutting edge elk (τ)erk (τ) specified by the three-tuple (k, τ, ζ), in which k is the index of the containing route cell and τ and ζ are the longitudinal and lateral ratios of the point over the cell, such that:
Primitive Path Search
The next step is to generate the piecewise linear path, namely the primitive path (PP), on the decomposed space.
Let denote the sequence of nodes to construct the PP. The first point and the last point must be set equal to the initial position s and goal position t:
The intermediate nodes r2,…,rnr-1 can be represented in terms of a series of parameters to specify a point on a cutting edge in the ki-th route cell, (ki, τi, ζi), as in (6):
Figure 6 shows an example of PP. In the route, (k1,k2,k3) = (2,4,6), τi = 0.5 and ςi = 0.5 for all i = 1,2,3 determine the intermediate points of ℛ (black circles).
An example of the primitive path's construction
To apply dynamic programming (DP) in order to compute the optimal nodes to construct the PP, it is necessary to quantize the locations of the nodes within S. So, let ri(j,k) denote the discretized point on the cutting edge eil (τj)eir (τj):
where ne is the number of discretized cutting edges in the cell Si and np is the number of discretized points per edge eil (τj)eir(τj). In this paper, τj and ςk are equally spaced for simplicity. Figures 7(a) and 7(b) show examples of the sampling with 8 discrete points on each 3 cutting edges: np = 8 and ne = 3. An important matter is how to select np. A larger np can give better completeness, but it increases the complexity of DP. Empirically, we found that the number selected by separating the cutting the edge with half the vehicle width works fine unless the corridor width is too large.
Discretization of cutting edges. Dots on each edge indicate the sampled points.
Next, PP is constructed by connecting one of the discretized points in each corner cell with s and t. We denote the sequence of groups of points as ℭ, namely the channel:
where each element of the channel, gi, is called the i-th stage, and where nc is the total number of stages. The stages from g2 to gnc-1 indicate the groups of sample points in the corner cell from S2 to S2N-4:
where r2i-2(j,k) is given by (7). The index of gi, hi is associated with (j, k) such that:
As such, gi(hi) is called gate [18]. Note that M = nenp is the total number of the gates on gi. For notational convenience, s and t are treated as the only gates on g1 and gnc, respectively. That is,
Given a channel, PP can be represented in terms of the combination of gate indices, denoted by 𝒢 from g1 to gnc:
So, the primitive path ℛ is uniquely defined by ℭ and G:
The optimal gate set G* among all G is obtained by minimizing the performance index given by:
where Ji is the cost of the path segment, is represented as:
The terms determining (9) are defined as follows. Li is the arc length of gi(hi)gi+1(hi+1). Ci is the minimum distance between gi(hi)gi+1(hi+1) and the boundary of S. Ki is the minimized maximum curvature of the curve to smooth gi(hi)gi+1(hi+1) and gi+1(hi+1)gi+2(hi+2) (detailed in the next subsection). They are normalized into non-dimensional variables , and , which represent (9) such that:
That is, the arc length is scaled by ||s − t||, the distance between the initial and goal position. Proximity to the obstacles is scaled by maxili/2, the maximum of half the corridor widths. The curvature is scaled by κmax, the maximum admissible curvature of the vehicle. The normalized variables are tuned by weighing the factors cl, cc, ck ∊ ℝ+. If any part of gi(hi)gi+1(hi+1) is outside the route in-bounds area S, then the cost of the segment is set to infinity.
The optimal gates set G* is computed such that its corresponding path has the minimum cost of (8). This paper applies DP to obtain G*. The optimization procedure goes backwards from to g1. Since the planned path ends at , every gate on gnc-1 must point to gnc(1). That is, the next gate pointer of gnc-1 (hnc-1), denoted by dnc-1 (hnc-1), is given by:
The optimal cost at hnc-1 on gnc-1 to gnc (1), denoted by is given by:
Once Jnc-1* for all hnc-1 are computed, the optimal cost at hnc-2 on gnc-2 to gnc(1) is given by:
The next pointer dnc-2(hnc-2) will be the hnc-1 that leads to the minimum value of [·] in (11). This procedure is repeated using (11) and decrementing the subscripts by one until one. Next, 𝒢* is obtained by taking the pointers from 1 to nc − 1, in order:
Figure 8 shows the resulting optimal PPs (dotted line segments) by turning on just one of three weights cl, cc or ck in the cost function (9) for an identical S. (The PPs were smoothed (solid curves) by applying the method introduced in the next subsection.) The resulting paths clearly expose the effect of each term. Figure 8(a) shows the minimum length path by setting (cl, cc, ck) = (1,0,0). Figure 8(b) shows the maximum clearance path by setting (cl, cc, ck) = (0,1,0). Finally, Figure 8(c) shows the minimum curvature path by setting (cl, cc, ck) = (0,0,1).
The resulting optimal paths depending on the combination of weighing factors
Finally, let us discuss the complexity of the DP algorithm. It is important to notice that the optimal cost from each gate to the goal is obtained by evaluating the cost function (9) plus the optimal costs of the gates one step closer to the goal, as in (11). For the first and last two adjacent gate stages, there are M pairs of gates. For the other adjacent gate stages, there are M2 pairs of gates. Therefore, the total number of pairs is 2M + (nc − 2)M2 and the cost function is evaluated for each pair. Note that the asymptotic complexity is O(ncM2) but that the computational cost is very low because the cost function (9) is in closed-form.
Path Smoothing
PP is discontinuous in the first derivative at each intermediate node (Figure 6), and thus does not guarantee kinematic feasibility of the robot in tracking the path. It is thus necessary to smooth PP so that it is feasible. We make a smooth connection at an intermediate node of PP by using a quadratic Bézier curve Q(λ), which is determined by three control points q0, q1, q2 such that:
Figure 9 visualizes the method. The curve to smooth two line segments ri, ri+1 and ri+1ri+2 is denoted by Q[i] with its control points q0[i],q1[i],q2 [i]. Bézier curves have the property of being tangent to the lines between the first two and the last two control points [26]. So, we set q1 [i] equal to the joint node ri+1 and choose q0[i] and q2[i] on the line segments riri+1 and ri+1ri+2. As a result, the curve is connected to the remaining path segments and is continuous in the first derivative at its end nodes.
Path smoothing: Each node of a piecewise linear path is smoothed by a quadratic Bézier curve
To prevent each curve from overlapping any other, the end positions are bounded by:
From now on, let us drop the index [i] for simple notation. With the constraints set out above, Q has two degrees of freedom, represented as (α, β), the lengths between control points:
Bézier curves have another useful property of being within the convex hull of their control points [26]. This property yields that, if lies within the constrained in-bounds area S, then Q determined by any (α, β) subject to (12) is collision-free. Otherwise, to guide Q within S, it is necessary to find an additional point such that is the tightest tetragonal concave polygon inside S, as shown in Figure 9. In order to give smoothness to the resulting path, we should calculate (α*, β*), which minimizes the maximum curvature of Q with the boundary constraint. Our prior work [27] provides Algorithm 1 for finding the optimal solution:
Algorithm 1 Compute (α*, β*) minimizing the maximum curvature of Q with the obstacle avoidance constraint. [27]
Require:, and .
Ensure: κmax(α*, β*) is the minimum of the maximum curvatures of all Q that lies within .
if is collision-free or or or or thenelse ifthenelseend if
The number of nodes to construct PP, nr, has relevance to the smoothness of the resulting path. Figure 10 shows examples of the resulting smoothed paths (SP) for an identical S. In each figure in the left column, the dashed line segments and bold solid curves indicate PPs and their SPs. In Figure 10(a), PP is constructed by 5 nodes. Each intermediate node is chosen from each corner cell S2i and is determined by cutting the edge parameters τi = 0.5 and ςi = 0.5 for all i = 1,2,3. The PP of Figure 10(c) is constructed by adding each node selected from each straight cell with τ = 0.5 and ς = 0.5 to the PP in Figure 10(a). The last PP in Figure 10(e) is constructed by adding two nodes selected from each cell with (τ, ς) = (0.25,0.5) and (0.75,0.5) to the PP in Figure 10(c).
Left column: The smoothed paths (bold solid curves) for primitive paths (dashed line segments). Right column: The curvature κ along the paths.
It is important to notice that as the number of nodes becomes larger, SP converges towards PP. As a result, SP tends to have a sharper corner around the nodes. This is clearly shown in the plots of the curvatures along the SPs in Figure 10(b), 10(d) and 10(f). To generate a smooth path, therefore, it is desirable to construct PP using as few nodes as possible. Intuitively, each corner of S would require a change of each curvature. So, without considering obstacles, PP is constructed by selecting one node in each corner cell, as in Figure 10(a).
Static Obstacle Avoidance
Let us extend the introduced path planning to consider static obstacles and the initial/final heading constraints. Let v0 and vf denote the initial and final velocities. For the sake of simplicity, we assume that the shapes of all obstacles can be bounded by a circle of appropriate radius. The path planning problem is considered in Cobstacle such that the vehicle is reduced to a point by inflating the obstacle radius to half the vehicle width.
The first step is to set gate stages. To satisfy the initial (or final) heading constraint, a finite number of gates are generated on the line segment that originates at s (or t) with a length of dv and pointed along with v0 (or vf), as shown in Figure 11(a). If the line segment intersects with the outer boundary, it is truncated by the intersection point, as shown in Figure 11(b). The gates within the same cell are grouped into a single stage.
Gate stages and channels are constructed to produce a safe path over the mission route (MR) with static obstacles
Recall that a cutting edge is specified by the longitudinal position ratio τ ∊ [0, 1] between two barricades, as shown in Figure 5. So, the cutting edge that passes through the centre point of each obstacle is determined by inversely finding the τ corresponding to the point. Intuitively, the robot may require a curved trajectory to bypass each obstacle. The members of the set of gates on each cutting edge passing through an obstacle are assigned together as an individual stage. A finite number of gates are generated in each corner cell such that they do not intersect with any obstacle, as in the previous section. Figure 11(c) shows the path obtained by applying the algorithm, presented in Section 2.2, on the generated stages. Note that when an obstacle intersects with a corner cell, the gate stage of the cell is replaced by the points on the line segment through the obstacle.
In the real world, many path planning problems are for an unknown and dynamically changing environment, due to sensor limitations. Let us consider the path planning problem of a robot that has sensors capable of detecting obstacles within a limited range. We assume that the parameters W and L that specify the mission route S are initially given. In the problem, every time obstacles that intersect the pre-calculated reference path are detected, the robot must re-plan the path in order to avoid them.
Recall that two successive line segments of PP are smoothed by a quadratic Bézier curve bounded by the tetragonal polygon (Figure 9). Similarly, every time an obstacle is added to Cobstacle, as detected, it is necessary to devise a new method to construct the tightest tetragonal polygon to avoid the obstacles. Figure 12 shows the geometry of the problem. For the obstacles that intersect the triangle , tangential lines are drawn from and . Thus, p is determined by the intersection of two tangential lines that have the smallest heading differential from and .
Given on PP, the obstacle avoiding polygon is determined by two tangential lines from and
Figure 13 shows the snapshots of the re-planning process, consisting of a known mission and 3 unknown obstacles. The sensor detection range is illustrated by the light shaded region in the figure. An obstacle is assumed to be detected if the centre point of it lies within the sensor range cone. Given the initial information to specify the mission route in-bound area, the reference path is planned using the algorithm presented in Section 2.2 (Figure 13(a)). Since the robot sensor does not detect any obstacles, all the gate stages except for the first and the last are created in corner route cells. Thus, there is only one channel (g1,g2,g3,g4,g5). The subscripts of the stages are assigned in order along the centre lines connecting waypoints from w1 to wN. At the bottom of the figure is the connectivity graph representing the adjacency relation between stages. Each vertex represents the subscript of a stage, and the stages in neighbouring cells are connected. When a new obstacle is detected as the robot moves down the reference path, the vehicle calculates whether the path intersects with the detected obstacle. If so, the path is re-planned by re-applying the algorithm. In the re-planned process, zinit is replaced with the current state of the robot and the gate sets are created for the newly detected obstacle and the current state (Figure 13(b)). The beauty of DP is that the information about the optimal paths further ahead of the obstacle can be reused for re-planning the safe path. When the robot detects an obstacle that does not intersect the path, it keeps tracking the path. This process is repeatedly performed until the vehicle reaches t (Figure 13(c)).
Snapshots of static obstacle avoidance in a semi-structured environment, using DP
Control
Given a reference path produced by the path planner, the trajectory generator computes the desired states as a function of time by determining a velocity profile along the path. Lepetic et al. [28] have proposed the highest allowable overall velocity profile scheme along a spline-based path with the acceleration limits of the robot, (2). We extend this method along the Bézier curve-based path with acceleration limits as follows.
The maximum curvature of a quadratic Bézier curve Q specified by α = ||q0 − q1||, β = ||q2 − q1|| and θ = π − ∠q0q1q2 is determined by the Bézier parameter λ* given by:
such that:
which has been derived in [27]. Q (λ*), the point which has the maximum magnitude of curvature, is called the turning point (TP), as shown in Figure 14(a). Since TP attains a local maximum curvature, the velocity at the point should be the lowest, locally (i.e., the tangential acceleration is 0). Before and after a TP, the vehicle can move faster because the curvature is smaller than at the TP. In other words, before and after the TP, the vehicle must tangentially decelerate and accelerate, respectively [28]. Calculate the maximum allowable velocity at TP considering the limit on radial acceleration given by (2). Leaving from the point along the planned path, the velocity must vary as maximally allowed by the tangential and radial acceleration constraints with the local curvature. The maximum velocity profiles are calculated from s in a forward direction and from t in a backwards direction, along the path. The highest allowable overall velocity profile is determined as the minimum of all velocity profiles, as indicated by bold curves in Figure 14(b).
The highest allowable velocity profile computation
The steering command to track the desired trajectory is generated by applying the pure pursuit-based method [29]:
where L1 is the look-ahead distance at which the reference point is on the desired path in front of the vehicle. η determines the central angle of the circular arc trajectory of the vehicle at each time step. (See Figure 15.) An important choice in the guidance law is L1. Park et al. have provided a linear system analysis to show that L1 must be less than about a quarter of Lp (the wavelength with the highest frequency content in the desired path) for the vehicle to accurately follow the desired path [29].
The path planning algorithm proposed in Sections 2 and 3 maintains a balance between path optimality and computational efficiency in dealing with static obstacles. However, when the vehicle operates in a workspace filled with mobile obstacles, computational efficiency may become more crucial than motion optimality for the safety of the vehicle. This section proposes a VO-based manoeuvre for real-time moving obstacle avoidance.
Velocity Obstacle
The velocity obstacle [23], loosely stated, should match the relative velocity of the obstacle and the robot such that the robot will miss the obstacle if neither change their relative velocities. This is a set of robot's velocities that will produce a “safe escape” from the obstacle.
Let A and B denote the robot and a moving obstacle, respectively. They are considered in Cobstacle for A due to B so that A is reduced to a point, vA and vB denote the velocities of A and B. The relative collision cone CCBA of B to A is formed by the set of the relative velocity of A, vA − vB, which is guaranteed to cause a collision between A and B [23]. Assuming a constant velocity, the velocity obstacle VOBA is obtained by translating CCBA of the vector vB. So, any velocity of A, vA that remains within VOBA will result in a collision, at some moment in time, with B. VOBA is represented as follows [25]:
where ρ(p,v) denotes the ray originating at p and in line with v.
Figure 16(a) shows the geometry of the Velocity Obstacle. When vA lies inside of VOBA, tc, the time to collision can be calculated by equating ρ(A, vA − vB) and ∂B, the boundary of B [25]:
The paradigm of Velocity Obstacle
To estimate the safety of the robot against obstacles, we define some notation in the Velocity Obstacles paradigm. When vA lies outside of VOBA, the time to possible collision tpc is defined as the minimum possible time for A to collide with B by changing heading while keeping the magnitude of vA constant:
where ||A − B||min is defined as the minimum distance between A and any point of B. For example, ||A − B||min for the circular obstacle B, with the radius of r given by:
Also, ϑ(vA) is defined as the minimum angle difference of vA − vB and CCAB, as shown in Figure 16(b).
Obstacle Avoidance Manoeuvre
Let vA[k] denote the discretized velocity of A at t = kΔt, where Δt is the time step:
The moving obstacle avoiding manoeuvre can be treated as selecting vA[k],k = 1,2,… such that A safely navigates towards its goal when the trajectory is generated by the selected set of velocities with the given initial position and velocity.
Given the current velocity vA[k], the kinematic and dynamic constraints imposed on the robot A restrict the set of admissible velocities at next sample time, vA [k + 1]. The set denoted by AV (vA [k]) is represented as:
where the maximum and the minimum magnitude of velocity, vmax and vmin, and the maximum yaw rate ωmax at t = kΔt, are determined by the limits on tangential and radial acceleration, atMax and arMax, of the robot:
Figure 17 shows the geometry of AV(vA[k]), as illustrated in the shaded sector. Then, vA [k + 1] must be selected from AV(vA[k]):
Geometry of the admissible velocities
For the purpose of the computation of the optimal feasible velocity at each time step, AV(vA[k]) is sampled into ntnr points, called the candidate velocities, as indicated by the dots in Figure 17, where nt and nr are the number of sample points in the tangential and radial directions with respect to vA[k]. The candidate velocity vA[k+1](i, j), i = 1,…, nt, j = 1,…, nr is given by:
The cost of a candidate velocity vA[k + 1](i,j) against an obstacle B is given by:
where [k + 1] (i,j), the index of vA, is dropped for notational simplicity. Note that when vA is within VOBA, the cost rewards tc for vA to escape from the area VOBA. Otherwise, it penalizes ϑ in an inverse proportion to tpc. This is because penalties on ϑ guide vA to head farther away from VOBA, and the penalties are more critical for smaller tpc. The two terms are tuned by weighing factors cin and cout.
The route boundaries ∂S can be considered as static obstacles, i.e., ones that have no velocity. For example, as illustrated in Figure 18, when A is within a straight route cell bounded by cl,cr, dl,dr, the left and right boundary line segments, cldl and crdr, can be considered as obstacles, as denoted by ol and or. Since the velocity of ol is zero, the velocity obstacle VOolA originates at A and is bounded by Acl and Adl, and so forth, for or. The cost of the velocity vA against the obstacles is obtained by replacing B with ol or or in (13).
Velocity obstacles against the in-bounds area
To make the robot A move towards the target point t under the corridor constraint, an additional cost is introduced. Let L denote the leaving barricade of the route cell in which A is located. VOLA can be constructed as though L were a static obstacle, as shown in Figure 18. The cost of vA to L is defined as the same (but the opposite) sign to (13):
So, while Jo makes A reflective in relation to an obstacle, Jb makes it attractive in relation to the leaving barricade. For notational convenience, L is t when A is within the last route cell.
Finally, given the current velocity vA [k] of A that is within the route cell of which the leaving barricade is L, the optimal velocity at the next time step, vA* [k + 1], against the set of obstacles O = o1,…, oM, is obtained by minimizing:
subject to:
To incorporate moving obstacle avoidance with global path planning along the mission route (MR), we use the following approaches: as long as a moving obstacle is detected within the robot sensor range, the moving obstacle avoidance algorithm presented in this section is used by discarding the pre-calculated global path information. Once all the obstacles are out of sensor range, the reference path is re-planned by using the global path information in a receding horizon fashion.
Numerical Experiments
The simulations provided in this section are implemented in MATLAB and tested on a Windows PC with a Pentium IV 1800 MHz processor.
The first simulation demonstrates the proposed motion planning algorithm for the avoidance of moving obstacles (Section 4). Figure 19 shows snapshots of the real-time motion planning of the vehicle operating in a corridor determined by two vertical line objects, filled with moving obstacles. Each obstacle is illustrated as a black circle, with its corresponding velocity obstacle illustrated as a bright shaded cone. The obstacles have different sizes and their motions are modelled either linearly or circularly. The smaller and larger circles around the vehicle indicate the minimum and maximum magnitudes of the admissible velocity range respectively. The cone that originates at the vehicle indicates the admissible heading range. So, the admissible velocity is determined by the circular arc sector enclosed by the circles and the cone. The arrow that originates at the vehicle indicates the commanded velocity of the vehicle such that the tip of the arrow is within the admissible velocity area. (A video of this simulation can be found at http://www.youtube.com/watch?v=zvScrJE3k88.)
Motion planning of the vehicle traversing a corridor (the two vertical line segments) for the avoidance of moving obstacles (black circles). For each obstacle, the velocity obstacle is illustrated as a bright shaded cone.
The second simulation was to demonstrate the safe motion planned by incorporating all the proposed algorithms. Figure 20 shows the mission environment, MR, filled with unknown (moving and static) obstacles on the top row. The initial path (dashed curve) is planned for the given MR by applying the proposed path planning algorithm (Section 2.2). The optimal path is obtained by equally penalizing the arc length, the proximity to obstacles and the curvature by setting (cl, cc,ck) = (1,1,1) in the cost function (9). The rest of the images comprise snapshots of the proposed algorithms. We assume that the sensor detection range is defined as a circular sector (with a centre angle of 120° and a radius of 40m), such that the heading of the vehicle is at the bisector of its central angle. It is illustrated as the light, shaded region in the figures. An obstacle is assumed to be detected if its centre point lies inside the sensor detection range. In the initial position s, the vehicle sensor detects no obstacle in the environment. To simulate localization errors, the noise was modelled as white noise with a magnitude of 0.2m and was added to the actual position. Next, the vehicle follows the disturbed reference path by using the trajectory generation and tracking algorithm (Section 3). When new obstacles are detected as the vehicle tracks the path, the vehicle calculates whether the path intersects the obstacles. If so, it is necessary to manoeuvre depending on whether one of the detected obstacles is moving. When the vehicle runs into moving obstacles, the motion is planned by using the method presented in Section 4 After the vehicle's velocity escapes from the area, the reference path is re-planned by applying the path planning algorithm in a receding horizon fashion (Section 2.4). This process is repeatedly done until the vehicle reaches t. (Video of the result can be found at http://www.youtube.com/watch?v=pqu9M_XXeD0.)
Snapshots of real-time obstacle avoidance motion planning of the robot operating in a semi-structured environment
Figure 21(a) and 21(b) show the control command history. The plots of the tangential and radial acceleration correspond to the control, while Figure 21(c) and 21(d) show that the vehicle satisfies its tangential and radial acceleration constraints: atMax = 3m/s2 and arMax = 5m/s2. Our methods are all robust to this kind of motion due to the fast path re-planning.
Control command history and tangential and radial acceleration exerted by the control command
Summary
This paper proposes a real-time motion planning algorithm for autonomous ground vehicles operating in semi-structured environments. The algorithm switches between two kinds of planners depending on the mobilities of detected obstacles.
The first planner, for static obstacle avoidance, combines a path planner and a controller. The first step of path planning is to decompose the mission route specified by waypoints and corridor widths into discrete cells. We introduce the cutting edges method to efficiently re-decompose Cfree in a dynamically changing environment. Each cutting edge is determined by dividing ratio values on the boundary of Cfree. The decomposed route cell and the cutting edges passing through obstacles are discretized into a finite number of points. The optimal piecewise linear path is then determined by connecting a subset of the points with the use of dynamic programming (DP). DP reduces the re-planning computation time by enabling the path planner to reuse pre-calculated global shortest path information. The next step is to smooth the path based on Bézier curves such that the maximum curvature of each curve is minimized with a polygonal boundary constraint. The efficiency and performance of the proposed path smoothing method is demonstrated.
The controller calculates the maximum allowable velocity profile from turning points (TP) along the path, satisfying limits on the maximum tangential and radial acceleration of the vehicle and based on the path provided by the path planner. The analysis of the maximum curvature of a quadratic Bézier curve assists the efficient calculation of the TP. The highest allowable velocity profile is determined as the minimum of all velocity profiles. Next, control commands are generated for the vehicle to accurately track the desired trajectory by using a pure pursuit-based nonlinear trajectory tracking guidance law.
To efficiently operate in an environment filled with moving obstacles, the second planner produces time-optimal motions by incorporating dynamic constraints during motion planning. More specifically, to satisfy the waypoints and corridor constraints, we compute the sequence of velocities, in discrete time, which minimizes the cost determined by expected collision times, the safety of the current velocity against obstacles, and the deviation of the current velocity relative to the desired velocity. The algorithm is incorporated with global path planning. Our numerical simulations demonstrate that these algorithms generate successful motions for autonomous vehicles with a limited sensor range while meeting the maximum allowable tangential and radial acceleration constraints.
References
1.
DolgovD.ThrunS.MontemerloM.DiebelJ.. Path planning for autonomous vehicles in unknown semi-structured environments. International Journal of Robotics Research, 29(5):485–501, April 2010.
2.
LikhachevM.FergusonD.. Planning long dynamically-feasible maneuvers for autonomous vehicles. International Journal of Robotics Research, 28:933–945, 2009.
3.
NilssonN. J.. A mobile automation: An application of artificial intelligence techniques. In The 1st International Joint Conference on Artificial Intelligence, pages 509–520, 1969.
4.
MaekawaT.NodaT.TamuraS.OzakiT.MachidaK.. Curvature continuous path generation for autonomous vehicle using b-spline curves. Computer-Aided Design, 42(4):350–359, 2010.
5.
Ó'DúnlaingC.SharirM.YapC. K.. Retraction: A new approach to motion-planning. In Proceedings of The 15th Annual ACM Symposium on Theory of Computing, New York, NY, USA, 1983.
6.
SahraeiA.ManzuriM. T.RazvanM. R.TajfardM.KhoshbakhtS.. Real-time trajectory generation for mobile robots. In Proceedings of the 10th Congress of the Italian Association for Artificial Intelligence on AI*IA 2007: Artificial Intelligence and Human-Oriented Computing, Rome, Italy, 2007.
7.
ChoiJ.-W.CurryR. E.ElkaimG. H.. Real-time obstacle avoiding path planning for mobile robots. In Proceedings of the AIAA Guidance, Navigation and Control Conference, Toronto, Ontario, Canada, 2010.
8.
ChatilaR.. Path planning and environment learning in a mobile robot system. In Proceedings of the European Confernece on Artificial Intelligence, 1982.
9.
LingelbachF.. Path planning using probabilistic cell decomposition. In Proceedings of IEEE International Conference on Robotics and Automation, 2004.
10.
FergusonD.StentzA.. Using interpolation to improve path planning: The field d* algorithm. Journal of Field Robotics, 23(2):79–101, February 2006.
11.
PivtoraikoM.KellyA.. Generating near minimal spanning control sets for constrained motion planning in discrete state spaces. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 3231–3237, August 2005.
12.
HartP.NilssonN.RaphaelB.. A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics, 4:100–107, 1968.
13.
KoenigS.LikhachevM.. D* lite. In Proceedings of the AAAI Conference of Artificial Intelligence, pages 476–483, 2002.
14.
NashA.DanielK.KoenigS.FelnerA.. Theta*: Any-angle path planning on grids. In Proceedings of the National Conference on Artificial Intelligence, pages 1177–1183, 2007.
15.
LavalleS. M.KuffnerJ. J.. Rapidly-exploring random trees: Progress and prospects. In Algorithmic and Computational Robotics: New Directions, pages 293–308, 2000.
16.
FulgenziC.TayC.SpalanzaniA.LaugierC.. Probabilistic navigation in dynamic environment using rapidly-exploring random trees and gaussian processes. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 1056–1062, September 2008.
17.
PerezA.KaramanS.WalterM.ShkolnikA.FrazzoliE.TellerS.. Asymptotically-optimal manipulation planning using incremental sampling-based algorithms. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, 2011.
18.
SuhS.-H.ShinK.-G.. A variational dynamic programming approach to robot-path planning with a distance-safety criterion. IEEE Journal of Robotics and Automation, 4(3):334–349, 1988.
19.
BarraquandJ.FerbachP.. Path planning through variational dynamic programming. In Proceedings of IEEE International Conference on Robotics and Automation, pages 1839–1846, May 1994.
20.
FlintM.PolycarpouM.Fernandez-GaucherandE.. Cooperative path-planning for autonomous vehicles using dynamic programming. In Proceedings of IFAC World Congress, 2002.
21.
YangK.SukkariehS.. Real-time continuous curvature path planning of uavs in cluttered environments. In Proceedings of the 5th International Symposium on Mechatronics and Its Applications, pages 1–6, 2008.
22.
ChoiJ.-W.CurryR. E.ElkaimG. H.. Curvature-continuous trajectory generation with corridor constraint for autonomous ground vehicles. In Proceedings of IEEE Conference on Decision and Control, Atlanta, Georgia, USA, 2010.
23.
FioriniP.ShillerZ.. Motion planning in dynamic environments using the relative velocity paradigm. In Proceedings of IEEE International Conference on Robotics and Automation, pages 560–565, May 1993.
24.
ShillerZ.LargeF.SekhavatS.. Motion planning in dynamic environments: obstacles moving along arbitrary trajectories. In Proceedings of IEEE International Conference on Robotics and Automation, 2001.
25.
van den BergJ.LinM.ManochaD.. Reciprocal velocity obstacles for real-time multi-agent navigation. In Proceedings of IEEE International Conference on Robotics and Automation, pages 1928–1935, May 2008.
ChoiJ.-W.CurryR. E.ElkaimG. H.. Minimizing the maximum curvature of quadratic bézier curves with a tetragonal concave polygonal boundary constraint. Computer Aided Design, 44(4):311–319, April 2012.
28.
LepeticM.KlancarG.SkrjancI.MatkoD.PotocnikB.. Time optimal path planning considering acceleration limits. Robotics and Autonomous Systems, 45(3–4):199–210, 2003.
29.
ParkS.DeystJ.HowJ. P.. Performance and lyapunov stability of a nonlinear path following guidance method. Journal of Guidance, Control, and Dynamics, 6, 2007.