Introduction
A. Background
Autonomous driving systems are making a promising change to the urban transportation modes [1]. As a critical module in an autonomous vehicle [2], [3], trajectory planning identifies a spatiotemporal curve that is free from collisions, easily tracked by the controller, and comfortable for the passengers. Trajectory planners have been widely developed for on-road autonomous driving [4]–[6]. Compared with on-road cruising, parking in an unstructured scenario is more challenging [7]–[9] because 1) there is no longer a navigational reference line, 2) a trajectory typically contains cusps, thus it is no longer a smooth curve, and 3) obstacles are less regularized than those on a structured road. Few of the prevalent on-road trajectory planners can be used to handle a generic parking planning scheme because of these factors. This work is focused on the autonomous parking trajectory planning problems in complex scenarios with irregularly placed static obstacles.
B. Related Works
The existing trajectory planners suitable for autonomous parking primarily include the sampling-and-search-based and optimization-based methods. A sampling-and-search-based approach discretizes the continuous state space into a graph of nodes and searches in the graph for a valid link from the starting node to the goal node. This category has two branches, that is, to sample the state space or control space. Typical methods that sample the state space primarily include the state lattice approach [10], and the rapidly-exploring random tree series [11], [12]. Meanwhile, the typical control-space samplers include the hybrid
An optimization-based trajectory planner is commonly used to provide optimal trajectories precisely. To the best of the authors’ knowledge, Kondak and Hommel [17] were the first to describe a parking trajectory planning problem as an OCP and then numerically solve it. Using a triangle-area criterion to describe the vehicle-to-obstacle collision-avoidance constraints analytically, Li and Shao [18] proposed a unified OCP model for parking cases with arbitrarily placed obstacles. However, such collision-avoidance constraints are nominally non-differentiable and non-convex. Shi et al. [19] formulated a nested optimization model to simplify the nominal collision-avoidance constraints. Zhang et al. [20] proposed an optimization-based collision avoidance (OBCA) method, wherein signed distance functions are used to improve the differentiability of the nominal collision-avoidance constraints. Bergman and Axehill [21] proposed a Sequential Homotopy Quadratic Programming (SHQP) strategy, which shrinks the obstacles to ease the collision-avoidance constraints and then expands them incrementally towards their nominal sizes. By solving a series of easier OCPs prior to handling the nominal one, the entire difficulties are dispersed evenly among the easier OCPs. A similar idea was proposed by Li et al. [22], wherein an arbitrary spatiotemporal restriction is first imposed to simplify the OCP formulation, and then gradually relaxed until a near-optimal parking trajectory is found.
A near-optimal or even near-feasible initial guess can largely facilitate the numerical solution process of an OCP. One may generate a coarse trajectory and then warm-start an OCP solution process with that initial guess.
C. Contributions
This work aims to achieve fast, accurate, and high-quality parking trajectory planning performance. To ensure that the planning results are optimal and precise, we need to formulate an OCP and numerically solve it. To make the numerical solution process fast, we need to 1) identify a good initial guess via a sampling-and-search-based method quickly; and 2) replace the intractably scaled collision-avoidance constraints with within-corridor conditions. As previously mentioned, constructing corridors has the underlying risks of rendering the OCP infeasible or the derived solution far from being optimal. As a typical sampling-and-search-based algorithm for autonomous parking, the conventional hybrid
The contributions of this paper are two-fold. First, a fault-tolerant variant of the hybrid
D. Organization
The rest of this paper is structured as follows. Section II presents the problem statement in the form of a nominal OCP. As a foundation, Section III introduces how to convert the nominal collision-avoidance constraints of the OCP into within-corridor constraints. A lightweight iterative framework is proposed in Section IV for providing trajectory planning results. Experimental setups and results are elaborated in Section V. Finally, some conclusions are drawn in Section VI.
Problem Formulation
In this section, a generic autonomous parking trajectory planning scheme is formulated as an OCP nominally.
A. Overall Formulation
Let us denote the vehicle state profile as \begin{align*}&\min \limits _{{\mathbf { z}}(t), {\mathbf { u}}(t), T} J\left ({{{\mathbf { z}}(t),{\mathbf { u}}(t)} }\right), \\&\quad \textrm {s.t.,}~{\dot {\mathbf {z}}}(t)=f\left ({{{\mathbf { z}}(t),{\mathbf { u}}(t)} }\right), \\&\hphantom { \quad \textrm {s.t.,}~}{\mathbf {z}}\le {\mathbf { z}}(t)\le {\bar {\mathbf {z}}},\quad {\mathbf {u}}\le {\mathbf { u}}(t)\le { \bar {\mathbf {u}}}, ~t\in [0,T]; \\&\hphantom { \quad \textrm {s.t.,}~}{\mathbf { z}}(0)={\mathbf { z}}_{\textrm {init}}, \quad {\mathbf { u}}(0)={\mathbf { u}}_{\textrm {init}}; \\&\hphantom { \quad \textrm {s.t.,}~}g_{\textrm {end}} \left ({{{\mathbf { z}}(T), \quad {\mathbf { u}}(T)} }\right)\le 0; \\&\hphantom { \quad \textrm {s.t.,}~} fp({\mathbf { z}}(t))\subset \Upsilon _{\textrm {FREE}},\quad t\in [0,T].\tag{1}\end{align*}
Herein,
B. Vehicle Kinematic Constraints
This subsection formulates the differential equations \begin{align*} \frac {\textrm {d}}{\textrm {d}t}\left [{ {{\begin{array}{cccccccccccccccccccc} {{\begin{array}{cccccccccccccccccccc} {x(t)} \\ {y(t)} \\ \end{array}}} \\ {v(t)} \\ {\phi (t)} \\ {\theta (t)} \\ \end{array}}} }\right]=\left [{ {{\begin{array}{cccccccccccccccccccc} {{\begin{array}{cccccccccccccccccccc} {v(t)\cdot \cos \theta (t)} \\ {v(t)\cdot \sin \theta (t)} \\ \end{array}}} \\ {a(t)} \\ {\omega (t)} \\ {v(t)\cdot \tan \phi (t)/ {\textrm {L}_{\textrm {W}}}} \\ \end{array}}} }\right], \quad t\in [0,T].\tag{2}\end{align*}
Herein, (
Besides LW, other geometric parameters such as LF (front overhang length), LR (rear overhang length), and LB (width) are also depicted in Fig. 1.
The aforementioned state/control variables have allowable intervals, which reflect the physical or mechanical limitations related to vehicle kinematics:\begin{align*} \left [{ {{\begin{array}{cccccccccccccccccccc} {\textrm {a}_{\textrm {min}}} \\ {\textrm {v}_{\textrm {min}}} \\ {-\Omega _{\textrm {max}}} \\ {-\Phi _{\textrm {max}}} \\ \end{array}}} }\right]\le \left [{ {{\begin{array}{cccccccccccccccccccc} {a(t)} \\ {v(t)} \\ {\omega (t)} \\ {\phi (t)} \\ \end{array}}} }\right]\le \left [{ {{\begin{array}{cccccccccccccccccccc} {\textrm {a}_{\textrm {max}}} \\ {\textrm {v}_{\textrm {max}}} \\ {\Omega _{\textrm {max}}} \\ {\Phi _{\textrm {max}}} \\ \end{array}}} }\right],\quad t\in [0,T].\tag{3}\end{align*}
C. Boundary Constraints
Boundary constraints \begin{align*}&\hspace {-0.5pc} [x(0),y(0),\theta (0),v(0),\phi (0),a(0),\omega (0)] \\& \qquad\qquad\qquad\qquad\qquad =\, [\textrm {x}_{0},\textrm {y}_{0},{\theta }_{0},\textrm {v}_{0},\phi _{0},\textrm {a}_{0},\textrm {w}_{0}],\tag{4}\end{align*}
Nonetheless, at the endpoint \begin{align*}&\hspace {-0.5pc}[x(T),y(T),v(T),\phi (T),a(T),\omega (T)] \\& \qquad\qquad\qquad\qquad\qquad =\,[\textrm {x}_{\textrm {F}},\textrm {y}_{\textrm {F}},\textrm {v}_{\textrm {F}},\phi _{\textrm {F}},\textrm {a}_{\textrm {F}},\textrm {w}_{\textrm {F}}],\tag{5a}\end{align*}
\begin{align*} \sin \theta (T)=&\sin (\theta _{\textrm {F}}), \\ \cos \theta (T)=&\cos (\theta _{\textrm {F}}).\tag{5b}\end{align*}
An example reflecting the difference between setting
D. Collision-Avoidance Constraints
This subsection presents the collision-avoidance constraints \begin{equation*} S_{\Delta \textrm {QW}_{\textrm {m}} \textrm {W}_{1}} +\sum \limits _{l=1}^{\textrm {m}-1} {S_{\Delta \textrm {QW}_{l} \textrm {W}_{l+1}}} >S_{\unicode{0x25A1} \textrm {W}_{1} \textrm {W}_{2} \ldots \textrm {W}_{\textrm {m}}},\tag{6}\end{equation*}
\begin{align*}&\hspace {-0.5pc} S_{\Delta \textrm {QW}_{l} \textrm {W}_{(l+1)}} = \frac {1}{2}\cdot \Big |{ {x_{\textrm {q}} \textrm {y}_{\textrm {W}l} +\textrm {x}_{\textrm {W}l} \textrm {y}_{\textrm {W}(l+1)} +\textrm {x}_{\textrm {W}(l+1)} y_{\textrm {q}}} } \\& \qquad\qquad\qquad -\, { {x_{\textrm {q}} \textrm {y}_{\textrm {W}(l+1)} -\textrm {x}_{\textrm {W}l} y_{\textrm {q}} -\textrm {x}_{\textrm {W}(l+1)} \textrm {y}_{\textrm {W}l}} }\Big |.\tag{7}\end{align*}
As a constant value,
Suppose that the four vertexes of the ego vehicle at \begin{align*}&\hspace {-2pc}S_{\Delta Q\textrm {V}_{j\textrm {NP}_{j}} \textrm {V}_{j1}} +\sum \limits _{k=1}^{\textrm {NP}_{j} -1} {S_{\Delta Q\textrm {V}_{jk} \textrm {V}_{j(k+1)}}} \\>&S_{\unicode{0x25A1} \textrm {V}_{j1} \textrm {V}_{j2} \ldots \textrm {V}_{j\textrm {NP}_{j}}}, \\&\times \, \forall Q\in \left \{{{A(t),B(t),C(t),D(t)} }\right \},\tag{8}\end{align*}
\begin{align*}&\hspace {-2pc}S_{\Delta QA(t)B(t)} +S_{\Delta QB(t)C(t)} +S_{\Delta QC(t)D(t)} +S_{\Delta QD(t)A(t)} \\>&S_{\unicode{0x25A1} A(t)B(t)C(t)D(t)}, \\&\times \,\forall Q\in \left \{{{\textrm {V}_{j1},\textrm {V}_{j2},\ldots,\textrm {V}_{j\textrm {NP}_{j}}} }\right \}.\tag{9}\end{align*}
Applying (8) and (9) to
This work assumes that all of the obstacles are static because predicting the future maneuver of a moving obstacle in a parking scenario is typically not as easy as it is on a structured road. Also, some extra computational time is needed before the vehicle can really react to the moving obstacles. In parking an autonomous vehicle, the primary challenge is not the capability to consider moving obstacles, but to handle the irregularly placed obstacles in a cluttered environment regardless of they are static or not.
E. Cost Function
In this work, a time-energy cost function is defined as follows:\begin{equation*} J=\textrm {w}\cdot \int _{\tau =0}^{T} {\left ({{a^{2}(\tau)+v^{2}(\tau)\cdot \omega ^{2}(\tau)} }\right)\cdot \textrm {d}\tau +T},\tag{10}\end{equation*}
As a summary of the whole section, a generic autonomous parking trajectory planning scheme is described as the following OCP:\begin{align*}&\min \limits _{{\mathbf { z}}(t), {\mathbf { u}}(t), T}~ (10), \\&\quad \textrm {s.t.}~\textrm {Kinematic constraints (2) and (3);} \\&\hphantom {\quad \textrm {s.t.}~}\textrm {Boundary conditions (4) and (5);} \\&\hphantom {\quad \textrm {s.t.}~}\textrm {Collision-avoidance constraints (8) and (9).}\tag{11}\end{align*}
Corridor Construction
A. Motivations
The nominal OCP (11) formulated in the preceding section is intractable because it requires the ego vehicle to avoid collision with each obstacle at every time instant. However, the ego vehicle does not have the chance to collide with each obstacle at every moment. Regarding the task to travel from A to B in Fig. 3, if the ego vehicle travels via route 1, then it has slim chances to collide with obstacles
A simple case illustrating partial collision-avoidance constraints in the nominal OCP formulation are redundant.
Schematics of the constructed corridors. A corridor is paved along each route and each corridor consists of five local boxes. Note that the scale of the within-corridor constrains is irrelevant to the number of obstacles.
In the remainder of this section, we first identify a guiding route, then construct the corridors, finally formulate the within-corridor constraints.
B. Generation of a Guiding Route
A guiding route like the ones presented in Fig. 4 should be identified before we construct the corridors. This subsection introduces how to generate such a guiding route. Searching in the
Since the hybrid
When the guiding route is derived, we attach a minimum-time velocity profile to form a coarse trajectory. This is achieved by solving a one-dimensional OCP via Pontryagin’s Maximum Principle (PMP). The derived coarse trajectory is resampled evenly in time as (
Note that a coarse trajectory derived by our FTHA algorithm may not satisfy the vehicle kinematic constraints, but as we will introduce later,
C. Construction of Corridors
This subsection introduces the construction of corridors along the coarse trajectory such that the ego vehicle can safely avoid all of the obstacles if it stays in the corridors. When a corridor is available, requiring a mass point to stay in the corridor is easier than requiring a rectangular vehicle. Thus the well-known safe flight corridor (SFC) based planners in the community of unnamed aerial vehicle (UAV) (e.g. [34], [35]) are not directly applicable. In our study, the SFC concept is extended such that a rectangular vehicle body can be dealt with.
Two discs are used to evenly cover the vehicle body (Fig. 5a). The disc centers, namely \begin{align*} x_{\textrm {f}} (t)=&x(t)+\frac {1}{4}(3\textrm {L}_{\textrm {W}} +3\textrm {L}_{\textrm {F}} -\textrm {L}_{\textrm {R}})\cdot \cos \theta (t), \\ y_{\textrm {f}} (t)=&y(t)+\frac {1}{4}(3\textrm {L}_{\textrm {W}} +3\textrm {L}_{\textrm {F}} -\textrm {L}_{\textrm {R}})\cdot \sin \theta (t), \\ x_{\textrm {r}} (t)=&x(t)+\frac {1}{4}(\textrm {L}_{\textrm {W}} +\textrm {L}_{\textrm {F}} -3\textrm {L}_{\textrm {R}})\cdot \cos \theta (t), \\ y_{\textrm {r}} (t)=&y(t)+\frac {1}{4}(\textrm {L}_{\textrm {W}} +\textrm {L}_{\textrm {F}} -3\textrm {L}_{\textrm {R}})\cdot \sin \theta (t).\tag{12}\end{align*}
\begin{equation*} \textrm {R}_{\textrm {D}} =\frac {1}{2}\sqrt {\left({\frac {\textrm {L}_{\textrm {R}} +\textrm {L}_{\textrm {W}} +\textrm {L}_{\textrm {F}} }{2}}\right)^{2}+(\textrm {L}_{\textrm {B}})^{2}}.\tag{13}\end{equation*}
Schematics of vehicle shape shrinking and obstacle dilatation: (a) presenting the vehicle shape with two discs; (b) shrinking the vehicle shape and dilating the environmental obstacles.
The condition that each disc does not overlap with the obstacles is the same as that each disc center keeps a distance of RD from the obstacles at least. Therefore, an equivalent conversion can be made by simultaneously shrinking the two discs to their centers and dilating the obstacles by RD (see Fig. 5b). The new map with the dilated obstacles is denoted as a dilated map.
The next step is to construct two corridors in the dilated map for
Let us focus on the corridor construction process of
Principle to identify a corridor: (a) a corridor consisting of local boxes; (b) expansion trial direction order and sampled waypoints along the coarse trajectory; (c) expansion trials conducted in a sequence.
The
Algorithm 1 Local Box Generation
Function
while
for each
if
if
end if
else
end if
end for
end while
return with
The output of GenerateLocalBox() is a vector containing four elements, which records the ranging intervals of the identified local box in the x and y axes, respectively. In line 7, the function
Applying Alg. 1 to all of the waypoints yields two corridors for
The output of GenerateCorridors() is a vector containing 8NFE elements, all of which determine the two corridors. In line 1 of Alg. 2, the function
Algorithm 2 Corridor Generation
Function
for
end for
return with
D. Within-Corridor Constraint Formulation
With the two constructed corridors at hand, we formulate the within-corridor constraints, which are designated to replace the nominal collision-avoidance constraints (8) and (9).
The within-corridor constraints require that the points \begin{align*}&P_{\textrm {f}} (t)~\textrm {stays in}k\textrm {th local box for }P_{\textrm {f}},~ \textrm {and} \\&P_{\textrm {r}} (t)~\textrm {stays in}k\textrm {th local box for }P_{\textrm {r}}, \\&t=T/\textrm {N}_{\textrm {FE}} \cdot k,k=1,\ldots,\textrm {N}_{\textrm {FE}}.\tag{14}\end{align*}
Since each local box is regularly placed, (14) is explicitly written as \begin{align*} x_{\textrm {f}} (t)~\in&\left [{ {\textrm {xf}_{\textrm {min}}^{k},\textrm {xf}_{\textrm {max}}^{k}} }\right], \quad y_{\textrm {f}} (t)\in \left [{ {\textrm {yf}_{\textrm {min}}^{k}, \textrm {yf}_{\textrm {max}}^{k}} }\right], \\ x_{\textrm {r}} (t)~\in&\left [{ {\textrm {xr}_{\textrm {min}}^{k},\textrm {xr}_{\textrm {max}}^{k}} }\right], \quad y_{\textrm {r}} (t)\in \left [{ {\textrm {yr}_{\textrm {min}}^{k}, \textrm {yr}_{\textrm {max}}^{k}} }\right], \\ t=&T/\textrm {N}_{\textrm {FE}} \cdot k, \quad k=1,\ldots,\textrm {N}_{\textrm {FE}}.\tag{15}\end{align*}
The within-corridor constraints (15) are box constraints w.r.t. \begin{align*}&\min \limits _{{\mathbf { z}}^{\ast }(t), {\mathbf { u}}(t), T} (10), \\&\quad ~\!\textrm {s.t.}~\textrm {Kinematic constraints (2), (3) and (12);} \\&\hphantom {\quad ~\!\textrm {s.t.}~}\textrm {Boundary conditions (4) and (5);} \\&\hphantom {\quad ~\!\textrm {s.t.}~}\textrm {Within-corridor constraints (}15{).}\tag{16}\end{align*}
Herein,
Lightweight Iterative Optimization Framework
A. Motivations
The preceding section has presented how to simplify the nominal OCP (11) into an easier version (16). However, (16) is subject to the following issues. First, the identified corridors inevitably leave some corner regions in the free space uncovered (see the blue regions in Fig. 6a). Second, the quality of the coarse trajectory (derived by FTHA introduced in Section III.B) may not be high, which influences the construction of the corridors. Due to the first issue, solving (16) renders a near-optimal rather than an optimal solution when the optimum falls into the uncovered regions. The second issue may make (16) fail to be solved if the constructed corridors do not cover any kinematically feasible trajectory. To summarize, directly solving (16) is not always reliable.
B. Iterative Optimization Framework
To address the issues pointed out in the preceding subsection, a natural idea is to adjust the corridors adaptively if they are found to be inappropriate. We establish an iterative framework, in which the corridors are built once per iteration and an intermediate OCP is formulated accordingly. The solution to the intermediate OCP in one iteration is used as the coarse trajectory
Intuitively, the iterative framework would work well to gradually find an optimal parking trajectory. However, one needs to ensure that each intermediate OCP is always solved with success, otherwise, an intermediate failure blocks any further evolution. To fix this underlying issue, we simplify (16) so that it never becomes infeasible. One may notice that the only nonlinear constraints in (16) include the kinematic equalities (2) and (12), as well as the end-point boundary condition (5b). If these nonlinear equalities are softened via external penalty functions and merged into the cost function \begin{equation*} J_{\textrm {EQ2}} =\int _{\tau =0}^{T} {\left \|{ {f\left ({{{\mathbf { z}}(\tau),{\mathbf { u}}(\tau)} }\right)} }\right \|^{2}} \cdot \textrm {d}\tau.\tag{17}\end{equation*}
Herein, \begin{equation*} J_{\textrm {EQ12}} =\int _{\tau =0}^{T} {\left \|{ {g\left ({{{\mathbf { z}}^{\ast }(\tau)} }\right)} }\right \|^{2}} \cdot \textrm {d}\tau.\tag{18}\end{equation*}
The end-point boundary condition (5b) is softened as \begin{equation*} J_{\textrm {EQ5B}} \!=\! \left ({{\sin \theta (T)-\sin (\theta _{\textrm {F}})} }\right)^{2} \!+\! \left ({{\cos \theta (T)-\cos (\theta _{\textrm {F}})} }\right)^{2}.\tag{19}\end{equation*}
The aforementioned three terms are summed up as \begin{equation*} \psi _{\textrm {infeasibility}} =J_{\textrm {EQ2}} +J_{\textrm {EQ12}} +J_{\textrm {EQ5B}}.\tag{20}\end{equation*}
For a candidate solution, \begin{equation*} J_{\textrm {INT}} =J+\textrm {w}_{\textrm {penalty}} \cdot \psi _{\textrm {infeasibility}},\tag{21}\end{equation*}
The complete intermediate OCP is presented in the following form:\begin{align*}&\min \limits _{{\mathbf { z}}^{\ast }(t), {\mathbf { u}}(t), T} (21), \\&\quad ~\! \textrm {s.t.} ~\textrm {Kinematic constraints (3);} \\&\hphantom {\quad ~\! \textrm {s.t.} ~} \textrm {Boundary conditions (4) and (5a);} \\&\hphantom {\quad ~\! \textrm {s.t.} ~} \textrm {Within-corridor constraints} (15).\tag{22}\end{align*}
Theoretically, (22) is never subject to the risk of being infeasible because every vector that lies between the box boundaries would be a feasible solution that satisfies all of the box constraints. As (22) does not contain complex constraints, its numerical solution process is extremely fast.
We use the following pseudo-codes to present our proposed autonomous parking trajectory planning method.
The inputs of ParkingTrajectoryPlanning() include map and task. map presents the environmental setup, i.e. the geometric size and location of each obstacle, as well as the scenario boundaries. task presents the parking scheme, i.e. the initial and terminal configurations of the ego vehicle. The output of the function is the optimized parking trajectory in the form of a sequence of timed configuration points
Algorithm 3 Autonomous Parking Trajectory Planning
Function
while
if
return with failure;
end if
end while
return with
Recall that the output of Alg. 3, denoted as
According to the criterion to exit the while loop, the finally derived \begin{equation*} J_{\textrm {EQ2}} < \varepsilon _{\textrm {tol}}, \quad J_{\textrm {EQ12}} < \varepsilon _{\textrm {tol}},~ J_{\textrm {EQ5B}} < \varepsilon _{\textrm {tol}}.\tag{23}\end{equation*}
When
Besides that, the usage of two disks to cover the rectangular vehicle body, the establishment of two tunnels, and the satisfaction of the within-tunnel constraints (15) ensure that
Remark 2:
The final output of Alg. 3 is near-optimal w.r.t. the nominal planning scheme (11) if
If we set
Let us denote the feasible region of an OCP as
Experimental Setups, Results, and Discussions
A. Simulation Setup
Simulations were conducted in C++ and executed on an i9-9900 CPU with 32 GB RAM that runs at 3.10
A set containing 115 simulation cases is built to evaluate the performance of the proposed parking trajectory planner. Manually selected from 6,000 randomly generated cases, the 115 cases are classified as maneuvering, detouring, and narrow passage traverse. Each case contains 5 polygonal obstacles; the vertex number of each obstacle randomly ranges from 4 to 7; the location of each vertex obeys the uniform distribution within a \begin{align*} \left [{ {{\begin{array}{cccccccccccccccccccc} {v(0)} \\ {a(0)} \\ {\phi (0)} \\ {\omega (0)} \\ \end{array}}} }\right]=\left [{ {{\begin{array}{cccccccccccccccccccc} {v(T)} \\ {a(T)} \\ {\phi (T)} \\ {\omega (T)} \\ \end{array}}} }\right]=\left [{ {{\begin{array}{cccccccccccccccccccc} 0 \\ 0 \\ 0 \\ 0 \\ \end{array}}} }\right].\end{align*}
B. Simulation Results and Discussions
To evaluate the performance of the proposed trajectory planner, comparable algorithms are defined in Table II. The performances of Alg. 3 and its competitors on the 115 simulation cases are summarized in Tables III.
Directly solving the nominal OCP (11) is time-consuming. Given that the nominal collision-avoidance constraints (8) and (9) are highly non-convex and almost non-differentiable, the Naïve NLP solution process cannot easily get correct gradient information when the initial guess is not close to being optimal. As the result, 10 of the gross 115 cases fail to be solved by the Naïve NLP method.
The STC method is featured by solving the OCP (16) once. Since the collision-avoidance constraints in the OCP (16) are linear, the numerical solution process is faster. However, as we mentioned in Section IV.A, the STC method relies on the initial guess. In each of the 4 failed cases, the corridor construction operation leaves out essential free spaces to form a feasible solution.
Regarding the TEB method, the nominal OCP is softened as an unconstrained optimization problem and then solved quickly via the
The TDR-OBCA method is a variant of the conventional OBCA method [20]. In contrast with the OBCA method, the TDR-OBCA method refines the coarse trajectory before using it as the initial guess. Also, it reformulates the constraints/cost function to enhance the planning robustness and efficiency. As seen in Table III, all of the 115 cases are solved with success using the TDR-OBCA method, but the CPU runtime is longer because that method, like the basic OBCA method, does not consider the intractability issue of the collision-avoidance constraints.
Our proposed planning method scales tractably w.r.t the environmental obstacles, and is insensitive to the quality of the initial guess at the very beginning. It builds a lightweight iterative framework to recover from kinematical infeasibility. We name the framework as lightweight because each intermediate OCP only contains a tractable number of box constraints. These are the reasons that our proposal outperforms its competitors listed in Table II.
In our proposed Alg. 3, Llimit is a critical parameter that decides the maximum length/width of each local box. By setting Llimit to different values, the changes in the success rate and the average CPU time are depicted in Fig. 7. From that figure, one may conclude that setting Llimit smaller makes the corridor construction faster but leads to more iterations; setting Llimit larger consumes more time in constructing the corridors within one iteration, but fewer iterations are needed before the trajectory planning process is completed. The success rate is not affected unless Llimit is set overly small (
A video containing the simulation results is available at bilibili.com/video/BV1n7411q7iv/. A typical simulation result is depicted in Fig. 8.
Typical simulation results: (a) footprints of planned parking trajectory; (b) constructed corridors consisting of two series of local boxes.
C. Real-World Experimental Setups and Results
Besides simulations, we have also carried out real-world experiments based on a small car-like robot in a
As depicted in Fig. 9, the vehicle localization is done visually. Concretely, the location and orientation of the car-like robot are identified through tracking the AprilTag placed on the top of the robot via a bird-eye-view camera. AprilTags are also used to “percept” the location and orientation of each registered obstacle. The perception and localization information is sent to a desktop PC, in which our proposed autonomous parking trajectory planning method would be implemented once to generate an open-loop trajectory before the robot begins to move. In using the proposed planner, we add a buffer of 0.01m to the radius of each covering disc such that collisions caused by small tracking errors would be avoided [41]. Parametric settings different from Table I are listed in Table IV. The derived open-loop trajectory is sent to the robot platform via ZigBee communication. Thereafter, the open-loop trajectory is used for closed-loop control. Particularly in the closed-loop trajectory control module, we use a PID controller for longitudinal tracking and use a pure pursuit controller for lateral tracking. We set the execution frequency of the control module to 10.0 Hz.
Fig. 10 shows the closed-loop tracking performances under various conditions in a typical vertical parking scenario. We generate an extremely precise open-loop trajectory under
Closed-loop parking trajectory tracking performances under various discretization accuracy conditions.
Conclusion
This paper has proposed an autonomous parking trajectory planning method in a generic unstructured environment. To get precise and optimal solutions, we build an OCP to describe the concerned scheme. To solve it efficiently, we convert the nominal collision-avoidance constraints to within-corridor conditions via STC. The performance of the adopted STC method depends on the quality of the initial guess, thus we 1) propose the FTHA method to enhance the time efficiency of the coarse trajectory generation process, and 2) build an iterative framework to gradually recover from a poor initial guess.
Generally speaking, the optimization-based planners run more slowly than the sampling-and-search-based planners, thus how to enhance the runtime efficiency is a primary concern. This work has confirmed that simply softening the hard constraints via external penalty functions does not guarantee solution feasibility, although it makes the optimization process faster. Linearizing the original collision-avoidance constraints without making their scale tractable, as the OCBA-related methods do, renders a low calculation speed. Relying highly on the initial guess, as the STC method does, is not a promising approach especially in dealing with intricate scenarios with narrow passages. By contrast, our proposed method balances the solution accuracy, optimality, solution speed, and robustness (weak reliance on the initial guess). All of the difficulties in the planning scheme can be dispersed into the intermediate problems defined in our iterative framework. We expect that the kinematics infeasibility and the solution optimality can evolve in cooperation during the iteration. In this sense, there is no need to make the intermediate procedures too strict, thus we make each intermediate problem lightweight, i.e., a simple optimization problem with fixed-scale box constraints. Comparative simulation results have shown that our proposal outperforms the other few optimization-based strategies w.r.t the CPU runtime and success rate. The proposed iterative framework can be extended to handle generic high-dimensional state transfer problems with nonlinear system dynamics and large-scale non-convex exterior constraints.
It deserves to point out that our proposed planner cannot alter the homotopy class after a coarse trajectory is identified at the very beginning via FTHA. If the coarse trajectory is homotopically misleading, then our proposed method is not able to find a different homotopy class. As our future work, fault-recovery strategies should be designed in the outer loop of our iterative framework so that imperfect homotopy classes can be altered, which makes the entire optimization-based planner insensitive to the initial guess.
ACKNOWLEDGMENT
Bai Li would like to thank Prof. Li Li, Dr. Weitian Sheng, Dr. Oskar Ljungqvist, Prof. Changliu Liu, Muyuan Niu, Peng Song, Yu Zheng, and Shiliang Jin for their support during this study.