Abstract
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.
Introduction
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

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

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:
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

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
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
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
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
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

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
Figure 4(c) shows the resulting partition of S. S2i-1 called the straight cell, is bounded by the polygon
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

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,
Note that when the pivot point exists,
It is straightforward that, as τ varies from 0 to 1, the cutting edge
The next step is to generate the piecewise linear path, namely the primitive path (PP), on the decomposed space.
Let
The intermediate nodes
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
where ne is the number of discretized cutting edges in the cell Si and np is the number of discretized points per edge

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
where each element of the channel,
where
As such,
Given a channel, PP can be represented in terms of the combination of gate indices, denoted by 𝒢 from
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
That is, the arc length is scaled by ||
The optimal gates set G* is computed such that its corresponding path
The optimal cost at hn
c
-1 on
Once Jn
c
-1* for all hn
c
-1 are computed, the optimal cost at hn
c
-2 on
The next pointer dn c -2(hn c -2) will be the hn c -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 c l , c c 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 (c l , c c , c k ) = (0,1,0). Finally, Figure 8(c) shows the minimum curvature path by setting (c l , c c , c k ) = (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 + (n c − 2)M2 and the cost function is evaluated for each pair. Note that the asymptotic complexity is O(n c M2) but that the computational cost is very low because the cost function (9) is in closed-form.
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
Figure 9 visualizes the method. The curve to smooth two line segments

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,
Bézier curves have another useful property of being within the convex hull of their control points [26]. This property yields that, if
The number of nodes to construct PP, n r , 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).
Let us extend the introduced path planning to consider static obstacles and the initial/final heading constraints. Let
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

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
Recall that two successive line segments of PP are smoothed by a quadratic Bézier curve bounded by the tetragonal polygon

Given
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 (

Snapshots of static obstacle avoidance in a semi-structured environment, using DP
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
such that:
which has been derived in [27].

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].

Diagram for the guidance law [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
where ρ(
Figure 16(a) shows the geometry of the Velocity Obstacle. When

The paradigm of Velocity Obstacle
To estimate the safety of the robot against obstacles, we define some notation in the Velocity Obstacles paradigm. When
where ||
Also, ϑ(
Let
The moving obstacle avoiding manoeuvre can be treated as selecting
Given the current velocity
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, a tMax and arMax, of the robot:
Figure 17 shows the geometry of AV(

Geometry of the admissible velocities
For the purpose of the computation of the optimal feasible velocity at each time step, AV(
The cost of a candidate velocity
where [k + 1] (i,j), the index of
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

Velocity obstacles against the in-bounds area
To make the robot
So, while Jo makes
Finally, given the current velocity
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.
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 (c
l
, c
c
,c
k
) = (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

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
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.
